倉庫管理系統(tǒng)程序的設計訓練報告_第1頁
倉庫管理系統(tǒng)程序的設計訓練報告_第2頁
倉庫管理系統(tǒng)程序的設計訓練報告_第3頁
倉庫管理系統(tǒng)程序的設計訓練報告_第4頁
倉庫管理系統(tǒng)程序的設計訓練報告_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 . . 39/40HUNAN UNIVERSITY程序設計訓練報 告學生xxxx xxxxx學生學號 xx2 xxx 專業(yè)班級 xxxx班指導老師 xxxx院長 xxx2012 年6月 12 日目錄TOC o 1-3 h z uHYPERLINK l _Toc2126964641軟件開發(fā)平臺 PAGEREF _Toc212696464 h 2HYPERLINK l _Toc2126964652軟件功能說明 PAGEREF _Toc212696465 h 2HYPERLINK l _Toc2126964662.1功能分析說明圖3HYPERLINK l _Toc2126964672.2各項功能說

2、明3HYPERLINK l _Toc2126964683軟件設計詳細容5HYPERLINK l _Toc2126964693.1采用的主要數(shù)據(jù)結構類型5HYPERLINK l _Toc2126964703.2流程圖6HYPERLINK l _Toc2126964714軟件測試11HYPERLINK l _Toc2126964724.1軟件測試用例11HYPERLINK l _Toc2126964734.2軟件測試報告25HYPERLINK l _Toc2126964755附錄26HYPERLINK l _Toc2126964765.1軟件使用說明26HYPERLINK l _Toc212696

3、4775.2源碼26HYPERLINK l _Toc2126964785.3參考文獻376 心得38軟件開發(fā)平臺配置環(huán)境 Windows 7(32位) 系統(tǒng) 運行環(huán)境 Windows 7(32位) 系統(tǒng)開發(fā)工具 Dev C+ 程序語言 C 語言軟件功能說明倉庫產品管理系統(tǒng)要求記錄產品的名稱、制造商、產地、原有產量、現(xiàn)有量、編號、產品位置。亓學忠: 1、創(chuàng)建產品信息2、輸出產品信息3、修改產品信息4、插入產品信息5、刪除產品信息6、查詢某產品信息7、按產品名稱排序8、按產品編號排序9、保存產品信息到文件10、從文件文件中讀取產品信息朱宏偉: 1、目錄 2、主函數(shù)倉庫產品管理系統(tǒng)輸入產品信息輸出產

4、品信息修改產品信息產品信息排序插入產品信息刪除產品信息查詢產品信息退出系統(tǒng)按產品名稱排序按產品編號排序2.1功能分析說明圖2.2各項功能說明要求對分別上面的每個功能模塊進行詳細的文字說明輸入模塊 createList()在主函數(shù)里面選擇1 進入輸入模塊, 首先建立一個名為product 的文本文檔,用scanf函數(shù)依次從鍵盤輸入產品名稱 制造商 產地 原產量 現(xiàn)有量 編號 存放位置。 然后再把這些信息用printf函數(shù)寫入文本文檔,如果輸入錯誤要重新輸入。最后關閉文件。 打印模塊 printList() 在主函數(shù)里面選擇2 進入打印模塊, 打開名為product的文本文檔,然后依次把文本里的產

5、品名稱 制造商 產地 原有量 現(xiàn)有量 編號 存放位置,用printf函數(shù)文本讀出來,用printf 函數(shù)顯示出來,再關閉文件。查找模塊 find()在主函數(shù)里面選擇8 進入查找模塊,再打開名為product的文本文檔,然后輸入要查找的產品的名稱,通過strcmp函數(shù)找到該產品的位置,再通過printf函數(shù)輸出該產品息。如果庫中沒有此種產品,會提示輸入錯誤,重新輸入產品名稱。然后關閉文件退出查找模塊。修改模塊 changeproduct()在主函數(shù)里面選擇7進入輸入模塊,然后打開名為protect的文本文檔,輸入要修改的產品的名稱,通過strcmp函數(shù)找到該產品的位置,找到后直接輸入新的信息,如

