庫存信息系統(tǒng)程序設(shè)計實(shí)驗(yàn)報告_第1頁
庫存信息系統(tǒng)程序設(shè)計實(shí)驗(yàn)報告_第2頁
庫存信息系統(tǒng)程序設(shè)計實(shí)驗(yàn)報告_第3頁
庫存信息系統(tǒng)程序設(shè)計實(shí)驗(yàn)報告_第4頁
庫存信息系統(tǒng)程序設(shè)計實(shí)驗(yàn)報告_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、庫存信息系統(tǒng)程序設(shè)計實(shí)驗(yàn)報告目錄一、任務(wù)書3二、總體設(shè)計3三、模塊功能與算法說明4四、流程圖12五、源程序清單13六、程序測試20七、結(jié)論、體會及建議20附:參考文獻(xiàn)資料201一、任務(wù)書題目15:庫存管理系統(tǒng)的設(shè)計功能:實(shí)現(xiàn)庫存信息管理,庫存的基本信息包括編號、名稱、類別、 價格、數(shù)量等基本要求:1. 設(shè)計簡單的菜單,能夠進(jìn)行系統(tǒng)功能選擇。2. 實(shí)現(xiàn)庫存信息的錄入功能。3. 在已有信息的基礎(chǔ)上添加新的記錄。4. 刪除指定編號的記錄。5. 修改指定編號的記錄6. 實(shí)現(xiàn)信息的瀏覽功能7. 按編號查詢功能&按金額排序功能二、總體設(shè)計1 定義數(shù)據(jù)結(jié)構(gòu)體,用于存放庫存信息,包括:編號number

2、.名稱 name、價格price、種類type、數(shù)量quantity,這樣做有利于數(shù)據(jù)獨(dú)立方便 調(diào)用;2定義類b,繼承結(jié)構(gòu)體的數(shù)據(jù),加入一系列的public函數(shù)實(shí)現(xiàn)系統(tǒng) 的功能;3. save ()函數(shù),load ()函數(shù)是利用#include<fstream>庫函數(shù) 里的文件的寫入,讀取,保存錄入的數(shù)據(jù),存放在“b.txt”文檔里面;24通過case語句,選擇要實(shí)現(xiàn)的函數(shù),實(shí)現(xiàn)相應(yīng)的功能。三、模塊劃分及功能主模塊:void main()b ad;ado ad();while(l) switch(int nl=ad.menu()case l:system(,cls,

3、');ad.enter();break;case 2:system("cls");ad.display();break;case 3:system(,cls");ad.add();break;case 4:system("cls”);ad.change();break;case 5:system(,cls");ad.search();break;case 6:system(”cls");addel_inventory();break;case 7:system("cls");ad.sort();break;

