倉(cāng)庫(kù)管理_倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
倉(cāng)庫(kù)管理_倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
倉(cāng)庫(kù)管理_倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
倉(cāng)庫(kù)管理_倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
倉(cāng)庫(kù)管理_倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

學(xué) 號(hào): 課 程 設(shè) 計(jì)題 目倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn)學(xué) 院計(jì)算機(jī)科學(xué)與技術(shù)專 業(yè)班 級(jí)姓 名指導(dǎo)教師鞏 晶201年月日目錄1.系統(tǒng)描述3 1.1設(shè)計(jì)題目3 1.2設(shè)計(jì)目的3 1.3問題說(shuō)明3 1.4開發(fā)環(huán)境3 1.5系統(tǒng)分析3 1.6系統(tǒng)設(shè)計(jì)流程圖42.系統(tǒng)設(shè)計(jì)5 2.1數(shù)據(jù)文件設(shè)計(jì)5 2.2輸入輸出的設(shè)計(jì)5 2.3用戶界面設(shè)計(jì)10 2.4處理過程設(shè)計(jì)123.系統(tǒng)測(cè)試123.1測(cè)試用例描述123.2測(cè)試方法描述133.3測(cè)試結(jié)果134.總結(jié)174.1特點(diǎn)與不足174.2收獲與體會(huì)185.參考文獻(xiàn)18附表18評(píng)分表27計(jì)算機(jī)基礎(chǔ)強(qiáng)化訓(xùn)練任務(wù)書學(xué)生姓名: 專業(yè)班級(jí): 指導(dǎo)教師: 工作單位: 題 目: 倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn) 初始條件:理論:學(xué)完計(jì)算機(jī)基礎(chǔ)知識(shí),掌握C+語(yǔ)言編程基礎(chǔ)和VC開發(fā)平臺(tái)的使用。實(shí)踐:計(jì)算機(jī)科學(xué)系實(shí)驗(yàn)中心提供計(jì)算機(jī)及軟件開發(fā)環(huán)境。要求完成的主要任務(wù): (1)系統(tǒng)需求分析,得到系統(tǒng)的數(shù)據(jù)需求和功能需求,分析結(jié)果用表格記錄。 (2)系統(tǒng)設(shè)計(jì),包括內(nèi)存數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)文件設(shè)計(jì)、代碼設(shè)計(jì)、輸入/輸出設(shè)計(jì)、用戶界面設(shè)計(jì)、處理過程設(shè)計(jì)。要求內(nèi)存數(shù)據(jù)用鏈表組織,數(shù)據(jù)文件用文本文件,用戶界面用字符界面。至少實(shí)現(xiàn)數(shù)據(jù)記錄的增加、修改、刪除、查詢(查詢應(yīng)能按不同數(shù)據(jù)項(xiàng)進(jìn)行)。(2)編制好程序后,設(shè)計(jì)若干測(cè)試用例,上機(jī)測(cè)試所設(shè)計(jì)的程序。(4)設(shè)計(jì)報(bào)告按格式要求書寫。設(shè)計(jì)報(bào)告正文的內(nèi)容應(yīng)包括:1)系統(tǒng)描述 包括問題說(shuō)明、數(shù)據(jù)需求和功能需求。2)系統(tǒng)設(shè)計(jì) 包括內(nèi)存數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)文件設(shè)計(jì)、代碼設(shè)計(jì)、輸入/輸出設(shè)計(jì)、用戶界面設(shè)計(jì)、處理過程設(shè)計(jì)。3)系統(tǒng)測(cè)試 包括測(cè)試用例的描述、測(cè)試方法和測(cè)試結(jié)果。4)設(shè)計(jì)的特點(diǎn)、不足、收獲和體會(huì)。時(shí)間安排:1、第20周(7月4日至7月8日)完成。2、7月8日8:00到計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心(三樓)檢查程序、交課程設(shè)計(jì)報(bào)告、源程序(CD盤)。指導(dǎo)教師簽名: 2011年 月 日系主任(或責(zé)任教師)簽名: 2011年 月 日1 系統(tǒng)描述1.1設(shè)計(jì)題目 倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn)1.2 設(shè)計(jì)目的(1) 通過設(shè)計(jì),強(qiáng)化計(jì)算機(jī)專業(yè)基礎(chǔ)知識(shí),如C+語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)、離散數(shù)學(xué)等,對(duì)這些知識(shí)加以運(yùn)用。(2) 掌握編寫程序的思想方法、技巧,為以后的專業(yè)學(xué)習(xí)打下良好的基礎(chǔ)。(3) 培養(yǎng)動(dòng)手能力,理論聯(lián)系實(shí)際的能力,在實(shí)踐中掌握理論,深化對(duì)計(jì)算機(jī)科學(xué)與技術(shù)的認(rèn)識(shí)。1.3. 問題說(shuō)明隨著企事業(yè)的發(fā)展,以及人們需求的增多,倉(cāng)庫(kù)管理已被廣泛的應(yīng)用。而倉(cāng)庫(kù)管理系統(tǒng)軟件更是大型企業(yè)不可缺少的,它使管理變的更加容易,使管理員輕松的掌握倉(cāng)庫(kù)物品信息,調(diào)整倉(cāng)庫(kù)中物品的進(jìn)出,了解倉(cāng)庫(kù)的庫(kù)存大小,以及對(duì)物品進(jìn)行查找等。本此訓(xùn)練的系統(tǒng)為倉(cāng)庫(kù)出庫(kù)管理系統(tǒng),針對(duì)的是物品的出庫(kù),可以實(shí)現(xiàn)針對(duì)出庫(kù)的相應(yīng)的功能。系統(tǒng)使用C+語(yǔ)言開發(fā),利用面向?qū)ο蟮乃枷?,?nèi)存數(shù)據(jù)用鏈表組織,數(shù)據(jù)的存儲(chǔ)為文本存儲(chǔ)。至少實(shí)現(xiàn)數(shù)據(jù)記錄的增加、修改、刪除、查詢(查詢應(yīng)能按不同數(shù)據(jù)項(xiàng)進(jìn)行)。1.4開發(fā)環(huán)境Visual C+6.0集成開發(fā)環(huán)境,主要用C+語(yǔ)言,面向?qū)ο蟮乃枷敕椒ā?.5 系統(tǒng)分析 (1)數(shù)據(jù)需求倉(cāng)庫(kù)的屬性有:貨物編號(hào)、貨物名稱、貨物數(shù)量等。數(shù)據(jù)需求分析結(jié)果如下表: 數(shù)據(jù)名稱數(shù)據(jù)描述數(shù)據(jù)類型倉(cāng)庫(kù)信息number貨物的編號(hào)int name10入庫(kù)貨物的名稱,如“computer”charquantity相對(duì)貨物的數(shù)量,如20int(2)功能需求 本程序要求實(shí)現(xiàn)倉(cāng)庫(kù)管理中的物品的入庫(kù)初始化,物品的出庫(kù),物品的列表顯示,物品相關(guān)信息的查找和退出程序的功能。當(dāng)輸入有誤時(shí),給以相應(yīng)的提示信息。函數(shù)名稱函數(shù)功能void create(dlnode *L)創(chuàng)建鏈表頭節(jié)點(diǎn)void search(dlnode *L)查找主要菜單void searchnum(dlnode *L)按編號(hào)查找函數(shù)void searchname(dlnode *L)按名稱查找函數(shù)void current(dlnode *L)貨物出庫(kù)函數(shù)void print( dlnode *L)輸出函數(shù)void input(dlnode *L)定義入庫(kù)函數(shù)void output(dlnode *L)定義出庫(kù)函數(shù)void outnum(dlnode *L)按編號(hào)出庫(kù)函數(shù)void outname(dlnode *L)按名稱出庫(kù)函數(shù)void display(dlnode *L)顯示貨物清單void main()主函數(shù),含有操作界面1.6系統(tǒng)設(shè)計(jì)流程圖倉(cāng)庫(kù)出庫(kù)管理系統(tǒng)退出系統(tǒng)貨物出庫(kù)顯示列表貨物查詢貨物入庫(kù)輸出所選貨物沒有該貨物2系統(tǒng)設(shè)計(jì)2.1數(shù)據(jù)文件設(shè)計(jì)我們總羨慕別人的幸福,卻常常忽略自己生活中的美好。其實(shí),幸福很平凡也很簡(jiǎn)單,它就藏在看似瑣碎的生活中。幸福的人,并非拿到了世界上最好的東西,而是珍惜了生命中的點(diǎn)點(diǎn)滴滴,用感恩的心態(tài)看待生活,用樂觀的態(tài)度闖過磨難。該程序采用內(nèi)部數(shù)據(jù)結(jié)構(gòu)如下:typedef struct dnode /* 定義雙向鏈表結(jié)構(gòu)體 */ int number; /* 貨物編號(hào) */ char namemax; /* 貨物名稱 */ int counter; /* 貨物數(shù)量 */ struct dnode *prior, *next;/* 定義兩指針,分別指向其前驅(qū)和后繼 */dlnode; void create(dlnode *L);/創(chuàng)建鏈表頭結(jié)點(diǎn)void input(dlnode *L);/定義入庫(kù)函數(shù)void output(dlnode *L);/定義出庫(kù)函數(shù)void outnum(dlnode *L);/按編號(hào)出庫(kù)函數(shù)void outname(dlnode *L);/按名稱出庫(kù)函數(shù)void current(dlnode *L);/貨物出庫(kù)函數(shù)void search(dlnode *L);/查找主菜單void print(dlnode *L);/輸出函數(shù)void searchnum(dlnode *L);/按編號(hào)查找函數(shù)void searchname(dlnode *L);/按名稱查找函數(shù)void display(dlnode *L) ; / 顯示貨物清單 2.2輸入輸出的設(shè)計(jì)(1)輸入輸入,即時(shí)入庫(kù)的實(shí)現(xiàn)void input(dlnode *L)/定義入庫(kù)函數(shù) dlnode *in,*head; head=in=(dlnode *)malloc(sizeof(dlnode);/分配空間 head=L; printf(n請(qǐng)輸入貨物數(shù)據(jù):n); printf(編號(hào):);scanf(%d,&in-number); printf(名稱:);scanf(%s,&in-name); printf(數(shù)量:);scanf(%d,&in-counter); if(L-next=NULL) /如果只有頭節(jié)點(diǎn), /把剛輸入的in節(jié)點(diǎn) L-next=in; /跟在頭節(jié)點(diǎn)后面 L-prior=in; / in-next=L; / in-prior=L; / isempty+; /isempty加1 else /如果當(dāng)前L的下一個(gè)節(jié)點(diǎn)不是頭節(jié)點(diǎn) while(L=L-next)!=head) /如果輸入的數(shù)大于L-number,則插到L的前面 if(L-numbernumber) in-next=L; in-prior=L-prior; L-prior-next=in; L-prior=in; isempty+; /isempty加1 return; /輸入的編號(hào)比其它編號(hào)都小,則插到最后個(gè)節(jié)點(diǎn),并首尾相連 head-prior-next=in; in-prior=head-prior; head-prior=in; in-next=head; isempty+; /isempty加1 (2)輸出即程序中的出庫(kù)函數(shù),實(shí)現(xiàn)了對(duì)信息進(jìn)行分類輸出及刪除操作,其主要設(shè)計(jì)代碼:1)選擇出庫(kù)函數(shù)類型:void output(dlnode *L)/出庫(kù)的函數(shù) int y; dlnode *head=L; if(isempty=0)/檢測(cè)是否有貨物輸入 printf(沒有貨物輸入系統(tǒng)n); getchar();getchar(); return ; while(1) printf(=n); printf(1.按編號(hào)出庫(kù)n); printf(2.按名稱出庫(kù)n); printf(0.返回上一層n); printf(=n); printf(選擇0-2:);scanf(%d,&y); switch(y) case 1:outnum(L);break;/調(diào)用按編號(hào)出庫(kù)函數(shù) case 2:outname(L);break;/調(diào)用按名稱出庫(kù)函數(shù) case 0:return; default:printf(enter error!Please input 0-2!); getchar();getchar();printf(nn); 2)按編號(hào)輸出函數(shù)void outnum(dlnode *L)/按編號(hào)出庫(kù)函數(shù) int num; dlnode *head=L; printf(請(qǐng)輸入出庫(kù)貨物的編號(hào):); scanf(%d,&num); while(L=L-next)!=head) /如果找到就刪除節(jié)點(diǎn) if(L-number=num) L-prior-next=L-next; L-next-prior=L-prior; isempty-; /isempty減1 printf(編號(hào)為%d的貨物成功出庫(kù),num); getchar();getchar(); return; printf(沒有此編號(hào)的貨物,請(qǐng)查看是否還有貨物。nn); getchar();getchar(); 3)按名稱輸出函數(shù): void outname(dlnode *L)/按名稱出庫(kù)函數(shù) char na32; dlnode *head=L; printf(請(qǐng)輸入出庫(kù)貨物的名稱:); scanf(%s,&na); while(L=L-next)!=head) /如果找到就刪除節(jié)點(diǎn) if(strcmp(L-name,na)=0) L-prior-next=L-next; L-next-prior=L-prior; isempty-; /isempty減1 printf(名稱為%s的貨物成功出庫(kù),na); getchar();getchar(); return; printf(沒有此名稱的貨物,請(qǐng)查看是否還有貨物。nn); getchar();getchar(); 2.3用戶界面設(shè)計(jì)void create(dlnode *L)/創(chuàng)建鏈表頭節(jié)點(diǎn)int i; printf(*歡迎使用倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn)*n); isempty=0; /初始化頭節(jié)點(diǎn)的值/ L-next=NULL;L-prior=NULL; L-number=L-counter=0; strcpy(L-name, ); printf(貨物庫(kù)存初始化n);printf(=n);printf( 1.繼續(xù)增加庫(kù)存n);printf( 0.結(jié)束n);printf(=n);scanf(%d,&i);while(i=1)input(L);printf(n=n);printf( 1.繼續(xù)增加庫(kù)存n);printf( 0.結(jié)束n);printf(=n);scanf(%d,&i);初始化:輸入1時(shí):輸入0時(shí):2.4處理過程設(shè)計(jì)程序整體的處理過程描述如下:實(shí)驗(yàn)要求是倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn),然而,出庫(kù)的前提就是入庫(kù),所以還需要寫一個(gè)入庫(kù)的程序,輸入貨物及其信息。首先是增加庫(kù)存,再接下來(lái)有5個(gè)選擇分別是貨物出庫(kù)、查找貨物表、顯示倉(cāng)庫(kù)貨物表,輸出到文件和退出,運(yùn)用這5個(gè)操作,實(shí)現(xiàn)對(duì)出庫(kù)管理的操作,在程序設(shè)計(jì)中,運(yùn)用到了對(duì)數(shù)據(jù)的增加,刪除(即出庫(kù))、查找、輸出等 。3 系統(tǒng)測(cè)試 3.1用例測(cè)試描述在程序中輸入如下信息:貨物的種類為: 6編號(hào)物品名稱數(shù)量001綠茶300002紅茶350003可樂200004果汁400005酸奶1000006牛奶500分別在測(cè)試這些數(shù)據(jù)是否能出庫(kù)、顯示、查找等。 3.2測(cè)試方法根據(jù)用例反復(fù)檢測(cè),看調(diào)試的過程中是否出現(xiàn)錯(cuò)誤的結(jié)果,如是否當(dāng)文件中沒有要查找的數(shù)據(jù)時(shí),程序是否可以正常運(yùn)行,是否在查找的時(shí)候能準(zhǔn)確找到物品,其中最核心的方法就是把各種情況都想到,把代碼的各個(gè)角落都測(cè)試到,這樣就可以確保程序的準(zhǔn)確性和健壯性。3.3測(cè)試結(jié)果(1) 文本中的內(nèi)容(2)顯示倉(cāng)庫(kù)內(nèi)信息:(3)查找倉(cāng)庫(kù)內(nèi)物品出庫(kù):上述出庫(kù)后,倉(cāng)庫(kù)內(nèi)的剩余貨物:4 設(shè)計(jì)總結(jié) 4.1設(shè)計(jì)特點(diǎn)(優(yōu)缺點(diǎn))本次設(shè)計(jì),由于重點(diǎn)是出庫(kù),而出庫(kù)的前提是入庫(kù),即在編寫程序的時(shí)候還要加上入庫(kù)的函數(shù)。程序的還有一個(gè)特點(diǎn)就是如果有需要,能一直循環(huán)下去知道所有的貨物都輸出來(lái)。程序的優(yōu)點(diǎn)是,簡(jiǎn)潔,易懂。一就實(shí)現(xiàn)了出庫(kù),出庫(kù),并能隨時(shí)顯示倉(cāng)庫(kù)內(nèi)的物品,查找到所需物品。 程序的另一個(gè)優(yōu)點(diǎn)是界面設(shè)計(jì)精致,雖然是字符界面,但程序相當(dāng)好用。關(guān)于如何使用,屏幕上的輸出提示的很清楚,再加上精美的外觀,使人愛不釋手。設(shè)計(jì)中也存在著許多不足,如對(duì)于數(shù)據(jù)信息,比較簡(jiǎn)潔,貨物信息也比較少,這點(diǎn)還有待改進(jìn),還有就是有些話重復(fù)很多次,有點(diǎn)羅嗦。對(duì)一些關(guān)于格式化輸出的函數(shù)掌握并不熟練,還需要進(jìn)一步的學(xué)習(xí)。 4.2收獲和體會(huì)本次強(qiáng)化訓(xùn)練開放性和綜合性很強(qiáng),要求我們利用以前所學(xué)的的所有知識(shí),來(lái)開發(fā)本次的倉(cāng)庫(kù)入庫(kù)管理系統(tǒng),雖然本次系統(tǒng)是字符界面,但在思想上和方法上有了一定的提高。首先,對(duì)于文件讀寫的運(yùn)用,這開始對(duì)我來(lái)是一個(gè)盲點(diǎn),因?yàn)樵贑+這門課上,我們從未提及過這方面的知識(shí),雖然自己曾經(jīng)看過,但只是掌握了一些皮毛。而本次訓(xùn)練,是我在原有的基礎(chǔ)上,強(qiáng)化了對(duì)文本讀寫操作的理解。在思想方法上,我了解到,一個(gè)真正的系統(tǒng)是有一個(gè)堅(jiān)實(shí)的數(shù)據(jù)庫(kù)的,而我們現(xiàn)在用的文本存儲(chǔ)就是一個(gè)模擬的數(shù)據(jù)庫(kù)。其次,強(qiáng)化面向?qū)ο蟮乃枷耄詮膶W(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)這門課程,為了用C+對(duì)文本進(jìn)行讀寫,在操作中用到了類、對(duì)象等。再次體會(huì)封裝思想,強(qiáng)化了已有的知識(shí)。最后,本次設(shè)計(jì)的功能較齊全,功能全責(zé)要求我們思維有一定的嚴(yán)謹(jǐn)性,本次程序的編寫代碼的長(zhǎng)度有幾百行,難免會(huì)出現(xiàn)一些錯(cuò)誤,不過在更改錯(cuò)誤的過程中,讓我們深刻的了解了許多不該犯的思維誤區(qū),如判斷是否相等的語(yǔ)句x=0寫成了x=0,這造成了判斷語(yǔ)句永遠(yuǎn)為真。諸如此類的小錯(cuò)誤是編寫大程序的禁忌。本次強(qiáng)化訓(xùn)練在理論上和時(shí)間上鞏固了已有的知識(shí),強(qiáng)化了思維,提高了專業(yè)的興趣,使我對(duì)以后的專業(yè)課程興趣盎然。5.參考文獻(xiàn)1C+程序設(shè)計(jì)教程,閔聯(lián)營(yíng),何克右編著,出版社:武漢理工大學(xué)出版社,出版或修訂時(shí)間:2005年7月第1版2數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版),嚴(yán)蔚敏,吳偉民編著,出版社:清華大學(xué)出版社,出版或修訂時(shí)間:1997年4月附表:源代碼#include#include#include#include#define max 32int isempty=0;/標(biāo)志,判斷鏈表是無(wú)否為空typedef struct dnode /* 定義雙向鏈表結(jié)構(gòu)體 */ int number; /* 貨物編號(hào) */ char namemax; /* 貨物名稱 */ int counter; /* 貨物數(shù)量 */ struct dnode *prior, *next;/* 定義兩指針,分別指向其前驅(qū)和后繼 */dlnode; void create(dlnode *L);void input(dlnode *L);void output(dlnode *L);void outnum(dlnode *L);void outname(dlnode *L);void current(dlnode *L);void search(dlnode *L);void print(dlnode *L);void searchnum(dlnode *L);void searchname(dlnode *L);void display(dlnode *L) ;void main() int x; dlnode *L; if(!(L=(dlnode *)malloc(sizeof(dlnode) /分配空間 printf(n); exit(1); create(L);/調(diào)用函數(shù),創(chuàng)建頭節(jié)點(diǎn),并完成庫(kù)存初始化 while(1) /主菜單/ printf( =n); printf( 1. 貨物出庫(kù)n); printf( 2. 查找貨物表n); printf( 3. 顯示倉(cāng)庫(kù)貨物表n); printf( 4. 輸出到文件n); printf( 0. 退出n); printf( =n); printf( 選擇0-4:); scanf(%d,&x); switch(x) case 1:current(L);break;/調(diào)用出庫(kù)函數(shù)case 2:search(L);break;/調(diào)用查找函數(shù) case 3:display(L);break;/調(diào)用顯示輸出函數(shù) case 4:print(L);break;/調(diào)用打印函數(shù) case 0:printf(n bye!see you!n); getchar();getchar();exit(0);/退出程序 default:printf(n Enter erreor!please input 0-4!); getchar();getchar(); void create(dlnode *L)/創(chuàng)建鏈表頭節(jié)點(diǎn)int i; printf(*歡迎使用倉(cāng)庫(kù)出庫(kù)管理的設(shè)計(jì)與實(shí)現(xiàn)*n); isempty=0; /初始化頭節(jié)點(diǎn)的值/ L-next=NULL;L-prior=NULL; L-number=L-counter=0; strcpy(L-name, ); printf(貨物庫(kù)存初始化n);printf(=n);printf( 1.繼續(xù)增加庫(kù)存n);printf( 0.結(jié)束n);printf(=n);scanf(%d,&i);while(i=1)input(L);printf(n=n);printf( 1.繼續(xù)增加庫(kù)存n);printf( 0.結(jié)束n);printf(=n);scanf(%d,&i);void search(dlnode *L) /查找的主要菜單 int y; if(isempty=0) printf(沒有輸入貨物!n); getchar();getchar(); return; else while(1) printf(=n); printf(1.按編號(hào)查詢n); printf(2.按貨物名稱查詢n); printf(0.返回上一層n); printf(=n); printf(選擇0-2:); scanf(%d,&y); switch(y) case 1:searchnum(L);break;/調(diào)用按編號(hào)查找的函數(shù) case 2:searchname(L);break;/調(diào)用按名稱查找的函數(shù) case 0:return;/返回 default:printf(enter error!Please input 0-2!nn); getchar();getchar();printf(nn); void searchnum(dlnode *L)/按編號(hào)查找的函數(shù) int num,flag=0;/flag為是否找到的標(biāo)志 dlnode *head=L; if(isempty=0) printf(沒有貨物被輸入n); getchar();getchar(); return; printf(輸入你要查找的貨物編號(hào):n); scanf(%d,&num); while(L=L-next)!=head) if(L-number=num) flag=1;/flag為1時(shí)表示找到 printf(找到指定編號(hào)貨物 n); printf(n編號(hào):%dn,L-number); printf(名稱:%sn,L-name) ; printf(數(shù)量:%dnn,L-counter); if(flag=0)/flag為0時(shí)表示沒有找到 printf(沒有找到指定編號(hào)貨物,請(qǐng)查看是否還有貨物。n); getchar();getchar();void searchname(dlnode *L)/按名稱查找的函數(shù) int flag=0;/flag為是否找到的標(biāo)志 char na32; dlnode *head=L; if(isempty=0) printf(沒有貨物被輸入n); getchar();getchar(); return; printf(輸入你要查找的貨物名稱n); scanf(%s,&na); while(L=L-next)!=head) if(strcmp(L-name,na)=0) flag=1;/flag為1時(shí)表示找到 printf(找到指定名稱貨物 n); printf(n編號(hào):%dn,L-number); printf(名稱:%sn,L-name) ; printf(數(shù)量:%dnn,L-counter); if(flag=0)/flag為0時(shí)表示沒有找到 printf(沒有找到指定編號(hào)貨物,請(qǐng)查看是否還有貨物。nn); getchar();getchar(); void current(dlnode *L)/貨物出庫(kù)函數(shù) int y; while(1) printf(=n); printf( 1.貨物出庫(kù)n); printf( 0.返回上一層n); printf(=n); printf( 選擇1-2:); scanf(%d,&y); switch(y) case 1:output(L);break;/調(diào)用出庫(kù)函數(shù) case 0:return;/返回上一層 default:printf(enter error!Please input 0-2!); getchar();getchar(); printf(nn); void input(dlnode *L)/定義入庫(kù)函數(shù) dlnode *in,*head; head=in=(dlnode *)malloc(sizeof(dlnode);/分配空間 head=L; printf(n請(qǐng)輸入貨物數(shù)據(jù):n); printf(編號(hào):);scanf(%d,&in-number); printf(名稱:);scanf(%s,&in-name); printf(數(shù)量:);scanf(%d,&in-counter); if(L-next=NULL) /如果只有頭節(jié)點(diǎn), /把剛輸入的in節(jié)點(diǎn) L-next=in; /跟在頭節(jié)點(diǎn)后面 L-prior=in; / in-next=L; / in-prior=L; / isempty+; /isempty加1 else /如果當(dāng)前L的下一個(gè)節(jié)點(diǎn)不是頭節(jié)點(diǎn) while(L=L-next)!=head) /如果輸入的數(shù)大于L-number,則插到L的前面 if(L-numbernumber) in-next=L; in-prior=L-prior; L-prior-next=in; L-prior=in; isempty+; /isempty加1 return; /輸入的編號(hào)比其它編號(hào)都小,則插到最后個(gè)節(jié)點(diǎn),并首尾相連 head-prior-next=in; in-prior=head-prior; head-prior=in; in-next=head; isempty+; /isempty加1 void output(dlnode *L)/出庫(kù)的函數(shù) int y; dlnode *head=L; if(isempty=0)/檢測(cè)是否有貨物輸入 printf(沒有貨物輸入系統(tǒng)n); getchar();getchar(); return ; while(1) printf(=n); printf(1.按編號(hào)出庫(kù)n); printf(2.按名稱出庫(kù)n); printf(0.返回上一層n); printf(=n); printf(選擇0-2:);scanf(%d,&y); switch(y) case 1:outnum(L);break;/調(diào)用按編號(hào)出庫(kù)函數(shù) case 2:outname(L);break;/調(diào)用按名稱出庫(kù)函數(shù) case 0:return; default:printf(enter error!Please input 0-2!); getchar();getchar();printf(nn); void outnum(dlnode *L)/按編號(hào)出庫(kù)函數(shù) int num; dlnode *head=L; printf(請(qǐng)輸入出庫(kù)貨物的編號(hào):); scanf(%d,&num); while(L=L-next)!=head) /如果找到就刪除節(jié)點(diǎn) if(L-number=num) L-prior-next=L-next; L-next-prior=L-prior; isempty-; /isempty減1 printf(編號(hào)為%d的貨物成功出庫(kù),num); getchar();getchar(); return; printf(沒有此編號(hào)的貨物,請(qǐng)查看是否還有貨物。nn); getchar();getchar(

溫馨提示

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

評(píng)論

0/150

提交評(píng)論