1、数据结构课程设计仓库管理系统源程序#includeusing namespace std;typedef struct char no10; char name30; int count;DataType;struct Node DataType data; Node *next;class Linkpublic: Link(); /构造函数,建立单链表 int Insert(); /插入节点,即添加货物 Node * Search(); /查找某个节点 void Delete(); /删除节点或更改节点的数据 void show(); /输出节点信息 char Yn(); /输入(y/n)函
2、数 char * 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; while(f=1) cinn; if(n4) printf(输入有误,请重新输入(0-4):); f=1; else f=0; printf(nn); switch(n) case 1: printf(*n); printf(* 存储货物 *n); printf(*n); /printf( 货物编号 货物名称 货物数量n); /printf(*n); int
4、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(-n); printf(%5s%9s%8dn,p-data.no,p-data.name,p-data.count); printf(-n); else printf(仓库中没有该货物!n)
5、; 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/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(); br
6、eak; case 0: char yn; printf(确定退出仓库管理系统吗?(y/n):); yn=Ku.Yn();/调用输入y/n函数 if(yn=y|yn=Y) 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 Link:Insert() char yn;
7、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.name,name)=0) /printf(仓库中已有该货物%
8、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)或取消存货(n): ,p-data.name); yn=Yn(); if(yn=y|yn=Y) ret
9、urn 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; strcpy(s-data.no,no); strcpy(s-data.name,name); s-data.
10、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(=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
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1