倉庫管理系統(tǒng)畢業(yè)論文_第1頁
倉庫管理系統(tǒng)畢業(yè)論文_第2頁
倉庫管理系統(tǒng)畢業(yè)論文_第3頁
倉庫管理系統(tǒng)畢業(yè)論文_第4頁
倉庫管理系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、. . . . 目 錄第一章 需求分析第二章 系統(tǒng)的總體設(shè)計193.1 系統(tǒng)設(shè)計的原則193.2 系統(tǒng)結(jié)構(gòu)的設(shè)計193.3 網(wǎng)絡(luò)結(jié)構(gòu)規(guī)劃20第三章 系統(tǒng)的詳細(xì)設(shè)計234.1 代碼和編碼的設(shè)計234.2 數(shù)據(jù)存儲和傳輸?shù)脑O(shè)計254.3 輸入和界面設(shè)計26第四章 系統(tǒng)的實施325.1 程序設(shè)計的目標(biāo)與軟件開發(fā)工具325.2 二維條碼控件的生成和使用335.3 用二維條碼采集、保存信息的技術(shù)問題355.4 系統(tǒng)存在的問題和可能的改進(jìn)方向37結(jié)束語40參考文獻(xiàn)41第一章 需求分析一、信息描述 職工信息包括:貨物編號、貨物名稱、貨物價格、貨物數(shù)量等(貨物編號不重復(fù))。 二、功能描述 1 錄入貨物信息并保

2、存 2. 顯示所有貨物信息(以一定的格式) 3. 查詢貨物信息(以一種或多種方式) 4. 修改貨物信息并保存 5. 刪除貨物信息第二章 系統(tǒng)的總體設(shè)計在這個階段,主要是進(jìn)行計算機過程與手工過程相關(guān)的總體的系統(tǒng)設(shè)計,除了對系統(tǒng)進(jìn)行抽象處理,進(jìn)行系統(tǒng)功能模塊的劃分之外,還包括選擇合適的軟、硬件和網(wǎng)絡(luò)設(shè)備等。2.1 系統(tǒng)設(shè)計的原則(1)可靠性:系統(tǒng)應(yīng)保證長期安全的運行。系統(tǒng)中的軟硬件與信息資源應(yīng)滿足可靠性設(shè)計的要求。(2)安全性:系統(tǒng)應(yīng)具有必要的安全保護(hù)和措施,有很強的應(yīng)對計算機犯罪和病毒的防措施。(3)容錯性:系統(tǒng)應(yīng)具有較高的容錯能力,有較強的抗干擾性。對各類用戶的誤操作應(yīng)有提示或自動消除的能力。

3、(4)可擴充性:系統(tǒng)的軟硬件應(yīng)具有擴充升級的余地,不可因軟硬件擴充、升級或改型而使原有系統(tǒng)失去作用。(5)實用性:注重采用成熟而實用的技術(shù),使系統(tǒng)建設(shè)的投入產(chǎn)出比最高,能產(chǎn)生良好的社會效益和經(jīng)濟(jì)效益。(6)先進(jìn)性:在實用的前提下,應(yīng)盡可能地跟蹤國外最先進(jìn)地計算機軟硬件技術(shù)、信息技術(shù)與網(wǎng)絡(luò)通信技術(shù),使系統(tǒng)具有較高的性能指標(biāo)。(7)易操作性:貫徹面向最終用戶的原則,建立友好的用戶界面,使用戶操作簡單直觀,易于學(xué)習(xí)掌握。2.2 系統(tǒng)結(jié)構(gòu)的設(shè)計根據(jù)對器材出入庫和倉庫盤點的業(yè)務(wù)流程和數(shù)據(jù)流程的分析,根據(jù)以器材為中心的管理模式,將系統(tǒng)劃分為入庫、出庫和盤點三個模塊。該模塊功能結(jié)構(gòu)圖如圖3.1所示,它大致表