6、果產品庫中沒有此種產品的名稱,會提示重新輸入產品名稱。然后關閉文件。刪除模塊 delproduct()在主函數(shù)里面選擇5 進入刪除模塊,然后打開名為product的文本文檔,然后要刪除的產品的名稱,通過strcmp函數(shù)找到該產品位置,找到后又分三種情況: 1、如果該產品在鏈首,那么直接把鏈首位置后移到下一鏈節(jié),然后清除此鏈節(jié)所占存; 2、如果產品信息在鏈尾,那么直接上一鏈節(jié)指向NULL,然后清除此鏈節(jié)所占空間; 3、如果產品信息在鏈中,那么直接把上一鏈節(jié)的指針跳過此鏈節(jié)指向下一連接,然后清除此鏈節(jié)所占空間。 如果找不到此種產品,會提示重新輸入產品名稱,正確輸入后按上面的三種情況運行此模塊。 刪

7、除后退出刪除模塊。插入模塊 insertproduct() 在主函數(shù)里選擇6進入到插入模塊,打開名為product的文本文檔,然后直接輸要插入的產品的名稱 制造商 產地 原產量 現(xiàn)有量 編號 存放位置,然后此模塊會直接把該信息插入到信息首位,插入后退出此模塊。排序模塊 namesortList()或者numberssortList()在主函數(shù)里選擇3進入按產品名稱排序模塊,選擇4進入按產品編號排序模塊,打開名為product的文本文檔,然后模塊會通過鏈節(jié)一個一個對比彼此的名稱大小(用strcmp函數(shù))或者編號大小,然后小者在前,大者在后重新排序,排序后退出此模塊。退出系統(tǒng)模塊通過輸入0選擇直接

8、退出系統(tǒng)3軟件設計詳細容3.1 采用的主要數(shù)據(jù)結構類型倉庫管理系統(tǒng):#include #include #include 鏈表3.2 流程圖1、main()函數(shù)流程圖:namesortList(h)numberssortList(h)breakbreakinput select select=0? select=1? Select=2?createList()breakbreakbreakbreakreturnmain()YNNYY Select=3?NN Select=4?N Select=5?YYprintList(h)Ndelproduct(h)NNN Select=7? Select=

9、6?YYYinsertproduct(h) Select=10?N Select=9? Select=8?breakbreakYYchangeproduct(h) find(h) load(h)breakbreakY save(h)2、createList()函數(shù)流程圖:printf(); input ni=1?i=3?i=2?printf();printf();i=n?NYNYYNY printf();return h3、printList()函數(shù)流程圖: returnnewNode-next!=NULL?N printf();Y newNode=newNode-nextinput name

10、Ycur=NULL?printf();YNstrcmp(cur-name,name.)?curpre=curcur=cur-next4、find()函數(shù)流程圖:N5、changeproduct()函數(shù)流程圖:input nameYcur=NULL?printf();YNstrcmp(cur-name,name.)?curpre=curcur=cur-nextNinput nameNNstrcmp(cur- name,name)?curpre=curcur=cur-nextNNcur!=NULL?cur=h?h=h-nextfree(cur)cur-next=NULL?curpre-next=N

11、ULLfree(cur)curpre-next=cur-nextfree(cur)6、delproduct()函數(shù)流程圖:YreturnYYY軟件測試4.1軟件測試用例創(chuàng)建產品信息輸出數(shù)據(jù)按名稱排序按產品編號排序刪除產品信息插入產品信息7、修改產品信息查詢產品信息保存打開文件退出軟件4.2軟件測試報告將4.1 測試過程中能完成的功能和不能完成的功能以與不能完全完成的功能進行列表分析,指出測試結果和出錯原因,例如:標號項目預期結果實際結果出錯原因出錯次數(shù)01主函數(shù)菜單美觀的菜單得到美觀的菜單無無02輸入產品信息正確輸入數(shù)據(jù)完成無無03輸出產品信息正確輸出數(shù)據(jù)完成無無04按名稱排序正確排序完成無無

