




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#includeusing namespace std;typedef structchar no10;char name30;int count;DataType;struct NodeDataType data;Node *next;class Linkpublic:Link(); /构造函数,建立单链表int Insert(); /插入节点,即添加货物Node * Search(); /查找某个节点void Delete(); /删除节点或更改节点的数据void show(); /输出节点信息char Yn(); /输入(y/n)函数char * No(); /输入货物编号函数void
2、Fprintf(); /将单链表数据写到文件中void Fscanf(); /读取文件中的数据private:Node *first,*real,*p,*q;int main()int t=1,flag=1,f=1;char n;Node * p;Link Ku;while(t)printf(nnnnn); printf(nttt*);printf(nttt* XXX仓库管理系统*); printf(nttt* 1- 存储货物 *); printf(nttt* 2- 查询货物信息 *); printf(nttt* 3- 取出货物 *); printf(nttt* 4- 显示仓库内所有货物信息
3、*); printf(nttt* 0- 退出仓库管理系统 *); printf(nttt*); printf(nttt请选择菜单号(0-4):);f=1;1 / 10while(f=1)cinn;if(n4)printf(输入有误,请重新输入(0-4):);f=1;elsef=0;printf(nn);switch(n)case 1:printf(*n);printf(* 存储货物 *n);printf(*n);/printf( 货物编号 货物名称 货物数量n);/printf(*n);int a=1;while(a=1)a=Ku.Insert();Ku.Fprintf();/将单链表里的数据
4、写入文件。break;case 2:printf(*n);printf(* 查询货物信息 *n);printf(*n);flag=1;char yn;while(flag=1)p=Ku.Search();if(p)printf(n货物编号 货物名称 货物数量 n);printf(-n);printf(%5s%9s%8dn,p-data.no,,p-data.count);printf(-n);elseprintf(仓库中没有该货物!n);printf(是否继续查询?(y/n):);yn=Ku.Yn();if(yn=y|yn=Y)flag=1;if(yn=n|yn=N)fl
5、ag=0;break;case 3:printf(*n);printf(* 取出货物 *n);printf(*n);flag=1;char yn;while(flag=1)Ku.Delete();printf(是否继续取货?(y/n):);yn=Ku.Yn();/调用输入y/n函数if(yn=y|yn=Y)flag=1;if(yn=n|yn=N)flag=0;break;case 4:Ku.show();break;case 0:char yn;printf(确定退出仓库管理系统吗?(y/n):);yn=Ku.Yn();/调用输入y/n函数if(yn=y|yn=Y)printf(谢谢使用.n)
6、;t=0;if(yn=n|yn=N)t=1;break; return 0;Link:Link()first=new Node;first-next=NULL;real=first;FILE *fp=NULL;fp=fopen(d:file01.txt,a);fclose(fp);/Fprintf();Fscanf();int Link:Insert()char yn;char no10,name30;int count,t;printf(n 货物编号 货物名称(30) 货物数量(5) n);printf(-n);printf(n请输入货物编号(10个字符以内):n);strcpy(no,No
7、();printf(n输入货物名称(30个字符以内):n);cinname;t=1;while(t)printf(输入货物数量(整数): );cincount;if(countnext;while(p)if(strcmp(p-data.no,no)=0&strcmp(,name)=0)/printf(仓库中已有该货物%d件n,p-data.count);p-data.count=p-data.count+count;printf(添加成功!仓库中现有该货物%d件n是否继续存货?(y/n):,p-data.count);yn=Yn();if(yn=y|yn=Y) retur
8、n 1;if(yn=n|yn=N) return 0;if(strcmp(p-data.no,no)=0&strcmp(,name)!=0)printf(该货物的名称输入有误,应为 %sn请重新输入(y)或取消存货(n): ,);yn=Yn();if(yn=y|yn=Y) return 1;if(yn=n|yn=N) return 0;if(strcmp(p-data.no,no)!=0&strcmp(,name)=0)printf(该货物的编号输入有误,应为 %sn请重新输入(y)或取消存货(n): ,p-data.no);y
9、n=Yn();if(yn=y|yn=Y) return 1;if(yn=n|yn=N) return 0;real=p;p=p-next;if(p=NULL)Node *s=new Node;strcpy(s-data.no,no);strcpy(,name);s-data.count=count;s-next=NULL;real-next=s;real=s;printf(添加成功!仓库中现有该货物%d件n是否继续存货?(y/n):,real-data.count);yn=Yn();if(yn=y|yn=Y) return 1;if(yn=n|yn=N) return 0
10、;return 0;Node * Link:Search()char ab;char no10,name30;int f;p=first;printf(=n);printf( a. 按货物编号查询 n);printf( b. 按货物名称查询 n);printf(=n);printf( 请 选 择(a/b): );f=1;while(f=1)cinab;if(ab=a|ab=A|ab=b|ab=B)f=0;if(ab=a|ab=A)printf(n请输入货物编号(10个字符内):n);strcpy(no,No();while(p&strcmp(p-data.no,no)!=0)p=p-next;
11、if(ab=b|ab=B)printf(n请输入货物名称(30个字符内):);cinname;while(p&strcmp(,name)!=0)p=p-next;elsef=1;printf(输入有误,请重新输入(a/b):);return p;void Link:Delete()Node *q,*p;int count,t;char yn;p=Search();if(p=NULL)printf(仓库中没有该货物!n);elseprintf(n仓库中有该货物 %d件。,p-data.count);int flag=1;while(flag=1)printf(n请输入要取出
12、的货物数量(整数):);t=1;while(t=1)cincount;if(countp-data.count) printf(n输入的取货数量超过库存,是否要重新输入取货数量?(y/n):);yn=Yn();if(yn=y|yn=Y) flag=1;if(yn=n|yn=N) flag=0;elseflag=0;if(countdata.count)p-data.count=p-data.count-count;Fprintf();/修改文件里的数据。printf(n取货成功!仓库中还有该货物%d件n,p-data.count);printf(n是否继续取出该货物?(y/n):);yn=Yn
13、();if(yn=y|yn=Y)flag=1;if(yn=n|yn=N)flag=0;elseq=first;while(q!=NULL&q-next!=p)q=q-next;q-next=p-next;delete p;Fprintf();/将单链表里的数据写入文件。printf(n取货成功!该货物已被全部取出!n);void Link:show()if(first-next=NULL)printf(仓库内没有货物!);elseprintf( 货物编号 货物名称 货物数量 n); printf(-n);p=first-next;while(p)printf(%15s%23s%23dn,p-d
14、ata.no,,p-data.count);p=p-next;printf(-n);char Link:Yn()int f=1;char yn;while(f=1)cinyn;if(yn=y|yn=Y|yn=n|yn=N)f=0;return yn;elsef=1;printf(输入有误,请重新输入(y/n):);char * Link:No()int t=1,i;char *no=NULL,no110;while(t)t=0;cinno1;no=no1;for(i=0;noi;i+)if(noi9)t=1;printf(货物编号只能由0-9的字符组成,请重新输入货物编号(10个字符内):);break;return no1;void Link:Fprintf()FILE *fp=NULL;fp=fopen(d:file01.txt,w);p=first-next;while(p!=NULL)fprintf(fp,%10s%30s%10dn,p-data.no,p-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风险管理流程的实践案例分析试题及答案
- 法的适用与公民意识的提升试题及答案
- 2025年中国行走杖市场调查研究报告
- 2025年中国蛋黄派市场调查研究报告
- 医考资格考试试题及答案
- 2025年软考软件设计师网络试题及答案
- 网络编程的核心技术试题及答案
- 2025年消防考试题及答案
- 社工招募考试试题及答案
- 法学概论常考大纲试题及答案
- 2025江苏省招标中心有限公司校园招聘30人笔试参考题库附带答案详解
- 小学校园文化方案
- 酒旅直播培训课件
- 2025年医院管理培训考试试题及答案
- 大学生思想政治教育课件教学
- 北京市公路货运车辆不停车检测系统设施设备运维定额2025
- 生产经营单位事故隐患内部报告奖励机制实践
- 《尿素合成的水溶液全循环法工艺设计综述》1900字
- 2025-2030中国家政行业市场发展现状及发展趋势与投资研究报告
- 2025年共青团入团考试题库及答案
- 2025年生态环境监测员考试题及答案
评论
0/150
提交评论