




版權(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'
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<<"排序結(jié)果如下:n"b1icoulixl l,<xl i,cout.setf(ios:left);/ 設(shè)置左對齊for(i=0;i<all;i+)/遍歷輸出所有信息cout<<"編號:"<<ai.number<<endl; cout<<"名稱:"<<<<en
18、dl;cout&數(shù)量:"<<ai. quantity <<endl;cout<<n類別:"<<ai.type<<endl;cout<<" h<<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<all;i+)cout&編號:"<<ai.number<<endl; cout&姓名:"<<<<endl;cout&價格:"<<ai.price<
20、;<endl; cout&數(shù)量:"<<ai. quantity <<endl; cout<<n類別:"<<ai.type<<endl; cout<<“ "<<endl;system(,pause,);/ 任意鍵繼續(xù)通過for循環(huán)將錄入信息的結(jié)構(gòu)體中的數(shù)據(jù)依次輸出模塊九:添加信息void b:add() system("clsn);int i
21、=all;do cin>>ai. nu mber;cout<;<;"名稱:cin>>ai. name;cout<<"價格:cin>>ai.price;cout<<h數(shù)量:cin>>ai. quantity;cout<<“類別:cin>> ai.type;save();cout<<"錄入成功!
22、"<<endl;cout<<h是否繼續(xù)錄入? (y/n) h;9cin>>ch;all+;信息條數(shù)加1while(ch='y' 11 ch二二'y');save();/保存cout<<”添加成功!并已保存到文件。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<j<11*1. 錄入息;*"<<endl; cout<<" "<<endl;cout<<"“<<endl;cout<<"<<endl; cout<<h"<<endl;cout&am
24、p;lt;<h<<endl;cout<<h"<<endl; cout<<"<<endl;cout<<"息;”<<endl;<<endl;2 預(yù)覽所有庫存信息;3.增添庫存信息;4.修改庫存信息;5 按編號查詢庫存信cout<<""<<endl;cout&a
25、mp;lt;<"<<endl;cout<<"<<endl;10訊錄*"&|t;⁢庫存信 * * * *116.刪除庫存信息;7.按價格排序;* * * *11* * * * *11* * * *11cout<<"0. 退出系統(tǒng);* "<<endl; cout<<h *" <<endl;cout<
26、;<"* n<<endl;ii &ll,<endl<<endl;int n;do cout<<"請輸入你的選擇(07): ”;cin>>n;return n;while(n<8&& n>=o);四、流程圖 五、源程序清單#include<stdio.h >#include <iostream>#include&am
27、p;lt;fstream >/* 寫入 */ #include<iomanip> 流操作符 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>>ai. nu mber>>ai. name& gt;>ai.price>;>ai.quantity& 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<all;i+)file<<ai.number<<,tn<<ai.price<<'、t"<<ai. quantity <<"t"<<ai. type &<<endl;file.close();關(guān)閉文件13錄入函數(shù)int b:enter()c
32、har ch;system("cls,1);for(i=all;i<20;i+)cout<;<;"編號:11cin>>ai. nu mber;cout<<"名稱:cin>>;cout<<“價格:cin>& gt;ai.price;cout&數(shù)量:”;cin>>ai. quantity;cin>>ai.type;all+
33、;cout<<"一條信息錄人成功,是否繼續(xù)錄入? (y.是n.否)while(l)cin>>ch;if(ch='y'| |ch二二'y'| |ch二二'n' | | ch二二'n')break;elsecout<<"輸入錯誤,請重新輸入! n"if (ch='n' 11 ch二二'n')bre
34、ak;save();cout<<”錄入成功!并已保存到文件。n"systemc'pause");return 0;刪除個人信息void b:del_inventory() char c20;system(,clsn);/ 清屏cout<<“請輸入要刪除編號:cin>>c;for(int i=o;i<all;i+)/遍歷所有信息,查詢是否存在 if(strcmp(ai. number;c)=o)break;/存在 結(jié)束循環(huán)if(i=all)/輸入信息不存在 cout&am
35、p;lt;<h你輸入編號不存在卍;system("pausen);/ 任意鍵繼續(xù)return;for(i=0;i<all;i+)/ 遍歷所有信息 if(strcmp(ai.number,c)=o) ai=aall-l; 用最后一條信息覆蓋要刪除的信息 all-;信息條數(shù)減一save();/ 保存cout<<“刪除成功!并已保存到文件。nn;systemcpause");void b:change() char s20;systemc'cls");/ 清屏cin>>s;for
36、(int i=o;i<all;i+)if(strcmp(ai. nu mber;s)=o)break;if (i=all)cout<<h對不起!你輸入編號號不存在。nn;system("pause");return;cout<<"編號:cin>>ai. nu mber;cout<<"名稱:”;cin>>ai. name;cout<<"價格:cin>&a
37、mp;gt;ai.price;cout<<"數(shù)量:cin>>ai. quantity;cout<<“類別:cin>>ai.type;save();/ 保存cout<<"修改成功!并已保存到文件。n"systemcpause");/ 任意鍵繼續(xù)尋找函數(shù)void b:search() char s20;system("clsn);cout<<"請輸入編號:“;cin&
38、;gt;>s;for(int i=o;i<all;i+)訐(strcmp(ai. nu mber,s)=0)break;if (i=all)15cout<<對不起!你輸入的編號。n"system("pauseh);return;cout<&t;“查詢結(jié)果如下:"<<endl;cout & 11; & 11;"cout&編號:”<<ai.number<<endl;cout&a
39、mp;lt;<”名稱:"<<<<endl;cout<<"價格:"<<ai.price<<endl;cout<<"數(shù)量:"<<ai. quantity <<endl;cout<<"類別:“<<ai.type<&l
40、t;endl;cout & 11; & 11; ”systemc'pause");/ 任意鍵繼續(xù)排序函數(shù)void b:sort() int i,j;at;systemc'cls");/ 清屏for(j=0;j<alll;j+)for(i=0;i<all-l-j;i+)if(strcmp(ai.price,ai+l.price)>o)/ 排序t=ai;ai=ai+l;ai+l=t;cout<<h排序結(jié)果如下:n"cout.setf(ios:left);/ 設(shè)置左對齊
41、for(i=0;i<all;i+)/遍歷輸出所有信息 cout<<"編號:"<<ai.number<<endl;cout<;<;"名稱:"<<<<endl;cout<;<;"價格:"<<ai.price<<endl;cout<<;“數(shù)量:&q
42、uot;<<ai. quantity <<endl;cout<;<;h 類別:"<<ai.type<<endl;cout<<" "<<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<<"編號:"<<ai.number<<endl; cout&姓名:"<<<<endl; cout&價格:"<<ai.price<<endl; cout&數(shù)量:"<<ai. quantity <<endl; cout<
44、<n類別:"<<ai.type<<endl; cout<<" "<<endl; system(,pauseh);/ 任意鍵繼續(xù)添加單條新記錄void b:add() system(ncls");int i=all;docout<<h 編號:”cin>>ai. nu mber; cout<<"名稱:" cin>&am
45、p;gt;ai. name; cout<<h價格:n;cin>& gt;ai.price;cout&數(shù)量:”;cin>>ai. quantity;cout&類別:cin>> ai.type;save();cout&錄入成功! ”<<endl;cout&是否繼續(xù)錄入? (y/n) h;cin>>ch;all+;信息條數(shù)加2while(ch='y' 11 ch二二'y');save();/ 保存cout<<"添加成功!并已保存到文件。n"system("pausen);/ 任意鍵繼續(xù)int b:menu() systemc'cls");cout<<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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 粉末冶金在磁性材料領(lǐng)域的應(yīng)用考核試卷
- 《企業(yè)安全生產(chǎn)管理制度講座》課件
- 《中央銀行數(shù)字貨幣基本知識》課件
- 租賃設(shè)備的綠色制造與循環(huán)經(jīng)濟(jì)模式考核試卷
- 網(wǎng)絡(luò)安全防護(hù)技術(shù)發(fā)展趨勢考核試卷
- 煤化工生產(chǎn)過程中的節(jié)能減排措施考核試卷
- 小種子的成長之旅家長會課件
- 小學(xué)期末安全教育主題班會
- 數(shù)字化轉(zhuǎn)型企業(yè)戰(zhàn)略規(guī)劃BLM模型培訓(xùn)課件
- 2025年中級會計職稱之中級會計實(shí)務(wù)能力提升試卷A卷附答案
- 2021年四川綿竹高發(fā)投資有限公司招聘筆試試題及答案解析
- 建設(shè)工程消防驗(yàn)收備案抽查復(fù)查申請表
- 水費(fèi)計算、水權(quán)與水價課件
- 思想道德與法治課件:第六章 第一節(jié) 社會主義法律的特征和運(yùn)行
- 《康復(fù)醫(yī)學(xué)》第四章 常見疾病的康復(fù) 第二節(jié) 腫瘤康復(fù)課件
- 61850報文解析-深瑞版-131016
- 2016年度高考全國3卷文綜地理試題(解析版)
- 江西新定額2017土建定額說明及解釋
- 國家電網(wǎng)有限公司十八項(xiàng)電網(wǎng)重大反事故措施(修訂版)-2018版(word文檔良心出品)
- 部編版三下語文《宇宙的另一邊》教學(xué)課件PPT
- 《工程勘察設(shè)計收費(fèi)管理規(guī)定》計價格200210號文
評論
0/150
提交評論