




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、庫存信息系統(tǒng)程序設計實驗報告目錄一、任務書3二、總體設計3三、模塊功能與算法說明4四、流程圖12五、源程序清單13六、程序測試20七、結論、體會及建議20附:參考文獻資料201一、任務書題目15:庫存管理系統(tǒng)的設計功能:實現(xiàn)庫存信息管理,庫存的基本信息包括編號、名稱、類別、 價格、數(shù)量等基本要求:1. 設計簡單的菜單,能夠進行系統(tǒng)功能選擇。2. 實現(xiàn)庫存信息的錄入功能。3. 在已有信息的基礎上添加新的記錄。4. 刪除指定編號的記錄。5. 修改指定編號的記錄6. 實現(xiàn)信息的瀏覽功能7. 按編號查詢功能&按金額排序功能二、總體設計1 定義數(shù)據(jù)結構體,用于存放庫存信息,包括:編號number
2、.名稱 name、價格price、種類type、數(shù)量quantity,這樣做有利于數(shù)據(jù)獨立方便 調用;2定義類b,繼承結構體的數(shù)據(jù),加入一系列的public函數(shù)實現(xiàn)系統(tǒng) 的功能;3. save ()函數(shù),load ()函數(shù)是利用#include<fstream>庫函數(shù) 里的文件的寫入,讀取,保存錄入的數(shù)據(jù),存放在“b.txt”文檔里面;24通過case語句,選擇要實現(xiàn)的函數(shù),實現(xiàn)相應的功能。三、模塊劃分及功能主模塊: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,然后實現(xiàn)類里的load ()函數(shù),目的是 讀取txt格式文本里的信息,并記錄信息的條數(shù);2. while (1)是一個死循環(huán)語句,只有內部強制結束才會跳出循環(huán), 這樣做的好處是可以重復進入主函數(shù)進行操作;3. 死循環(huán)內部是switch ()語句,通過對象ad的調用函數(shù)menu()返 回的鍵入的實數(shù)值,選擇要執(zhí)行的case語句,以break結束。其他模塊:模塊一:讀取記錄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();/ 關閉文件if(!file.eof()i+;file.close();all=i;使用#include<fstream>庫函數(shù)里的ifstream類,聲明一個名為file 的對象,實現(xiàn)對b.txt文本的讀取,并作為輸入文件,簡言z是你可以不打 開一個t
6、xt文本而用函數(shù)輸入內容。模塊二:保存記錄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();關閉文件使用include<fstream>庫函數(shù)里的ifstream類,聲明一個名為file 的對象,實現(xiàn)對b.txt文本的打開,并作為輸出文件,如果文本里有內容則 丟棄,用的是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ù)提示可以輸入通訊錄個人信息,在輸入結束后使用save()函數(shù),將輸入的信息保存到文本里,然后結束錄入,用system(llpause-)跳回主菜 單進行再次功能選擇.模塊四:刪除聯(lián)系人void b:del_inventory()char c20;5system("clsh);/ 清屏cout<<h請輸入耍刪除編號:”;cin>>c;if(strcmp(ai. num
11、ber;c)=o) break;/存在 結束循環(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ù) 通過用最后一條信息的覆蓋達到刪除冃的模塊五:修改聯(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ù)顯示出來以便確認,再通過輸入新的數(shù)據(jù)將其覆蓋,達到刪 除冃的。模塊六:查找聯(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查詢結果如下:"<<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 模塊七:按價格進行排序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<<"排序結果如下:n"b1icoulixl l,<xl i,cout.setf(ios:left);/ 設置左對齊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); 設: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)將錄入信息的結構體中的數(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ù)給信息結構體賦值 通過調用保存函數(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 預覽所有庫存信息;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/定義錄入信息的結構體 char name10;/名稱char number10;/編號 quantity10; /* 數(shù)量 */class b定義類private:int all;/總數(shù)int i;aa50;/定義最大容量public:b();/默認構造函數(shù)int menu();/菜單void load();寫入void sort();/排序char price10; /*
28、價格*/charchar type10;/* 類別 */a;char ch;b();析構函數(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);/ 關閉文件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();關閉文件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;/存在 結束循環(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;“查詢結果如下:"<<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排序結果如下:n"cout.setf(ios:left);/ 設置左對齊
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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上游客戶管理制度
- 專利辦公管理制度
- 專家動態(tài)管理制度
- 世家大族管理制度
- 業(yè)余辦學管理制度
- 業(yè)務立項管理制度
- 東莞外資管理制度
- 兩違執(zhí)法管理制度
- 嚴格人員管理制度
- 嚴格內控管理制度
- 公安院校及專業(yè)招生政審表
- 史上最全區(qū)塊鏈詳解課件
- (完整版)杭州電子科技大學數(shù)字電路期末考試試卷及答案
- 建筑裝飾裝修工程質量驗收規(guī)范試題
- 能源計量器具配備和管理
- 《食品經(jīng)營許可證》申請報告書空白模板
- 試卷交接簽字單
- 有限空間作業(yè)及應急物資清單
- DB13(J)∕T 8060-2019 城鎮(zhèn)供熱管道及設備安裝工程施工質量驗收標準
- 《國際商務》課程
- 壓力容器設計管理制度
評論
0/150
提交評論