商品進(jìn)貨管理系統(tǒng)課程設(shè)計(jì)_第1頁
商品進(jìn)貨管理系統(tǒng)課程設(shè)計(jì)_第2頁
商品進(jìn)貨管理系統(tǒng)課程設(shè)計(jì)_第3頁
商品進(jìn)貨管理系統(tǒng)課程設(shè)計(jì)_第4頁
商品進(jìn)貨管理系統(tǒng)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄一、需求分析2二、概要設(shè)計(jì)2三、詳細(xì)設(shè)計(jì)4四、調(diào)試分析15五、用戶手冊(cè)15六、測(cè)試數(shù)據(jù).15七、附錄20一、需求分析1. 輸入功能:輸入商品信息如:商品編號(hào)、商品名稱、商品類別(普通電視機(jī)、dvd、帶dvd的電視機(jī),帶dvd的電視機(jī)的售價(jià)為普通電視機(jī)和dvd單價(jià)之和的80%)、商品進(jìn)貨價(jià)格、商品銷售價(jià)格、商品數(shù)量、供應(yīng)商名稱等。2. 記錄功能:記錄每一次進(jìn)貨信息,對(duì)該信息可以進(jìn)行增加3. 刪除功能:能夠?qū)⑤斎氲纳唐返哪巢糠中畔⑦M(jìn)行刪除操作4. 修改功能:能夠?qū)⑤斎氲纳唐返哪巢糠中畔⑦M(jìn)行修改操作5. 查詢功能:能夠?qū)M(jìn)貨信息中的商品按照供應(yīng)商以及價(jià)格進(jìn)行查詢6. 排序功能:能夠?qū)M(jìn)貨信息中的

2、商品按照供應(yīng)商以及價(jià)格進(jìn)行排序7. 統(tǒng)計(jì)功能:并能夠?qū)λ羞M(jìn)貨商品進(jìn)行價(jià)格、數(shù)量匯總8. 要求:1) 源文件采用多文件的工程結(jié)構(gòu);2) 數(shù)據(jù)存儲(chǔ)采用文件形式;3) 采用面向?qū)ο蠓椒ㄔO(shè)計(jì);4) 功能完善,適當(dāng)?shù)淖⑨專?) 關(guān)于文件的內(nèi)容需要自學(xué);二、概要設(shè)計(jì)1. 商品類的定義:class 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(); /構(gòu)造函數(shù)void addgoods();/新增商品void delgoods(); /刪除商品void

4、 modify(); /修改商品信息 float outmonstati(); /銷售價(jià)統(tǒng)計(jì)void sortinmon(); /進(jìn)價(jià)排序void sortoutmon(); /銷售價(jià)排序 void sort();goods* searchgname(char gname20); /按供應(yīng)商搜索void gnamedisp(char gname20); /按供應(yīng)商顯示goods* searchinmoney(double inmoney); /按進(jìn)價(jià)搜索void inmoneydisp(double inmoney);/按進(jìn)價(jià)顯示goods* searchnum(int num); /按編號(hào)搜

5、索goods* searchoutmoney(double outmoney); /按銷售價(jià)搜索void outmoneydisp(double outmoney);/按銷售價(jià)顯示float godata:inmonstati();void godata:intotal();void search();void godata(); /商品庫維護(hù)void disp();godata(); /析構(gòu)函數(shù)private:int top;goods goods20; 三、詳細(xì)設(shè)計(jì)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;in

7、t 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商品編號(hào):numendl商品名稱:nameendl商品類型:typeendl進(jìn)貨價(jià)格:inmoneyendl銷售價(jià)格:outmoneyendl商品數(shù)量:quantityendl供應(yīng)商家:gnameendl;2.商品庫類成員函數(shù)的

