倉庫管理系統(tǒng)課程設計88726.doc_第1頁
倉庫管理系統(tǒng)課程設計88726.doc_第2頁
倉庫管理系統(tǒng)課程設計88726.doc_第3頁
倉庫管理系統(tǒng)課程設計88726.doc_第4頁
倉庫管理系統(tǒng)課程設計88726.doc_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、共享知識分享快樂卑微如螻蟻、堅強似大象共享知識分享快樂課程設計報告課程名稱數(shù)據(jù)結構設計題目運動會分數(shù)統(tǒng)計專業(yè)計算機科學與技術班級學號姓名完成日期_2012 年 6 月 8 日_卑微如螻蟻、堅強似大象共享知識分享快樂課程設計任務書設計題目:倉庫管理系統(tǒng)設計內容與要求:【設計內容 】為倉庫設計一個倉庫管理系統(tǒng),記錄存儲貨物的編號、名稱、數(shù)量。并且可以隨時進行出貨和出庫操作、可隨時查看貨物信息?!净疽?】1) 建立一個倉庫管理程序,可以按順序和貨物名稱查詢倉庫存儲情況;2) 可以增加或刪除貨物;3) 可以實現(xiàn)貨物的入庫出庫;4) 能用文件保存?zhèn)}庫貨品信息;指導教師: _ _2012年 6月 8日

2、卑微如螻蟻、堅強似大象共享知識分享快樂課程設計評語成績:指導教師: _年月日卑微如螻蟻、堅強似大象共享知識分享快樂1、問題描述建立一個倉庫管理程序,可以按順序和貨物名稱查詢倉庫存儲情況,也可以增加或刪除貨物信息、實現(xiàn)貨物的入庫出庫,要求能用文件保存?zhèn)}庫貨品信息。2、基本要求(1) 、數(shù)據(jù)要求1) 建議輸入貨物的名稱,編號,數(shù)量等,其余信息學生自行設計;2) 輸出形式:有合理的提示,編號,名稱,數(shù)量對應;3) 數(shù)據(jù)的存儲結構自行設計。4) 倉庫貨物的相關數(shù)據(jù)要存儲在數(shù)據(jù)文件中。(2) 、操作要求建立一個倉庫管理程序,可以按順序和貨物名稱查詢倉庫存儲情況,也可以增加或刪除貨物信息、實現(xiàn)貨物的入庫出

3、庫,要求能用文件保存?zhèn)}庫貨品信息。(3) 、測試數(shù)據(jù)要求測試數(shù)據(jù)要求使用:1、全部合法數(shù)據(jù);2、整體非法數(shù)據(jù);3、局部非法數(shù)據(jù)。進行程序測試,以保證程序的穩(wěn)定。(4) 、界面要求有合理的提示,每個功能可以設立菜單,根據(jù)提示,能完成相關的功能操作并符合要求。(5) 、存儲結構要求學生自己根據(jù)系統(tǒng)功能要求自己設計,但是要求倉庫貨物的相關數(shù)據(jù)要存儲在數(shù)據(jù)文件中。(數(shù)據(jù)文件的數(shù)據(jù)讀寫方法等相關內容在c 語言程序設計的書上,請自學解決)請在最后的上交資料中指明你用到的存儲結構。3、數(shù)據(jù)結構(1) 、定義貨物數(shù)據(jù)類型定義貨物數(shù)據(jù)類型雙向鏈表,用于存放貨物的信息,包括貨物名稱,數(shù)量,編號等信息。typede

4、f struct dnodeint Number;/貨物編號char Namemax; /貨物名稱int Counter;/貨物數(shù)量struct dnode *prior,*next;dlnode,*dlinklist;4、總體設計根據(jù)倉庫管理系統(tǒng)的分析及設計要求,可以將此系統(tǒng)分為四個模塊:信息統(tǒng)卑微如螻蟻、堅強似大象共享知識分享快樂計模塊、信息排序輸出模塊、信息查詢模塊、信息調用模塊。(1)、信息統(tǒng)計模塊實現(xiàn)信息的輸入、統(tǒng)計,涉及函數(shù)有:void Input()、(2)、信息輸出模塊實現(xiàn)信息的輸出,涉及函數(shù)有:void OutputByName()、voidOutputByNum()void

