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

下載本文檔

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

文檔簡介

1、淮 海 工 學(xué) 院 計(jì) 算 機(jī) 工 程 學(xué) 院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: C+程序設(shè)計(jì)課程設(shè)計(jì) 姓 名: 學(xué) 號: 專業(yè)班級: 系 (院): 設(shè)計(jì)時(shí)間: 設(shè)計(jì)地點(diǎn): 成績:指導(dǎo)教師評語: 簽名: 年 月 日1、課程設(shè)計(jì)目的 C+程序設(shè)計(jì)課程設(shè)計(jì)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)重要的實(shí)踐性教學(xué)環(huán)節(jié)之一,本次設(shè)計(jì)結(jié)合實(shí)際應(yīng)用的要求,使課程設(shè)計(jì)既覆蓋C+的知識點(diǎn),又接近工程實(shí)際需要。目的是通過課程設(shè)計(jì)的綜合訓(xùn)練,培養(yǎng)學(xué)生實(shí)際分析問題、解決問題的能力,以及編程和動(dòng)手能力,最終目標(biāo)是通過課程設(shè)計(jì)這種形式,幫助學(xué)生系統(tǒng)掌握C+程序設(shè)計(jì)這門課程的主要內(nèi)容,養(yǎng)成良好的編程習(xí)慣,更好的完成教學(xué)任務(wù)。2、課程設(shè)計(jì)任務(wù)與要求:本

2、次課程設(shè)計(jì)利用C+程序設(shè)計(jì)課程中所學(xué)到的編程知識和編程技巧,完成具有一定難度和工作量的程序設(shè)計(jì)題目,幫助學(xué)生掌握編程、調(diào)試的基本技能,獨(dú)立完成所布置的任務(wù)。要求:1、對系統(tǒng)進(jìn)行功能需求分析2、設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)框架3、編程簡練,程序功能齊全,能正確運(yùn)行4、說明書、流程圖要清楚5、課題完成后必須按要求提交課程設(shè)計(jì)報(bào)告任務(wù):設(shè)計(jì)一個(gè)商品銷售管理系統(tǒng)。運(yùn)用C+語言描述商品類、供應(yīng)商類。要求設(shè)計(jì)中綜合運(yùn)用C+基礎(chǔ)知識,利用指針對商品、供應(yīng)商鏈表進(jìn)行處理,方便快捷的進(jìn)行增刪改,充分利用友元來處理兩個(gè)類之間的關(guān)系,理解面向?qū)ο蟪绦蛟O(shè)計(jì)的核心的概念。實(shí)現(xiàn)功能:(1)建立商品類、供應(yīng)商類(2)商品、供應(yīng)

3、商信息的初始化(3)商品信息的添加、修改、刪除、 查找(4)供應(yīng)商信息的添加、修改、刪除、查找(5)商品信息、供應(yīng)商信息的輸出備注:將商品、供應(yīng)商保存為文件,能夠?qū)懭肱c讀出。概要設(shè)計(jì)(1) 需求分析:要實(shí)現(xiàn)對商品,供應(yīng)商信息的添加、修改、刪除、查找,并輸出信息,能夠方便快捷,并有用戶能詳細(xì)清楚的操作指南。(2)模塊說明:本次程序設(shè)計(jì)中,需要設(shè)計(jì)10個(gè)模塊,分別是添加、修改、刪除、查找、輸出商品信息和供應(yīng)商信息,一共4個(gè)類:分別是商品類、商品數(shù)據(jù)類、供應(yīng)商類、供應(yīng)商數(shù)據(jù)類。通過幾個(gè)switch語句實(shí)現(xiàn)用戶選擇功能。主要函數(shù)流程圖:(3)詳細(xì)設(shè)計(jì) 商品數(shù)據(jù)類的設(shè)計(jì)class spData priv

4、ate: char name100;int count;float iprice;float oprice; char gys20;public: int id;int getId()char *getName()int getCount()float getBuy() float getSale()char *getGys()void setId(int n)void setName(char na)void setCount(int c)void setBuy(float i)void setSale(float o) void setGys(char g);商品類的設(shè)計(jì)class Com

