




已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
#includeusing namespace std;typedef structchar no10;char name30;int count;DataType;struct NodeDataType data;Node *next;class Linkpublic:Link(); /構(gòu)造函數(shù),建立單鏈表int Insert(); /插入節(jié)點(diǎn),即添加貨物Node * Search(); /查找某個(gè)節(jié)點(diǎn)void Delete(); /刪除節(jié)點(diǎn)或更改節(jié)點(diǎn)的數(shù)據(jù)void show(); /輸出節(jié)點(diǎn)信息char Yn(); /輸入(y/n)函數(shù)char * No(); /輸入貨物編號(hào)函數(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*);printf(nttt* XXX倉庫管理系統(tǒng)*); printf(nttt* 1- 存儲(chǔ)貨物 *); printf(nttt* 2- 查詢貨物信息 *); printf(nttt* 3- 取出貨物 *); printf(nttt* 4- 顯示倉庫內(nèi)所有貨物信息 *); printf(nttt* 0- 退出倉庫管理系統(tǒng) *); printf(nttt*); printf(nttt請選擇菜單號(hào)(0-4):);f=1;while(f=1)cinn;if(n4)printf(輸入有誤,請重新輸入(0-4):);f=1;elsef=0;printf(nn);switch(n)case 1:printf(*n);printf(* 存儲(chǔ)貨物 *n);printf(*n);/printf( 貨物編號(hào) 貨物名稱 貨物數(shù)量n);/printf(*n);int a=1;while(a=1)a=Ku.Insert();Ku.Fprintf();/將單鏈表里的數(shù)據(jù)寫入文件。break;case 2:printf(*n);printf(* 查詢貨物信息 *n);printf(*n);flag=1;char yn;while(flag=1)p=Ku.Search();if(p)printf(n貨物編號(hào) 貨物名稱 貨物數(shù)量 n);printf(-n);printf(%5s%9s%8dn,p-data.no,,p-data.count);printf(-n);elseprintf(倉庫中沒有該貨物!n);printf(是否繼續(xù)查詢?(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(是否繼續(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:Ku.show();break;case 0:char yn;printf(確定退出倉庫管理系統(tǒng)嗎?(y/n):);yn=Ku.Yn();/調(diào)用輸入y/n函數(shù)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;char no10,name30;int count,t;printf(n 貨物編號(hào) 貨物名稱(30) 貨物數(shù)量(5) n);printf(-n);printf(n請輸入貨物編號(hào)(10個(gè)字符以內(nèi)):n);strcpy(no,No();printf(n輸入貨物名稱(30個(gè)字符以內(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件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(,name)=0)printf(該貨物的編號(hào)輸入有誤,應(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ù)存貨?(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. 按貨物編號(hào)查詢 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請輸入貨物編號(hào)(10個(gè)字符內(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個(gè)字符內(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)printf(倉庫中沒有該貨物!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ù)量?(y/n):);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-count;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=NULL)printf(倉庫內(nèi)沒有貨物!);elseprintf( 貨物編號(hào) 貨物名稱 貨物數(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;printf(貨物編號(hào)只能由0-9的字符組成,請重新輸入貨物編號(hào)(10個(gè)字符內(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.no,p-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45676-2025增材制造金屬粉末含水量的測定卡爾費(fèi)休庫倫法
- 局送萬福進(jìn)萬家活動(dòng)方案
- 尖子生減壓活動(dòng)方案
- 小溪摸魚活動(dòng)方案
- 局部改造活動(dòng)方案
- 苯胺產(chǎn)業(yè)實(shí)施方案
- 不育癥的遺傳學(xué)機(jī)制
- 腦梗塞護(hù)理指南
- 湖北省孝感市孝昌縣2024-2025學(xué)年八年級(jí)下學(xué)期6月期末數(shù)學(xué)試題(含部分答案)
- 2025年天津市南大附中高一期中-政治試卷
- 《中藥學(xué)》課件-中藥思政元素案例
- 醫(yī)院保潔服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 廣東省深圳市寶安區(qū)2022-2023學(xué)年二年級(jí)下學(xué)期期末數(shù)學(xué)試卷
- 譯林版英語八年級(jí)下冊語法知識(shí)總結(jié)
- 范卿平人教版初三化學(xué)講義全集
- 幼兒園規(guī)范化幼兒園參評(píng)自評(píng)報(bào)告
- 產(chǎn)科運(yùn)用PDCA循環(huán)降低入室新生兒低血糖發(fā)生率品管圈成果匯報(bào)
- 《水資源管理》機(jī)考題庫及答案開放大學(xué)考試題庫 答案
- 文件簽收回執(zhí)單
- 衛(wèi)生經(jīng)濟(jì)學(xué)智慧樹知到答案章節(jié)測試2023年華中科技大學(xué)
- 替普瑞酮聯(lián)合硫糖鋁治療慢性非萎縮性胃炎伴糜爛的療效及安全性分析
評(píng)論
0/150
提交評(píng)論