5、 init_linklist()void Show()(3)、信息查詢模塊實現(xiàn)信息的查詢,涉及函數(shù)有:(4)、信息調用模塊實現(xiàn)信息的調用,即從文件中讀出信息并輸出、保存信息,涉及函數(shù)有: void Load() ,void Save()主函數(shù)與各函數(shù)調用關系流程圖、結構圖:倉庫管理系統(tǒng)信息輸入模塊信息輸出模塊信息查詢模塊信息調用模塊信按按息按按信信貨貨輸物物貨貨息息入物物保讀編名編名存取號稱輸輸號稱出出查查詢詢開始總分顯示菜單界面輸入功能序號貨退出物加查查并的載看詢保入貨貨貨存庫物物物信和信信信息出息息息庫主菜單卑微如螻蟻、堅強似大象共享知識分享快樂信息排序輸出模塊流程圖開始信息查詢界面選擇查

6、詢方式按按退貨貨出物物返編名回號稱主查查菜詢詢單主菜單信息查詢模塊流程圖5、詳細設計(1) 、貨物入庫功能void Input() 、void InitList() 是信息輸入、雙鏈表初始化函數(shù),可以按用戶執(zhí)意輸入信息 、包括貨物的名稱編號和數(shù)量。其主要功能流程圖如下:卑微如螻蟻、堅強似大象共享知識分享快樂開 始輸入名稱、編號、數(shù)量N合法?Yinit_linklist(dlinklist *l)結束(2) 、貨物出庫功能void OutputByName() 、void OutputByNum() 兩個函數(shù)分別可實現(xiàn)通過名稱查找出庫和通過編號查找出庫其主要功能流程圖如下:開始輸入名稱或編號N貨

7、物是否存在Y貨物出庫結束(3) 、貨物查詢功能卑微如螻蟻、堅強似大象共享知識分享快樂()void Show()函數(shù)是一個信息查詢函數(shù)及查詢菜單函數(shù),顯示一個查詢菜單, 利用 switch 語句實現(xiàn)按貨物編號查詢和按名稱查詢,利用循環(huán)語句 do while() 返回查詢菜單, break 語句終止循環(huán)。其主要功能流程如下:開始輸入查詢的貨物編號貨物是否存在Y循環(huán)查找N提示未找到輸出信息NY結束(4) 、信息保存及讀取void save() 、void ReadInfo() 這兩個函數(shù)分別實現(xiàn)信息保存到文件以及從文件中讀取信息的功能。 把信息保存到文件中以及讀取保存在文件里的信息并輸出。由于采用的

8、是鏈式存儲,可以很方便的一下把文件里的信息全部讀取出來,再依次創(chuàng)建生成雙鏈表,將信息全部讀到兩個雙鏈表中存儲。其主要功能流程圖如下:卑微如螻蟻、堅強似大象共享知識分享快樂開始創(chuàng)建文件Y數(shù)據(jù)寫入文件關閉文件結 束6、測試與調試1、輸出界面運行程序,進入主菜單界面,用戶可以選擇貨物入庫出庫、加載貨物信息、信息查詢、保存信息到文件、從文件中讀入信息、退出系統(tǒng)等操作選項。為了避免再次輸入大量信息,可以先選擇從文件中讀入信息,將以前輸入的信息重新顯示在屏幕上,再進行后續(xù)操作。主菜單界面如圖所示:(1)、貨物的入庫卑微如螻蟻、堅強似大象共享知識分享快樂按照程序引導輸入貨物信息輸入蘋果、橘子、饅頭各10 個