4、示出了本系統(tǒng)的功能模塊情況。主菜單管理員界面管理員界面用戶界面查看查詢輸入查看查詢修改刪除統(tǒng)計第四章 系統(tǒng)的詳細(xì)設(shè)計根據(jù)總體設(shè)計產(chǎn)生的系統(tǒng)結(jié)構(gòu)圖的要求,在詳細(xì)設(shè)計階段,完成代碼設(shè)計、用戶界面設(shè)計,數(shù)據(jù)存儲設(shè)計和數(shù)據(jù)傳輸設(shè)計。系統(tǒng)流程圖:開始用戶管理員顯示查詢查詢顯示 否輸入 否 否 否顯示 是 是查詢 否修改 否 否追加 是 是 是 否刪除 是 是統(tǒng)計 否 是 是 是統(tǒng)計刪除追加修改查詢顯示輸入結(jié)束4.1代碼和編碼的設(shè)計代碼指明了事物的名稱、屬性、狀態(tài)。運用計算機進(jìn)行數(shù)據(jù)處理時,為了錄入、處理和數(shù)據(jù)存儲的方便,為了節(jié)省存儲空間,提高處理速度、效率和精度,通常采用數(shù)字、字母和一些特殊符號組成的代

5、碼來識別事物和處理數(shù)據(jù)。另外,物資倉庫是一個龐大而復(fù)雜的倉庫,倉庫中的器材類別復(fù)雜,品種繁多,且?guī)齑媪看?。為了方便倉庫的統(tǒng)一管理,減小管理員的工作量,必須為每一件器材進(jìn)行有規(guī)律的編碼。通過編碼可以看出該器材屬于哪一類的哪一品種。在進(jìn)行代碼設(shè)計的過程中,必須遵循下列代碼設(shè)計的基本原則:1 要適合計算機處理代碼是計算機進(jìn)行分類、排序、檢索、統(tǒng)計、分析等所有處理的依據(jù),因此代碼設(shè)計要便于計算機識別和處理,同時,最主要的是要滿足管理的要求。2 要便于使用代碼的結(jié)構(gòu)要簡單明了,含義單純,容易理解,容易記憶。最好是盡可能使用現(xiàn)有的名稱代號和代碼符號。3 代碼標(biāo)準(zhǔn)化凡是國家和主管部門已經(jīng)制定統(tǒng)一代碼的,則采

6、用標(biāo)準(zhǔn)代碼形式,便于各系統(tǒng)之間的信息交換。如國家和主管部門無統(tǒng)一規(guī)定的,則盡量和國際標(biāo)準(zhǔn)或國際慣例相一致。程序代碼如下:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define N 100struct employee/貨物基本情況 int num;/貨號 char name8;/品名 char lei2;/類別f為食品m為用品 int age;/存放時間 int salary;/價格emN;void input();void display();v

