화물 관리 시스템 (데이터 구조 순서 표)

29376 단어
  1 /*      (       )*/
  2 #include<string.h>
  3 #include
  4 #include
  5 #define MAXSIZE 100
  6 typedef struct
  7 {
  8     char name[11],no[11];
  9     int num;
 10 }goods;
 11 
 12 typedef struct
 13 {
 14     goods data[MAXSIZE];
 15     int len;
 16 }SeqList;
 17 
 18 /*      */
 19 void input(SeqList *L)
 20 {
 21     int i;
 22     printf("
:
"); 23 scanf("%d",&(L->len)); 24 printf("
、 、 :
"); 25 printf(" :aaa 100 100
"); 26 printf("
"); 27 for(i=1;i<=L->len;i++) 28 { 29 scanf("%s%s%d",L->data[i].name,L->data[i].no,&L->data[i].num); 30 } 31 } 32 33 /* */ 34 void run_over(SeqList *L) 35 { 36 int i; 37 printf("
----------- -----------
"); 38 printf("
"); 39 for(i=1;i<=L->len;i++) 40 { 41 printf("%5s%5s%4d
",L->data[i].name,L->data[i].no,L->data[i].num); 42 } 43 printf("--------------------------------
"); 44 } 45 46 /* */ 47 int search(SeqList *L,goods x) 48 { 49 int i=1; 50 while(i<=L->len&&(strcmp(L->data[i].no,x.no)!=0)) 51 { 52 i++; 53 } 54 if(i>(L->len)) 55 { 56 return 0; 57 } 58 else 59 { 60 return i; 61 } 62 } 63 64 /* */ 65 void insert(SeqList *L,goods x) 66 { 67 int i=1,j; 68 while(i<=L->len&&(strcmp(L->data[i].no,x.no)<0)) 69 { 70 i++; 71 } 72 if(L->len==MAXSIZE-1) 73 { 74 printf(""); 75 } 76 else 77 { 78 for(j=L->len;j>=i;j--) 79 { 80 L->data[j+1]=L->data[j]; 81 } 82 L->data[i]=x; 83 L->len++; 84 } 85 } 86 87 /* */ 88 void storage(SeqList *L,goods x) 89 { 90 int k; 91 k=search(L,x); 92 if(k==0) 93 { 94 insert(L,x); 95 } 96 else 97 { 98 L->data[k].num=L->data[k].num+x.num; 99 } 100 } 101 102 /* */ 103 void del(SeqList *L,goods x) 104 { 105 int i,j; 106 i=search(L,x); 107 for(j=i+1;j<=(L->len);j++) 108 { 109 L->data[j-1]=L->data[j]; 110 } 111 L->len--; 112 } 113 114 /* */ 115 void out(SeqList *L,goods x) 116 { 117 int i,j; 118 i=search(L,x); 119 if(i==0) 120 { 121 printf("

"); 122 } 123 else if(L->data[i].num>x.num) 124 { 125 L->data[i].num=L->data[i].num-x.num; 126 } 127 else if(L->data[i].num==x.num) 128 { 129 del(L,x); 130 } 131 else if(L->data[i].num<x.num) 132 { 133 printf("
, %d。
",L->data[i].num); 134 printf("( 1, 0。)
"); 135 printf(""); 136 scanf("%d",&j); 137 if(j==1) 138 { 139 del(L,x); 140 printf("
! !
"); 141 } 142 else 143 { 144 printf("

"); 145 } 146 } 147 } 148 149 void menu() 150 { 151 printf("**********************************
"); 152 printf("* *
"); 153 printf("* 1----------------- *
"); 154 printf("* 2----------------- *
"); 155 printf("* 3----------------- *
"); 156 printf("* 4--------------------- *
"); 157 printf("* 5--------------------- *
"); 158 printf("* 0------------------------- *
"); 159 printf("**********************************
"); 160 } 161 162 int main() 163 { 164 goods x; 165 int sel,k; 166 SeqList *L; 167 L=(SeqList *)malloc(sizeof(SeqList)); 168 L->len=0; 169 do 170 { 171 menu(); 172 printf(" ( :1):
"); 173 scanf("%d",&sel); 174 switch(sel) 175 { 176 case 1:printf("
!

"); 177 input(L); 178 break; 179 case 2:printf("
!

"); 180 run_over(L); 181 break; 182 case 3:printf("
!

"); 183 printf("

"); 184 printf(""); 185 scanf("%s",x.no); 186 k=search(L,x); 187 if(k==0) 188 { 189 printf("

"); 190 } 191 else 192 { 193 printf("

"); 194 printf("%5s%5s%4d
",L->data[k].name,L->data[k].no,L->data[k].num); 195 } 196 break; 197 case 4:printf("
!

"); 198 printf("
、 、 :
"); 199 printf("
"); 200 scanf("%s%s%d",x.name,x.no,&x.num); 201 storage(L,x); 202 break; 203 case 5:printf("
!

"); 204 printf("
、 、
"); 205 printf("
"); 206 scanf("%s%s%d",x.name,x.no,&x.num); 207 out(L,x); 208 break; 209 } 210 }while(sel!=0); 211 return 0; 212 }

 
다음으로 전송:https://www.cnblogs.com/xautlmx/p/3441353.html

좋은 웹페이지 즐겨찾기