数据结构课程设计——仓库管理系统源程序_第1页
数据结构课程设计——仓库管理系统源程序_第2页
数据结构课程设计——仓库管理系统源程序_第3页
数据结构课程设计——仓库管理系统源程序_第4页
数据结构课程设计——仓库管理系统源程序_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、.#include<iostream>using 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(

2、); /输入货物编号函数void 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("nt

3、tt* 2- 查询货物信息 *"); printf("nttt* 3- 取出货物 *"); printf("nttt* 4- 显示仓库内所有货物信息 *"); printf("nttt* 0- 退出仓库管理系统 *"); printf("nttt*"); printf("nttt请选择菜单号(0-4):");f=1;while(f=1)cin>>n;if(n<'0'|n>'4')printf("输入有误,请重新输入(0-

4、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();/将单链表里的数据写入文件。break;case '2':printf(&

5、quot;*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->,p->data.count);printf("-n");elseprintf("仓库中没

6、有该货物!n");printf("是否继续查询?(y/n):");yn=Ku.Yn();if(yn='y'|yn='Y')flag=1;if(yn='n'|yn='N')flag=0;break;case '3':printf("*n");printf("* 取出货物 *n");printf("*n");flag=1;char yn;while(flag=1)Ku.Delete();printf("是否继续取货?(y

7、/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");t=0

8、;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&qu

9、ot;);printf("-n");printf("n请输入货物编号(10个字符以内):n");strcpy(no,No();printf("n输入货物名称(30个字符以内):n");cin>>name;t=1;while(t)printf("输入货物数量(整数): ");cin>>count;if(count<=0)t=1;printf("货物数量必须大于0,请重新");elset=0;p=first;real=first;p=p->next;while(p

10、)if(strcmp(p->data.no,no)=0&&strcmp(p->,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') return 1;if(yn='n'|y

11、n='N') return 0;if(strcmp(p->data.no,no)=0&&strcmp(p->,name)!=0)printf("该货物的名称输入有误,应为 %sn请重新输入(y)或取消存货(n): ",p->);yn=Yn();if(yn='y'|yn='Y') return 1;if(yn='n'|yn='N') return 0;if(strcmp(p->data.no,no)!=0&&

12、;strcmp(p->,name)=0)printf("该货物的编号输入有误,应为 %sn请重新输入(y)或取消存货(n): ",p->data.no);yn=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(s->,name);s-&

13、gt;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;return 0;Node * Link:Search()char ab;char no10,name30;int f;p=first;printf(&

14、quot;=n");printf(" a. 按货物编号查询 n");printf(" b. 按货物名称查询 n");printf("=n");printf(" 请 选 择(a/b): ");f=1;while(f=1)cin>>ab;if(ab='a'|ab='A'|ab='b'|ab='B')f=0;if(ab='a'|ab='A')printf("n请输入货物编号(10个字符内):n&

15、quot;);strcpy(no,No();while(p&&strcmp(p->data.no,no)!=0)p=p->next;if(ab='b'|ab='B')printf("n请输入货物名称(30个字符内):");cin>>name;while(p&&strcmp(p->,name)!=0)p=p->next;elsef=1;printf("输入有误,请重新输入(a/b):");return p;void Link:Delete(

16、)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请输入要取出的货物数量(整数):");t=1;while(t=1)cin>>count;if(count<0)t=1;printf("取货数量不能为负数,请重新输入取货数量(整数):");elset

17、=0;if(count>p->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(count<p->data.count)p->data.count=p->data.count-count;Fprintf();/修改文件里的数据。printf("n取货成功!仓库中还有该

18、货物%d件n",p->data.count);printf("n是否继续取出该货物?(y/n):");yn=Yn();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取货成功!该货物已被全部

19、取出!n");void Link:show()if(first->next=NULL)printf("仓库内没有货物!");elseprintf(" 货物编号 货物名称 货物数量 n"); printf("-n");p=first->next;while(p)printf("%15s%23s%23dn",p->data.no,p->,p->data.count);p=p->next;printf("-n");char Link:Yn()int f=1;char yn;while(f=1)cin>>yn;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;cin>>no1;no=no1;for(i=0;noi;i+)if(noi<'0&#

温馨提示

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

评论

0/150

提交评论