8、定義godata:godata() /構(gòu)造函數(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請(qǐng)輸入商品的基本信息:endl;cout商品編號(hào):num;cou

9、t商品名稱:name;cout商品類別:type;cout商品的進(jìn)貨價(jià):inmoney;cout商品的銷售價(jià):outmoney;cout商品數(shù)量:quantity;cout供應(yīng)商名稱: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您輸入的信息有誤請(qǐng)重新輸入!endl;void godata:delgoo

10、ds() /刪除商品int num;goods *g;cout請(qǐng)輸入要?jiǎng)h除商品的編號(hào):num;g=searchnum(num);if(g=null)cout該商品不存在,請(qǐng)重新輸入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請(qǐng)輸入需要修改的商品的編號(hào):oldnum;g=searchnum(oldnum);if

11、(g=null)cout該商品不存在,請(qǐng)重新輸入endl;elsecout請(qǐng)輸入商品的新信息:endl;cout商品編號(hào):num;cout商品名稱:name;cout商品類別:type;cout商品的進(jìn)貨價(jià):inmoney;cout商品的銷售價(jià):outmoney;cout商品數(shù)量:quantity;cout供應(yīng)商名稱:gname;g-init(num,name,type,inmoney,outmoney,quantity,gname);system(cls);float godata:inmonstati() /進(jìn)價(jià)統(tǒng)計(jì)float count=0;for(int i=0;i=top;i+)co

12、unt=count+goodsi.getinmoney()*goodsi.getquantity();return count; float godata:outmonstati() /銷售價(jià)統(tǒng)計(jì)float count=0;for(int i=0;i=top;i+)count=count+goodsi.getoutmoney()*goodsi.getquantity();return count; int godata:quanstati() /數(shù)量統(tǒng)計(jì) int count=0; for(int i=0;i=top;i+)count=count+goodsi.getquantity();ret

13、urn count; void godata:sortinmon() /進(jìn)價(jià)排序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() /銷售價(jià)排序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 按進(jìn)價(jià)排序-endl; cout - 2 按銷售價(jià)排序-endl; cout - 0 退出 -choice; switch(choice) case 1: system(cls); sort

15、inmon(); break; case 2: system(cls); sortoutmon(); break; case 0: system(cls); break; cout按任意鍵繼續(xù)endl; getch(); system(cls); void godata:intotal() /匯總cout所有商品的進(jìn)價(jià)總和為:inmonstati()endl;cout所有商品的銷售價(jià)總和為:outmonstati()endl;cout所有商品的數(shù)量總和為:quanstati()endl;goods* godata:searchgname(char gname20) /按供應(yīng)商搜索for(int

16、 i=0;i=top;i+) if(!strcmp(goodsi.getgname(),gname)&goodsi.gettag()=1) return &goodsi;return null;void godata:gnamedisp(char gname20) /按供應(yīng)商顯示for(int i=0;i=top;i+)if(!strcmp(goodsi.getgname(),gname)&goodsi.gettag()=1)goodsi.disp();goods* godata:searchinmoney(double inmoney) /按進(jìn)價(jià)搜索for(int i=0;i=top;i+)

