仓库管理系统设计培训_第1页
仓库管理系统设计培训_第2页
仓库管理系统设计培训_第3页
仓库管理系统设计培训_第4页
仓库管理系统设计培训_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

仓库管理系统设计培训(共46页)PAGEPAGE1————————————————————————————————作者:————————————————————————————————日期: *******************实践教学*******************兰州理工高校计算机与通信学院2011年秋季学期面对对象课程设计题目:仓库管理系统专业班级:计算机科学与技术四班姓名:武高生学号:10240402指导老师:朱红蕾成绩:_______________

目录TOC\o"1-3"\h\zTOC\o"1-3"\h\zHYPERLINK\l"_Toc266348344"摘要--------------------------------------------1HYPERLINK\l"_Toc266348345"序言-------------------------------------2HYPERLINK\l"_Toc266348348"1.接受类c++语言定义相关的数据类型---------------5HYPERLINK\l"_Toc139329922"2.各模块的伪码算法.-----------------------------------------5HYPERLINK\l"_Toc266348349"3.函数的调用关系图------------------------------------------12HYPERLINK\l"_Toc266348350"4.调试分析------------------------------------13HYPERLINK\l"_Toc266348351"5.测试结果--------------------13HYPERLINK\l"_Toc266348352"总结-----------------------------------------------------------17HYPERLINK\l"_Toc266348353"参考文献------------------------------------------------19HYPERLINK\l"_Toc266348354"致谢-------------------------------------20摘要本程序主要介绍了小型仓库货品管理的设计与基本功能的实现。通过对仓库基本功能的分析,该程序实现了对小型仓库管理的基本操作。设计要求主要是货品入库、出库、增加、删除、查找及显示库存量等最基本功能操作。在课程设计过程中,对问题的所接受的数据结构和算法分析,及程序设计语言接受VC++,程序运行的平台WindowsXP(visualC++6.0),逐步对基本要求进行分布实现,在设计中接受单链表和文件对录入的基本数据进行存储,最终对产品进行的基本操作如产品入库、出库及查找都基本以实现。关键字:c++,结构体,软件,插入;序言现代科学技术的飞速进展,转变了世界,也转变了人类的生活,作为新世纪的高校生,应当站在时代进展的前列,把握现代科学技术学问,调整自己的学问结构和力量结构,以适应社会进展的要求。把握计算机学问和应用,无疑是培育新型人才的一个重要环节。对于我们计算机专业的同学来说,想要把所学学问用于实践,课程设计是一个很好的环节,课程设计不仅提高了我们的设计力量和操作力量,加深理解了数据的规律结构、存储结构,把握线性表上基本运算的实现,进一步理解和娴熟把握课本中所学的各种数据结构,而且学会了如何把学到的学问用于解决实际问题。通过本次课程设计的制作,能让我们对数据结构以及程序设计有更深的体会,流程图的建立能提高我们系统分析问题的力量,从而机敏的驾驭整个程序的运行,对于具体问题,找出具体的解决方案或是多种解决方案,增加我们的创新力量。接受类c++语言定义相关的数据类型menu_init()+新建仓库newstore()+打开仓库openstore()+添加货物addproduct()+修改货物editproduct()+删除货物delproduct()+库存管理menu_store()-货物出库instore()ﻩ-货物进库outstore()+货物查询menu_check()ﻩ+按编号查询bynumber()ﻩ+按名称查询byname()+储存数据savedata()+全部货物listall()+退出系统exit()1.2数据设计商品结构体设计:structProduct{intnum;ﻩcharname[20];floatprice;ﻩintamount;ﻩcharfac[50];charbuss[50];struct*next;};2各模块的伪码算法:2.1菜单类:menu_init();说明:初始化界面menu_store();说明:库存管理界面menu_check();说明:货物查询界面menuexit();说明:退出界面2.2货物管理类:addproduct(structProduct*head);说明:structProduct*head为要添加节点的链表功能:添加货物流程图:editproduct(structProduct*head);说明:structProduct*head为要修改节点的链表功能:修改货物流程图:delproduct(structProduct*head);说明:structProduct*head为要修改节点的链表功能:删除货物流程图:instore(structProduct*head);说明:structProduct*head为要修改节点的链表功能:修改货物outstore(structProduct*head);说明:structProduct*head为要修改节点的链表功能:修改货物outinstore(structProduct*head,intouin);说明:structProduct*head为要修改节点的链表功能:出库进库综合操作类2.3货物查询类:bynumber(structProduct*head,intnum);说明:structProduct*head为要修改节点的链表,num为商品编号功能:按编号查询商品byname(structProduct*head,char*name);说明:structProduct*head为要修改节点的链表,name为商品名称功能:按名称查询商品listall(structProduct*head);说明:structProduct*head为要显示链表功能:显示全部商品2.4仓库管理类openstore();说明:打开仓库数据文件到链表功能:打开仓库文件NS流程图:structProduct*h=NULL;structProduct*h=NULL;filename01.21.41.61.71.81.91.102.12.43.13.23.54.14.24.35.15.25.35.46.26.3输入文件名filenamefilename01.21.41.61.71.81.91.102.12.43.13.23.54.14.24.35.15.25.35.46.26.3输入文件名filenamefp=fopen(filename,fp=fopen(filename,”rb”)TFTFwhile(!feof(fp))while(!feof(fp))fread(pd,Length,1,fp)fread(pd,Length,1,fp)FFreturnh;returnh;returnh;returnh;q=pd;q=pd;pd=pd->next;break;break;q->next;returnh;q->next;returnh;savedata();说明:写仓库链表数据到文件功能:储存货品数据2.5帮助类:cls();说明:换行功能:换行函数的调用关系图4,5、调试分析与结果:1程序运行时初始界面2新建仓库用键盘输入1,程序调用新建仓库功能函数,要求用户输入货物编号,货物名称,货物价格等。3打开仓库文件用键盘输入2,程序调用打开仓库文件功能函数,要求用户输入仓库数据文件名,数据文件存在,显示打开成功。4添加货物用键盘输入3,程序调用添加货物功能函数,要求用户输入货物编号,货物名称,货物价格等。5修改货物用键盘输入4,程序调用修改货物功能函数,要求用户输入货物编号,货物存在,显示货物具体信息,按任意键后,要求用户输入新货物名称,货物价格等。6删除货物用键盘输入5,程序调用删除货物功能函数,要求用户输入货物编号,货物存在,显示货物具体信息,按任意键后,删除货物。7库存管理:用键盘输入6,程序调用库存管理功能函数,显示库存管理子页面,选择2,货物出库,要求用户输入货物编号,货物存在,显示货物具体信息,要求用户输入进库数量。8货物查询用键盘输入7,程序调用货物查询功能函数,显示货物查询子页面,选择1,按编号查询,要求用户输入货物编号,货物存在,显示货物具体信息。货若物不存在,显示“没有该编号货物”。9储存数据用键盘输入8,程序调用储存数据功能函数,要求用户输入文件名,将数据储存在指定文件中。10全部货物用键盘输入9,程序调用全部货物功能函数,显示仓库内全部货物。11退出系统用键盘输入0,程序调用货退出系统功能函数,显示提示保存信息。6.总结课程设计是一个相当好的实践环节,通过这短短的三个星期的课程设计,我觉得从中获得到的东西,比上了整个学期的课程学的东西还多,实践是一个有效提高自己编程力量的方法。在这个课程设计项目中,我运用了链表和文件的读写等学问点,而这些都是老师还没有教的,在课程设计实习周中,我用了前半部分的时间认真了看了链表和文件读写的章节,了解其功能设计,通过不断的调试总结出链表的规律与使用方法。将链表和指针的应用提高到另一个层次。在这一次课程设计中,我学会了怎么去写好一个规范的设计文档,生疏流程图的制作过程。在调试的过程中,消灭了一些不行以预料的程序错误,这又让我学会了如何去设置断点,进行单步调试,分析清楚错误消灭的缘由,及其找到解决错误的方法。同时,本次课程设计我分别用了不用的C编译器去编译代码,发觉不同编译器编译效果的不同,以及库文件等的不同。学会在不同的编译环境中使用不同的函数。5.参考文献1]初小璐.完全把握SQLServer2000[M]机械工业出版社,2004[2]JeraodV.Post.数据库管理系统(英文版.第三版)[美]清华高校出版社,2006.1[3]张海藩.软件工程导论[M].北京:清华高校出版社,1998.1[4]谢希仁.计算机网络(其次版)[M].北京:电子工业出版社,2003.6[5]戴志诚,赵国峰.JSP信息化系统建设案例[M].北京:人民邮电出版社,2006.12[6]成晓静,毕靖.网页设计三剑客完全学习手册[M].北京:中国电力出版社,2004.11[7]赵强.精通JSP编程[M].北京:电子工业出版社,2006.3[8]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2002.2[9]张海藩,李劲,谢兆阳.SQLServer2000数据库设计与系统管理[M].北京:清华高校出版社,2000.9[10]刘禾,蔡锋.Web数据库假设技巧[M].北京:科技技术出版社,1999.4[11]徐建波.Internet与Web设计教程[M].北京:中国矿业高校出版社,2000.12[12]于书举,许向众.数据库设计与开发教程[M].北京:电子工业出版社,2003.11[13]安海忠,李文斌,林旭新.商业网站建设与管理[M].北京:人民交通出版社,2006.8[14]T.UmedaanddatabaseforEPRcentersinsemiconductors[J].BPhysicaB:CondensedMatter,3(7),249-252,2006.3[15]Yih-LingHedley,MuhammadYounas.Sampling,informationextractionandsummarisationofHiddenWebdatabases[J].Data&KnowledgeEngineering,InPress,UncorrectedProof,Availableonline10March2006.2致谢我在此向全部关怀我的及挂念我的朱老师和同学们致以最真诚的感谢。在本次课程设计中,我从指导老师及同学身上学到了很多东西。她认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。无论在理论上还是在实践中,都给与我很大的挂念,使我得到很大的提高,这对于我以后的工作和学习都有一种巨大的挂念,在此感谢指导老师急躁,认真的的辅导。附录:源代码#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#defineLengthsizeof(structProduct)structProduct//定义货品结构体{intnum;//编号charname[20];//名称floatprice;//价格intamount;//库存数量ﻩcharfac[50];//生产厂家ﻩcharbuss[50];//供应商家structProduct*next;};voidcls(void){inti;for(i=0;i<1;i++)printf("\n");}//打开仓库,从把文件数据读入链表返回链表structProduct*openstore(){charfilename[255];structProduct*h,*pd,*q;FILE*fp;h=NULL;printf("请输入要打开的仓库数据文件(如:D://store.txt):\n");scanf("%s",&filename);if(filename[0]=='0')returnh;if((fp=fopen(filename,"rb"))==NULL){printf("打开文件出错\n");//getch();returnh;}printf("正在打开文件\n");pd=(structProduct*)malloc(Length);if(pd==NULL){printf("内存溢出\n");//getch();return(h);}h=pd;while(!feof(fp)){if(fscanf(fp,"%d\t%s\t%f\t%d\t%s\t%s\n",&pd->num,&pd->name,&pd->price,&pd->amount,&pd->fac,&pd->buss)==NULL)ﻩﻩﻩbreak;pd->next=(structProduct*)malloc(Length);if(pd->next==NULL){printf("内存溢出\n");//getch();return(h);}q=pd;pd=pd->next;}q->next=NULL;fclose(fp);printf("成功打开仓库数据文件\n");//getch();return(h);}intsavedata(structProduct*head){charfilename[255];structProduct*pd;FILE*fp;pd=head;printf("请输入要保存的仓库数据文件名(如:D://store.txt,0取消):\n");scanf("%s",&filename);if(filename[0]=='0')ﻩﻩreturn1;if((fp=fopen(filename,"wb"))==NULL){printf("储存文件出错\n");//getch();return1;}printf("正在储存数据...\n");while(pd!=NULL){fprintf(fp,"%d\t%s\t%f\t%d\t%s\t%s\n",pd->num,pd->name,pd->price,pd->amount,pd->fac,pd->buss);pd=pd->next;}fclose(fp);printf("仓库数据保存成功\n");//getch();return0;}//创建链表,新建一个仓库,并输入数据//返回链表structProduct*newstore(){structProduct*h=NULL,*pd;for(;;){pd=(structProduct*)malloc(Length);if(!pd){printf("内存溢出!\n");//getch();returnNULL;}printf("请输入货品编号(0退出):\n");scanf("%d",&pd->num);if(pd->num==0) ﻩﻩbreak;printf("请输入货品名称:\n");scanf("%s",&pd->name);printf("请输入货品价格:\n");scanf("%f",&pd->price);printf("请输入货品库存量:\n");scanf("%d",&pd->amount);ﻩﻩprintf("请输入货品的生产厂家:\n");ﻩﻩscanf("%s",&pd->fac);ﻩﻩprintf("请输入货品的供应商家:\n");ﻩﻩscanf("%s",&pd->buss);printf("\n");pd->next=h;h=pd;}return(h);}//添加货品,向链表末尾添加货品//参数:*head链表指针//返回添加货品的链表structProduct*addproduct(structProduct*head){structProduct*h,*pd;if(!head){printf("请先创建或打开仓库\n");ﻩﻩreturnhead;}else{h=head;}for(;;){pd=(structProduct*)malloc(Length);if(!pd){printf("内存溢出!\n");//getch();break;}printf("请输入货品编号(0退出):\n");scanf("%d",&pd->num);if(pd->num==0)ﻩﻩ break;printf("请输入货品名称:\n");scanf("%s",&pd->name);printf("请输入货品价格:\n");scanf("%f",&pd->price);printf("请输入货品库存量:\n");scanf("%d",&pd->amount);ﻩﻩﻩprintf("请输入货品的生产厂家:\n");ﻩﻩscanf("%s",&pd->fac); ﻩprintf("请输入货品的供应商家:\n"); ﻩscanf("%s",&pd->buss);printf("\n");while(h->next!=NULL){h=h->next;}h->next=pd;pd->next=NULL;}return(h);}//按编号查找货品//参数:*head链表指针,*num货品编号//返回:链表结点structProduct*bynumber(structProduct*head,intnum){floattotal;intn=num;structProduct*pd;pd=head;while(pd!=NULL&&pd->num!=n){pd=pd->next;}if(pd==NULL){printf("没有该编号货品。\n");//getch();}else{printf("********************按编号查询货品**************************************\n");printf("|编号|名称|价格|库存|生产厂家|供应商家|价值量|\n");printf("|---|-------|----|-----|---|----|-------|\n");printf("|%6d|%-13s|%-9.3f|%-8d|%-10s|%-10s|",pd->num,pd->name,pd->price,pd->amount,pd->fac,pd->buss);total=pd->price*pd->amount;printf("%-10.3f|\n",total);printf("************************************************************************\n");//getch();}return(pd);}//按名称查找货品//参数:*head链表指针,*name货品名称//返回:链表结点structProduct*byname(structProduct*head,charname[20]){floattotal;structProduct*pd;pd=head;while(pd!=NULL&&strcmp(pd->name,name)!=0)//查找货品{pd=pd->next;}if(pd==NULL){printf("没有该名称货品。\n");//getch();}else{printf("*********************按名称查询货品**************************************\n");printf("|编号|名称|价格|库存|生产厂家|供应商家|价值量|\n");printf("|------|---------|--|---|-----|------|---------|\n");printf("|%6d|%-13s|%-9.3f|%-8d|%-10s|%-10s|",pd->num,pd->name,pd->price,pd->amount,pd->fac,pd->buss);total=pd->price*pd->amount;printf("%-10.3f|\n",total);printf("************************************************************************\n");//getch();}return(pd);}void*checkbynumber(structProduct*head){structProduct*h=head;intnum;printf("请输入查询编号(0退出):\n");scanf("%d",&num);returnbynumber(h,num);}void*checkbyname(structProduct*head){structProduct*h=head;charname[20];printf("请输入货品名称(0退出):\n");scanf("%s",&name);returnbyname(h,name);}//修改货品//参数:*head链表指针//返回:链表结点structProduct*editproduct(structProduct*head){intnum;structProduct*h,*pd;h=head;for(;;){pd=(structProduct*)malloc(Length);if(!pd){printf("内存溢出!\n");//getch();break;}printf("请输入要修改的货品编号:(0退出)\n");scanf("%d",&num);if(num==0)ﻩﻩ break;pd=bynumber(h,num);if(pd==NULL)ﻩﻩ break;printf("请输入货品新名称:\n");scanf("%s",&pd->name);printf("请输入货品新价格:\n");scanf("%f",&pd->price);printf("\n");}return(h);}structProduct*delproduct(structProduct*head){intnum;//charconfirm;structProduct*h,*q,*pd;pd=q=h=head;for(;;){printf("请输入要删除的货品编号:(0退出)\n");scanf("%d",&num);if(num==0)ﻩﻩﻩbreak;while(pd!=NULL&&pd->num!=num){q=pd;pd=pd->next;}if(pd==NULL){printf("没有该编号货品!!\n");}else{bynumber(h,num);//getch();if(pd==h)//假如p==h,说明被删结点是头结点ﻩh=pd->next;//修改头指针指向下一条记录elseﻩq->next=pd->next;printf("删除成功\n");}}return(h);}//货品进库出库//参数:*head链表指针,*outin为进库出库类型,0表示出库//返回:链表结点structProduct*outinstore(structProduct*head,intoutin){intnum,outnum;structProduct*h,*pd;h=head;for(;;){pd=(structProduct*)malloc(Length);if(!pd){printf("内存溢出!\n");//getch();break;}printf("请输入要修改的货品编号:(0退出)\n");scanf("%d",&num);if(num==0)ﻩﻩﻩbreak;pd=bynumber(h,num);if(!pd)ﻩﻩﻩbreak;if(outin==0){printf("请输入货品出库数量:\n");scanf("%d",&outnum);pd->amount=pd->amount-outnum;}else{printf("请输入货品进库数量:\n");scanf("%d",&outnum);pd->amount=pd->amount+outnum;}printf("\n");}return(h);}//货品出库structProduct*outstore(structProduct*head){structProduct*h=head;returnoutinstore(h,0);}//货品进库structProduct*instore(structProduct*head){structProduct*h=head;returnoutinstore(h,1);}voidlistall(structProduct*head){floattotal=0,all=0;structProduct*pd;pd=head;if(pd==NULL){cls();printf("错误:当前未打开任何仓库\n");//getch();return;}cls();printf("**************************仓库内全部货品*******************************\n");printf("|编号|名称|价格|库存|生产厂家|供应商家|价值量|\n");printf("|------|-------------|---|--------|-------|--|-------|\n");do{printf("|%6d|%-13s|%-9.3f|%-8d|%-10s|%-10s|",pd->num,pd->name,pd->price,pd->amount,pd->fac,pd->buss);total=pd->price*pd->amount;all+=total;printf("%-10.3f|\n",total);pd=pd->next;}while(pd!=NULL);printf("**************************************************************\n");printf("仓库货品总价值量为:%12.3f元\n",all);printf("**************************************************************\n");//getch();}voidmenu_store(structProduct*head){intselect;for(;;){printf("\t*******************************************************\n");printf("\t\tC++面对对象技术课程设计-仓库货品管理\n");printf("\t*******************************************************\n");printf("\t\t\t\t1.货品出库\n");printf("\t\t\t\t2.货品进库\n");printf("\t\t\t\t0.返回\n");printf("\t*******************************************************\n");printf("请选择操作:");scanf("%d",&select);switch(select){case0:return;case1:head=outstore(head);ﻩﻩ break;case2:head=instore(head);}}}voidmenu_check(structProduct*head){intselect;for(;;){printf("\t*******************************************************\n");printf("\t\tC++面对对象技术课程设计-仓库货品管理\n");printf("\t*******************************************************\n");printf("\t\t\t\t1.按编号查询\n");printf("\t\t\t\t2.按名称查询\n");printf("\t\t\t\t0.返回\n");printf("\t*******************************************************\n");printf("请选择操作:");scanf("%d",&select);switch(select){case0:return;case1:checkbynumber(head);ﻩﻩ break;case2:checkbyname(head);}}}void*menu_exit(structProduct*head){intselect;printf("\t*******************************************************\n");printf("\t\tC++面对对象技术课程设计-仓库货品管理\n");printf("\t*******************************************************\n");printf("退出时是否保存数据?0:保存;1:不保存");scanf("%d",&select);switch(select){case0:ﻩﻩﻩsavedata(head);ﻩﻩﻩexit(0);ﻩﻩ break;case1:ﻩﻩﻩexit(0);}ﻩreturn0;}structProduct*menu_init(structProduct*head){intselect;printf("\t*************************************************************\n");printf("\t\tC++面对对象技术课程设计-仓库货品管理\n");printf("\t*************************************************************\n");printf("\t\t\t\t1.新建仓库\n");printf("\t\t\t\t2.打开仓库\n");printf("\t\t\t\t3.添加货品\n");printf("\t\t\t\t4.修改货品\n");printf("\t\t\t\t5.删除货品\n");printf("\t\t\t\t6.库存管理\n");printf("\t\t\t\t7.货品查询\n");printf("\t\t\t\t8.储存数据\n");printf("\t\t\t\t9.全部货品\n");printf("\t\t\t\t0.退出系统\n");printf("\t*************************************************************\n");ﻩprintf("留意:在选择操作之前,若没建立仓库,请先进行1和8操作!!!\n");printf("请选择操作:");scanf("%d",&select);switch(select){case0:menu_exit(head);ﻩﻩﻩbreak;case1:head=newstore();ﻩﻩﻩbreak;case2:head=openstore();ﻩﻩﻩbreak;case3:addproduct(head);ﻩﻩﻩbreak;case4:editproduct(head);ﻩﻩﻩbreak;case5:head=delproduct(head);ﻩﻩﻩbreak;case6:menu_store(head);ﻩﻩﻩbreak;case7:menu_check(head);ﻩ ﻩbreak;case8:savedata(head);ﻩﻩﻩbreak;case9:listall(head);}returnhead;}//程序主函数intmain(){structProduct*head;head=NULL;for(;;){head=menu_init(head);}return0;}ﻩ#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>#defineLengthsizeof(structProduct)structProduct//定义货品结构体{intnum;//编号charname[20];//名称floatprice;//价格intamount;//库存数量ﻩcharfac[50];//生产厂家ﻩcharbuss[50];//供应商家structProduct*next;};voidcls(void){inti;for(i=0;i<1;i++)printf("\n");}//打开仓库,从把文件数据读入链表返回链表structProduct*openstore(){charfilename[255];structProduct*h,*pd,*q;FILE*fp;h=NULL;printf("请输入要打开的仓库数据文件(如:D://store.txt):\n");scanf("%s",&filename);if(filename[0]=='0')returnh;if((fp=fopen(filename,"rb"))==NULL){printf("打开文件出错\n");//getch();returnh;}printf("正在打开文件\n");pd=(structProduct*)malloc(Length);if(pd==NULL){printf("内存溢出\n");//getch();return(h);}h=pd;while(!feof(fp)){if(fscanf(fp,"%d\t%s\t%f\t%d\t%s\t%s\n",&pd->num,&pd->name,&pd->price,&pd->amount,&pd->fac,&pd->buss)==NULL)ﻩﻩﻩbreak;pd->next=(structProduct*)malloc(Length);if(pd->next==NULL){printf("内存溢出\n");//getch();return(h);}q=pd;pd=pd->next;}q->next=NULL;fclose(fp);printf("成功打开仓库数据文件\n");//getch();return(h);}intsavedata(structProduct*head){charfilename[255];structProduct*pd;FILE*fp;pd=head;printf("请输入要保存的仓库数据文件名(如:D://store.txt,0取消):\n");scanf("%s",&filename);if(filename[0]=='0')ﻩﻩreturn1;if((fp=fopen(filename,"wb"))==NULL){printf("储存文件出错\n");//getch();return1;}printf("正在储存数据...\n");while(pd!=NULL){fprintf(fp,"%d\t%s\t%f\t%d\t%s\t%s\n",pd->num,pd->name,pd->price,pd->amount,pd->fac,pd->buss);pd=pd->next;}fclose(fp);printf("仓库数据保存成功\n");//getch();return0;}//创建链表,新建一个仓库,并输入数据//返回链表structProduct*newstore(){structProduct*h=NULL,*pd;for(;;){pd=(structProduct*)malloc(Length);if(!pd){printf("内存溢出!\n");//getch();returnNULL;}printf("请输入货品编号(0退出):\n");scanf("%d",&pd->num);if(pd->num==0)ﻩﻩﻩbreak;printf("请输入货品名称:\n");scanf("%s",&pd->name);printf("请输入货品价格:\n");scanf("%f",&pd->price);printf("请输入货品库存量:\n");scanf("%d",&pd->amount);ﻩﻩprintf("请输入货品的生产厂家:\n");ﻩﻩscanf("%s",&pd->fac);ﻩﻩprintf("请输入货品的供应商家:\n"); ﻩscanf("%s",&pd->buss);printf("\n");pd->next=h;h=pd;}return(h);}//添加货品,向链表末尾添加货品//参数:*head链表指针//返回添加货品的链表structProduct*addproduct(structProduct*head){structProduct*h,*pd;if(!head){printf("请先创建或打开仓库\n");ﻩﻩreturnhead;}else{h=head;}for(;;){pd=(structProduct*)malloc(Length);if(!pd){printf("内存溢出!\n");//getch();break;}printf("请输入货品编号(0退出):\n");scanf("%d",&pd->num);if(pd->num==0)ﻩﻩﻩbreak;printf("请输入货品名称:\n");scanf("%s",&pd->name);printf("请输入货品价格:\n");scanf("%f",&pd->price);printf("请输入货品库存量:\n");scanf("%d",&pd->amount);ﻩﻩﻩprintf("请输入货品的生产厂家:\n");ﻩﻩscanf("%s",&pd->fac); ﻩprintf("请输入货品的供应商家:\n"); ﻩscanf("%s",&pd->buss);printf("\n");while(h->next!=NULL){h=h->next;}h->next=pd;pd->next=NULL;}return(h);}//按编号查找货品//参数:*head链表指针,*num货品编号//返回:链表结点structProduct*bynumber(structProduct*head,intnum){floattotal;intn=num;structProduct*pd;pd=head;while(pd!=NULL&&pd->num!=n){pd=pd->next;}if(pd==NULL){printf("没有该编号货品。\n");//getch();}else{printf("********************按编号查询货品**************************************\n");printf("|编号|名称|价格|库存|生产厂家|供应商家|价值量|\n");printf("|--|----------|---------|--------|-|----------|----------|\n");printf("|%6d|%-13s|%-9.3f|%-8d|%-10s|%-10s|",pd->num,pd->name,pd->price,pd->amount,pd->fac,pd->buss);total=pd->price*pd->amount;printf("%-10.3f|\n",total);printf("************************************************************************\n");//getch();}return(pd);}//按名称查找货品//参数:*head链表指针,*name货品名称//返回:链表结点structProduct*byname(structProduct*head,c[20]){floattotal;structProduct*pd;pd=head;while(pd!=NULL&&strcmp(pd->name,name)!=0)//查找货品{pd=pd->next;}if(pd==NULL){printf("没有该名称货品。\n");//getch();}else{printf("*********************按名称查询货品**************************************\n");printf("|编号|名称|价格|库存|生产厂家|供应商家|价值量|\n");printf("|-|----------|---|-|-|------|---------|\n");printf("|%6d|%-13s|%-9.3f|%-8d|%-10s|%-10s|",pd->num,pd->name,pd->price,pd->amount,pd->fac,pd->buss);total=pd->price*pd->amount;printf("%-10.3f|\n",total);printf("************************************************************************\n");//getch();}return(pd);}void*checkbynumber(structProduct*head){structProduct*h=head;intnum;printf("请输入查询编号(0退出):\n");scanf("%d",&num);returnbynumber(h,num);}void*checkbyname(structProduct*head){structProduct*h=head;charname[20];printf("请输入货品名称(0退出):\n");scanf("%s",&name);returnbyname(h,name);}//修改货品//参数:*head链表指针//返回:链表结点structProduct*editproduct(structProduct*head){intnum;structProduct*h,*pd;h=head;for(;;){pd=(structProduct*)malloc(Length);if(!pd){printf("内存溢出!\n");//getch();break;}printf("请输入要修改的货品编号:(0退出)\n");scanf("%d",&num);if(num==0)ﻩﻩﻩbreak;pd=bynumber(h,num);if(pd==NULL)ﻩﻩﻩbreak;printf("请输入货品新名称:\n");scanf("%s",&pd->name);printf("请输入货品新价格:\n");scanf("%f",&pd->price);printf("\n");}return(h);}structProduct*delproduct(structProduct*head){intnum;//charconfirm;structProduct*h,*q,*pd;pd=q=h=head;for(;;){printf("请输入要删除的货品编号:(0退出)\n");scanf("%d",&num);if(num==0)ﻩﻩﻩbreak;while(pd!=NULL&&pd->num!=num){q=pd;pd=pd->next;}if(pd==NULL){printf("没有该编号货品!!\n");}else{bynumber(h,num);//getch();if(pd==h)//假如p==h,说明被删结点是头结点ﻩh=pd->next;//修改头指针指向下一条记录elseﻩq->next=pd->next;printf("删除成功\n");}}return(h);}//货品进库出库//参数:*head链表指针,*outin为进库出库类型,0表示出库//返回:链表结点structProduct*outinstore(structProduct*head,intoutin){intnum,outnum;structProduct*h,*pd;h=head;for(;;){pd=(structProduct*)malloc(Length);if(!pd){printf("内存溢出!\n");//getch();break;}printf("请输入要修改的货品编号:(0退出)\n");scanf("%d",&num);if(num==0) ﻩﻩbreak;pd=bynumber(h,num);if(!pd)ﻩﻩﻩbreak;if(outin==0){printf("请输入货品出库数量:\n");scanf("%d",&outnum);pd->amount=pd->amount-outnum;}else{printf("请输入货品进库数量:\n");scanf("%d",&outnum);pd->amount=pd->amount+outnum;}printf("\n");}return(h);}//货品出库structProduct*outstore(structProduct*head){structProduct*h=head;returnoutinstore(h,0);}//货品进库structProduct*instore(structProduct*head){structProduct*h=head;returnoutinstore(h,1);}voidlistall(structProduct*head){floattotal=0,all=0;structProduct*pd;pd=head;if(pd==NULL){cls();printf("错误:当前未打开任何仓库\n");//getch();return;}cls();printf("**************************仓库内全部货品*******************************\n");printf("|编号|名称|价格|库存|生产厂家|供应商家|价值量|\n");printf("|------|-------------|-----|----|------|----|-|\n");do{printf("|%6d|%-13s|%-9.3f|%-8d|%-10s|%-10s|",pd->num,pd->name,pd->price,pd->amount,pd->fac,pd->buss);total=pd->price*pd->amount;all+=total;printf("%-10.3f|\n",total);pd=pd->next;}while(pd!=NULL);printf("**************************************************************\n");printf("仓库货品总价值量为:%12.3f元\n",all);printf("**************************************************************\n");//getch();}void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论