版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 高級語言程序設計課程設計小型倉庫管理系統(tǒng)題 目:班 級:學生學號:學生姓名: 同組成員: 指導老師: 提交時間: 成 績:華南農業(yè)大學 信息學院一、 需求分析1 系統(tǒng)概述:本系統(tǒng)用于小型倉庫的信息管理,可實現倉庫物品信息的增加、刪除、查詢、顯示功能,以及倉庫的入庫信息記錄、出庫信息記錄、查詢指定物品的信息及出入庫記錄、顯示緊缺物品信息的功能,此外還有密碼功能,可保護倉庫信息的安全性。2 系統(tǒng)運行環(huán)境:本系統(tǒng)方便簡捷,對系統(tǒng)的軟、硬件要求不高,在任何系統(tǒng)環(huán)境下都能很好的運行。3 功能需求描述:本系統(tǒng)分為兩大塊,分別為系統(tǒng)管理和出入庫管理。其中,系統(tǒng)管理包括增加物品信息、刪除物品信息、查詢物品信
2、息、顯示物品信息、設置倉庫密碼五個功能;出入庫管理包括物品出庫、物品入庫、庫存物品查詢、顯示緊缺物品四個功能。以下對各功能作一些介紹:a. 增加物品信息:新增一條物品信息,包括編號、名稱、警界庫存量。b. 刪除物品信息:可通過物品編號或名稱刪除該物品的信息,物品數為0時方可刪除。c. 查詢物品信息:可通過物品編號或名稱來查詢指定物品的信息,并顯示出來d. 顯示物品信息:該功能可以顯示所有庫存物品的信息,包括物品編號、名稱、警戒庫存量、當前庫存數。e. 設置倉庫密碼:為保護倉庫數據不被隨意竄改,本系統(tǒng)要求倉庫管理員設置密碼,成功后可隨意更改。f. 物品入庫:通過物品編號或名稱可實現該指定物品的入
3、庫操作,記錄下該物品的入庫信息,包括物品編號、入庫物品數量、物品單價、提供商、采購員五個信息。g. 物品出庫:通過物品編號或名稱可實現該指定物品的出庫操作,記錄下該物品的出庫信息,包括物品編號、出庫物品數量、提貨原因、提貨員四個信息。如果申請的提貨數量超過當前庫存數時,則操作失敗。h. 庫存物品查詢:通過物品編號或名稱可查找該指定物品的信息,包括編號、名稱、警戒庫存量、當前庫存數五個信息,以及該物品所有的入庫與出庫信息。i. 顯示緊缺物品:可以顯示出所有庫存數低于警戒庫存量的物品信息包括物品編號、名稱、警戒庫存量、當前庫存數五個信息點。二、 總體設計1 總體開發(fā)思想:a. 系統(tǒng)使用C語言編譯,
4、意在復習之前學習的C語言程序設計,并對以后所學之數據結構知識作初步的認識和預習。b. 采用的主要數據結構是鏈表。本系統(tǒng)采用鏈表來儲存一整個文件中的數據,然后通過插入結點與刪除結點的方法來進行數據的更改,最后把鏈表內容覆蓋文件原有的數據,實現數據的更改。c. 數據存貯方式包括鏈表、文件兩種,其中鏈表主要用于需要更改文件中數據時的數據暫存,實現把局部的數據進行更改的作用。文件主要用來永久性的數據存儲,以及數據的提取與寫入。2 系統(tǒng)模塊結構圖: 緊缺物品庫存查詢物品入庫物品出庫更改密碼顯示物品增加物品查詢物品刪除物品說明:本倉庫管理系統(tǒng)有密碼驗證成功后登錄,進入主菜單。在主菜單中可實現個功能模塊選擇
5、,功能模塊主要有兩個,一個是系統(tǒng)管理模塊,一個是出入庫管理模塊。而主功能模塊下又有各自的詳細功能:系統(tǒng)管理模塊包含增加、刪除、查詢、顯示物品信息和更改密碼的功能;出入庫管理模塊包含物品出庫、入庫,庫存物品信息查詢和緊缺物品信息列表顯示的功能。3 模塊設計: 密碼登錄主菜單出入庫管理菜單系統(tǒng)管理菜單增加物品信息物品出庫 指令1 返回 指令1 返回刪除物品信息 指令2 返回物品入庫 指令2 返回查詢物品信息 指令3 返回庫存物品信息查詢 指令3 返回顯示物品信息 指令4 返回顯示緊缺物品信息更改密碼 指令5 返回 指令4 返回 返回上層返回上層 指令6 返回主菜單 指令5 返回主菜單下面對上面的流
6、程圖做詳細介紹:1 密碼登陸模塊:為保護倉庫信息安全,本系統(tǒng)使用密碼驗證登陸。首次使用本系統(tǒng)需要設置密碼,以后憑密碼登錄。密碼為字符型,可以使用數字加字母、標點符號組成。當輸入兩次一致的初始密碼后,進入系統(tǒng)。2 主菜單模塊:主菜單包括4個功能鍵:1系統(tǒng)管理、2出入庫管理、3幫助、4退出。進入主菜單后,根據面板上的數字指令進行操作(詳細面板見后)。若輸入錯誤指令如:0,a,+,等字符,則系統(tǒng)不做任何處理,直到輸入正確的指令后,系統(tǒng)根據指令運行。3 系統(tǒng)管理菜單模塊:在主菜單按指令1后會進入系統(tǒng)管理菜單,她包括6個功能鍵:增加物品、刪除物品、查詢物品、顯示物品、更改密碼。同樣,若在這時輸入錯誤指令
7、,系統(tǒng)不會做任何處理。輸入正確指令后, 進入相應的功能中,按6可以返回主菜單a. 增加物品信息:新增一條物品信息,包括編號、名稱、警界庫存量。若增加的物品信息中,發(fā)現倉庫內物品的兩個信息:編號或者名稱一樣的話,會打印出倉庫內相同物品的信息,并報告保存失敗。在保存成功或保存失敗后,我們都可以按ENTER鍵進行繼續(xù)增加的操作,也可以按任意鍵結束物品的增加。增加的物品信息會以編號為準進行升序排序,使信息有序。注意,在輸入信息時如果輸入的數據有誤,如編號、警戒庫存量用字母寫入,則會提示數據有誤,允許在當前頁面重新輸入數據。b. 刪除物品信息:可通過物品編號或名稱刪除物品的信息,物品數為0時可刪除。進入
8、此功能后,我們首先選擇刪除方式:1編號或者2名稱,若輸入3,則返回系統(tǒng)管理菜單。若按其他鍵則系統(tǒng)不做任何處理。當選擇刪除的物品中庫存值為0時,系統(tǒng)會提示是否刪除。選Y則刪除,選N不刪除。操作過后會返回系統(tǒng)管理菜單。在輸入信息時如果輸入的數據有誤,如編號用字母寫入,則會提示數據有誤,允許在當前頁面重新輸入數據。c. 查詢物品信息:可通過物品編號或名稱來查詢指定物品的信息,并顯示出來。同樣,進入此功能后,我們首先選擇查詢方式:1編號或者2名稱,若輸入3,則返回系統(tǒng)管理菜單。輸出的物品信息包括物品編號、名稱、警戒庫存量和當前庫存量。在輸入信息時如果輸入的數據有誤,如編號用字母寫入,則會提示數據有誤,
9、允許在當前頁面重新輸入數據。d. 顯示物品信息:該功能可以一列表形式顯示所有庫存物品的信息,包括物品編號、名稱、警戒庫存量、當前庫存數。e. 設置倉庫密碼:進入此功能后,我們需要輸入兩個相同的新密碼,密碼格式有數字、字母和標點符號組成,長度在20個字符以內。若輸入的兩個新密碼不一致,則返回系統(tǒng)管理菜單。若密碼一致則會打印出新密碼,提示提示使用者記住,然后返回。4. 出入庫管理菜單模塊:在主菜單按指令2后會進入系統(tǒng)管理菜單,她包括5個功能鍵:物品出庫、物品入庫、庫存物品查詢、顯示緊缺物品信息。同樣,若在這時輸入錯誤指令,系統(tǒng)不會做任何處理。輸入正確指令后,進入相應的功能中。按5可返回主菜單。a.
10、 物品入庫:若倉庫中無物品信息,則返回庫存管理菜單。否則:通過物品編號或名稱進行指定物品的入庫操作。其中,按1通過編號入庫,按2通過名稱入庫,按3可返回庫存管理菜單,輸入其他錯誤的指令則系統(tǒng)不作處理。開始入庫操作后,輸入相應的信息,包括物品編號、入庫物品數量、物品單價、提供商、采購員,系統(tǒng)會找出相匹配的物品信息進行出庫操作。若存在該物品,系統(tǒng)會記錄下該物品的入庫信息,成功后返回庫存管理菜單,否則也會返回。注意,在輸入信息時如果輸入的數據有誤,如編號、入庫數、單價用字母寫入,則會提示數據有誤,允許在當前頁面重新輸入數據。b. 物品出庫:若倉庫中無物品信息,則返回庫存管理菜單。否則:通過物品編號或
11、名稱進行指定物品的出庫操作。其中,按1通過編號出庫,按2通過名稱出庫,按3可返回庫存管理菜單,輸入其他錯誤的指令則系統(tǒng)不作處理。開始出入庫操作后,輸入相應的信息,包括物品編號、出庫物品數量、提貨原因、提貨員四個信息。如果存在該物品并且申請的提貨數量在合理范圍內時,則操作成功,系統(tǒng)會記錄下該物品的出庫信息并返回,否則如出庫數超過當前庫存數,會失敗并返回。注意,在輸入信息時如果輸入的數據有誤,如編號、出庫數用字母寫入,則會提示數據有誤,允許在當前頁面重新輸入新數據。c. 庫存物品查詢:若倉庫中無物品信息,則返回庫存管理菜單。否則:通過物品編號或名稱可查找該指定物品的信息。其中,按1通過編號查詢,按
12、2通過名稱查詢,按3可返回庫存管理菜單,輸入其他錯誤的指令則系統(tǒng)不作處理。當找到匹配的物品信息時,打印物品信息包括編號、名稱、警戒庫存量、當前庫存數五個信息,以及該物品所有的入庫與出庫信息。若物品無出庫活入庫信息,系統(tǒng)也會打印出提示。在輸入信息時如果輸入的數據有誤,如編號用字母寫入,則會提示數據有誤,允許在重新輸入新編號。d. 顯示緊缺物品:此功能可以顯示出所有庫存數低于警戒庫存量的物品信息,包括物品編號、名稱、警戒庫存量、當前庫存數五個信息點,以列表的形式打印出來,按任意鍵后返回庫存管理菜單。5. 其他模塊:主菜單上有另外兩個功能鍵:幫助、退出。a. 幫助:在主菜單上按指令3可顯示幫助信息,
13、里面詳細介紹本系統(tǒng)的功能、使用方法,以及注意事項。有此可以幫助使用者更好的使用本軟件,駕馭本軟件。按任意鍵可以返回主菜單。b. 退出:在主菜單上按指令4可以安全的退出系統(tǒng),并且顯示退出頁面,圖見后。4 界面設計:界面的布局(可以采用截圖)及使用操作;1. 首先進入的是首次使用系統(tǒng)的初密碼設置功能(如圖):首次使用本系統(tǒng)需要設置密碼,密碼為字符型,由數字、字母、標點符號組成。密碼不一致,重新輸入(直到輸入連個一致的密碼為止)當輸入兩次一致的初始密碼后,進入系統(tǒng)。2. 接下來是主菜單在這里輸入1、2、3、4,可以進入相應的功能中。按3進入幫助系統(tǒng)頁面:按4退出系統(tǒng):3. 系統(tǒng)管理在主菜單按1請進入
14、系統(tǒng)管理菜單按1為增加物品功能(輸入示例數據,可以一條條的增加物品信息)增加完畢后返回按2為刪除物品信息功能(已輸入示例數據)選擇Y,或N,這里選N 按3進入物品查詢功能(已輸入示例數據)按4進入顯示物品功能按5更改密碼(若輸入的兩個新密碼不一致則返回系統(tǒng)管理菜單)按6返回主菜單。4. 出入庫管理在主菜單按2進入庫存管理菜單按2進行物品入庫操作(已輸入示例數據)數據有誤,返回數據無誤,成功后返回。按1進行物品出庫操作成功按3進入庫存查詢查詢結果:按4顯示緊缺物品信息以上詳細操作可以參照模塊設計部分。5 數據結構設計:主要定義了一個結構體:物品信息結構體。如下面代碼:struct wupinxi
15、nxi/物品結構體int bianhao,jingjiekucunliang,kucun;char mingcheng20;struct wupinxinxi *next; /定義結構體包含bianhao,mingcheng,jingjiekucunliang,kucun四個成員,建立單向鏈表結點的類型源代碼中,在幾個函數中使用到了構體類型指針變量,入增加物品中(代碼如下):struct wupinxinxi *head=NULL;struct wupinxinxi *p0,*p1,*p2;/定義結構體類型指針變量此外所有的函數中都用到了結構體指針,用來進行文件的各種操作,包括創(chuàng)建、清空、追加
16、信息等。三、 詳細設計1. 模塊功能:本系統(tǒng)有兩大功能模塊,系統(tǒng)管理及出入庫管理。a.系統(tǒng)管理可實現倉庫物品信息的增加、刪除、查詢、顯示功能和密碼更改功能。b.出入庫管理包括倉庫的入庫信息記錄、出庫信息記錄、查詢指定物品的信息及出入庫記錄、顯示緊缺物品信息的功能。 c.此外還有幫助、退出功能。幫助功能詳細介紹本系統(tǒng)的功能、使用方法,以及注意事項。2. 主要函數:主要有三大函數:主干函數void zhuhanshu();系統(tǒng)管理函數void xitongguanli()和庫存管理函數void kucunguanli()。其中主函數main()調用主干函數;系統(tǒng)管理函數調用子函數有:void ze
17、ngjiawupin()/增加物品信息函數void shanchuwupin()/刪除物品信息函數void chaxunwupin()/查詢物品信息函數void xianshiwupin()/顯示物品信息函數void genggaimima()/更改密碼函數庫存管理函數調用的子函數有: void chuku()/物品出庫函數void ruku()/物品入庫函數void kucunchaxun()/查詢庫存信息函數void xianshijinque()/顯示緊缺物品函數此外還有其他函數:int tongjiwupin()/統(tǒng)計物品個數函數int tongjichuku()/統(tǒng)計出庫個數函數in
18、t tongjiruku()/統(tǒng)計入庫個數函void tuichu()/退出畫面 void zhucaidan()/顯示主菜單 void bangzhu()/幫助系統(tǒng)函數 void denglu()/驗證密碼函數在這里展現一些函數參數及其含義:FILE *fp;/定義結構體指針struct wupinxinxi *head=NULL;/定義頭位空struct wupinxinxi *p0,*p1,*p2;/定義結構體類型指針變量char xuanze=13;/創(chuàng)建變量為ENTER鍵值,用于后面的按鍵功能int bianhao1=0,hao=0,jing=0,cun=0,chukushu=0,n
19、=0,k=0,flag=0,i;char mingcheng120='0',ming20='0',shang20='0',yuanyin100='0',tihuoyuan20='0'/定義變量(一定長度)3. 主要程序清單:a.這是系統(tǒng)主菜單的代碼:void xitongguanli()/系統(tǒng)管理函數char xuanze;/創(chuàng)建變量,用來儲存鍵值void zengjiawupin();void shanchuwupin();void chaxunwupin();void xianshiwupin();void g
20、enggaimima();/聲明函數xitongguanlicaidan();/調用菜單函數xuanze=getch();for(;xuanze!='1'&&xuanze!='2'&&xuanze!='3'&&xuanze!='4'&&xuanze!='5'&&xuanze!='6')/判斷:鍵值是否有效xuanze=getch();switch(xuanze)/選擇功能函數case '1':zengji
21、awupin();break;/進入增加物品功能case '2':shanchuwupin();break; /進入刪除物品功能case '3':chaxunwupin();break; /進入查詢物品功能case '4':xianshiwupin();break; /進入顯示物品功能case '5':genggaimima();break; /更改密碼功能case '6':zhuhanshu();break; /返回主函數功能b.這是統(tǒng)計物品信息條數函數的代碼:int tongjiwupin()/統(tǒng)計物品個數函數
22、FILE *fp;/定義結構體指針int bianhao=0,kucun=0,jingjiekucunliang=0,n;char mingcheng20='0',tigongshang20='0'/定義變量fp=fopen("wupinxinxi.dat","r");/打開文件for (n=0;!feof(fp);n+)/計算信息條數fscanf(fp,"%d %s %d %d",&bianhao,mingcheng,&jingjiekucunliang,&kucun);n-;
23、fclose(fp);/關閉文件return (n);/返回信息條數c. 這個事很重要的一個:庫存物品信息查詢,輸出包括物品信息積極所有的出入庫信息:void kucunchaxun()/查詢庫存信息函數FILE *fp;/定義結構體變量int bianhao=0,hao=0,jing=0,cun=0,rukushu=0,chukushu=0,flag=0,k=0,n=0,i,count=0;/定義變量float danjia=0;char mingcheng20='0',ming20='0',shang20='0',caigouyuan20=&
24、#39;0',tigongshang20='0',yuanyin100='0',tihuoyuan20='0'char xuanze;/創(chuàng)建變量,用來儲存鍵值system("cls");if(fp=fopen("wupinxinxi.dat","r")=NULL)/判斷文件是否存在,若不存在則新建printf("nnnnnnnnn 當前倉庫無物品信息!nn 請按任意鍵返回庫存管理菜單");getch();kucunguanli();k=tongjiwupin(
25、);/統(tǒng)計物品信息條數if(k=0)/若無物品,則返回主函數printf("nnnnnnnnn 當前倉庫無物品信息!nn 請按任意鍵返回主菜單");getch();zhuhanshu();elsesystem("cls");printf("nn 請輸入查庫方式(按3可返回庫存管理菜單):n 1.通過編號入庫 2.通過名稱入庫");xuanze=getch();for(;xuanze!='1'&&xuanze!='2'&&xuanze!='3')xuanze
26、=getch();if (xuanze='1')/通過物品編號查詢printf("n 請輸入物品編號:");scanf("%d",&bianhao);for(;bianhao=0;)/判斷數據是否有誤(編號不能為0或者字符),若有誤則重輸scanf("%s",mingcheng);printf("n 輸入錯誤,請重新輸入!");printf("n 請輸入物品編號:");scanf("%d",&bianhao);if (xuanze='2
27、')/通過物品名稱查詢printf("n 請輸入物品名稱:");scanf("%s",mingcheng);if (xuanze='3')/返回庫存管理菜單kucunguanli();system("cls");fp=fopen("wupinxinxi.dat","r");/打開文件for(i=0;i<k;i+)/逐條讀取物品信息,尋找匹配信息fscanf(fp,"%d%s%d%d",&hao,ming,&jing,&cu
28、n);if(bianhao=hao|!strcmp(mingcheng,ming)printf("nn 物品編號為:%d,名稱為:%s警戒庫存量為:%d當前庫存量為:%dnn",hao,ming,jing,cun);/找到匹配信息打印flag=1;/標記fclose(fp);/關閉文件if(flag=0)/若找不到匹配信息則返回庫存管理菜單printf("nnn 不存在該物品!請按任意鍵返回庫存管理菜單");getch();kucunguanli();if(fp=fopen("ruku.dat","r")=NULL
29、)/判斷文件是否存在,若不存在則新建fp=fopen("ruku.dat","w");fclose(fp);k=tongjiruku();/統(tǒng)計入庫信息條數if(k=0)/無入庫信息printf(" 此物品尚無入庫信息!");elsefp=fopen("ruku.dat","r");/打開文件for(i=0;i<k;i+)/逐條尋找匹配的入庫信息,找到則打印出來fscanf(fp,"%d%s%d%f%s%s",&hao,ming,&rukushu,&am
30、p;danjia,shang,caigouyuan);if(bianhao=hao|!strcmp(mingcheng,ming)printf(" 第%3d次入庫:入庫數:%d,單價:%.2f,提供商:%s,采購員:%sn",+count,rukushu,danjia,shang,caigouyuan);flag=1;/標記fclose(fp);if(flag=0)/沒有匹配的入庫信息printf(" 此物品尚無入庫信息!");printf("n");flag=0;/初始化變量count=0;/初始化變量if(fp=fopen(&qu
31、ot;chuku.dat","r")=NULL)/判斷文件是否存在,若不存在則新建fp=fopen("chuku.dat","w");fclose(fp);k=tongjichuku();/統(tǒng)計出庫信息條數if(k=0)/沒有出庫信息printf(" 此物品尚無出庫信息!");elsefp=fopen("chuku.dat","r");/打開文件for(i=0;i<k;i+)/逐條尋找匹配的出庫信息,找到則打印出來fscanf(fp,"%d%s%d%s%s",&hao,ming,&chukushu,yuanyin,tihuoyuan);if(bianhao=hao)printf(" 第%3d次出庫:出庫數:%d 原因:%s 提貨員:%sn",+c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度美容院美容師實習生實習考核及就業(yè)保障合同4篇
- 江蘇省無錫市江陰市要塞片2019-2020學年八年級下學期期中物理試題【含答案、解析】
- 2025版國際貿易信用證抵押融資服務合同樣本3篇
- 2025年度旅游車輛租賃合同(含景點導覽系統(tǒng))4篇
- 《新生兒氣胸》課件
- 2025版小學生校車租賃合同范本編制3篇
- 2025年度木工支模工程綠色施工與評價合同4篇
- 2025年分銷商分潤協(xié)議范例
- 2025年分銷合同的法律適用
- 2025版幼兒托管班信息化管理及數據共享協(xié)議3篇
- 2024年國家工作人員學法用法考試題庫及參考答案
- 國家公務員考試(面試)試題及解答參考(2024年)
- 《阻燃材料與技術》課件 第6講 阻燃纖維及織物
- 人教版五年級上冊遞等式計算100道及答案
- 2024年部編版初中語文各年級教師用書七年級(上冊)
- 2024年新課標全國Ⅰ卷語文高考真題試卷(含答案)
- 湖南省退休人員節(jié)日慰問政策
- QB/T 5998-2024 寵物尿墊(褲)(正式版)
- 傳感器與測試技術試卷及答案
- 2020年普通高等學校招生全國統(tǒng)一數學考試大綱
- GB/T 679-2002化學試劑乙醇(95%)
評論
0/150
提交評論