12、05按產品編號排序正確排序完成無無06刪除產品信息正確刪除數(shù)據(jù)完成無無07修改產品信息正確修改完成無無08查詢產品信息正確查詢到信息完成無無09退出系統(tǒng)正確退出系統(tǒng)完成無無5.附錄5.1軟件使用說明運行條件:本軟件可以在Dev C+ 和 Visual C+ 里運行,在Turbo C 下不能運行,其他編程軟件沒有測試。進入菜單, 選擇你要執(zhí)行模塊,在初次使用時,應收先選擇數(shù)字1 輸入航班信息后才能使用其他模塊,5.2源碼/*倉庫產品管理系統(tǒng)亓學忠*/#include /*包含常用庫函數(shù)*/#include /*包含strcmp、strcpy字符串比較拷貝函數(shù)*/#include /*包含exit

13、強制結束函數(shù)*/#includestruct product /*定義相關鏈表*/char name12; /*產品名稱*/char manufacturer30; /*制造商*/char origin30; /*產地*/int originqun; /*產品原有數(shù)量*/int nowqun; /*現(xiàn)有產品數(shù)量*/int numbers; /*產品編號*/char location30; /*存放位置*/struct product *next; /*指向下一個同類型結構*/;void W()printf(nnn);printf(tn);printf(tn);printf(tn);printf

14、(tn);printf(tn);printf(tn);printf(t 歡迎使用產品庫存管理系統(tǒng) n);printf(tn);printf(t 按任意鍵繼續(xù) n);printf(tn);printf(tn);printf(tn);printf(tn);printf(tn);printf(tn);getch();struct product *createList() /*定義新建產品信息函數(shù)*/struct product *head=NULL,*cur=NULL,*curnext=NULL; /*定義頭節(jié)點、當前節(jié)點、下一個節(jié)點*/int n,i; /*定義節(jié)點數(shù)、循環(huán)變量*/printf(

15、t請輸入要創(chuàng)建的節(jié)點數(shù):); scanf(%d,&n);for(i=0;iname,curnext-manufacturer,curnext-origin,&(curnext-originqun),&(curnext-nowqun),&(curnext-numbers),curnext-location);if(curnext-originqunnowqunoriginqunnowqun) /*判斷輸入數(shù)據(jù)是否正確*/ printf(nt輸入數(shù)據(jù)錯誤,請重新輸入!nn);goto A;curnext-next=NULL;head=curnext; /*將cuenext賦給頭節(jié)點*/cur=cu

