货物管理系统(数据结构顺序表)
2013-11-10 12:58
399 查看
/*货物管理系统(数据结构顺序表)*/ #include<string.h> #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 typedef struct { char name[11],no[11]; int num; }goods; typedef struct { goods data[MAXSIZE]; int len; }SeqList; /*录入货物信息*/ void input(SeqList *L) { int i; printf("\n请输入货物的种数:"); scanf("%d",&(L->len)); printf("\n请输入货物的名称、代号、数量:\n"); printf("例:aaa 100 100\n"); printf("货物名称 货物代号 货物数量\n"); for(i=1;i<=L->len;i++) { scanf("%s%s%d",L->data[i].name,L->data[i].no,&L->data[i].num); } } /*浏览货物清单*/ void run_over(SeqList *L) { int i; printf("\n-----------货物清单-----------\n"); printf("货物名称 货物代号 货物数量\n"); for(i=1;i<=L->len;i++) { printf("%5s%5s%4d\n",L->data[i].name,L->data[i].no,L->data[i].num); } printf("--------------------------------\n"); } /*查找货物*/ int search(SeqList *L,goods x) { int i=1; while(i<=L->len&&(strcmp(L->data[i].no,x.no)!=0)) { i++; } if(i>(L->len)) { return 0; } else { return i; } } /*插入货物信息*/ void insert(SeqList *L,goods x) { int i=1,j; while(i<=L->len&&(strcmp(L->data[i].no,x.no)<0)) { i++; } if(L->len==MAXSIZE-1) { printf("仓库已满!"); } else { for(j=L->len;j>=i;j--) { L->data[j+1]=L->data[j]; } L->data[i]=x; L->len++; } } /*货物入库*/ void storage(SeqList *L,goods x) { int k; k=search(L,x); if(k==0) { insert(L,x); } else { L->data[k].num=L->data[k].num+x.num; } } /*删除货物信息*/ void del(SeqList *L,goods x) { int i,j; i=search(L,x); for(j=i+1;j<=(L->len);j++) { L->data[j-1]=L->data[j]; } L->len--; } /*货物出库*/ void out(SeqList *L,goods x) { int i,j; i=search(L,x); if(i==0) { printf("\n仓库中无此货物!\n"); } else if(L->data[i].num>x.num) { L->data[i].num=L->data[i].num-x.num; } else if(L->data[i].num==x.num) { del(L,x); } else if(L->data[i].num<x.num) { printf("\n该货物数量不足,仅剩%d。是否购买\n",L->data[i].num); printf("(购买请按1,不购买请按0。)\n"); printf("你的选择:"); scanf("%d",&j); if(j==1) { del(L,x); printf("\n购买成功!欢迎下次光临!\n"); } else { printf("\n欢迎下次光临!\n"); } } } void menu() { printf("**********************************\n"); printf("* 货物管理系统 *\n"); printf("* 1-----------------录入货物信息 *\n"); printf("* 2-----------------浏览货物清单 *\n"); printf("* 3-----------------查找货物信息 *\n"); printf("* 4---------------------货物入库 *\n"); printf("* 5---------------------货物出库 *\n"); printf("* 0-------------------------退出 *\n"); printf("**********************************\n"); } int main() { goods x; int sel,k; SeqList *L; L=(SeqList *)malloc(sizeof(SeqList)); L->len=0; do { menu(); printf("请输入你的选择(例:1):\n"); scanf("%d",&sel); switch(sel) { case 1:printf("\n你选择了录入货物信息!\n\n"); input(L); break; case 2:printf("\n你选择了浏览货物清单!\n\n"); run_over(L); break; case 3:printf("\n你选择了查找货物信息!\n\n"); printf("\n请输入要查找的货物的代号:\n"); printf("代号为:"); scanf("%s",x.no); k=search(L,x); if(k==0) { printf("\n该货物不存在。\n"); } else { printf("\n货物名称 货物代号 货物数量\n"); printf("%5s%5s%4d\n",L->data[k].name,L->data[k].no,L->data[k].num); } break; case 4:printf("\n你选择了货物入库!\n\n"); printf("\n请输入要入库的货物的名称、代号、数量:\n"); printf("货物名称 货物代号 货物数量\n"); scanf("%s%s%d",x.name,x.no,&x.num); storage(L,x); break; case 5:printf("\n你选择了货物出库!\n\n"); printf("\n请输入要出库的货物的名称、代号、数量\n"); printf("货物名称 货物代号 货物数量\n"); scanf("%s%s%d",x.name,x.no,&x.num); out(L,x); break; } }while(sel!=0); return 0; }
相关文章推荐
- 货物管理系统(数据结构顺序表)
- 数据结构课程设计--立体停车场管理系统(改)
- 数据结构课设之 景点管理系统
- 数据结构课程设计之通讯录管理系统
- 数据结构课程设计(图书管理系统)
- 数据结构课程设计---学生信息管理系统
- 数据结构课程设计(运动会成绩管理系统)
- 数据结构课程设计---学生信息管理系统
- 数据结构课程设计—学生信息管理系统
- 数据结构课程设计学生成绩管理系统源代码
- 数据结构课程设计【家庭财务管理系统】
- 数据结构——链表操作(电话管理系统 )
- 学生成绩管理系统(数据结构之线性表实现)
- 数据结构课程设计-通讯录管理系统的设计与实现
- 数据结构课程设计:学成成绩管理系统
- 数据结构课程设计—图书信息管理系统
- 数据结构课程设计---学生成绩管理系统
- 数据结构课程设计-宿舍管理系统
- 数据结构课程设计-ytu职工信息管理系统
- 【数据结构课程大作业】通信录管理系统