9、。(2)、輸出所有貨物信息信息在主菜單輸入 3 進入貨物查看界面,所有貨物信息如下圖顯示所示:(3)、貨物出庫在主菜單中輸入1 進行貨物出庫選擇按名稱出庫輸出出庫結果卑微如螻蟻、堅強似大象共享知識分享快樂選擇按編號出庫輸出出庫結果(4)、查詢信息輸入 4 進入信息查詢界面,用戶可根據(jù)自己喜好選擇按貨物編號查詢、按貨物名稱查詢或者退出返回主菜單。信息查詢界面如圖所示:用戶可根據(jù)自己喜好選擇按哪種方式查詢,查詢結束后,按任意鍵返回信息查詢界面。輸入 3 則返回主菜單。以下是分別按照貨物編號、貨物名稱查詢的情況。按貨物編號查詢情況:卑微如螻蟻、堅強似大象共享知識分享快樂按貨物名稱查詢:(5)、調用信

10、息為了避免每次運行程序時都要輸入大量數(shù)據(jù),在第一次運行程序后,就已經(jīng)將信息自動存檔,再次運行時,可以先直接調用信息,按任意鍵返回主菜單,再進行后續(xù)操作。調用的信息如圖所示:顯示文件中讀取的信息如圖所示:卑微如螻蟻、堅強似大象共享知識分享快樂(6)退出系統(tǒng)輸入 0 則退出系統(tǒng),并保存信息。如圖所示:3、調試分析運行程序,進入主菜單界面,用戶可以根據(jù)編號選擇測試數(shù)據(jù):選擇 1 號功能進入輸入信息模塊,根據(jù)提示信息將以下信息輸入系統(tǒng)中。名稱:蘋果。編號: 1。數(shù)量: 10名稱:橘子。編號: 2。數(shù)量: 10名稱:饅頭。編號: 3。數(shù)量: 10存在問題的思考及算法的改進設想:1 顯示的內容堆積在一個屏

11、幕上,看著很混亂,用C 語言里的 clrscr()函數(shù)在 VC+里似乎不能用,上網(wǎng)查了下資料,找到了一個頭文件為stdlib.h的清屏函數(shù) system(” cls ”)。2 調試程序時, 遇到了屏幕一閃又回到原來界面的情況,沒有輸出想要得到的信息,原來是信息在屏幕上顯示后,程序執(zhí)行到了清屏函數(shù),所以立馬清屏了,為了看到輸出信息,調用 system(” pause”)函數(shù),使程序暫停,以讓用戶看到輸出地信息,然后再按任意鍵繼續(xù)執(zhí)行程序。3 對于讀寫文件不是很熟悉, fread 和 fwrite 函數(shù)不是很會用,在讀出文件里的信息并輸出時花了很長時間,不過,最后總算是會用了。4、設計總結本次課程

12、設計是圍繞數(shù)據(jù)結構進行。根據(jù)問題描述可知,需要解決問題并不復雜,整個問題只需要實現(xiàn)一個員工管理系統(tǒng)功能,那就是在這個系統(tǒng)中實現(xiàn)對職工信息的插入、刪除、查詢、排序、修改。但是,為了實現(xiàn)該功能,卻需要一定的算法和數(shù)據(jù)結構以保證實現(xiàn)的時間和空間效率。把職工信息存儲在一個單鏈表中,利用指針實現(xiàn)對卑微如螻蟻、堅強似大象共享知識分享快樂職工信息的各項基本操作。經(jīng)過這次數(shù)據(jù)結構課程設計,我們不僅及時鞏固的了數(shù)據(jù)結構、算法、以及軟件工程的知識,并明白數(shù)據(jù)結構和算法對于程序時間和空間性能的影響,及軟件工程提供的開發(fā)流程和工具對于實現(xiàn)特定功能程序的重要意義。當我們面對一個實際問題,應該迅速根據(jù)問題性質和特點抽象成

13、特定的數(shù)據(jù)結構,當然每個問題都有可能能夠抽象成多種數(shù)據(jù)結構,每種數(shù)據(jù)結構適應于不同的算法。 因此應該綜合考慮這樣的數(shù)據(jù)結構、算法以及它們的空間和時間效率,然后從中選擇一個作為實現(xiàn)程序的基礎。此外,對程序的測試應該要仔細,根據(jù)模塊的特點和測試階段,采用各種軟件測試方法對程序進行測試,確保各個模塊的正確性和完整性,最后集成起來測試其是否正確和完整地實現(xiàn)了問題描述中要求的功能。7、源程序清單源代碼: #include#include#include#define OK 1#define ERROR 0#define max 20typedef struct dnodeint Number;char

