收藏 分销(赏)

C语言仓库标准管理系统.doc

上传人:a199****6536 文档编号:2882036 上传时间:2024-06-08 格式:DOC 页数:21 大小:31.54KB 下载积分:10 金币
下载 相关 举报
C语言仓库标准管理系统.doc_第1页
第1页 / 共21页
C语言仓库标准管理系统.doc_第2页
第2页 / 共21页


点击查看更多>>
资源描述
题目是: 设计一个简单仓储管理系统,要求含有基础操作功效:插入(添加)、删除、查找、修改和统计。 业务介绍  1.采购人员将采购物资清单交和财务人员,其中包含部分必需数据.财务人员据此作帐,将数据记入,并开一张票据,交和采购人员实现物资入库. 2.当有物资卖出时,即物资出库,财务人员会查阅现在这类货物库存情况,如这类货物还有存量,且有不一样出价时,财务人员会依据情况,调出对应价货物. 因为市场行情时常波动,管理人员可能会据此对物资做出对应调价. 3.当货物出现问题,需要退给供货商,并把退还货物名,数量,金额,统计下来. 4.到一定时期时候,比如月底,年底,需要将多种物资出入库,库存金额整理出来,方便为管理人员提供详尽,可靠数据,为下一步制订目标方案提供依据.  2、1数据结构 用4个结构数组(或链表)来存放下述4类信息,每类信息每条统计用结构类型自定义: 1.商品信息:商品编号、商品名、型号/规格、数量、进货价、销售价 2.入库信息:入库编号、商品编号、入库商品名、入库数量、入库价格、总价 3.出库信息:出库编号、商品编号、出库商品名、出库数量、出库价格、总价 4.退货信息:退货编号、商品编号、退还货物名、退货数量、退货价格、总价  2、2 设计要求 5. 对以上每类信息建立数据结构 6. 对以上每类信息进行插入操作 7. 对以上每类信息进行删除操作 8. 对以上每类信息进行修改操作 9. 对以上每类信息进行查找操作(查找关键字用下划线标出) 10. 数据统计; i. 统计入库商品总数及总价: ii. 统计出库商品总数及总价: iii. 统计仓库中现有商品总数及总价格: #include <stdio.h> #include <string.h> struct product { char p_num[12]; char name[12]; char spec[12]; int amount; int price; int s_price; struct product *next; }; struct product *head; struct in_product { char num[12]; char p_num[12]; char name[12]; int amount; int price; int t_price; struct in_product *next; }; struct in_product *ihead; struct out_product { char num[12]; char p_num[12]; char name[12]; int amount; int price; int t_price; struct out_product *next; }; struct out_product *ohead; struct quit_product { char num[12]; char p_num[12]; char name[12]; int amount; int price; int t_price; struct quit_product *next; }; struct quit_product *qhead; int init() { head=ihead=ohead=qhead=NULL; printf("0: Quit\n"); printf("1: Enter the information of in product\n"); printf("2: Enter the information of out product\n"); printf("3: Enter the information of quit product\n"); printf("4: Total the information of product\n"); } int menu() { printf("1:insert data\n"); printf("2:delete data\n"); printf("3:modify data\n"); printf("4:select data\n"); printf("Other to quit\n"); } int menu2() { printf("0: Quit\n"); printf("1: Enter the information of in product\n"); printf("2: Enter the information of out product\n"); printf("3: Enter the information of quit product\n"); printf("4: Total the information of product\n"); } int insert_product() { struct product * p1,* p; p1=(struct product *)malloc(sizeof(struct product)); p=head; if (p==NULL)/*开始没有数据*/  { printf("Enter the data of product\n"); printf("Include the spbh,name,style,num,price,sale_price of product\n"); scanf("%s%s%s%d%d%d", &p1->p_num,&p1->name,&p1->spec,&p1->amount,&p1->price,&p1->s_price); head=p1; head->next=NULL; return 0; } while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/ p=p->next; p->next=p1; printf("Enter the data\n"); scanf("%s%s%s%d%d%d", &p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price); p1->next=NULL; } int in_insert() { struct in_product * p1,* p;  p1=(struct in_product *)malloc(sizeof(struct in_product));  p=ihead; if (p==NULL)/*开始没有数据*/  { printf("Enter the data of in product\n"); printf("Include the rkbh,spbh,name,number,price,total_price\n"); scanf("%s%s%s%d%d%d", &p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price); ihead=p1; ihead->next=NULL; return 0; } while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/ p=p->next; p->next=p1; printf("Enter the data\n"); scanf("%s%s%s%d%d%d", &p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price); p1->next=NULL; } int in_modify() { char m_num[12]; struct in_product * p;  p=ihead; printf("Enter the modify num\n"); scanf("%s",&m_num); if (p==NULL)/*开始没有数据*/ { printf("Sorry! No data can be found\n"); return 0; } while(p!=NULL) { if (strcmp(p->num,m_num)==0) { printf("Enter the new data without num\n"); scanf("%s%s%d%d%d", &p->p_num,&p->name,&p->amount,&p->price,&p->t_price); printf("One data had modified\n"); return 0; } p=p->next; } printf("Sorry! No num has found\n"); } int in_select() { char s_num[12]; struct in_product * p;  p=ihead; printf("Enter the select num\n"); scanf("%s",&s_num); while(p!=NULL) { if (strcmp(p->num,s_num)==0) { printf("The data you want is:\n"); printf(" %s %s %s %d %d %d\n", p->num,p->p_num,p->name,p->amount,p->price,p->t_price); return 0; } p=p->next; } printf("Sorry! No num has found\n"); } int in_delete() { char d_num[12]; struct in_product * p1,* p;  p=ihead; printf("Enter the delete num\n"); scanf("%s",&d_num); if (p==NULL)/*开始没有数据*/  { printf("No data can be found\n"); return 0; } if (strcmp(p->num,d_num)==0 && p->next==NULL)/*链表只有一个数据,且是要删除*/ { ihead=NULL; printf("One data has been deleted\n"); return 0; } if (strcmp(p->num,d_num)==0 && p->next!=NULL)/*要删除数据在链表头上*/ { ihead=ihead->next; printf("One data has been deleted\n"); return 0; } while(p->next!=NULL) { p1=p->next; if (strcmp(p1->num,d_num)==0) { p->next=p1->next;  printf("One data has been deleted\n"); return 0; } p=p->next; } printf("Sorry! No num has found\n"); } int out_insert() { struct out_product * p1,* p;  p1=(struct out_product *)malloc(sizeof(struct out_product));  p=ohead; if (p==NULL)/*开始没有数据*/  { printf("Enter the data of out product\n"); printf("Include the ckbh,spbh,name,number,price,total_price\n"); scanf("%s%s%s%d%d%d", &p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price); ohead=p1; ohead->next=NULL; return 0; } while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/ p=p->next; p->next=p1; printf("Enter the data\n"); scanf("%s%s%s%d%d%d", &p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price); p1->next=NULL; } int out_modify() { char m_num[12]; struct out_product * p;  p=ohead; printf("Enter the modify num\n"); scanf("%s",&m_num); if (p==NULL)/*开始没有数据*/ { printf("Sorry! No data can be found\n"); return 0; } while(p!=NULL) { if (strcmp(p->num,m_num)==0)  { printf("Enter the new data without num\n"); scanf("%s%s%d%d%d", &p->p_num,&p->name,&p->amount,&p->price,&p->t_price); printf("One data had modified\n"); return 0; } p=p->next; } printf("Sorry! No num has found\n"); } int out_select() { char s_num[12]; struct out_product * p;  p=ohead; printf("Enter the select num\n"); scanf("%s",&s_num); while(p!=NULL) { if (strcmp(s_num,p->num)==0) { printf("The data you want is:\n"); printf(" %s %s %s %d %d %d\n", p->num,p->p_num,p->name,p->amount,p->price,p->t_price); return 0; } p=p->next; } printf("Sorry! No num has found\n"); } int out_delete() { char d_num[12]; struct out_product * p1,* p;  p=ohead; printf("Enter the delete num\n"); scanf("%s",&d_num); if (p==NULL)/*开始没有数据*/  { printf("No data can be found\n"); return 0; } if (strcmp(p->num,d_num)==0 && p->next==NULL)/*链表只有一个数据,且是要删除*/ { ohead=NULL; printf("One data has been deleted\n"); return 0; } if (strcmp(p->num,d_num)==0 && p->next!=NULL)/*要删除数据在链表头上*/ { ohead=ohead->next; printf("One data has been deleted\n"); return 0; } while(p->next!=NULL) { p1=p->next; if (strcmp(p1->num,d_num)==0) { p->next=p1->next;  printf("One data has been deleted\n"); return 0; } p=p->next; } printf("Sorry! No num has found\n"); } int quit_insert() { struct quit_product * p1,* p;  p1=(struct quit_product *)malloc(sizeof(struct quit_product));  p=qhead; if (p==NULL)/*开始没有数据*/  { printf("Enter the data of quit product\n"); printf("Include the thbh,spbh,name,number,price,total_price\n"); scanf("%s%s%s%d%d%d", &p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price); qhead=p1; qhead->next=NULL; return 0; } while(p->next!=NULL)/*把指针移到链表末端,在链表末端插入数据*/ p=p->next; p->next=p1; printf("Enter the data\n"); scanf("%s%s%s%d%d%d", &p1->num,&p1->p_num,&p1->name,&p1->amount,&p1->price,&p1->t_price); p1->next=NULL; } int quit_modify() { char m_num[12]; struct quit_product * p;  p=qhead; printf("Enter the modify num\n"); scanf("%s",&m_num); if (p==NULL)/*开始没有数据*/ { printf("Sorry! No data can be found\n"); return 0; } while(p!=NULL) { if (strcmp(p->num,m_num)==0)  { printf("Enter the new data without num\n"); scanf("%s%s%d%d%d", &p->p_num,&p->name,&p->amount,&p->price,&p->t_price); printf("One data had modified\n"); return 0; } p=p->next; } printf("Sorry! No num has found\n"); } int quit_select() { char s_num[12]; struct quit_product * p;  p=qhead; printf("Enter the select num\n"); scanf("%s",&s_num); while(p!=NULL) { if (strcmp(s_num,p->num)==0) { printf("The data you want is:\n"); printf(" %s %s %s %d %d %d\n", p->num,p->p_num,p->name,p->amount,p->price,p->t_price); return 0; } p=p->next; } printf("Sorry! No num has found\n"); } int quit_delete() { char d_num[12]; struct quit_product * p1,* p;  p=qhead; printf("Enter the delete num\n"); scanf("%s",&d_num); if (p==NULL)/*开始没有数据*/  { printf("No data can be found\n"); return 0; } if (strcmp(p->num,d_num)==0 && p->next==NULL)/*链表只有一个数据,且是要删除*/ { qhead=NULL; printf("One data has been deleted\n"); return 0; } if (strcmp(p->num,d_num)==0 && p->next!=NULL)/*要删除数据在链表头上*/ { qhead=qhead->next; printf("One data has been deleted\n"); return 0; } while(p->next!=NULL) { p1=p->next; if (strcmp(p1->num,d_num)==0) { p->next=p1->next;  printf("One data has been deleted\n"); return 0; } p=p->next; } printf("Sorry! No num has found\n"); } int total() { int in_num=0,in_price=0; int out_num=0,out_price=0; int num=0,price=0; struct in_product *ip; struct out_product *op; struct product *p; ip=ihead; while(ip!=NULL) { in_num+=ip->amount; in_price+=ip->t_price; ip=ip->next; } op=ohead; while(op!=NULL) { out_num+=op->amount; out_price+=op->t_price; op=op->next; } p=head; while(p!=NULL) { num+=p->amount; price+=p->s_price; p=p->next; } printf("The in product's total number and total price is:\n"); printf("%d %d\n",in_num,in_price); printf("The out product's total number and total price is:\n"); printf("%d %d\n",out_num,out_price); printf("The product's total number and total price is:\n"); printf("%d %d\n",num,price); } int in_case() { int choice; printf("The information of in product:\n"); while(1) { printf("Enter the choice\n"); scanf("%d",&choice); switch(choice) { case 1: in_insert();insert_product();break; case 2: in_delete();break; case 3: in_modify();break; case 4: in_select();break; default: return 0; } menu(); } } int out_case() { int choice; printf("The information of out product:\n"); while(1) { printf("Enter the choice\n"); scanf("%d",&choice); switch(choice) { case 1: out_insert();break; case 2: out_delete();break; case 3: out_modify();break; case 4: out_select();break; default:return 0; } menu(); } } int quit_case() { int choice; printf("The information of quit product:\n"); while(1) { printf("Enter the choice\n"); scanf("%d",&choice); switch(choice) { case 1: quit_insert();break; case 2: quit_delete();break; case 3: quit_modify();break; case 4: quit_select();break; default: return 0; } menu(); } } int main() { int choice; init(); while(1) { scanf("%d",&choice); switch(choice) { case 0: return 0; case 1: menu();in_case(); break; case 2: menu();out_case();break; case 3: menu();quit_case();break; case 4:total();break; } menu2(); } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服