版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p> 1 題目內(nèi)容及設(shè)計要求1</p><p><b> 2 總體設(shè)計1</b></p><p> 2.1 總體功能框圖1</p><p> 2.2 類的設(shè)計說明2</p><p> 2.3
2、 主要算法流程圖3</p><p> 3程序清單及注釋6</p><p> 4運行結(jié)果與分析14</p><p><b> 5總結(jié)17</b></p><p><b> 6參考文獻18</b></p><p><b> 題目內(nèi)容及設(shè)計要求
3、</b></p><p> 設(shè)計對象數(shù)組,類中包含數(shù)據(jù):商品編號、商品名稱、數(shù)量、日期、單價等。能統(tǒng)計當日銷售額。</p><p> 實現(xiàn)錄入數(shù)據(jù)(入庫),顯示數(shù)據(jù),查詢商品信息,刪除指定記錄等功能。所有記錄保存到文件中,也可以將文件的內(nèi)容顯示在屏幕上。為了允許用戶交替選擇各功能,使用菜單實現(xiàn)選擇功能。</p><p><b> 2 總
4、體設(shè)計</b></p><p> 2.1 總體功能框圖</p><p> 圖2-1 總體框圖</p><p> 2.2 類的設(shè)計說明</p><p> 定義了一個Goods類,它包含了商品的編號,名稱,日期,單價,日銷售量的屬性;然后又定義了一個Goods的派生類Supermarket類以實現(xiàn)超市商品的主菜單功能,它包
5、含了商品的添加函數(shù)Add(),商品的刪除函數(shù)Delete(),商品的修改函數(shù)Modify(),商品的查詢函數(shù)Query,商品的統(tǒng)計函數(shù)Add_up()以及對商品操作后的數(shù)據(jù)保存函數(shù)Save()和鏈表。用它來實現(xiàn)程序的各項功能。</p><p> 圖2-2 類的UML圖</p><p> 2.3 主要算法流程圖</p><p> 主函數(shù)main()流程圖,如
6、圖2-3所示:</p><p> 圖2-3 商品主函數(shù)流程圖</p><p> 商品增加函數(shù)Add()流程圖,如圖2-4所示:</p><p> 圖2-4 商品增加算法流程圖</p><p> 商品刪除函數(shù)Delete()流程圖,如圖2-5所示:</p><p> 圖2-5 商品刪除算法流程圖</
7、p><p> 商品修改函數(shù)Modify()流程圖,如圖2-6所示:</p><p> 圖2-6 商品修改算法流程圖</p><p> 商品查詢函數(shù)Query()流程圖,如圖2-7所示:</p><p> 圖2-7 商品查詢算法流程圖</p><p> 商品統(tǒng)計函數(shù)Add_up()流程圖,如圖2-8所示:<
8、;/p><p> 圖2-8 商品統(tǒng)計算法流程圖</p><p><b> 程序清單及注釋</b></p><p> #include<iostream.h></p><p> #include<fstream.h></p><p> #include<ctyp
9、e.h></p><p> #include<stdlib.h></p><p> #include<string.h></p><p> int n=0; //全局數(shù)據(jù),結(jié)點數(shù)量</p><p> class Goods</p>
10、<p><b> {</b></p><p> protected:</p><p> char name[20]; //商品名稱</p><p> double num; //商品代碼</p><p> char address
11、[30]; //商品日期</p><p> int price; //商品單價</p><p> double count; //商品日銷售量</p><p> Goods *next;</p><p><b> p
12、ublic:</b></p><p> Goods(double num,char*name,char*address,int price,double count)</p><p><b> {</b></p><p> this->num=num;</p><p> strcpy(this-
13、>name,name);</p><p> strcpy(this->address,address);</p><p> this->price=price;</p><p> this->count=count;</p><p><b> }</b></p><p&
14、gt; void Output()</p><p><b> {</b></p><p> cout<<"num:"<<num<<" name:"<<name<<" address:"<<address</p>&
15、lt;p> <<" price:"<<price<<" count:"<<count<<endl;</p><p><b> }</b></p><p> friend class Supermarket;</p><p><
16、;b> };</b></p><p> class Supermarket</p><p><b> {</b></p><p><b> private:</b></p><p> Goods *goods; //商品表<
17、;/p><p> void Clear(); //清除內(nèi)存中數(shù)據(jù)</p><p><b> public:</b></p><p> Supermarket()</p><p><b> {</b></p><p> goo
18、ds=NULL;</p><p><b> Load();</b></p><p><b> }</b></p><p> ~Supermarket()</p><p><b> {</b></p><p><b> Goods*p;
19、</b></p><p><b> p=goods;</b></p><p><b> while(p)</b></p><p><b> {</b></p><p> p=p->next;</p><p> delete g
20、oods;</p><p><b> goods=p;</b></p><p><b> }</b></p><p> goods=NULL;</p><p><b> }</b></p><p> void Add();
21、 //增加商品</p><p> void Delete(); //刪除商品</p><p> void Modify(); //修改商品</p><p> void Query(); //查詢商品</p><p> void Add_up();
22、 //商品日銷售額統(tǒng)計</p><p> void Save(); //基礎(chǔ)數(shù)據(jù)存盤</p><p> void Load(); //基礎(chǔ)數(shù)據(jù)裝入</p><p><b> };</b></p><p> void Supermarket:
23、:Clear() //清除內(nèi)存中商品數(shù)據(jù)(內(nèi)部使用)</p><p><b> {</b></p><p> Goods* p; </p><p><b> p=goods;</b></p><p><b> while(p)</b></p>&l
24、t;p><b> {</b></p><p> goods=p->next;</p><p><b> delete p;</b></p><p><b> p=goods;</b></p><p><b> }</b></p&
25、gt;<p><b> }</b></p><p> void Supermarket::Add() </p><p><b> {</b></p><p><b> Goods *p;</b></p><p> double num,cou
26、nt;</p><p> char name[20],address[30]; </p><p> int price;</p><p> cout<<"\n請輸入新增商品信息:\n";</p><p> cout<<"商品代碼:";cin>>num;<
27、;/p><p> cout<<"商品名稱:";cin>>name;</p><p> cout<<"商品日期:";cin>>address;</p><p> cout<<"商品單價:";cin>>price;</p>
28、<p> cout<<"商品日銷售量:";cin>>count;</p><p> p=new Goods(num,name,address,price,count); //創(chuàng)建新商品類結(jié)點</p><p> p->next=NULL;</p><p> if(goods==NULL)<
29、/p><p><b> {</b></p><p><b> goods=p;</b></p><p><b> n++; </b></p><p><b> }</b></p><p><b> else&l
30、t;/b></p><p><b> {</b></p><p> Goods *p2=goods;</p><p> while(p2->next)</p><p> p2=p2->next;</p><p> p2->next=p;</p>&l
31、t;p><b> n++;</b></p><p><b> }</b></p><p> } </p><p> void Supermarket::Delete() //刪除商品</p><p><b> {</b
32、></p><p> char name[20];</p><p> cout<<"\n請輸入要刪除的商品名稱:\n";</p><p> cin>>name; //查找要刪除的結(jié)點</p><p> Goods *p1,*p2; p1=go
33、ods;</p><p><b> while(p1)</b></p><p><b> {</b></p><p> if(strcmp(p1->name,name)==0) break;</p><p><b> else</b></p><
34、;p><b> {</b></p><p><b> p2=p1;</b></p><p> p1=p1->next;</p><p><b> }</b></p><p> } //刪除結(jié)點</p><p> if(p1!=
35、NULL) //若找到結(jié)點,則刪除</p><p><b> {</b></p><p> if(p1==goods) //若要刪除的結(jié)點是第一個結(jié)點</p><p><b> {</b></p><p> goods=p1
36、->next;</p><p> delete p1;</p><p><b> n--;</b></p><p><b> }</b></p><p> else //若要刪除的結(jié)點是后續(xù)結(jié)點</p><p>
37、<b> {</b></p><p> p2->next=p1->next;</p><p> delete p1;</p><p><b> n--;</b></p><p><b> }</b></p><p> cout&l
38、t;<"找到并刪除\n";</p><p><b> }</b></p><p> else //未找到結(jié)點</p><p> cout<<"Sorry,未找到!\n";</p><p><b>
39、 }</b></p><p> void Supermarket::Modify() //修改商品信息</p><p><b> {</b></p><p> double num,count;</p><p> char name[20],address[30]; </
40、p><p> int price;</p><p> cout<<"\n 修改商品,請輸入要查的商品名稱:\n";</p><p> cout<<"Name:"; cin>>name; //查找要修改的結(jié)點</p><p> Goods *p1,*
41、p2; p1=goods;</p><p><b> while(p1)</b></p><p><b> {</b></p><p> if(strcmp(p1->name,name)==0) break;</p><p><b> else</b></
42、p><p><b> {</b></p><p><b> p2=p1;</b></p><p> p1=p1->next;</p><p><b> }</b></p><p> }
43、 //修改結(jié)點</p><p> if(p1!=NULL) //若找到結(jié)點</p><p><b> {</b></p><p> p1->Output();</p><p> cout<<"\n請選擇要修改的信息(1—商品代碼,2
44、—商品名稱,3—日期,4—單價,5—商品日銷售量,6—修改全部信息):\n"; </p><p> int a; cin>>a;</p><p><b> switch(a)</b></p><p><b> {</b></p><p> case 1:cout<
45、<"請輸入新代碼:"; cin>>num;</p><p> strcpy(name,p1->name);strcpy(address,p1->address);price=p1->price;count=p1->count; break;</p><p> case 2:cout<<"請輸入新名稱:&
46、quot;; cin>>name;</p><p> num=p1->num;strcpy(address,p1->address);price=p1->price;count=p1->count; break;</p><p> case 3:cout<<"請輸入新日期:"; cin>>address;&
47、lt;/p><p> num=p1->num;strcpy(name,p1->name);price=p1->price;count=p1->count; break;</p><p> case 4:cout<<"請輸入新單價:"; cin>>price;</p><p> num=p1->
48、;num;strcpy(name,p1->name);strcpy(address,p1->address);count=p1->count; break;</p><p> case 5:cout<<"請輸入新商品日銷售量:"; cin>>count;</p><p> num=p1->num;strcpy(name
49、,p1->name);strcpy(address,p1->address);price=p1->price; break;</p><p> case 6:cout<<"請輸入新信息:\n";</p><p> cout<<"商品代碼:"; cin>>num;</p>
50、<p> cout<<"商品名稱:"; cin>>name;</p><p> cout<<"商品日期:"; cin>>address;</p><p> cout<<"商品單價:"; cin>>price;</p
51、><p> cout<<"商品日銷售量:"; cin>>count; break;</p><p> } //創(chuàng)建新商品結(jié)點</p><p> Goods *p3;</p><p> p3=new Goods(num,name,address,price,coun
52、t); //員工結(jié)點替換到鏈表</p><p> p3->next=p1->next;</p><p> if(p1==goods) //若要替換的結(jié)點是第一個結(jié)點</p><p><b> goods=p3;</b></p><p> e
53、lse //若要替換的結(jié)點是后續(xù)結(jié)點</p><p> p2->next=p3;</p><p> delete p1; //刪除原來的商品結(jié)點</p><p> cout<<"修改成功!\n&q
54、uot;;</p><p><b> }</b></p><p> else //未找到結(jié)點</p><p> cout<<"Sorry,未找到!\n";</p><p><b> }<
55、;/b></p><p> void Supermarket::Query()</p><p><b> {</b></p><p> cout<<"\n****查詢商品****\n";</p><p> char name[20];</p><p>
56、 cout<<"\n請輸入要查詢的商品名稱:\n";</p><p> cin>>name;</p><p> Goods *p1=goods;</p><p><b> while(p1)</b></p><p><b> {</b></
57、p><p> if(strcmp(p1->name,name)==0) break;</p><p> else p1=p1->next;</p><p><b> }</b></p><p> if(p1!=NULL) //若找到
58、結(jié)點</p><p><b> {</b></p><p> cout<<"\n要查詢的信息如下:\n";</p><p> cout<<"該類商品代碼:\t"<<p1->num<<"\t"<<"該類商品
59、名稱:\t"<<p1->name<<"\t\n";</p><p> cout<<"該類商品日期:\t"<<p1->address<<"\t"<<"該類商品單價:\t"<<p1->price<<"\t
60、\n";</p><p> cout<<"商品日銷售量:\t"<<p1->count<<"\t";</p><p><b> }</b></p><p> else
61、 //未找到結(jié)點</p><p> cout<<"\nSorry,未找到該類商品!\n"; </p><p><b> } </b></p><p> void Supermarket::Add_up() //統(tǒng)計超市商品日銷售額</p><p&
62、gt;<b> {</b></p><p> cout<<"\n****商品統(tǒng)計****\n";</p><p> double Amount=0,Value=0;</p><p> char name[20];</p><p> cout<<"\n請輸入要
63、統(tǒng)計的商品名稱:\n";</p><p> cin>>name;</p><p> Goods *p1;</p><p><b> p1=goods;</b></p><p><b> while(p1)</b></p><p><b>
64、; {</b></p><p> if(strcmp(p1->name,name)==0) break;</p><p> else p1=p1->next;</p><p><b> }</b></p><p><b> if(p1)</b></p>
65、<p><b> {</b></p><p><b> while(p1)</b></p><p><b> {</b></p><p> Amount+=p1->count;</p><p> Value+=p1->count*p1->
66、price;</p><p> p1=p1->next;</p><p><b> }</b></p><p> cout<<"商品日銷售量是:\n";</p><p> cout<<Amount;</p><p> cout<&l
67、t;"\n商品日銷售額是:\n";</p><p> cout<<Value;</p><p><b> }</b></p><p><b> else </b></p><p> cout<<"\nSorry,未找到該類商品!\n&qu
68、ot;; </p><p><b> } </b></p><p> void Supermarket::Save() //數(shù)據(jù)存盤</p><p><b> { </b></p><p> cout<<"是否
69、保存?[Y/N]";</p><p><b> char a;</b></p><p><b> cin>>a;</b></p><p> if(a=='n')return;</p><p> if(a=='y'||a=='Y
70、39;)</p><p><b> {</b></p><p> ofstream outfile("base.txt",ios::out);</p><p> if(!outfile){cerr<<"open error!";exit(1);}</p><p>
71、 Goods* p;p=goods;</p><p><b> while(p)</b></p><p><b> {</b></p><p> outfile<<"商品代碼\t\t"<<p->num<<endl;</p><p>
72、; outfile<<"商品名稱\t\t"<<p->name<<endl;</p><p> outfile<<"商品日期\t\t"<<p->address<<endl;</p><p> outfile<<"商品單價\t\t"&
73、lt;<p->price<<endl;</p><p> outfile<<"商品日銷售量\t"<<p->count<<endl;</p><p> cout<<endl;</p><p> p=p->next;</p><p>&l
74、t;b> }</b></p><p> outfile.close();</p><p> cout<<"已完成數(shù)據(jù)的保存\n";</p><p><b> }</b></p><p><b> } </b></p>
75、<p> void Supermarket::Load() //數(shù)據(jù)裝入</p><p><b> {</b></p><p> Goods *p=goods;</p><p> ifstream infile("base.txt",ios::in|ios::nocreate);
76、 //讀一條信息</p><p> infile>>p->num>>p->name>>p->address>>p->price>>p->count;</p><p> while(infile.good( ) )</p><p><b> {
77、</b></p><p> p=new Goods(p->num,p->name,p->address,p->price,p->count); //創(chuàng)建商品結(jié)點</p><p> p->next=NULL; //商品結(jié)點加入</p><p> i
78、f(goods) //若已存在結(jié)點</p><p><b> {</b></p><p><b> Goods*p2;</b></p><p><b> p2=goods;</b></p><p> while(p2->next)
79、 //查找尾結(jié)點</p><p> p2=p2->next;</p><p> p2->next=p; //連接</p><p><b> }</b></p><p> else //表空</p><p> goods=p; //連
80、接</p><p> infile>>p->num>>p->name>>p->address>>p->price>>p->count; //讀下一條信息</p><p><b> }</b></p><p> cout<<"\
81、n商品數(shù)據(jù)已經(jīng)裝入\n";</p><p><b> }</b></p><p> int main()</p><p><b> {</b></p><p><b> char c;</b></p><p> Supermarket
82、 a;</p><p><b> do{</b></p><p> cout<<"\n****超市進銷存管理系統(tǒng)****\n";</p><p> cout<<" 1—增加商品\n";</p><p> cout<<"
83、 2—刪除商品\n";</p><p> cout<<" 3—修改商品\n";</p><p> cout<<" 4—查詢商品\n";</p><p> cout<<" 5—統(tǒng)計商品日銷售額\n";</p><p&g
84、t; cout<<" 6—退出 \n 請選擇(1—6):"; </p><p> cin>>c; </p><p><b> switch(c)</b></p><p><b> {</b></p><p>
85、case '1':a.Add();</p><p> a.Save();break;</p><p> case '2':a.Load();</p><p> a.Delete();</p><p> a.Save();break;</p><p> case '3
86、39;:a.Load();</p><p> a.Modify();</p><p> a.Save();break;</p><p> case '4':a.Load();</p><p> a.Query(); break;</p><p> case '5':a.Load
87、();</p><p> a.Add_up();break;</p><p><b> }</b></p><p> }while(c!='6');</p><p><b> return 0;</b></p><p><b> }<
88、/b></p><p><b> 運行結(jié)果與分析</b></p><p> 超市管理系統(tǒng)定義了菜單界面,能夠?qū)崿F(xiàn)菜單管理方便操作者能夠快速的進行每一項功能的操作。該程序的菜單功能有1.添加商品2. 刪除商品 3.修改商品4.查詢商品5統(tǒng)計商品當日量及銷售額的五項功能。操作者按界面提示進行操作,輸入分別對應(yīng)的數(shù)字進行對應(yīng)的功能操作。如圖4-1所示:</p
89、><p> 圖4-1 菜單主界面運行結(jié)果圖</p><p> 按照程序提示輸入數(shù)字“1”,進入商品添加功能。它分別能夠添加商品的編號,名稱,日期,單價,日銷售量。并對添加的商品進行保存處理。保存輸入Y,不保存輸入N。如圖4-2所示:</p><p> 圖4-2 商品添加運行結(jié)果圖</p><p> 進入主菜單界面輸入數(shù)字“2”進行商品
90、刪除功能的操作,進入商品刪除界面后操作者輸入商品的名稱確認后程序自動開始查找該商品的信息,查找到此商品后程序提示是否刪除該商品信息,刪除輸入Y否則輸入N之后程序進行保存。如果沒有該商品的信息程序提示未找到該商品。如圖4-3所示:</p><p> 圖4-3 商品刪除運行結(jié)果圖</p><p> 商品修改功能,進入菜單主界面后輸入數(shù)字“3”進入該功能的操作,首先輸入需要修改的商品名稱,
91、程序開始自動查找商品的信息,包括(1.編號2.名稱3.日期4.單價5.日銷售量)得信息。之后程序提示修改商品各屬性的功能列表,按照提示進行操作,輸入需要修改屬性對應(yīng)的編號進行修改。如輸入“1”是對商品的編號進行修改。修改完成后,進行數(shù)據(jù)的保存操作。如果程序未找到該商品則顯示“未找到此商品”。如圖4-4所示:</p><p> 圖4-4 商品修改運行結(jié)果圖</p><p> 商品的查詢
92、功能,進入菜單界面輸入數(shù)字“4”則對該功能的操作。輸入需要查詢的商品名稱,程序自動查找現(xiàn)儲存的商品信息,并顯示該商品所有的信息列表。如果輸入有誤或無此商品程序顯示“無法找到該商品”如圖4-5所示:</p><p> 圖4-5 商品查詢運行結(jié)果圖</p><p> 對商品的日銷售額的統(tǒng)計,進入主菜單之后輸入數(shù)字“5”進行日銷售額的統(tǒng)計操作,輸入需要統(tǒng)計的商品名稱,程序在保存的數(shù)據(jù)中自動
93、查找后并顯示出該商品的日銷售量以及當日的日銷售額。如果沒有該類商品則顯示“未找到該商品”。如圖4-6所示:</p><p> 圖4-6 商品統(tǒng)計運行結(jié)果圖</p><p><b> 總結(jié)</b></p><p> 通過近一個周對《面向?qū)ο蟪绦蛟O(shè)計》的課程設(shè)計,使我對c++語言有了近一步的理解,我體會到c++語言在各處的應(yīng)用是非常方便的也
94、體會到了c++語言的奇妙之處,提升了自己對它的學(xué)習(xí)興趣,使我對這門課程又有了更進一步的理解,為我以后的學(xué)習(xí)打下了堅實的基礎(chǔ)。做課設(shè)不僅讓我修補了以前學(xué)習(xí)的漏洞,也讓我知道一個道理:編程需要興趣和實際動手。這可以借鑒老師的教學(xué)工作。創(chuàng)新思維至關(guān)重要,它不僅讓我們寫出精簡的代碼,也有助于開發(fā)出高效的程序。雖然之前的課學(xué)的不是很好,但是以后會加倍努力,把這門有意思又方便的課學(xué)好。學(xué)好了它,不僅能解決一些比較復(fù)雜的問題,還能提高我們的思維能力以
95、及理解能力??傊?,此次c++語言課程設(shè)計讓我受益匪淺,感覺從各方面都有了一定的提高。</p><p> 最后感謝幫助過我的老師和同學(xué),為大家加油也為我自己加油!只要好好學(xué),我相信希望就在前方!</p><p><b> 參考文獻</b></p><p> [1]李愛華,程磊著. 面向?qū)ο蟪绦蛟O(shè)計(C++語言) .北京:清華大學(xué)出版社,2
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計---學(xué)生信息管理系統(tǒng)
- c++課程設(shè)計--藥品信息管理系統(tǒng)
- c++客戶信息管理系統(tǒng)課程設(shè)計
- c++課程設(shè)計--職工信息管理系統(tǒng)
- c++課程設(shè)計--職工信息管理
- c++課程設(shè)計---公司人員信息管理系統(tǒng)
- c++課程設(shè)計報告--學(xué)生信息管理系統(tǒng)
- c++課程設(shè)計——圖書信息管理系統(tǒng)
- c++課程設(shè)計——學(xué)生信息管理系統(tǒng)課程設(shè)計報告
- c++課程設(shè)計-小型超市管理系統(tǒng)
- c++課程設(shè)計報告---圖書信息管理系統(tǒng)
- 課程設(shè)計--c++編寫的學(xué)生信息管理系統(tǒng)
- c++課程設(shè)計--某高校信息管理
- c++課程設(shè)計報告---圖書信息管理系統(tǒng)
- c++課程設(shè)計---高校學(xué)生信息管理系統(tǒng)
- 面向?qū)ο骳++課程設(shè)計--學(xué)生信息管理系統(tǒng)
- 公司員工信息管理系統(tǒng)c++課程設(shè)計
- c++程序設(shè)計課程設(shè)計---學(xué)生信息管理系統(tǒng)
- visual c++超市管理系統(tǒng)課程設(shè)計報告
- c++課程設(shè)計實驗報告---職工信息管理系統(tǒng)課程設(shè)計
評論
0/150
提交評論