5、modity private:spData t50; int n;public:void newFile()int id;int n;char name50; int count;float iprice;float oprice; char gys20;if(n<0) n=0; int i;spData temp; for(;n+)cout<<"商品編號:"cin>>id;if(id=-1)break;tn.setId(id);cout<<"商品名:"cin>>name;tn.setName(nam

6、e);cout<<"庫存量:"cin>>count;tn.setCount(count);cout<<"進(jìn)價(jià):"cin>>iprice;tn.setBuy(iprice);cout<<"售價(jià):"cin>>oprice;tn.setSale(oprice);cout<<"供應(yīng)商:"cin>>gys;tn.setGys(gys); cout<<"若商品添加完畢,請按-1退出添加!"<&l

7、t;endl;for(i=0;i<n;i+)if(ti.getId()>tn.getId()temp=ti;ti=tn;tn=temp;void showData(int i)spData t,*p;p=&t;cout<<p->getId()<<setw(10)<<p->getName()<<setw(10)<<p->getCount()<<setw(8)<<p->getBuy()<<setw(8)<<p->getSale()<&l

8、t;setw(8)<<p->getGys()<<endl;void showData() int n;cout<<"商品編號"<<setw(8)<<"商品名"<<setw(8)<<"庫存量"<<setw(10)<<"已售量"<<setw(10)<<"進(jìn)價(jià)"<<setw(8)<<"售價(jià)"<<setw(8)&

9、lt;<"供應(yīng)商"<<endl;for(int i=0;i<n;i+)if(ti.getCount()>0 )showData(i);cout<<"商品種類:"<<n<<endl;void save() ofstream fout;fout.open("商品清單.txt",ios:app); if(!fout)cout<<"cannot open the file!"<<endl;return ;fout<<&qu

10、ot;商品編號"<<" "<<"商品名"<<" "<<"庫存量"<<" "<<"進(jìn)價(jià)"<<" "<<"售價(jià)"<<" "<<"供應(yīng)商"<<" "<<endl;for(int i=0;i<n;i+) fout<<

11、ti.getId()<<setw(14)<<ti.getName()<<setw(10)<<ti.getCount()<<setw(10)<<ti.getBuy()<<setw(10)<<ti.getSale()<<setw(10)<<ti.getGys()<<endl;cout<<"*Save Success!*"<<endl;fout.close(); void xiugai() int count; char na

12、me100;float iprice;float oprice; char gys20;int temp;temp=search();if(temp=-1)cout<<"cannot find the shopping!"<<endl;return;else cout<<"請輸入新數(shù)據(jù):"<<endl;cout<<"商品名:"cin>>name;ttemp.setName(name);cout<<"庫存量:"cin>>c

13、ount;ttemp.setCount(count);cout<<"進(jìn)價(jià):"cin>>iprice;ttemp.setBuy(iprice);cout<<"售價(jià):"cin>>oprice;ttemp.setSale(oprice);cout<<"供應(yīng)商:"cin>>gys;ttemp.setGys(gys);int search() int id;cout<<"id:"cin>>id;int low=0,mid,high

14、=n-1;while(low<=high)mid=(low+high)/2;if(tmid.getId()=id)return mid;else if(tmid.getId()>id)high=mid-1;else low=mid+1;return -1; void remove() spData t10; cout<<"請輸入要?jiǎng)h除的商品編號"<<endl;int id;cin>>id; fstream file("商品清單.txt",ios:in|ios:out|ios:binary);for(int

15、u=0;u<5;u+)file.read(char*)&tu,sizeof(tu);for(int v=0;v<5;v+) if(tv.id=id)continue;elsefile.write(char*)&tv,sizeof(tv);cout<<"該商品被刪除"<<endl;file.close();供應(yīng)商數(shù)據(jù)類的設(shè)計(jì)class spData private: char name100;int count;float iprice;float oprice; char gys20;public: int id;int

16、getId()char *getName(char na)int getCount()float getBuy() float getSale()char *getGys()void setId(int n)void setName(char na)void setCount(int c)void setBuy(float i)void setSale(float o) void setGys(char g);供應(yīng)商類的設(shè)計(jì)class gongyingshang private:gysData t50; int n; public:void newFile() int id;char name

17、50;int phone;if(n<0) n=0; for(;n+) cout<<"供應(yīng)商編號:"cin>>id;if(id=-1)break;tn.setid();cout<<"供應(yīng)商名稱:"tn.setname(name);cout<<"供應(yīng)商電話:"tn.setphone( ); cout<<"若供應(yīng)商添加完畢,請按-1退出添加!"<<endl;void showData(int i)gysData t,*p;p=&t;co

18、ut<<setw(8)<<p->getid()<<setw(10)<<p->getname()<<setw(10)<<p->getphone()<<endl;void showData()cout<<setw(8)<<"供應(yīng)商編號"<<setw(8)<<"供應(yīng)商名稱"<<setw(8)<<"供應(yīng)商電話"<<endl;for(int i=0;i<n

19、;i+)showData(i);cout<<"產(chǎn)品種類:"<<n<<endl;void save()ofstream fout;fout.open("供應(yīng)商.txt",ios:app); if(!fout)cout<<"cannot open the file!"<<endl;return ;fout<<"供應(yīng)商編號"<<" "<<"供應(yīng)商姓名"<<" &qu

20、ot;<<"供應(yīng)商手機(jī)號"<<" "<<endl;for(int i=0;i<n;i+) fout<<ti.getid()<<setw(10)<<ti.getname()<<setw(14)<<ti.getphone()<<endl;cout<<"*Save Success!*"<<endl;fout.close(); int search() int id;cout<<"id

21、:"cin>>id;int low=0,mid,high=n-1;while(low<=high)mid=(low+high)/2;if(tmid.getid()=id)return mid;else if(tmid.getid()>id)high=mid-1;else low=mid+1;return -1; void xiugai() char name100; int phone;int temp;temp=search();if(temp=-1)cout<<"cannot find the gys!"<<en

22、dl;return;else cout<<"請輸入新數(shù)據(jù):"<<endl;cout<<"供應(yīng)商名:"cin>>name;ttemp.setname(name);cout<<"供應(yīng)商手機(jī)號:"cin>>phone;ttemp.setphone(); void remove() gysData g10; cout<<"請輸入要?jiǎng)h除的供應(yīng)商編號"<<endl;int id;cin>>id; fstream file

23、("gys.txt",ios:in|ios:out|ios:binary);for(int u=0;u<5;u+)file.read(char*)&gu,sizeof(gu);for(int v=0;v<5;v+) if(gv.id=id)continue;elsefile.write(char*)&gv,sizeof(gv);cout<<"該供應(yīng)商被刪除"<<endl;file.close();菜單函數(shù)的設(shè)計(jì)inline void menu2()system("cls");cout

24、<<" *歡迎使用商品銷售管理系統(tǒng)* "<<endl;cout<<" *商品選項(xiàng)* "<<endl;cout<<" (1)添加 "<<endl;cout<<" (2)保存 "<<endl;cout<<" (3)刪除 "<<endl;cout<<" (4)查找 "<<endl; cout<<" (5)信息輸出 &q

25、uot;<<endl; cout<<" (6)修改 "<<endl;cout<<" (7)菜單 "<<endl;cout<<" (0)退出系統(tǒng) "<<endl;cout<<" *2012.6* "<<endl; inline void menu1()system("cls"); cout<<" *歡迎使用商品銷售管理系統(tǒng)* "<<endl;cou

26、t<<" *主菜單* "<<endl;cout<<" (1)商品選項(xiàng) "<<endl;cout<<" (2)供應(yīng)商選項(xiàng) "<<endl;cout<<" (0)退出系統(tǒng) "<<endl;cout<<" *2012.6* "<<endl; inline void menu3()system("cls");cout<<" *歡迎使用商品銷售管

27、理系統(tǒng)* "<<endl;cout<<" *供應(yīng)商選項(xiàng)* "<<endl;cout<<" (1)添加 "<<endl;cout<<" (2)保存 "<<endl; cout<<" (3)刪除 "<<endl;cout<<" (4)查找 "<<endl; cout<<" (5)信息輸出 "<<endl; cout&

28、lt;<" (6)修改 "<<endl;cout<<" (7)菜單 "<<endl; cout<<" (0)退出系統(tǒng) "<<endl;cout<<" *2012.6* "<<endl;主函數(shù)的設(shè)計(jì):int main()menu1();int x;cout<<" 請選擇:"cin>>x;switch(x)case 1:menu2();Commodity com;int c;for(;)

29、cout<<" 請選擇:"cin>>c;switch(c)case 1:com.newFile();break;case 2:com.save();break;case 3:com.remove();break; case 4:com.search;break; case 5:com.showData();break; case 6:menu1();break;case 0:cout<<" *謝謝使用* "<<endl;cout<<" *!再見!* "<<endl

30、; break;case 2:menu3();gongyingshang gys;int c;for(;)cout<<" 請選擇:"cin>>c;switch(c)case 1:gys.newFile();break;case 2:gys.save();break; case 3:gys.remove();break; case 4:gys.showData();break; case 5:gys.search();break;case 6:menu1();break;case 0:cout<<" *謝謝使用* "&l

31、t;<endl;cout<<" *!再見!* "<<endl; break;case 0:cout<<" *謝謝使用* "<<endl;cout<<" *!再見!* "<<endl; break;return 0;(4)調(diào)試分析:F:程序3.cpp(226) : warning C4700: local variable 'n' used without having been initializedF:程序3.cpp(246) : warn

32、ing C4700: local variable 'c1' used without having been initializedF:程序3.cpp(348) : warning C4700: local variable 'g1' used without having been initializedC:Documents and SettingsAdministrator桌面q.cpp(237) : error C2562: 'search' : 'void' function returning a value C:D

33、ocuments and SettingsAdministrator桌面q.cpp(228) : see declaration of 'search'C:Documents and SettingsAdministrator桌面q.cpp(243) : error C2562: 'search' : 'void' function returning a value C:Documents and SettingsAdministrator桌面q.cpp(228) : see declaration of 'search(5)用戶使用說

34、明手冊:1.進(jìn)入演示程序后,即顯示對話形式的提示操作過程: 如第一個(gè)選擇1 商品選項(xiàng) ,即顯示 (1)添加 (2)保存 (3)刪除 (4)查找 (5)信息輸出(6)修改 (7)菜單 (0)退出系統(tǒng) 選擇1,即顯示商品編號、商品名、庫存量、進(jìn)價(jià)、售價(jià)、供應(yīng)商各項(xiàng)商品信息,一次輸入所添加的數(shù)據(jù)。添加完畢,按-1退出添加;選擇2,即將商品信息保存;選擇3,刪除要?jiǎng)h除的商品信息;選擇4,查找商品信息;選擇5,信息的輸出;選擇6,修改信息選擇7,返回到菜單;選擇0,退出系統(tǒng)。如第一個(gè)選擇2,供應(yīng)商選項(xiàng) ,同樣顯示 (1)添加 (2)保存 (3)刪除 (4)查找 (5)信息輸出(6)修改 (7)菜單 (0

35、)退出系統(tǒng) 選擇數(shù)據(jù)的功能跟上面一樣。第一個(gè)選擇0 退出系統(tǒng)。(6)測試數(shù)據(jù)進(jìn)入演示程序后,即顯示對話形式的提示操作過程:選擇:1 商品選項(xiàng)選擇:1 添加商品選擇:2 保存信息選擇:3 刪除信息選擇:4 查找信息選擇:5 信息輸出選擇:6 修改選擇:0 退出系統(tǒng)選擇:2 供應(yīng)商選項(xiàng)供應(yīng)商信息的各選項(xiàng)跟商品信息的選項(xiàng)一樣。4課程設(shè)計(jì)成果程序源代碼#include<iostream.h>#include<fstream.h>#include<string.h>#include<iomanip.h> #define Mfname 100#include