17、 if(goodsi.getinmoney()=inmoney&goodsi.gettag()=1) return &goodsi;return null;void godata:inmoneydisp(double inmoney)/按進(jìn)價(jià)顯示for(int i=0;i=top;i+)if(goodsi.getinmoney()=inmoney&goodsi.gettag()=1)goodsi.disp();goods* godata:searchnum(int num) /按編號(hào)搜索for(int i=0;i=top;i+) if(goodsi.getnum()=num&goodsi.ge

18、ttag()=1) /cout找到的商品號(hào):goodsi.getnum()找到的商品標(biāo)記:goodsi.gettag()endl; return &goodsi; return null;goods* godata:searchoutmoney(double outmoney) /按銷售價(jià)搜索for(int i=0;i=top;i+) if(goodsi.getoutmoney()=outmoney&goodsi.gettag()=1) return &goodsi;return null;void godata:outmoneydisp(double outmoney)/按進(jìn)價(jià)顯示for(i

19、nt 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 按供應(yīng)商查詢-endl; cout-2 按進(jìn)價(jià)查詢 -endl; cout-3 按銷售價(jià)查詢-endl; cout-0 后退 -choice; switch(choice) case 1: system(cls); c

20、out請(qǐng)輸入供應(yīng)商的名字:gname; g=searchgname(gname); if(g=null) cout沒有該商家供應(yīng)的商品!endl; else gnamedisp(gname); break; case 2: system(cls); cout請(qǐng)輸入要查詢的進(jìn)價(jià):inmoney; g=searchinmoney(inmoney); if(g=null) cout沒有該進(jìn)價(jià)的商品!endl; else inmoneydisp(inmoney); break; case 3: system(cls); cout請(qǐng)輸入要查詢的銷售價(jià):outmoney; g=searchoutmoney

21、(outmoney); if(g=null) cout沒有該銷售價(jià)的商品!endl; else outmoneydisp(outmoney); break; cout按任意鍵繼續(xù)endl; getch(); system(cls); void godata:godata() /商品庫維護(hù)int choice=1;/int num;/goods *g;while(choice!=0) coutendlendl-歡迎進(jìn)入商品進(jìn)貨管理系統(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(good

23、si.gettag()=1)goodsi.disp();godata:godata() /析構(gòu)函數(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-歡迎進(jìn)入商品進(jìn)貨管理程序-endlendl;cout-1

24、 增加進(jìn)貨信息-endl;cout-2 已進(jìn)商品信息管理-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;四、調(diào)試分析這次的面向?qū)ο蟪绦蛟O(shè)計(jì)的課程設(shè)計(jì)的任務(wù),是我們?cè)诒倦A段學(xué)完理論課程之后對(duì)自己該方面的能力的一次很好的檢驗(yàn)。從開始的算法思路到運(yùn)行調(diào)試后的美觀的圖形界面以及另人興奮的可用程序,都是一個(gè)很好的學(xué)習(xí)和鍛煉

25、的過程。使我們鞏固了原有的理論知識(shí),培養(yǎng)了我們靈活運(yùn)用和組合集成所學(xué)過知識(shí)及技能來分析、解決實(shí)際問題的能力。使我們能夠?qū)⒆陨碇R(shí)和能力能在實(shí)際中的應(yīng)用和發(fā)揮。五、用戶手冊(cè) 本程序的運(yùn)行環(huán)境為dos操作系統(tǒng),執(zhí)行文件為:商品進(jìn)貨管理系統(tǒng).exe; 進(jìn)入演示程序后,即顯示對(duì)話形式的提示操作過程,選擇進(jìn)入增加進(jìn)貨信息時(shí),則將所要輸入的信息輸入選擇進(jìn)入已進(jìn)商品信息管理項(xiàng)時(shí),則進(jìn)入下一步詳細(xì)操作;選擇商品信息刪除查詢修改排序項(xiàng)后,可按各種信息搜索,選擇相應(yīng)選項(xiàng)即可; 選擇退出后,便會(huì)退出系統(tǒng)。六、測(cè)試數(shù)據(jù)主界面: 新增商品功能:進(jìn)入商品管理信息功能:進(jìn)入商品查詢功能:進(jìn)入商品修改功能:進(jìn)入商品排序功能:

26、進(jìn)入商品統(tǒng)計(jì)功能:七、附錄#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);tag

27、=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商品編號(hào):numendl商品名稱:nameendl商品類型:typeendl進(jìn)貨價(jià)格:inmoneyendl

28、銷售價(jià)格:outmoneyendl商品數(shù)量:quantityendl供應(yīng)商家:gnameendl;private:int tag;int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;/-商品庫類-class godatapublic:godata() /構(gòu)造函數(shù)goods g;top=-1;ifstream fin(goods.txt);while(1)fin.read(char *)&g,sizeof(g);if(!fin)break;top+;goodstop=g;fi

29、n.close();void addgoods()/新增商品int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;goods *g;cout請(qǐng)輸入商品的基本信息:endl;cout商品編號(hào):num;cout商品名稱:name;cout商品類別:type;cout商品的進(jìn)貨價(jià):inmoney;cout商品的銷售價(jià):outmoney;cout商品數(shù)量:quantity;cout供應(yīng)商名稱:gname;if(searchnum(num)=null) top+; goodstop.i

