2022年数据结构课程设计仓库管理系统源程序 .pdf

上传人:Q****o 文档编号:25942855 上传时间:2022-07-14 格式:PDF 页数:10 大小:60.36KB
返回 下载 相关 举报
2022年数据结构课程设计仓库管理系统源程序 .pdf_第1页
第1页 / 共10页
2022年数据结构课程设计仓库管理系统源程序 .pdf_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《2022年数据结构课程设计仓库管理系统源程序 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构课程设计仓库管理系统源程序 .pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、#include using namespace std; typedef struct char no10; char name30; int count; DataType; struct Node DataType data; Node *next; ; class Link public: Link(); / 构造函数,建立单链表int Insert(); / 插入节点,即添加货物Node * Search(); / 查找某个节点void Delete(); / 删除节点或更改节点的数据void show(); / 输出节点信息char Yn(); / 输入( y/n)函数char *

2、 No(); / 输入货物编号函数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(nttt* 2- 查询货物信息*); printf(nttt* 3- 取出货物

3、*); printf(nttt* 4- 显示仓库内所有货物信息*); printf(nttt* 0- 退出仓库管理系统*); printf(nttt*); printf(nttt请选择菜单号 (0-4):); f=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - while(f=1) cinn; if(n4) printf( 输入有误,请重新输入(0-4):); f=1; else f=0; printf(nn); swi

4、tch(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(*n); printf(* 查询货物信息*n); printf(*n); flag=1; char yn; while(flag=1) p=Ku.Search(); if(p) printf(n货物编号货物名称货物数量n); printf

5、(-n); printf(%5s%9s%8dn,p-data.no,p-data.name,p-data.count); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - printf(-n); else printf( 仓库中没有该货物!n); printf( 是否继续查询?(y/n):); yn=Ku.Yn(); if(yn=y|yn=Y) flag=1; if(yn=n|yn=N) flag=0; break; case

6、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) 名师资料总

7、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - printf( 谢谢使用 .n); 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 L

8、ink:Insert() char yn; char no10,name30; int count,t; printf(n 货物编号货物名称(30) 货物数量 (5) n); printf(-n); printf(n请输入货物编号(10 个字符以内 ):n); strcpy(no,No(); printf(n输入货物名称(30 个字符以内 ):n); cinname; t=1; while(t) printf( 输入货物数量(整数 ): ); cincount; if(countnext; while(p) if(strcmp(p-data.no,no)=0&strcmp(p-data.nam

9、e,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|yn=N) return 0; if(strcmp(p-data.no,no)=0&strcmp(p-data.name,name)!=0) printf( 该货物的名称输入有误,应为%sn 请重新输入(y

10、)或取消存货(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&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; st

11、rcpy(s-data.no,no); strcpy(s-data.name,name); s-data.count=count; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 10 页 - - - - - - - - - s-next=NULL; real-next=s; real=s; printf(添 加 成 功 ! 仓 库 中 现 有 该 货 物 %d件 n是 否 继 续 存 货 ?(y/n):,real-data.count); yn=Yn(); if(yn=

12、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(=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)

13、; strcpy(no,No(); while(p&strcmp(p-data.no,no)!=0) p=p-next; if(ab=b|ab=B) printf(n请输入货物名称(30 个字符内 ):); cinname; while(p&strcmp(p-data.name,name)!=0) p=p-next; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 10 页 - - - - - - - - - else f=1; printf( 输入有误,请重新输入(a/

14、b) : ); return p; void Link:Delete() Node *q,*p; int count,t; char yn; p=Search(); if(p=NULL) printf( 仓库中没有该货物!n); else printf(n仓库中有该货物%d 件。 ,p-data.count); int flag=1; while(flag=1) printf(n请输入要取出的货物数量(整数 ):); t=1; while(t=1) cincount; if(countp-data.count) printf(n输入的取货数量超过库存,是否要重新输入取货数量?(y/n):);

15、yn=Yn(); if(yn=y|yn=Y) flag=1; if(yn=n|yn=N) flag=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 10 页 - - - - - - - - - else flag=0; if(countdata.count) p-data.count=p-data.count-count; Fprintf();/ 修改文件里的数据。printf(n取货成功!仓库中还有该货物%d 件n,p-data.count); printf(n是

16、否继续取出该货物?(y/n):); yn=Yn(); if(yn=y|yn=Y) flag=1; if(yn=n|yn=N) flag=0; else q=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( 仓库内没有货物!); else printf( 货物编号货物名称货物数量n); printf(-n); p=firs

17、t-next; while(p) printf(%15s%23s%23dn,p-data.no,p-data.name,p-data.count); p=p-next; printf(-n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 10 页 - - - - - - - - - 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; els

18、e f=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; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 10 页

19、 - - - - - - - - - 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); void Link:Fscanf() FILE *fp=NULL; p=first; Node *s; fp=fopen(d:file01.txt,r); if(fp=NULL) cout不能打开文件!data.no,s-data.name,&s-data.count); if(s-data.count0) p-next=s; p=s; p-next=NULL; fclose(fp); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 10 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