数据结构课程设计——仓库管理系统源程序.docx

上传人:scccc 文档编号:12535376 上传时间:2021-12-04 格式:DOCX 页数:10 大小:14.88KB
返回 下载 相关 举报
数据结构课程设计——仓库管理系统源程序.docx_第1页
第1页 / 共10页
数据结构课程设计——仓库管理系统源程序.docx_第2页
第2页 / 共10页
数据结构课程设计——仓库管理系统源程序.docx_第3页
第3页 / 共10页
数据结构课程设计——仓库管理系统源程序.docx_第4页
第4页 / 共10页
数据结构课程设计——仓库管理系统源程序.docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《数据结构课程设计——仓库管理系统源程序.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计——仓库管理系统源程序.docx(10页珍藏版)》请在三一文库上搜索。

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->data.name,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->data.name,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->data.name,name)!=0)printf("该货物的名称输入有误,应为 %sn请重新输入(y)或取消存货(n): ",p->data.name);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->data.name,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->data.name,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->data.name,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->data.name,p->data.count);p=p->next;printf("-n");char Link:Yn

20、()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'|noi>'9')

21、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->data.name,p->data.count);p=p->next;fclose(fp);vo

22、id Link:Fscanf()FILE *fp=NULL;p=first;Node *s;fp=fopen("d:file01.txt","r");if(fp=NULL) cout<<"不能打开文件!"<<endl;exit(0);while(feof(fp)=0)s=new Node;fscanf(fp,"%s%s%dn",s->data.no,s->data.name,&s->data.count);if(s->data.count>0)p->next=s;p=s;p->next=NULL;fclose(fp);.;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1