數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——倉庫管理系統(tǒng)源程序_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——倉庫管理系統(tǒng)源程序_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——倉庫管理系統(tǒng)源程序_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——倉庫管理系統(tǒng)源程序_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——倉庫管理系統(tǒng)源程序_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、#include using namespace std; typedef structchar no10;char name30; int count;DataType;struct NodeDataType data;Node *next; ;class Link public:Link(); / 構(gòu)造函數(shù),建立單鏈表 int Insert(); / 插入節(jié)點,即添加貨物 Node * Search(); / 查找某個節(jié)點 void Delete(); / 刪除節(jié)點或更改節(jié)點的數(shù)據(jù) void show(); / 輸出節(jié)點信息 char Yn(); / 輸入( y/n )函數(shù) char *

2、No(); / 輸入貨物編號函數(shù) void Fprintf(); / 將單鏈表數(shù)據(jù)寫到文件中 void Fscanf(); / 讀取文件中的數(shù)據(jù)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*XXX倉庫管理系統(tǒng)printf(nttt*1-存儲貨物*printf(nttt*2-查詢貨物信息*printf(nttt*3-取出貨物*printf(nttt*4-顯示倉庫內(nèi)所有貨物信息*printf(ntt

3、t*0-退出倉庫管理系統(tǒng)*printf(nttt*);*);printf(nttt 請選擇菜單號 (0-4):);f=1;printf(ntttwhile(f=1) cinn; if(n4) printf( 輸入有誤,請重新輸入 (0-4): ); f=1;elsef=0;printf(nn);switch(n)case 1:printf(*n);printf(*存儲貨物*n);printf(n 貨物編號 貨物名稱 貨物數(shù)量 n);printf(*n);/printf(貨物編號貨物名稱 貨物數(shù)量 n);/printf( *n);int a=1;while(a=1)a=Ku.Insert();K

4、u.Fprintf();/ 將單鏈表里的數(shù)據(jù)寫入文件。 break;case 2:printf(*n);printf(* 查詢貨物信息*n);printf(*n);flag=1; char yn;while(flag=1)p=Ku.Search();if(p)n);printf( printf(%5s%9s%8dn,p-data.no,,p-data.count);n);printf(elseprintf( 倉庫中沒有該貨物! n); printf( 是否繼續(xù)查詢? (y/n):); yn=Ku.Yn();if(yn=y|yn=Y)flag=1;if(yn=n|yn=N)

5、flag=0;break;case 3:printf(*n);printf(* 取出貨物*n);printf(*n);flag=1;char yn; while(flag=1) Ku.Delete();printf( 是否繼續(xù)取貨? (y/n):); yn=Ku.Yn();/ 調(diào)用輸入 y/n 函數(shù) if(yn=y|yn=Y)flag=1;if(yn=n|yn=N)flag=0;break;case 4: case 0:Ku.show();break;char yn;(y/n):);printf( 確定退出倉庫管理系統(tǒng)嗎? yn=Ku.Yn();/ 調(diào)用輸入 y/n 函數(shù) if(yn=y|yn

6、=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;char no10,name30;int count,t;n);printf(n 貨物編號 貨物名稱 (30) 貨物數(shù)量 (5) printf(n);printf(n 請輸入貨物編號

7、 (10 個字符以內(nèi) ):n); strcpy(no,No();printf(n 輸入貨物名稱 (30 個字符以內(nèi) ):n); cinname;t=1;while(t)printf( 輸入貨物數(shù)量 (整數(shù)): ); 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( 添 加 成 功 ! 倉 庫 中 現(xiàn) 有 該 貨 物 %d

8、件 n 是 否 繼 續(xù) 存 貨 ?(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(,name)!=0)printf(該貨物的名稱輸入有誤,應(yīng)為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(,n

9、ame)=0)printf(該貨物的編號輸入有誤,應(yīng)為%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(,name);s-data.count=count;s-next=NULL;real-next=s;real=s;printf( 添 加 成 功 ! 倉 庫 中 現(xiàn) 有 該 貨 物 %d 件 n 是 否 繼 續(xù)

10、 存 貨 ? (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)prin

11、tf(n 請輸入貨物編號 (10 個字符內(nèi) ):n);strcpy(no,No();while(p&strcmp(p-data.no,no)!=0)p=p-next;if(ab=b|ab=B)printf(n 請輸入貨物名稱 (30 個字符內(nèi) ): );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)print

12、f( 倉庫中沒有該貨物! n);elseprintf(n 倉庫中有該貨物 %d 件。 ,p-data.count);int flag=1;while(flag=1)printf(n 請輸入要取出的貨物數(shù)量 (整數(shù) ):); t=1;while(t=1)cincount; if(countp-data.count)printf(n 輸入的取貨數(shù)量超過庫存,是否要重新輸入取貨數(shù)量? 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-c

13、ount; Fprintf();/ 修改文件里的數(shù)據(jù)。 printf(n 取貨成功!倉庫中還有該貨物 %d 件 n,p-data.count); printf(n 是否繼續(xù)取出該貨物? (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();/ 將單鏈表里的數(shù)據(jù)寫入文件。printf(n 取貨成功!該貨物已被全部取出! n);void Link:show()if(first-next=

14、NULL)printf( 倉庫內(nèi)沒有貨物! );elseprintf( 貨物編號 貨物名稱 貨物數(shù)量 n);printf(n);p=first-next;while(p) printf(%15s%23s%23dn,p-data.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;(10 個字符printf( 貨物編號只能由 0-9 的字符組成,請重新輸入貨物編號 內(nèi)):);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.n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論