30、nit(num,name,type,inmoney,outmoney,quantity,gname); g=searchnum(num); system(cls); cout-新增商品成功-disp();elsecout您輸入的信息有誤請(qǐng)重新輸入!endl;void delgoods() /刪除商品int num;goods *g;cout請(qǐng)輸入要?jiǎng)h除商品的編號(hào):num;g=searchnum(num);if(g=null)cout該商品不存在,請(qǐng)重新輸入delgoods();cout-刪除成功-disp();void modify() /修改商品信息int oldnum;int num;ch

31、ar name20;char type20;float inmoney;float outmoney;int quantity;char gname20;goods *g;cout請(qǐng)輸入需要修改的商品的編號(hào):oldnum;g=searchnum(oldnum);if(g=null)cout該商品不存在,請(qǐng)重新輸入endl;elsecout請(qǐng)輸入商品的新信息:endl;cout商品編號(hào):num;cout商品名稱:name;cout商品類別:type;cout商品的進(jìn)貨價(jià):inmoney;cout商品的銷售價(jià):outmoney;cout商品數(shù)量:quantity;cout供應(yīng)商名稱:gname;g

32、-init(num,name,type,inmoney,outmoney,quantity,gname);system(cls);float inmonstati() /進(jìn)價(jià)統(tǒng)計(jì)float count=0;for(int i=0;i=top;i+)count=count+goodsi.getinmoney()*goodsi.getquantity();return count; float outmonstati() /銷售價(jià)統(tǒng)計(jì)float count=0;for(int i=0;i=top;i+)count=count+goodsi.getoutmoney()*goodsi.getquant

33、ity();return count; int quanstati() /數(shù)量統(tǒng)計(jì) int count=0; for(int i=0;i=top;i+)count=count+goodsi.getquantity();return count; /*void sortinmon() /進(jìn)價(jià)排序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、銷售價(jià)排序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 按進(jìn)價(jià)排序-endl; cout - 2 按銷售價(jià)排序-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所有商品的進(jìn)價(jià)總和為:inmonstati()endl;cout所有商品的銷售價(jià)總和為:outmonstati()endl;cout所有商品的數(shù)量總和為:quanstati()endl;goods* searchgname(char gname20) /按供應(yīng)商搜索for(int i=0;i=top;i+) if(!strcmp(goodsi.getgname(),gname)&goodsi.gettag()=1)

36、return &goodsi;return null;void gnamedisp(char gname20) /按供應(yīng)商顯示for(int i=0;i=top;i+)if(!strcmp(goodsi.getgname(),gname)&goodsi.gettag()=1)goodsi.disp();goods* searchinmoney(double inmoney) /按進(jìn)價(jià)搜索for(int i=0;i=top;i+) if(goodsi.getinmoney()=inmoney&goodsi.gettag()=1) return &goodsi;return null;void i

37、nmoneydisp(double inmoney)/按進(jìn)價(jià)顯示for(int i=0;i=top;i+)if(goodsi.getinmoney()=inmoney&goodsi.gettag()=1)goodsi.disp();goods* searchnum(int num) /按編號(hào)搜索for(int i=0;i=top;i+) if(goodsi.getnum()=num&goodsi.gettag()=1) /cout找到的商品號(hào):goodsi.getnum()找到的商品標(biāo)記:goodsi.gettag()endl; return &goodsi; return null;goods* searchoutmoney(double outmoney) /按銷售價(jià)搜索for(int i=0;i=top;i+) if(goodsi.getoutmoney()=outmoney&goodsi.gettag()=1) return &goodsi;return null;void outmoneydisp(double outmoney)/按進(jìn)價(jià)顯示for(int i=0;i=top;i+)if(goodsi.getoutmoney()=outmoney&goodsi.gettag()=1)goodsi.disp();vo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論