4、case o:exit(o);1. 聲明一個b類的對象ad,然后實(shí)現(xiàn)類里的load ()函數(shù),目的是 讀取txt格式文本里的信息,并記錄信息的條數(shù);2. while (1)是一個死循環(huán)語句,只有內(nèi)部強(qiáng)制結(jié)束才會跳出循環(huán), 這樣做的好處是可以重復(fù)進(jìn)入主函數(shù)進(jìn)行操作;3. 死循環(huán)內(nèi)部是switch ()語句,通過對象ad的調(diào)用函數(shù)menu()返 回的鍵入的實(shí)數(shù)值,選擇要執(zhí)行的case語句,以break結(jié)束。其他模塊:模塊一:讀取記錄void b:load()ifstream file("b.txt",ios:in);i=0;if(file.is_open()3while(!fi

5、le.eof()/ 文件尾?file>>ai. nu mber>>ai. name& gt;>ai.price>>ai.quantity& gt;>ai.type;file.close();/ 關(guān)閉文件if(!file.eof()i+;file.close();all=i;使用#include<fstream>庫函數(shù)里的ifstream類,聲明一個名為file 的對象,實(shí)現(xiàn)對b.txt文本的讀取,并作為輸入文件,簡言z是你可以不打 開一個t

6、xt文本而用函數(shù)輸入內(nèi)容。模塊二:保存記錄void b:save() fstream file("b.txt",ios:out | ios:trunc);if(file.is_ope n()for(int i=o;i<all;i+)file<<ai.number<<”t”<<<<"t"<<ai.price<<"t"<&l

7、t;ai. quantity <&<<ai. type <&<<endl;file.close();關(guān)閉文件使用include<fstream>庫函數(shù)里的ifstream類,聲明一個名為file 的對象,實(shí)現(xiàn)對b.txt文本的打開,并作為輸出文件,如果文本里有內(nèi)容則 丟棄,用的是ios:trunc語句,簡言之是你可以不打開一個txt文本里用函 數(shù)讀取文本里的東西。模塊三:錄入函數(shù)4int b:enter() char ch;system("clsn);for

8、(i=all;i<20;i+)cout<<"編號:cin>>ai. nu mber;cout<<"名稱:”;cin>>ai. name;cout<<"價格:cin>& gt;ai.price;cout<<h 數(shù)量:cin>>ai. quantity;cout<<“類別:cin>>a

9、i.type;all+;cout<<"條信息錄人成功,是否繼續(xù)錄入?(y.是n.否)while(l)cin>>ch;if(ch='y'| |ch二二'y'| |ch二二'n'| |ch二二'n&#break;else cout<<"輸入錯誤,請重新輸入! n"if (ch='n' | | ch二二'n&#39

10、;)break;save();cout<<”錄入成功!并己保存到文件。n"systemcpause11);return 0;根據(jù)提示可以輸入通訊錄個人信息,在輸入結(jié)束后使用save()函數(shù),將輸入的信息保存到文本里,然后結(jié)束錄入,用system(llpause-)跳回主菜 單進(jìn)行再次功能選擇.模塊四:刪除聯(lián)系人void b:del_inventory()char c20;5system("clsh);/ 清屏cout<<h請輸入耍刪除編號:”;cin>>c;if(strcmp(ai. num

11、ber;c)=o) break;/存在 結(jié)束循環(huán)if(i=all)/輸入信息不存在cout<<"你輸入編號不存在n”;system(,pausen);/ 任意鍵繼續(xù)return;for(i=0;i<all;i+)/ 遍歷所有信息訐(strcmp(ai. nu mber,c)=o)ai=aall-l;/用最后一條信息覆蓋要刪除的信息all-;/信息條數(shù)減一save();/ 保存cout<<m刪除成功!并已保存到文件。n"system(npause");通過輸入編號與已保存數(shù)據(jù)的編號的匹配來確定要刪

12、除的數(shù)據(jù) 通過用最后一條信息的覆蓋達(dá)到刪除冃的模塊五:修改聯(lián)系人void b:change()char s20;systemc'cls");/ 清屏cout<<"請輸入要修改編號:cin>>s;for(int i=o;i<all;i+)if(strcmp(ai. numbers)二二 0)break;if(i=all)cout<<"對不起!你輸入編號號不存在。nh;system(npausen);return;cout&編號:"6cin&am

13、p;gt;>ai. nu mber;cout&名稱cin>>;cout&價格:”;cin>>ai.price;cout<<h 數(shù)量cin>>ai. quantity;cout<<h類別:cin>>ai.type;save();/ 保存cout<<"修改成功!并已保存到文件。n"system(,pausen);/ 任意鍵繼續(xù)通過輸入編號與己

14、保存數(shù)據(jù)的編號的匹配來確定要修改的數(shù)據(jù),將需 修改的是數(shù)據(jù)顯示出來以便確認(rèn),再通過輸入新的數(shù)據(jù)將其覆蓋,達(dá)到刪 除冃的。模塊六:查找聯(lián)系人void b:search()char s20;system("clsh);cout<<"請輸入編號cin>>s;for(int i=o;i<all;i+)if(strcmp(ai. numbers)二二0)break;cout<<"對不起!你輸入的編號。n"systemcpause");return;cout&

15、amp;lt;<n查詢結(jié)果如下:"<<endl;cout & 11; & 11;"cout&編號:"<<ai.number<<endl;cout&名稱:”<<<<endl;cout&價格:"<<ai.price<<endl;cout&數(shù)量:"<<ai

16、. quantity <<endl;cout&類別:”<<ai.type<<endl;cout & 11; & 11; ”systemcpause");/ 任意鍵繼續(xù)7 模塊七:按價格進(jìn)行排序void b:sort()int i,j;at;system("clsh);/ 清屏for(j=0;j<all-l;j+)for(i=0;i<all-l-j;i+)if(strcmp(ai.price,ai+l.price)>o)/ 排序

17、t=ai;ai=ai+l;ai+l=t;cout&lt;&lt;"排序結(jié)果如下:n"b1icoulixl l,<xl i,cout.setf(ios:left);/ 設(shè)置左對齊for(i=0;i&lt;all;i+)/遍歷輸出所有信息cout&lt;&lt;"編號:"&lt;&lt;ai.number&lt;&lt;endl; cout&lt;&lt;"名稱:"&lt;&lt;&lt;&lt;en

18、dl;cout&數(shù)量:"&lt;&lt;ai. quantity &lt;&lt;endl;cout&lt;&lt;n類別:"&lt;&lt;ai.type&lt;&lt;endl;cout&lt;&lt;" h&lt;&lt;endl;.i . ih b* .i h* couloillgill,system('pause,);通過輸入編號與己保存數(shù)據(jù)的編號的匹配來確定耍查詢的數(shù)據(jù),通過 文件輸出函數(shù)將所需數(shù)據(jù)整齊輸出。模塊八:所有信息的

19、瀏覽void b:display() systemc'cls");/ 清屏.i .1 . i hicoulcxilll,cout.setf(ios:left); 設(shè):i左對齊for(int i=o;i&lt;all;i+)cout&編號:"&lt;&lt;ai.number&lt;&lt;endl; cout&姓名:"&lt;&lt;&lt;&lt;endl;cout&價格:"&lt;&lt;ai.price&lt

20、;&lt;endl; cout&數(shù)量:"&lt;&lt;ai. quantity &lt;&lt;endl; cout&lt;&lt;n類別:"&lt;&lt;ai.type&lt;&lt;endl; cout&lt;&lt;“ "&lt;&lt;endl;system(,pause,);/ 任意鍵繼續(xù)通過for循環(huán)將錄入信息的結(jié)構(gòu)體中的數(shù)據(jù)依次輸出模塊九:添加信息void b:add() system("clsn);int i

21、=all;do cin&gt;&gt;ai. nu mber;cout&lt;&lt;"名稱:cin&gt;&gt;ai. name;cout&lt;&lt;"價格:cin&gt;&gt;ai.price;cout&lt;&lt;h數(shù)量:cin&gt;&gt;ai. quantity;cout&lt;&lt;“類別:cin&gt;&gt; ai.type;save();cout&lt;&lt;"錄入成功!

22、"&lt;&lt;endl;cout&lt;&lt;h是否繼續(xù)錄入? (y/n) h;9cin&gt;&gt;ch;all+;信息條數(shù)加1while(ch=&#39;y&#39; 11 ch二二&#39;y&#39;);save();/保存cout&lt;&lt;”添加成功!并已保存到文件。n"system(npausen);/任意鍵繼續(xù)給信息結(jié)構(gòu)體賦值 通過調(diào)用保存函數(shù)save ()將輸入數(shù)據(jù)保存。 模塊十:菜單函數(shù)int b:menu() system(hcls")

23、;cout&* m&lf&te nd卜endl;cout&ltj&lt;11*1. 錄入息;*"&lt;&lt;endl; cout&lt;&lt;" "&lt;&lt;endl;cout&lt;&lt;"“&lt;&lt;endl;cout&lt;&lt;"&lt;&lt;endl; cout&lt;&lt;h"&lt;&lt;endl;cout&am

24、p;lt;&lt;h&lt;&lt;endl;cout&lt;&lt;h"&lt;&lt;endl; cout&lt;&lt;"&lt;&lt;endl;cout&lt;&lt;"息;”&lt;&lt;endl;&lt;&lt;endl;2 預(yù)覽所有庫存信息;3.增添庫存信息;4.修改庫存信息;5 按編號查詢庫存信cout&lt;&lt;""&lt;&lt;endl;cout&a

25、mp;lt;&lt;"&lt;&lt;endl;cout&lt;&lt;"&lt;&lt;endl;10訊錄*"&|t;&it;庫存信 * * * *116.刪除庫存信息;7.按價格排序;* * * *11* * * * *11* * * *11cout&lt;&lt;"0. 退出系統(tǒng);* "&lt;&lt;endl; cout&lt;&lt;h *" &lt;&lt;endl;cout&lt

26、;&lt;"* n&lt;&lt;endl;ii &ll,&lt;endl&lt;&lt;endl;int n;do cout&lt;&lt;"請輸入你的選擇(07): ”;cin&gt;&gt;n;return n;while(n&lt;8&amp;&amp; n&gt;=o);四、流程圖 五、源程序清單#include&lt;stdio.h &gt;#include &lt;iostream&gt;#include&am

27、p;lt;fstream &gt;/* 寫入 */ #include&lt;iomanip&gt; 流操作符 using namespace std;typedef struct inventory/定義錄入信息的結(jié)構(gòu)體 char name10;/名稱char number10;/編號 quantity10; /* 數(shù)量 */class b定義類private:int all;/總數(shù)int i;aa50;/定義最大容量public:b();/默認(rèn)構(gòu)造函數(shù)int menu();/菜單void load();寫入void sort();/排序char price10; /*

28、價格*/charchar type10;/* 類別 */a;char ch;b();析構(gòu)函數(shù)int enter();/錄入void save();/保存void search();/搜查void add();/添新void display();/瀏覽void change();改void del_inventory();刪;b:b();b:b();void main()b ad;12ado ad();while(l)casecasecasecasecase 0:exit(0);switch(int nl=ad.menu() case l:system("cls");ad.e

29、nter();break;2:system("cls,);ad.display();break;3:system("cls");ad.add();break;4:system(,cls,);ad.cha nge();break;5:system("cls");ad.search();break;case 6:system(”cls”);addel_inventory();break; case 7:system(”cls”);adsort();break;void b:load() ifstream filec'b.txf'jo

30、sijn);i=0;if(file.is_ope n()while(!file.eof() 文件尾?file&gt;&gt;ai. nu mber&gt;&gt;ai. name& gt;&gt;ai.price&gt;&gt;ai.quantity& gt;&gt;ai.type;file.closef);/ 關(guān)閉文件if(!file.eof()i+;file.close();all=i;保存函數(shù)void b:save() fstream file("b.txt"/ios:out | ios:

31、trunc);if(file.is_ope n()for(int i=o;i&lt;all;i+)file&lt;&lt;ai.number&lt;&lt;,tn&lt;&lt;ai.price&lt;&lt;'、t"&lt;&lt;ai. quantity &lt;&lt;"t"&lt;&lt;ai. type &&lt;&lt;endl;file.close();關(guān)閉文件13錄入函數(shù)int b:enter()c

32、har ch;system("cls,1);for(i=all;i&lt;20;i+)cout&lt;&lt;"編號:11cin&gt;&gt;ai. nu mber;cout&lt;&lt;"名稱:cin&gt;&gt;;cout&lt;&lt;“價格:cin&gt;& gt;ai.price;cout&數(shù)量:”;cin&gt;&gt;ai. quantity;cin&gt;&gt;ai.type;all+

33、;cout&lt;&lt;"一條信息錄人成功,是否繼續(xù)錄入? (y.是n.否)while(l)cin&gt;&gt;ch;if(ch=&#39;y&#39;| |ch二二&#39;y&#39;| |ch二二&#39;n&#39; | | ch二二&#39;n&#39;)break;elsecout&lt;&lt;"輸入錯誤,請重新輸入! n"if (ch=&#39;n&#39; 11 ch二二&#39;n&#39;)bre

34、ak;save();cout&lt;&lt;”錄入成功!并已保存到文件。n"systemc'pause");return 0;刪除個人信息void b:del_inventory() char c20;system(,clsn);/ 清屏cout&lt;&lt;“請輸入要刪除編號:cin&gt;&gt;c;for(int i=o;i&lt;all;i+)/遍歷所有信息,查詢是否存在 if(strcmp(ai. number;c)=o)break;/存在 結(jié)束循環(huán)if(i=all)/輸入信息不存在 cout&am

35、p;lt;&lt;h你輸入編號不存在卍;system("pausen);/ 任意鍵繼續(xù)return;for(i=0;i&lt;all;i+)/ 遍歷所有信息 if(strcmp(ai.number,c)=o) ai=aall-l; 用最后一條信息覆蓋要刪除的信息 all-;信息條數(shù)減一save();/ 保存cout&lt;&lt;“刪除成功!并已保存到文件。nn;systemcpause");void b:change() char s20;systemc'cls");/ 清屏cin&gt;&gt;s;for

36、(int i=o;i&lt;all;i+)if(strcmp(ai. nu mber;s)=o)break;if (i=all)cout&lt;&lt;h對不起!你輸入編號號不存在。nn;system("pause");return;cout&lt;&lt;"編號:cin&gt;&gt;ai. nu mber;cout&lt;&lt;"名稱:”;cin&gt;&gt;ai. name;cout&lt;&lt;"價格:cin&gt;&a

37、mp;gt;ai.price;cout&lt;&lt;"數(shù)量:cin&gt;&gt;ai. quantity;cout&lt;&lt;“類別:cin&gt;&gt;ai.type;save();/ 保存cout&lt;&lt;"修改成功!并已保存到文件。n"systemcpause");/ 任意鍵繼續(xù)尋找函數(shù)void b:search() char s20;system("clsn);cout&lt;&lt;"請輸入編號:“;cin&

38、;gt;&gt;s;for(int i=o;i&lt;all;i+)訐(strcmp(ai. nu mber,s)=0)break;if (i=all)15cout&lt;&lt對不起!你輸入的編號。n"system("pauseh);return;cout&lt;&t;“查詢結(jié)果如下:"&lt;&lt;endl;cout & 11; & 11;"cout&編號:”&lt;&lt;ai.number&lt;&lt;endl;cout&a

39、mp;lt;&lt;”名稱:"&lt;&lt;&lt;&lt;endl;cout&lt;&lt;"價格:"&lt;&lt;ai.price&lt;&lt;endl;cout&lt;&lt;"數(shù)量:"&lt;&lt;ai. quantity &lt;&lt;endl;cout&lt;&lt;"類別:“&lt;&lt;ai.type&lt;&l

40、t;endl;cout & 11; & 11; ”systemc'pause");/ 任意鍵繼續(xù)排序函數(shù)void b:sort() int i,j;at;systemc'cls");/ 清屏for(j=0;j&lt;alll;j+)for(i=0;i&lt;all-l-j;i+)if(strcmp(ai.price,ai+l.price)&gt;o)/ 排序t=ai;ai=ai+l;ai+l=t;cout&lt;&lt;h排序結(jié)果如下:n"cout.setf(ios:left);/ 設(shè)置左對齊

41、for(i=0;i&lt;all;i+)/遍歷輸出所有信息 cout&lt;&lt;"編號:"&lt;&lt;ai.number&lt;&lt;endl;cout&lt;&lt;"名稱:"&lt;&lt;&lt;&lt;endl;cout&lt;&lt;"價格:"&lt;&lt;ai.price&lt;&lt;endl;cout&lt;&lt;“數(shù)量:&q

42、uot;&lt;&lt;ai. quantity &lt;&lt;endl;cout&lt;&lt;h 類別:"&lt;&lt;ai.type&lt;&lt;endl;cout&lt;&lt;" "&lt;&lt;endl; i.system(,pauseh);所冇信息的瀏覽void b:display()system 化 is”);/ 清屏16ft , ft fti b* i bb coulotl l,cxl i,for(int i=o;i&l

43、t;all;i+) cout&lt;&lt;"編號:"&lt;&lt;ai.number&lt;&lt;endl; cout&姓名:"&lt;&lt;&lt;&lt;endl; cout&價格:"&lt;&lt;ai.price&lt;&lt;endl; cout&數(shù)量:"&lt;&lt;ai. quantity &lt;&lt;endl; cout&lt;

44、&lt;n類別:"&lt;&lt;ai.type&lt;&lt;endl; cout&lt;&lt;" "&lt;&lt;endl; system(,pauseh);/ 任意鍵繼續(xù)添加單條新記錄void b:add() system(ncls");int i=all;docout&lt;&lt;h 編號:”cin&gt;&gt;ai. nu mber; cout&lt;&lt;"名稱:" cin&gt;&am

45、p;gt;ai. name; cout&lt;&lt;h價格:n;cin&gt;& gt;ai.price;cout&數(shù)量:”;cin&gt;&gt;ai. quantity;cout&類別:cin&gt;&gt; ai.type;save();cout&錄入成功! ”&lt;&lt;endl;cout&是否繼續(xù)錄入? (y/n) h;cin&gt;&gt;ch;all+;信息條數(shù)加2while(ch=&#39;y&#39; 11 ch二二&#39;y&#39;);save();/ 保存cout&lt;&lt;"添加成功!并已保存到文件。n"system("pausen);/ 任意鍵繼續(xù)int b:menu() systemc'cls");cout&lt;&lt;h*才、jg 訐 l 錄*& 比& 比

溫馨提示

  • 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

提交評論