14、Namemax;int Counter;卑微如螻蟻、堅強似大象共享知識分享快樂struct dnode *prior,*next;dlnode,*dlinklist;int Menu()int flag;system(cls);printf(tt歡迎進入倉庫管理系統(tǒng)! n);printf(tt-1、貨物的入庫和出庫;n);printf(tt-2、加載貨物信息;n);printf(tt-3、查看貨物信息;n);printf(tt-4、查詢貨物信息;n);printf(tt-0、退出并保存信息;n);printf(tt請選擇操作 :);scanf(%d,&flag);return flag;int

15、 Menu1()int flag;system(cls);printf(ttt1、貨物的入庫; n);printf(ttt2、貨物的出庫; n);printf(ttt3、返回主菜單; n);printf(ttt請選擇操作: );scanf(%d,&flag);return flag;int Menu2()int flag;system(cls);printf(ttt1、按編號查詢; n);printf(ttt2、按名稱查詢; n);printf(ttt3、返回主菜單; n);printf(ttt請選擇操作: );scanf(%d,&flag);return flag;int Menu3()in

16、t flag;system(cls);卑微如螻蟻、堅強似大象共享知識 分享快樂printf(ttt1、按名稱出庫; n);printf(ttt2、按編號出庫; n);printf(ttt3、返回上一層; n);printf(ttt請選擇操作: );scanf(%d,&flag);return flag;void init_linklist(dlinklist *l)*l=(dlinklist)malloc(sizeof(dnode);(*l)-prior=NULL;(*l)-next=NULL;void Input(dlinklist L)dlnode *s,*p;int number,cou

17、nter;char namemax;printf(ttt請輸入貨物編號: );scanf(%d,&number);getchar();printf(ttt請輸入貨物名稱: );scanf(%s,name);printf(ttt請輸入貨物的數(shù)量: );scanf(%d,&counter);getchar();s=(dlnode*)malloc(sizeof(dnode);s-Number=number;strcpy(s-Name,name);s-Counter=counter;if(L-next=NULL)L-next=s;s-prior=L;s-next=NULL;elsewhile(L=L-

18、next)!=NULL)if(s-NumberNumber)break;p=L;if(L=NULL)卑微如螻蟻、堅強似大象共享知識分享快樂p-next=s;s-prior=p;s-next=NULL;elseif(L-Number=s-Number)L-Counter=L-Counter+s-Counter;elses-prior=L-prior;L-prior-next=s;s-next=L;L-prior=s;printf(ttt入庫成功! n);printf(ttt);system(pause);void Show(dlinklist L)dlinklist p;p=L-next;pri

19、ntf(ttt名稱 tt編號 tt數(shù)量 n);while(p!=NULL)printf(ttt%stt%dtt%dn,p-Name,p-Number,p-Counter); p=p-next;printf(ttt);system(pause);void OutputByNum(dlinklist L,int num)int num1;dlnode *p;p=L;while(p=p-next)!=NULL)if(p-Number=num)break;if(p=NULL)printf(ttt倉庫中沒有該編號的貨物!n);卑微如螻蟻、堅強似大象共享知識分享快樂elseprintf(ttt貨物的信息是

20、 :n);printf(ttt貨物的編號: );printf(%dn,p-Number);printf(ttt貨物的名稱: );printf(%sn,p-Name);printf(ttt貨物的數(shù)量: );printf(%dn,p-Counter);printf(ttt請輸入貨物出庫的數(shù)量:);scanf(%d,&num1);getchar();if(p-Counternum1)p-Counter=p-Counter-num1;printf(ttt 出 庫 成 功 ! 倉 庫 中 %s 剩 余 的 數(shù) 量為: %dn,p-Name,p-Counter);else if(p-Counter=num

21、1)if(p-next=NULL)p-prior-next=NULL;free(p);elsep-prior-next=p-next;p-next-prior=p-prior;free(p);printf(ttt出庫成功!貨物已經(jīng)全部出庫!n);else printf(ttt倉庫中貨物數(shù)量不夠出庫數(shù)量,請核實貨物信息!n);printf(ttt );system(pause);void OutputByName(dlinklist L,char namemax)int num1;dlnode *p;卑微如螻蟻、堅強似大象共享知識分享快樂p=L;while(p=p-next)!=NULL)if(

22、strcmp(name,p-Name)=0)break;if(p=NULL)printf(ttt倉庫中沒有叫該名稱的貨物!n);elseprintf(ttt貨物的信息是 :n);printf(ttt貨物的編號: );printf(%dn,p-Number);printf(ttt貨物的名稱: );printf(%sn,p-Name);printf(ttt貨物的數(shù)量: );printf(%dn,p-Counter);printf(ttt請輸入貨物出庫的數(shù)量:);scanf(%d,&num1);getchar();if(p-Counternum1)p-Counter=p-Counter-num1;p

