博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
货物管理系统(数据结构顺序表)
阅读量:6081 次
发布时间:2019-06-20

本文共 5117 字,大约阅读时间需要 17 分钟。

1 /*货物管理系统(数据结构顺序表)*/  2 #include
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("\n请输入货物的种数:"); 23 scanf("%d",&(L->len)); 24 printf("\n请输入货物的名称、代号、数量:\n"); 25 printf("例:aaa 100 100\n"); 26 printf("货物名称 货物代号 货物数量\n"); 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("\n-----------货物清单-----------\n"); 38 printf("货物名称 货物代号 货物数量\n"); 39 for(i=1;i<=L->len;i++) 40 { 41 printf("%5s%5s%4d\n",L->data[i].name,L->data[i].no,L->data[i].num); 42 } 43 printf("--------------------------------\n"); 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("\n仓库中无此货物!\n");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
data[i].num);134 printf("(购买请按1,不购买请按0。)\n");135 printf("你的选择:");136 scanf("%d",&j);137 if(j==1)138 {139 del(L,x);140 printf("\n购买成功!欢迎下次光临!\n");141 }142 else143 {144 printf("\n欢迎下次光临!\n");145 }146 }147 }148 149 void menu()150 {151 printf("**********************************\n");152 printf("* 货物管理系统 *\n");153 printf("* 1-----------------录入货物信息 *\n");154 printf("* 2-----------------浏览货物清单 *\n");155 printf("* 3-----------------查找货物信息 *\n");156 printf("* 4---------------------货物入库 *\n");157 printf("* 5---------------------货物出库 *\n");158 printf("* 0-------------------------退出 *\n");159 printf("**********************************\n");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 do170 {171 menu();172 printf("请输入你的选择(例:1):\n");173 scanf("%d",&sel);174 switch(sel)175 {176 case 1:printf("\n你选择了录入货物信息!\n\n");177 input(L);178 break;179 case 2:printf("\n你选择了浏览货物清单!\n\n");180 run_over(L);181 break;182 case 3:printf("\n你选择了查找货物信息!\n\n");183 printf("\n请输入要查找的货物的代号:\n");184 printf("代号为:");185 scanf("%s",x.no);186 k=search(L,x);187 if(k==0)188 {189 printf("\n该货物不存在。\n");190 }191 else192 {193 printf("\n货物名称 货物代号 货物数量\n");194 printf("%5s%5s%4d\n",L->data[k].name,L->data[k].no,L->data[k].num);195 }196 break;197 case 4:printf("\n你选择了货物入库!\n\n");198 printf("\n请输入要入库的货物的名称、代号、数量:\n");199 printf("货物名称 货物代号 货物数量\n");200 scanf("%s%s%d",x.name,x.no,&x.num);201 storage(L,x);202 break;203 case 5:printf("\n你选择了货物出库!\n\n");204 printf("\n请输入要出库的货物的名称、代号、数量\n");205 printf("货物名称 货物代号 货物数量\n");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

你可能感兴趣的文章
newinstance()和new有什么区别
查看>>
android下载封装类
查看>>
[node] 用 node-webkit 开发桌面应用
查看>>
Nginx访问控制和虚拟主机
查看>>
report widget not working for external users
查看>>
windows phone 摄像头得到图片是旋转90°
查看>>
Linux--sed使用
查看>>
没有显示器的情况下安装和使用树莓派
查看>>
Q85 最大矩形
查看>>
【android】使用handler更新UI
查看>>
mochiweb 源码阅读(十五)
查看>>
前端面试中的常见的算法问题
查看>>
计算机语言的基本理论
查看>>
nodejs流之行读取器例子
查看>>
批量文件重命名工具
查看>>
简单说一下UWP中的JumpList
查看>>
unity将object[]或者string对象转换成枚举enum
查看>>
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.19. 范围函数和操作符...
查看>>
以太坊系列之六: p2p模块--以太坊源码学习
查看>>
使用scikit-learn解决文本多分类问题(附python演练)
查看>>