C语言仓库标准管理系统.doc
《C语言仓库标准管理系统.doc》由会员分享,可在线阅读,更多相关《C语言仓库标准管理系统.doc(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(); } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 仓库 标准 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文