




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄一、需求分析2二、概要設計2三、詳細設計4四、調試分析15五、用戶手冊15六、測試數(shù)據(jù).15七、附錄20一、需求分析1. 輸入功能:輸入商品信息如:商品編號、商品名稱、商品類別(普通電視機、dvd、帶dvd的電視機,帶dvd的電視機的售價為普通電視機和dvd單價之和的80%)、商品進貨價格、商品銷售價格、商品數(shù)量、供應商名稱等。2. 記錄功能:記錄每一次進貨信息,對該信息可以進行增加3. 刪除功能:能夠將輸入的商品的某部分信息進行刪除操作4. 修改功能:能夠將輸入的商品的某部分信息進行修改操作5. 查詢功能:能夠對進貨信息中的商品按照供應商以及價格進行查詢6. 排序功能:能夠對進貨信息中的
2、商品按照供應商以及價格進行排序7. 統(tǒng)計功能:并能夠對所有進貨商品進行價格、數(shù)量匯總8. 要求:1) 源文件采用多文件的工程結構;2) 數(shù)據(jù)存儲采用文件形式;3) 采用面向對象方法設計;4) 功能完善,適當?shù)淖⑨專?) 關于文件的內容需要自學;二、概要設計1. 商品類的定義:2class goodspublic:goods();void init(int num,char name20,char type20,float inmoney,float outmoney,int quantity,char gname20);int getnum();float getinmoney();float
3、 getoutmoney();int getquantity();int gettag();void delgoods();char* getname();char* getgname();void disp();private:int tag;int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;2. 商品庫類定義:class godatapublic:godata(); /構造函數(shù)void addgoods();/新增商品void delgoods(); /刪除商品voi
4、d modify(); /修改商品信息 float outmonstati(); /銷售價統(tǒng)計void sortinmon(); /進價排序void sortoutmon(); /銷售價排序 void sort();goods* searchgname(char gname20); /按供應商搜索void gnamedisp(char gname20); /按供應商顯示goods* searchinmoney(double inmoney); /按進價搜索void inmoneydisp(double inmoney);/按進價顯示goods* searchnum(int num); /按編號
5、搜索goods* searchoutmoney(double outmoney); /按銷售價搜索void outmoneydisp(double outmoney);/按銷售價顯示float godata:inmonstati();void godata:intotal();void search();void godata(); /商品庫維護void disp();godata(); /析構函數(shù)private:int top;goods goods20; 三、詳細設計1. 商品類成員函數(shù)的定義:goods:goods()void goods:init(int num,char name20
6、,char type20,float inmoney,float outmoney,int quantity,char gname20)num=num;inmoney=inmoney;outmoney=outmoney;quantity=quantity;strcpy(name,name);strcpy(gname,gname);strcpy(type,type);tag=1;int goods:getnum()return num;float goods:getinmoney()return inmoney;float goods:getoutmoney()return outmoney;i
7、nt goods:getquantity()return quantity;int goods:gettag()return tag;void goods:delgoods()tag=0;char* goods:getname()return name;char* goods:getgname()return gname;void goods:disp()coutendl商品編號:numendl商品名稱:nameendl商品類型:typeendl進貨價格:inmoneyendl銷售價格:outmoneyendl商品數(shù)量:quantityendl供應商家:gnameendl;2.商品庫類成員函數(shù)
8、的定義godata:godata() /構造函數(shù)goods g;top=-1;ifstream fin(goods.txt);while(1)fin.read(char *)&g,sizeof(g);if(!fin)break;top+;goodstop=g;fin.close();void godata:addgoods()/新增商品int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;goods *g;cout請輸入商品的基本信息:endl;cout商品編號:num;co
9、ut商品名稱:name;cout商品類別:type;cout商品的進貨價:inmoney;cout商品的銷售價:outmoney;cout商品數(shù)量:quantity;cout供應商名稱:gname;if(searchnum(num)=null) top+; goodstop.init(num,name,type,inmoney,outmoney,quantity,gname); g=searchnum(num); system(cls); cout-新增商品成功-disp(); system(pause);elsecout您輸入的信息有誤請重新輸入!endl;void godata:delgo
10、ods() /刪除商品int num;goods *g;cout請輸入要刪除商品的編號:num;g=searchnum(num);if(g=null)cout該商品不存在,請重新輸入delgoods();cout-刪除成功-disp();void godata:modify() /修改商品信息int oldnum;int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;goods *g;cout請輸入需要修改的商品的編號:oldnum;g=searchnum(oldnum);i
11、f(g=null)cout該商品不存在,請重新輸入endl;elsecout請輸入商品的新信息:endl;cout商品編號:num;cout商品名稱:name;cout商品類別:type;cout商品的進貨價:inmoney;cout商品的銷售價:outmoney;cout商品數(shù)量:quantity;cout供應商名稱:gname;g-init(num,name,type,inmoney,outmoney,quantity,gname);system(cls);float godata:inmonstati() /進價統(tǒng)計float count=0;for(int i=0;i=top;i+)c
12、ount=count+goodsi.getinmoney()*goodsi.getquantity();return count; float godata:outmonstati() /銷售價統(tǒng)計float count=0;for(int i=0;i=top;i+)count=count+goodsi.getoutmoney()*goodsi.getquantity();return count; int godata:quanstati() /數(shù)量統(tǒng)計 int count=0; for(int i=0;i=top;i+)count=count+goodsi.getquantity();re
13、turn count; void godata:sortinmon() /進價排序float good20,t;goods *g;for(int i=0;i=top;i+)goodi=goodsi.getinmoney(); for(int j=0;j=top-1;j+) for(int i=0;igoodi+1) t=goodi; goodi=goodi+1; goodi+1=t; for(int k=0;kdisp();system(pause);void godata:sortoutmon() /銷售價排序float good20,t;goods *g;for(int i=0;i=top
14、;i+)goodi=goodsi.getoutmoney();for(int j=0;j=top-1;j+) for(int i=0;igoodi+1) t=goodi; goodi=goodi+1; goodi+1=t; for(int k=0;kdisp();system(pause); void godata:sort() int choice=1; while(choice!=0) cout - 1 按進價排序-endl; cout - 2 按銷售價排序-endl; cout - 0 退出 -choice; switch(choice) case 1: system(cls); sor
15、tinmon(); break; case 2: system(cls); sortoutmon(); break; case 0: system(cls); break; cout按任意鍵繼續(xù)endl; getch(); system(cls); void godata:intotal() /匯總cout所有商品的進價總和為:inmonstati()endl;cout所有商品的銷售價總和為:outmonstati()endl;cout所有商品的數(shù)量總和為:quanstati()endl;goods* godata:searchgname(char gname20) /按供應商搜索for(in
16、t i=0;i=top;i+) if(!strcmp(goodsi.getgname(),gname)&goodsi.gettag()=1) return &goodsi;return null;void godata:gnamedisp(char gname20) /按供應商顯示for(int i=0;i=top;i+)if(!strcmp(goodsi.getgname(),gname)&goodsi.gettag()=1)goodsi.disp();goods* godata:searchinmoney(double inmoney) /按進價搜索for(int i=0;i=top;i+
17、) if(goodsi.getinmoney()=inmoney&goodsi.gettag()=1) return &goodsi;return null;void godata:inmoneydisp(double inmoney)/按進價顯示for(int i=0;i=top;i+)if(goodsi.getinmoney()=inmoney&goodsi.gettag()=1)goodsi.disp();goods* godata:searchnum(int num) /按編號搜索for(int i=0;i=top;i+) if(goodsi.getnum()=num&goodsi.g
18、ettag()=1) /cout找到的商品號:goodsi.getnum()找到的商品標記:goodsi.gettag()endl; return &goodsi; return null;goods* godata:searchoutmoney(double outmoney) /按銷售價搜索for(int i=0;i=top;i+) if(goodsi.getoutmoney()=outmoney&goodsi.gettag()=1) return &goodsi;return null;void godata:outmoneydisp(double outmoney)/按進價顯示for(
19、int i=0;i=top;i+)if(goodsi.getoutmoney()=outmoney&goodsi.gettag()=1)goodsi.disp();void godata:search()int choice=1;char gname20;double inmoney;double outmoney;goods *g;while(choice!=0) cout-1 按供應商查詢-endl; cout-2 按進價查詢 -endl; cout-3 按銷售價查詢-endl; cout-0 后退 -choice; switch(choice) case 1: system(cls);
20、cout請輸入供應商的名字:gname; g=searchgname(gname); if(g=null) cout沒有該商家供應的商品!endl; else gnamedisp(gname); break; case 2: system(cls); cout請輸入要查詢的進價:inmoney; g=searchinmoney(inmoney); if(g=null) cout沒有該進價的商品!endl; else inmoneydisp(inmoney); break; case 3: system(cls); cout請輸入要查詢的銷售價:outmoney; g=searchoutmone
21、y(outmoney); if(g=null) cout沒有該銷售價的商品!endl; else outmoneydisp(outmoney); break; cout按任意鍵繼續(xù)endl; getch(); system(cls); void godata:godata() /商品庫維護int choice=1;/int num;/goods *g;while(choice!=0) coutendlendl-歡迎進入商品進貨管理系統(tǒng)-endlendl; cout-1 刪除商品信息-endl; cout-2 商品信息查詢-endl; cout-3 修改商品信息-endl; cout-4 商品信
22、息排序-endl; cout-5 商品信息匯總-endl; cout-0 返回 -choice; switch(choice) case 1: system(cls); delgoods(); break; case 2: system(cls); search(); break; case 3: system(cls); modify(); break; case 4: system(cls); sort(); break; case 5: system(cls); intotal(); break; void godata:disp()for(int i=0;i=top;i+)if(goo
23、dsi.gettag()=1)goodsi.disp();godata:godata() /析構函數(shù)ofstream fout(goods.txt);for(int i=0;i=top;i+)if(goodsi.gettag()=1)fout.write(char *)&goodsi,sizeof(goodsi);fout.close();3.主函數(shù):/-主函數(shù)-int main()godata godata;/goods *g;int choice=1;godata.disp();while(choice!=0)coutendlendl-歡迎進入商品進貨管理程序-endlendl;cout-
24、1 增加進貨信息-endl;cout-2 已進商品信息管理-endl;cout-0 退出 -choice;switch(choice)case 1:system(cls);godata.addgoods();break;case 2:system(cls);godata.godata();break;cout按任意鍵返回!endl;getch();system(cls);return 0;四、調試分析這次的面向對象程序設計的課程設計的任務,是我們在本階段學完理論課程之后對自己該方面的能力的一次很好的檢驗。從開始的算法思路到運行調試后的美觀的圖形界面以及另人興奮的可用程序,都是一個很好的學習和鍛
25、煉的過程。使我們鞏固了原有的理論知識,培養(yǎng)了我們靈活運用和組合集成所學過知識及技能來分析、解決實際問題的能力。使我們能夠將自身知識和能力能在實際中的應用和發(fā)揮。五、用戶手冊 本程序的運行環(huán)境為dos操作系統(tǒng),執(zhí)行文件為:商品進貨管理系統(tǒng).exe; 進入演示程序后,即顯示對話形式的提示操作過程,選擇進入增加進貨信息時,則將所要輸入的信息輸入選擇進入已進商品信息管理項時,則進入下一步詳細操作;選擇商品信息刪除查詢修改排序項后,可按各種信息搜索,選擇相應選項即可; 選擇退出后,便會退出系統(tǒng)。六、測試數(shù)據(jù)主界面: 新增商品功能:進入商品管理信息功能:進入商品查詢功能:進入商品修改功能:進入商品排序功能
26、:進入商品統(tǒng)計功能:七、附錄#include#include#include#include#include/-商品類-class goodspublic:goods()void init(int num,char name20,char type20,float inmoney,float outmoney,int quantity,char gname20)num=num;inmoney=inmoney;outmoney=outmoney;quantity=quantity;strcpy(name,name);strcpy(gname,gname);strcpy(type,type);ta
27、g=1;int getnum()return num;float getinmoney()return inmoney;float getoutmoney()return outmoney;int getquantity()return quantity;int gettag()return tag;void delgoods()tag=0;char* getname()return name;char* getgname()return gname;void disp()coutendl商品編號:numendl商品名稱:nameendl商品類型:typeendl進貨價格:inmoneyend
28、l銷售價格:outmoneyendl商品數(shù)量:quantityendl供應商家:gnameendl;private:int tag;int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;/-商品庫類-class godatapublic:godata() /構造函數(shù)goods g;top=-1;ifstream fin(goods.txt);while(1)fin.read(char *)&g,sizeof(g);if(!fin)break;top+;goodstop=g;f
29、in.close();void addgoods()/新增商品int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;goods *g;cout請輸入商品的基本信息:endl;cout商品編號:num;cout商品名稱:name;cout商品類別:type;cout商品的進貨價:inmoney;cout商品的銷售價:outmoney;cout商品數(shù)量:quantity;cout供應商名稱:gname;if(searchnum(num)=null) top+; goodstop.
30、init(num,name,type,inmoney,outmoney,quantity,gname); g=searchnum(num); system(cls); cout-新增商品成功-disp();elsecout您輸入的信息有誤請重新輸入!endl;void delgoods() /刪除商品int num;goods *g;cout請輸入要刪除商品的編號:num;g=searchnum(num);if(g=null)cout該商品不存在,請重新輸入delgoods();cout-刪除成功-disp();void modify() /修改商品信息int oldnum;int num;c
31、har name20;char type20;float inmoney;float outmoney;int quantity;char gname20;goods *g;cout請輸入需要修改的商品的編號:oldnum;g=searchnum(oldnum);if(g=null)cout該商品不存在,請重新輸入endl;elsecout請輸入商品的新信息:endl;cout商品編號:num;cout商品名稱:name;cout商品類別:type;cout商品的進貨價:inmoney;cout商品的銷售價:outmoney;cout商品數(shù)量:quantity;cout供應商名稱:gname;
32、g-init(num,name,type,inmoney,outmoney,quantity,gname);system(cls);float inmonstati() /進價統(tǒng)計float count=0;for(int i=0;i=top;i+)count=count+goodsi.getinmoney()*goodsi.getquantity();return count; float outmonstati() /銷售價統(tǒng)計float count=0;for(int i=0;i=top;i+)count=count+goodsi.getoutmoney()*goodsi.getquan
33、tity();return count; int quanstati() /數(shù)量統(tǒng)計 int count=0; for(int i=0;i=top;i+)count=count+goodsi.getquantity();return count; /*void sortinmon() /進價排序float good20;goods *g;for(int i=0;i=top;i+)goodi=goodsi.getinmoney();for(int j=0;j=top;j+)coutgoodjendl;coutgoodsj.getinmoney()disp();void sortoutmon()
34、/銷售價排序float good20;goods *g;for(int i=0;i=top;i+)goodi=goodsi.getoutmoney();for(int j=0;jdisp(); void sort() char choice; while(choice!=0) cout - 1 按進價排序-endl; cout - 2 按銷售價排序-endl; cout - 0 退出 -choice; switch(choice) case 1: system(cls); sortinmon(); break; case 2: system(cls); sortoutmon(); break;
35、 case 0: system(cls); break; cout按任意鍵繼續(xù)endl; getch(); system(cls); */void intotal() /匯總cout所有商品的進價總和為:inmonstati()endl;cout所有商品的銷售價總和為:outmonstati()endl;cout所有商品的數(shù)量總和為:quanstati()endl;goods* searchgname(char gname20) /按供應商搜索for(int i=0;i=top;i+) if(!strcmp(goodsi.getgname(),gname)&goodsi.gettag()=1)
36、 return &goodsi;return null;void gnamedisp(char gname20) /按供應商顯示for(int i=0;i=top;i+)if(!strcmp(goodsi.getgname(),gname)&goodsi.gettag()=1)goodsi.disp();goods* searchinmoney(double inmoney) /按進價搜索for(int i=0;i=top;i+) if(goodsi.getinmoney()=inmoney&goodsi.gettag()=1) return &goodsi;return null;void
37、inmoneydisp(double inmoney)/按進價顯示for(int i=0;i=top;i+)if(goodsi.getinmoney()=inmoney&goodsi.gettag()=1)goodsi.disp();goods* searchnum(int num) /按編號搜索for(int i=0;i=top;i+) if(goodsi.getnum()=num&goodsi.gettag()=1) /cout找到的商品號:goodsi.getnum()找到的商品標記:goodsi.gettag()endl; return &goodsi; return null;goods* searchoutmoney(double outmoney) /按銷售價搜索for(int i=0;i=top;i+) if(goodsi.getoutmoney()=outmoney&goodsi.gettag()=1) return &goodsi;return null;void outmoneydisp(double outmoney)/按進價顯示for(int i=0;i=top;i+)if(goodsi.getoutmoney()=outmoney&goodsi.gettag()=1)goodsi.disp
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國有柄大杯市場調查研究報告
- 2025年中國帶材光亮退火生產線市場調查研究報告
- 2025年中國單子排市場調查研究報告
- 2025年中國交流金屬化全密封電容器市場調查研究報告
- 2025-2030年中國陶制品數(shù)據(jù)監(jiān)測研究報告
- 2025-2030年中國輻射型泄漏軋紋銅管電纜數(shù)據(jù)監(jiān)測研究報告
- 共享餐廳租賃合同范例
- 債務轉移說明合同范例
- 鄉(xiāng)村養(yǎng)雞養(yǎng)殖合同范例
- 凈水設備投標合同范例
- (正式版)QBT 5976-2024 制漿造紙行業(yè)綠色工廠評價要求
- 國家自然科學基金重大項目立項建議書
- (高清版)DZT 0282-2015 水文地質調查規(guī)范(1:50000)
- 嬰幼兒二便,三浴等
- 文物古跡保護遺址環(huán)境和安全遠程監(jiān)控系統(tǒng)
- 銷售外包方案
- 數(shù)據(jù)備份方案策劃
- 既有建筑混凝土結構改造設計規(guī)范DBJ-T 15-182-2020
- 2024春蘇教版《亮點給力大試卷》 數(shù)學一年級下冊(全冊有答案)
- 早期康復治療
- 2024年益陽職業(yè)技術學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
評論
0/150
提交評論