16、rnext; /*將cuenext賦給當前節(jié)點cur*/elsecurnext=(struct product*)malloc(sizeof(struct product); /*開辟下一個節(jié)點需要的空間*/B: printf(t請輸入第%d種產品的:名稱 制造商 產地 原產量 現(xiàn)有量 編號 存放位置n,i+1);printf(t);scanf(%s%s%s%d%d%d%s,curnext-name,curnext-manufacturer,curnext-origin,&(curnext-originqun),&(curnext-nowqun),&(curnext-numbers),curn

17、ext-location);if(curnext-originqunnowqunoriginqunnowqun) /*判斷輸入數(shù)據(jù)是否正確*/ printf(nt輸入數(shù)據(jù)錯誤,請重新輸入!nn);goto B;curnext-next=NULL;cur-next=curnext; /*將當前節(jié)點與下個節(jié)點連接起來*/cur=curnext; /*當前節(jié)點后移*/system(cls); /*DOS清屏*/printf(nt恭喜你輸入已完成。nn);return head; /*結束輸入信息并返回主菜單*/;void printList(struct product *h) /*定義輸出產品信息

18、函數(shù)*/struct product *newNode; newNode=h; /*獲取鏈表頭指針*/ system(cls);printf(nt名稱t制造商t產地t原產量t現(xiàn)有量t編號t存放位置);while(newNode-next!=NULL)printf(nt%st%st%st%dt%dt%dt%s,newNode-name,newNode-manufacturer,newNode-origin,newNode-originqun,newNode-nowqun,newNode-numbers,newNode-location);newNode=newNode-next;printf(n

19、t%st%st%st%dt%dt%dt%sn,newNode-name,newNode-manufacturer,newNode-origin,newNode-originqun,newNode-nowqun,newNode-numbers,newNode-location);printf(n);struct product *delproduct(struct product *h) /*定義刪除某位產品的信息函數(shù),名稱由用戶輸入*/struct product *cur=NULL,*curpre=NULL;char name12;G:printf(t請輸入要刪除的產品名稱:);scanf(

20、%s,name);cur=h;while(cur!=NULL&strcmp(cur-name,name) /*查找產品位置*/curpre=cur; /*如果不是所需節(jié)點,curpre指向后移*/cur=cur-next; /*cur也后移*/if(cur=NULL) /*如果沒有找到*/printf(nt沒有找到該產品,請重新輸入!nn); goto G;if(!strcmp(cur-name,name) /*如果找到該產品*/if(cur=h) /*如果該節(jié)點在鏈首*/h=h-next; /*當前鏈首后移*/free(cur); /*釋放鏈首所占存*/ elseif(cur-next=NU

21、LL) /*如果該節(jié)點在鏈尾*/curpre-next=NULL; /*前一個鏈節(jié)指向空*/free(cur); /*釋放鏈尾所占存*/else /*如果該節(jié)點在鏈中*/curpre-next=cur-next; /*該節(jié)點的前一位鏈節(jié)指向該鏈節(jié)后的下一位節(jié)點*/ free(cur); /*釋放該節(jié)點所占存*/system(cls);printf(nt已成功刪除該產品信息!nn);return h; /*結束該函數(shù)且返回新鏈表后返回主菜單*/struct product *changeproduct(struct product *h) /*定義修改產品信息函數(shù)*/struct product

22、 *cur=NULL,*curpre=NULL;char name12;D:printf(t請輸入要修改產品名稱:);scanf(%s,name);cur=h;while(cur!=NULL&strcmp(cur-name,name) /*查找產品位置*/curpre=cur;cur=cur-next;if(cur=NULL) /*如果沒有找到*/printf(nt沒有找到該產品,請重新輸入!nn);goto D; if(!strcmp(cur-name,name) /*如果找到該產品*/E: printf(nt名稱 制造商 產地 原產量 現(xiàn)有量 編號 存放位置n); /*輸入該產品的新信息*

23、/printf(t);scanf(%s%s%s%d%d%d%s,cur-name,cur-manufacturer,cur-origin,&(cur-originqun),&(cur-nowqun),&(cur-numbers),cur-location);if(cur-originqunnowqunoriginqunnowqun) /*判斷輸入數(shù)據(jù)是否正確*/ printf(nt輸入數(shù)據(jù)錯誤,請重新輸入!nn);goto E; system(cls);printf(nnt已成功修改信息!nn);return h;struct product *insertproduct(struct pro

24、duct *h) /*插入新產品信息到鏈首*/struct product *newproduct=NULL;newproduct=(struct product*)malloc(sizeof(struct product);C:printf(t請輸入新產品的信息:名稱 制造商 產地 原有量 現(xiàn)有量 編號 存放位置n );printf(t);scanf(%s %s %s %d %d %d %s,newproduct-name,newproduct-manufacturer,newproduct-origin,&(newproduct-originqun),&(newproduct-nowqun

25、),&(newproduct-numbers),newproduct-location);if(newproduct-originqunnowqunoriginqunnowqun) /*判斷輸入數(shù)據(jù)是否正確*/printf(nt輸入數(shù)據(jù)錯誤,請重新輸入!nn);goto C;newproduct-next=h;h=newproduct;system(cls); /*DOS清屏*/printf(nnt已成功插入新產品信息!nn);return h;struct product *namesortList(struct product *h) /*按名稱對產品進行排序*/struct produc

26、t *newH=NULL,*newT=NULL,*cur,*curPre,*min,*minPre;if(h=NULL) /*空鏈*/return h;while(h!=NULL)minPre=curPre=min=cur=h;while(cur!=NULL) /*檢索名稱最小的點*/if(strcmp(cur-name,min-name)next;if(newH=NULL) /*新鏈為空*/newH=min;newT=min;elsenewT-next=min; /*附到新鏈尾*/newT=newT-next; /*將最小節(jié)點和原鏈分離*/if(min=h) /*min在鏈首*/h=h-ne

27、xt;elseif(min-next=NULL)minPre-next=NULL;elseminPre-next=min-next;min-next=NULL;system(cls);printf(nnt已成功按名稱排名!nn);return newH; struct product *numberssortList(struct product *h) /*按產品編號排序*/struct product *newH=NULL,*newT=NULL,*cur,*curPre,*min,*minPre;if(h=NULL)return h;while(h!=NULL)minPre=curPre=

28、min=cur=h;while(cur!=NULL)if(cur-numbersnumbers)min=cur;minPre=curPre;curPre=cur;cur=cur-next;if(newH=NULL)newH=min;newT=min;elsenewT-next=min;newT=newT-next;if(min=h)h=h-next;elseif(min-next=NULL)minPre-next=NULL;elseminPre-next=min-next;min-next=NULL;system(cls);printf(nnt已成功按編號排名!nn);return newH;

29、void find(struct product *h) /*按產品名查詢某產品信息*/struct product *cur=NULL,*curpre=NULL;char name12;F:printf(t請輸入要查詢的產品名稱:); /*要查詢的對象名*/scanf(%s,name);cur=h;while(cur!=NULL&strcmp(cur-name,name) /*查找產品位置*/curpre=cur;cur=cur-next;if(cur=NULL) /*如果沒有找到*/printf(nt沒有找到該產品,請重新輸入!nn); goto F;if(!strcmp(cur-name

30、,name) /*找到該產品*/system(cls); /*DOS清屏*/printf(nnt該產品信息:nn);printf(t名稱t制造商t產地t原產量t現(xiàn)有量t編號t存放位置n); printf(t%st%st%st%dt%dt%dt%snn,cur-name,cur-manufacturer,cur-origin,cur-originqun,cur-nowqun,cur-numbers,cur-location);void save(struct product *h) /*保存*/FILE *fp;struct product *cur;fp=fopen(product.txt,w

31、b); /*打開文件進行操作*/if(fp=NULL) /*若打開失敗*/printf(t文件打開失敗n);return;cur=h;while(cur!=NULL) /*若正確打開*/fwrite(cur,sizeof(struct product),1,fp); /*保存操作*/ cur=cur-next ;fclose(fp); /*操作完關閉文件*/fflush(stdin);/*清除緩存*/system(cls);printf(nt恭喜你已成功保存數(shù)據(jù)!nn);struct product *load(struct product *h) /*打開文件*/struct product

32、 *cur,*temp,*newproduct,product;FILE *fp;fp=fopen(product.txt,rb); /*打開文件進行操作*/if(fp=NULL) /*打開失敗*/printf(t打開失敗!n);return h;if(h!=NULL) /*成功打開*/cur=h;while(cur!=NULL)temp=cur;cur=cur-next;free(temp);while(fread(&product,sizeof(struct product),1,fp)!=0)newproduct=(struct product*)malloc(sizeof(struct product);*newproduct=product;newproduct-next=NULL;if(h=NULL)temp=h=newproduct;elsetemp-next=newproduct;temp=newproduct;system(cls);printf(nt已成功打開文件!nn);fclose(fp);return h;void menu() /*目錄*/printf(t目錄n);printf(tn);printf(t 1 創(chuàng)建產品信息 n);printf(t 2 輸出產品信息 n);printf(t 3 按名稱排序 n);printf(t

溫馨提示

  • 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

提交評論