36、<conio.h> #include<stdio.h> #include<process.h> #include<dos.h>class spData private: char name100;int count;float iprice;float oprice; char gys20;public: int id;int getId()return id;char *getName()return name;int getCount()return count;float getBuy()return iprice; float getSa

37、le()return oprice;char *getGys()return gys;void setId(int n)id=n;void setName(char na)strcpy(name,na);void setCount(int c)count=c; void setBuy(float i)iprice=i;void setSale(float o)oprice=o; void setGys(char g) strcpy(gys,g);class gysDataprivate:char name100;int phone;public: int id;int getid()retur

38、n id;char *getname()return name;int getphone()return phone;void setid()cin>>id;void setname(char na)strcpy(name,na);void setphone()cin>>phone;class Commodity private:spData t50; int n;public:void newFile()int id;int n;char name50; int count;float iprice;float oprice; char gys20;if(n<0

39、) n=0; int i;spData temp; for(;n+)cout<<"商品編號:"cin>>id;if(id=-1)break;tn.setId(id);cout<<"商品名:"cin>>name;tn.setName(name);cout<<"庫存量:"cin>>count;tn.setCount(count);cout<<"進(jìn)價(jià):"cin>>iprice;tn.setBuy(iprice);cout<

40、;<"售價(jià):"cin>>oprice;tn.setSale(oprice);cout<<"供應(yīng)商:"cin>>gys;tn.setGys(gys); cout<<"若商品添加完畢,請按-1退出添加!"<<endl;for(i=0;i<n;i+)if(ti.getId()>tn.getId()temp=ti;ti=tn;tn=temp;void showData(int i)spData t,*p;p=&t;cout<<p->getI

41、d()<<setw(10)<<p->getName()<<setw(10)<<p->getCount()<<setw(8)<<p->getBuy()<<setw(8)<<p->getSale()<<setw(8)<<p->getGys()<<endl;void showData() int n;cout<<"商品編號"<<setw(8)<<"商品名"<&

42、lt;setw(8)<<"庫存量"<<setw(10)<<"已售量"<<setw(10)<<"進(jìn)價(jià)"<<setw(8)<<"售價(jià)"<<setw(8)<<"供應(yīng)商"<<endl;for(int i=0;i<n;i+)if(ti.getCount()>0 )showData(i);cout<<"商品種類:"<<n<<

43、;endl;void save() ofstream fout;fout.open("商品清單.txt",ios:app); if(!fout)cout<<"cannot open the file!"<<endl;return ;fout<<"商品編號"<<" "<<"商品名"<<" "<<"庫存量"<<" "<<"進(jìn)

44、價(jià)"<<" "<<"售價(jià)"<<" "<<"供應(yīng)商"<<" "<<endl;for(int i=0;i<n;i+) fout<<ti.getId()<<setw(14)<<ti.getName()<<setw(10)<<ti.getCount()<<setw(10)<<ti.getBuy()<<setw(10)<

45、;<ti.getSale()<<setw(10)<<ti.getGys()<<endl;cout<<"*Save Success!*"<<endl;fout.close(); void xiugai() int count; char name100;float iprice;float oprice; char gys20;int temp;temp=search();if(temp=-1)cout<<"cannot find the shopping!"<<en

46、dl;return;else cout<<"請輸入新數(shù)據(jù):"<<endl;cout<<"商品名:"cin>>name;ttemp.setName(name);cout<<"庫存量:"cin>>count;ttemp.setCount(count);cout<<"進(jìn)價(jià):"cin>>iprice;ttemp.setBuy(iprice);cout<<"售價(jià):"cin>>oprice

47、;ttemp.setSale(oprice);cout<<"供應(yīng)商:"cin>>gys;ttemp.setGys(gys);int search() int id;cout<<"id:"cin>>id;int low=0,mid,high=n-1;while(low<=high)mid=(low+high)/2;if(tmid.getId()=id)return mid;else if(tmid.getId()>id)high=mid-1;else low=mid+1;return -1; vo

48、id remove() spData t10; cout<<"請輸入要?jiǎng)h除的商品編號"<<endl;int id;cin>>id; fstream file("商品清單.txt",ios:in|ios:out|ios:binary);for(int u=0;u<5;u+)file.read(char*)&tu,sizeof(tu);for(int v=0;v<5;v+) if(tv.id=id)continue;elsefile.write(char*)&tv,sizeof(tv);cout

49、<<"該商品被刪除"<<endl;file.close();class gongyingshang private:gysData t50; int n; public:void newFile() int id;char name50;int phone;if(n<0) n=0; for(;n+) cout<<"供應(yīng)商編號:"cin>>id;if(id=-1)break;tn.setid();cout<<"供應(yīng)商名稱:"tn.setname(name);cout<

50、;<"供應(yīng)商電話:"tn.setphone( ); cout<<"若供應(yīng)商添加完畢,請按-1退出添加!"<<endl;void showData(int i)gysData t,*p;p=&t;cout<<setw(8)<<p->getid()<<setw(10)<<p->getname()<<setw(10)<<p->getphone()<<endl;void showData()cout<<setw(

51、8)<<"供應(yīng)商編號"<<setw(8)<<"供應(yīng)商名稱"<<setw(8)<<"供應(yīng)商電話"<<endl;for(int i=0;i<n;i+)showData(i);cout<<"產(chǎn)品種類:"<<n<<endl;void save()ofstream fout;fout.open("供應(yīng)商.txt",ios:app); if(!fout)cout<<"cannot open the file!"<<endl;return ;fout<<"供應(yīng)商編號"<<" "<<"供應(yīng)商姓名"<<" "<<"供應(yīng)商手機(jī)號"<<" "<<endl;for(int i=0;i<n;i+) fo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論