7、oid change();void del();void add();void count();int changename();int changelei();int changesalary();void query();void querysalary();void creat();char password7="123456"void master()/管理員int choicemanage;char choice='y'char a7; printf("你好 管理員n"); loop:printf("請輸入密碼n&qu

8、ot;); scanf("%s",&a); if(!strcmp(a,password)printf("載入.n"); else printf("輸入錯誤n");goto loop; while(choice)='y') printf("tt歡迎進(jìn)入管理系統(tǒng)n"); printf("=n"); printf("tt請你選擇操作類型:n"); printf("t t1輸入貨物信息n"); printf("tt2顯示貨物信息n

9、"); printf("tt3查詢貨物信息n"); printf("tt4修改貨物信息n"); printf("t t5追加一個貨物信息n"); printf("tt6刪除一個貨物信息n"); printf("tt7統(tǒng)計貨物信息n"); printf("t t0返回n"); printf("=n"); scanf("%d",&choicemanage); switch(choicemanage) case 1: inp

10、ut();/輸入貨物信息 break; case 2: display();/顯示貨物信息 break; case 3: query();/查詢貨物信息 break; case 4: change();/修改貨物信息 break; case 5: add();/追加一個貨物信息 break; case 6: del();/刪除一個貨物信息 break; case 7: count();/統(tǒng)計貨物信息 break; case 0: printf("你的使用再見"); return; default: printf(" 你的輸入有錯請重新輸入"); prin

11、tf("是否繼續(xù)管理?(y/n)"); scanf("%s",&choice); if(choice)='n') printf("輸入完畢,任意鍵返回"); getch(); return;void user()/用戶int choicemanage;char choice='y' printf("你好 客戶n"); while(choice)='y') printf("tt歡迎進(jìn)入用戶系統(tǒng)n"); printf("=n"

12、;); printf("tt請你選擇操作類型:n"); printf("tt1顯示貨物信息n"); printf("tt2統(tǒng)計貨物信息n"); printf("t t0返回n"); printf("=n"); scanf("%d",&choicemanage); switch(choicemanage) case 1: display();/顯示貨物信息 break; case 2: count();/統(tǒng)計貨物信息 break; case 0: printf(&quo

13、t;你的使用再見"); return; default: printf(" 你的輸入有錯請重新輸入"); printf("是否繼續(xù)使用?(y/n)"); scanf("%s",&choice); if(choice)='n') printf("輸入完畢,任意鍵返回"); getch(); return;void input() FILE *fp; int i=0; char choiceinput='y' if(fp=fopen( "employee.tx

14、t", "w")=NULL)return; while(choiceinput='y') i+;printf( "請你輸入貨號:n");/輸入貨號printf( "n");printf( "第%d個貨物n",i);scanf( "%d",&emi.num);printf( "n");printf( "請你輸入品名:n");/輸入品名scanf( "%s",);printf( "

15、n");printf( "請你輸入性別以m為食品f為用品:n");/輸入類別scanf( "%s",emi.lei);printf( "n");printf( "請你輸入價格:n");/輸入價格scanf( "%d",&emi.salary);printf( "n");printf( "是否繼續(xù)輸入?(y/n)n");scanf( "%s",&choiceinput);fwrite(&emi,sizeo

16、f(struct employee),1,fp); rewind(fp); if(toupper(choiceinput)='n') fclose(fp);printf( "輸入完畢,任意鍵返回n");getch();return; void display()/顯示貨物信息 FILE *fp; int i; if(fp=fopen( "employee.txt", "r")=NULL)return; printf( "輸出結(jié)果:n"); printf( "貨號 品名 類別 價格n&quo

17、t;); for(i=0;fread(&emi,sizeof(struct employee),1,fp)!=0;i+) printf( "%dt",emi.num);printf( "%st",);printf( "%st",emi.lei);printf( "%dn",emi.salary); printf( "完畢按任意鍵返回n"); getch();fclose(fp);return;void change()/修改信息 FILE *fp; int i; char