23、rintf(ttt 出 庫 成 功 ! 倉 庫 中 %s 剩 余 的 數(shù) 量為: %dn,p-Name,p-Counter);else if(p-Counter=num1)if(p-next=NULL)p-prior-next=NULL;free(p);elsep-prior-next=p-next;p-next-prior=p-prior;free(p);printf(ttt出庫成功!貨物已經(jīng)全部出庫!n);else printf(ttt倉庫中貨物數(shù)量不夠出庫數(shù)量,請核實貨物信息!n);printf(ttt );卑微如螻蟻、堅強似大象共享知識分享快樂system(pause);void Sa

24、ve(dlinklist L)dlnode *p;p=L-next;FILE *fp;if(fp=fopen(stu.txt,w)=NULL)printf(ttt文件打開失敗 !n);return;while(p!=NULL)fprintf(fp,%d %s %d ,p-Number,p-Name,p-Counter); p=p-next;fclose(fp);printf(ttt數(shù)據(jù)存儲成功 !謝謝使用 !n);printf(ttt);system(pause);void Load(dlinklist L)dlnode *r,*s;r=L;FILE *fp;if(fp=fopen(stu.t

25、xt,r)=NULL)printf(tttt文件打開失敗 !n);return;while(!feof(fp)s=(dlnode*)malloc(sizeof(dnode);fscanf(fp,%d %s %d ,&s-Number,&s-Name,&s-Counter);r-next=s;s-prior=r;r=s;r-next=NULL;fclose(fp);卑微如螻蟻、堅強似大象共享知識分享快樂printf(tttt加載數(shù)據(jù)成功! n);printf(tttt);system(pause);dlnode *SrchByName(dlinklist L,char namemax)dlnod

26、e *p;p=L-next;while (p!=NULL)if (strcmp(p-Name,name)!=0)p=p-next;elsebreak;return p;dlnode *SrchByNumber(dlinklist L,int num)dlnode *p;p=L-next;while (p!=NULL)if (p-Number!=num)p=p-next;elsebreak;return p;void main()int num1,num2;int flag=1,flag1=1,flag2=1;char name1max,name2max;dlinklist L;init_lin

27、klist(&L);while(1)switch(Menu()case 1:while(1)卑微如螻蟻、堅強似大象共享知識分享快樂switch(Menu1()case 1:Input(L);break;case 2:while(1)switch(Menu3()case 1:printf(ttt請輸入要出庫的貨物的名稱:);scanf(%s,name1);OutputByName(L,name1);break;case 2:printf(ttt 請輸入要出庫的貨物的編號: ); scanf(%d,&num1);getchar();OutputByNum(L,num1);break;case 3:flag=0;break;default:printf(ttt選擇錯誤!請重新選擇!n);printf(ttt );system(pause);if(flag=0)break;break;case 3:flag1=0;break;default:printf(ttt選擇錯誤 ! 請重新選擇 !n);printf(ttt );system(pause);卑微如螻蟻、堅強似大象共享知識分享快樂if(flag1=0)break;break;case 2:Load(L);break;case 3:Show(L);break;case 4:while(1

溫馨提示

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

評論

0/150

提交評論