18、 chname8; int choicechange; printf( "請你輸入要修改的貨物的品名:n"); scanf( "%s",&chname); if(fp=fopen( "employee.txt", "w+")=NULL) printf( "不能夠打開這個文件n ");return; for(i=0;i <N;i+) if(strcmp(chname,)=0) printf( "這是你要修改的貨物的信息n "); printf( &

19、quot;貨號為%d品名為%s類別為%s價格為%dn",emi.num,,emi.lei,emi.salary); printf( "-n"); printf( "請你輸入要修改的部分:n"); printf( "=n"); printf( "1修改品名n"); printf( "2修改類別n"); printf( "3修改價格n"); printf( "0退出系統(tǒng)n"); printf( "=n "); pr

20、intf( "請選擇n"); scanf( "%d",&choicechange); switch(choicechange) case 1:strcpy(,changename();break; case 2:strcpy(emi.lei,changelei();break; case 3:emi.salary=changesalary();break; case 0:return; default :printf( "輸入有錯誤a"); fwrite(&emi,sizeof(struct emplo

21、yee),1,fp); fclose(fp); printf( "操作完成按任意鍵返回n"); getch(); return;int changename() int newname; printf( "請你輸入新的品名:n"); scanf( "%d",&newname); return(newname);int changelei() int newlei; printf( "請你輸入新的類別:n"); scanf( "%d",&newlei); return(newlei

22、);int changesalary() int newsalary; printf( "請你輸入新的價格:n"); scanf( "%d",&newsalary); return(newsalary);void add()/追加一個貨物信息 struct employee emp; FILE *fp; int i=0; if(fp=fopen( "employee.txt","ab+")=NULL) printf( "不能夠打開這個文件n");getch();return; print

23、f( "請你輸入新貨物的容:n"); printf( "請你輸入貨號:n");/輸入貨號 scanf( "%d",&emp.num); printf( "請你輸入品名:n");/輸入品名 scanf( "%s",); printf( "請你輸入類別以m為食品f為用品:n");/輸入類別 scanf( "%s",emp.lei); printf( "請你輸入價格:n");/輸入價格 scanf( "%d&

24、quot;,&emp.salary); fwrite(&emp,sizeof(struct employee),1,fp); rewind(fp); printf( "插入完畢,按任意鍵返回n "); getch(); fclose(fp); return;void del()/刪除一個貨物信息/ int i=0; char delname8; FILE *fp; if(fp=fopen( "employee.txt","w")=NULL) printf( "文件為空,不能夠打開n");printf

25、( "按任意鍵返回n");getch();return; printf( "請你輸入要刪除的貨物的品名:n ");/刪除的貨物的信息 scanf( "%s",delname); for(i=0;fread(&emi,sizeof(struct employee),1,fp)!=0;i+) if(strcmp(,delname)!=0) fwrite(&emi,sizeof(struct employee),1,fp); fclose(fp);printf("已刪除n");if(fp=

26、fopen( "employee.txt","r")=NULL)/顯示新的貨物的信息 return;elseprintf( "新的貨物的信息為:n");for(i=0;fread(&emi,sizeof(struct employee),1,fp)!=0;i+) printf( "貨號%d",emi.num);printf( "品名為%s",8);printf( "類別為%s",emi.lei2);printf( "其中m為食品f為用品&qu

27、ot;);printf( "價格為%d",emi.salary);fclose(fp);void count()/統(tǒng)計 FILE *fp; int i=0; int num=0;/總貨物統(tǒng)計 int mnum=0,fnum=0;/類別貨物統(tǒng)計 int mishunum=0,jsynum=0,lbnum=0,ygnum=0; if(fp=fopen( "employee.txt", "r")=NULL) printf( "不能夠打開這個文件n"); printf( "按任意鍵繼續(xù)n "); get

28、ch(); return; do fread(&emi,sizeof(struct employee),1,fp); if(feof(fp) break; num+; if(strcmp(emi.lei, "m")=0) mnum+; if(strcmp(emi.lei, "f")=0) fnum+; i+; while(1); printf( "總物品為%dn",num); printf( "=性別分類=n"); printf( "食品數(shù)為%dn",mnum); printf( &qu

29、ot;用品數(shù)為%dn",fnum); fclose(fp); return;void query()/查詢 FILE *fp; int i=0; char quename8; if(fp=fopen( "employee.txt", "r")=NULL) printf( "不能夠打開文件,按任意鍵返回n "); getch(); return; printf( "請你輸入要查詢的的品名n "); scanf( "%s",quename); for(i=0;fread(&emi,

30、sizeof(struct employee),1,fp)!=0;i+) if(strcmp(,quename)=0) /*找到,并顯示該貨物記錄*/ printf( "ttn查詢到的貨號或品名為的信息如下:n"); printf( "以下是你要查詢的貨物的信息n"); printf( "貨號%d",emi.num); printf( "品名為%s",); printf( "類別為%s",emi.lei); printf( "t其中m為食品f為用品&qu

31、ot;); printf( "價格為%d",emi.salary); printf( "n"); printf( "查詢完畢,按任意鍵返回n"); getch(); fclose(fp); return; printf( "沒有這樣的物品,按任意鍵返回n"); getch(); fclose(fp); return;void creat() FILE *fp; if(fp=fopen( "employee.txt", "w+")=NULL) return; input();

32、fclose(fp);void main()int b;char a7;printf("請選擇登陸方式n");printf("1 管理員n");printf("2 客戶n");printf("0 退出n");scanf("%d",&b);switch(b)case 1: master();break;case 2: user();break;case 0: exit(0);break;4.3 數(shù)據(jù)結(jié)構(gòu)貨物信息struct employee/貨物基本情況 int num;/貨號 char

33、name8;/品名 char lei2;/類別f為食品m為用品 int age;/存放時間 int salary;/價格emN;4.3 各個功能模塊處理流程(1) 信息輸入模塊void input() FILE *fp; int i=0; char choiceinput='y' if(fp=fopen( "employee.txt", "w")=NULL)return; while(choiceinput='y') i+;printf( "請你輸入貨號:n");/輸入貨號printf( "n

34、");printf( "第%d個貨物n",i);scanf( "%d",&emi.num);printf( "n");printf( "請你輸入品名:n");/輸入品名scanf( "%s",);printf( "n");printf( "請你輸入性別以m為食品f為用品:n");/輸入類別scanf( "%s",emi.lei);printf( "n");printf( "

35、請你輸入價格:n");/輸入價格scanf( "%d",&emi.salary);printf( "n");printf( "是否繼續(xù)輸入?(y/n)n");scanf( "%s",&choiceinput);fwrite(&emi,sizeof(struct employee),1,fp); rewind(fp); if(toupper(choiceinput)='n') fclose(fp);printf( "輸入完畢,任意鍵返回n");ge

36、tch();return; (2) 顯示模塊void display()/顯示貨物信息 FILE *fp; int i; if(fp=fopen( "employee.txt", "r")=NULL)return; printf( "輸出結(jié)果:n"); printf( "貨號 品名 類別 價格n"); for(i=0;fread(&emi,sizeof(struct employee),1,fp)!=0;i+) printf( "%dt",emi.num);printf( "%

37、st",);printf( "%st",emi.lei);printf( "%dn",emi.salary); printf( "完畢按任意鍵返回n"); getch();fclose(fp);return;(3) 信息修改模塊void change()/修改信息 FILE *fp; int i; char chname8; int choicechange; printf( "請你輸入要修改的貨物的品名:n"); scanf( "%s",&chname); i

38、f(fp=fopen( "employee.txt", "w+")=NULL) printf( "不能夠打開這個文件n ");return; for(i=0;i <N;i+) if(strcmp(chname,)=0) printf( "這是你要修改的貨物的信息n "); printf( "貨號為%d品名為%s類別為%s價格為%dn",emi.num,,emi.lei,emi.salary); printf( "-n"); printf(

39、 "請你輸入要修改的部分:n"); printf( "=n"); printf( "1修改品名n"); printf( "2修改類別n"); printf( "3修改價格n"); printf( "0退出系統(tǒng)n"); printf( "=n "); printf( "請選擇n"); scanf( "%d",&choicechange); switch(choicechange) case 1:strcpy(e

40、,changename();break; case 2:strcpy(emi.lei,changelei();break; case 3:emi.salary=changesalary();break; case 0:return; default :printf( "輸入有錯誤a"); fwrite(&emi,sizeof(struct employee),1,fp); fclose(fp); printf( "操作完成按任意鍵返回n"); getch(); return;int changename() int newname;

41、 printf( "請你輸入新的品名:n"); scanf( "%d",&newname); return(newname);int changelei() int newlei; printf( "請你輸入新的類別:n"); scanf( "%d",&newlei); return(newlei);int changesalary() int newsalary; printf( "請你輸入新的價格:n"); scanf( "%d",&newsala

42、ry); return(newsalary);(4) 信息添加模塊void add()/追加一個貨物信息 struct employee emp; FILE *fp; int i=0; if(fp=fopen( "employee.txt","ab+")=NULL) printf( "不能夠打開這個文件n");getch();return; printf( "請你輸入新貨物的容:n"); printf( "請你輸入貨號:n");/輸入貨號 scanf( "%d",&e

43、mp.num); printf( "請你輸入品名:n");/輸入品名 scanf( "%s",); printf( "請你輸入類別以m為食品f為用品:n");/輸入類別 scanf( "%s",emp.lei); printf( "請你輸入價格:n");/輸入價格 scanf( "%d",&emp.salary); fwrite(&emp,sizeof(struct employee),1,fp); rewind(fp); printf( &q

44、uot;插入完畢,按任意鍵返回n "); getch(); fclose(fp); return;(5) 刪除模塊void del()/刪除一個貨物信息/ int i=0; char delname8; FILE *fp; if(fp=fopen( "employee.txt","w")=NULL) printf( "文件為空,不能夠打開n");printf( "按任意鍵返回n");getch();return; printf( "請你輸入要刪除的貨物的品名:n ");/刪除的貨物的信

45、息 scanf( "%s",delname); for(i=0;fread(&emi,sizeof(struct employee),1,fp)!=0;i+) if(strcmp(,delname)!=0) fwrite(&emi,sizeof(struct employee),1,fp); fclose(fp);printf("已刪除n");if(fp=fopen( "employee.txt","r")=NULL)/顯示新的貨物的信息 return;elseprintf( &qu

46、ot;新的貨物的信息為:n");for(i=0;fread(&emi,sizeof(struct employee),1,fp)!=0;i+) printf( "貨號%d",emi.num);printf( "品名為%s",8);printf( "類別為%s",emi.lei2);printf( "其中m為食品f為用品");printf( "價格為%d",emi.salary);fclose(fp);(6) 統(tǒng)計模塊void count()/統(tǒng)計 FILE *f

47、p; int i=0; int num=0;/總貨物統(tǒng)計 int mnum=0,fnum=0;/類別貨物統(tǒng)計 int mishunum=0,jsynum=0,lbnum=0,ygnum=0; if(fp=fopen( "employee.txt", "r")=NULL) printf( "不能夠打開這個文件n"); printf( "按任意鍵繼續(xù)n "); getch(); return; do fread(&emi,sizeof(struct employee),1,fp); if(feof(fp) br

48、eak; num+; if(strcmp(emi.lei, "m")=0) mnum+; if(strcmp(emi.lei, "f")=0) fnum+; i+; while(1); printf( "總物品為%dn",num); printf( "=性別分類=n"); printf( "食品數(shù)為%dn",mnum); printf( "用品數(shù)為%dn",fnum); fclose(fp); return;(7) 查詢模塊void query()/查詢 FILE *fp;

49、int i=0; char quename8; if(fp=fopen( "employee.txt", "r")=NULL) printf( "不能夠打開文件,按任意鍵返回n "); getch(); return; printf( "請你輸入要查詢的的品名n "); scanf( "%s",quename); for(i=0;fread(&emi,sizeof(struct employee),1,fp)!=0;i+) if(strcmp(,quename)=0) /

50、*找到,并顯示該貨物記錄*/ printf( "ttn查詢到的貨號或品名為的信息如下:n"); printf( "以下是你要查詢的貨物的信息n"); printf( "貨號%d",emi.num); printf( "品名為%s",); printf( "類別為%s",emi.lei); printf( "t其中m為食品f為用品"); printf( "價格為%d",emi.salary); printf( "n"); printf( "查詢完畢,按任意鍵返回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

提交評論