C++商品管理系統(tǒng)實(shí)驗(yàn)報(bào)告--精選文檔_第1頁
C++商品管理系統(tǒng)實(shí)驗(yàn)報(bào)告--精選文檔_第2頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)訓(xùn)報(bào)告題目: 模擬超市商品管理系統(tǒng) 專 業(yè): 班 級(jí): 學(xué) 號(hào): 小組成員: 年 月 日目錄1 課程設(shè)計(jì)目的12 程序要求與簡(jiǎn)介13 系統(tǒng)分析23.1系統(tǒng)流程圖23.2主要類說明34 測(cè)試運(yùn)行的結(jié)果45 心得體會(huì)66 程序代碼清單6一、課程設(shè)計(jì)目的通過設(shè)計(jì)一個(gè)較為簡(jiǎn)單的商場(chǎng)庫存貨物管理系統(tǒng),進(jìn)一步熟悉C+中類的概念、類的封裝、繼承的實(shí)現(xiàn)方式。了解系統(tǒng)開發(fā)的需求分析、類層次設(shè)計(jì)、模塊分析、編碼測(cè)試、模塊組裝與整體調(diào)試的全過程,加深對(duì)C+的理解與Visual C+環(huán)境的使用;逐步熟悉程序設(shè)計(jì)的方法,并養(yǎng)成良好的編程習(xí)慣。二、程序要求與簡(jiǎn)介設(shè)計(jì)并實(shí)現(xiàn)超市進(jìn)銷存管理系統(tǒng),假設(shè)超市有三

2、個(gè)貨架,分別放有日常用品、食品和家電。本題要求完成以下內(nèi)容:1. 實(shí)現(xiàn)描述超市的類。該類中要求包含三個(gè)函數(shù):(1) 增加商品的函數(shù)(說明:能增加新的商品,也能增加已有商品的數(shù)量)。(2) 銷售函數(shù),按照商品名稱銷售(要求:當(dāng)商品現(xiàn)有數(shù)量少于賣出數(shù)量時(shí),商品不能繼續(xù)賣出,并有相關(guān)信息顯示)。(3) 按照商品名稱查詢商品基本情況的函數(shù)。(查詢結(jié)果包括基本屬性和現(xiàn)有數(shù)量)。2. 定義商品類作為基類,要求包含:商品編號(hào),名稱,商品現(xiàn)有數(shù)量,以及輸出函數(shù)(可定義為虛函數(shù))。3. 從商品類中派生日用品類,食品類,家電類。其中,食品類商品擁有保質(zhì)期屬性,家電類商品擁有顏色屬性(其他屬性可根據(jù)實(shí)際情況自行定義

3、)。由輸出函數(shù)來具體顯示各類商品的名稱、基本屬性和現(xiàn)有數(shù)量。4. 設(shè)計(jì)簡(jiǎn)單的菜單界面,實(shí)現(xiàn)上述所要求的各種功能。即根據(jù)菜單界面的選擇,對(duì)每一種商品都可以添加、售出和查詢各類商品。5. 程序應(yīng)采用多文件結(jié)構(gòu)。6. (選做)重載輸入“”操作符,使得可以通過cin直接讀入上述商品對(duì)象的值。分工:商品基類,三個(gè)派生類,主函數(shù)三、系統(tǒng)分析1.系統(tǒng)流程圖2.程序分析使用面向?qū)ο蟮某绦蛟O(shè)計(jì)進(jìn)行分析,整個(gè)系統(tǒng)涉及兩大類可操作,超市所用函數(shù)、商品。所以系統(tǒng)主要涉及兩大類:超市的類、商品類。系統(tǒng)框架就是超市的類和商品類的定義;主函數(shù)中定義一個(gè)超市對(duì)象,循環(huán)顯示主菜單并根據(jù)用戶選擇調(diào)用超市的類的相應(yīng)方法(成員函數(shù))

4、??紤]系統(tǒng)操作的商品信息具有不確定性,所以考慮使用鏈表保存、處理商品信息。超市類包含:所有商品信息的一個(gè)不帶頭結(jié)點(diǎn)的鏈表及可以對(duì)商品信息進(jìn)行增加,銷售,查詢操作的相關(guān)模塊為成員函數(shù)。所有商品都具有的公共信息及操作可以使用超市類進(jìn)行描述。由于系統(tǒng)具有3類商品且3類商品信息數(shù)據(jù),操作基本相同,所以可以為他們創(chuàng)立相同的類,并且采用繼承和派生。四、測(cè)試運(yùn)行結(jié)果1.超市商品管理系統(tǒng)界面2.商品增加3.商品查詢4.自動(dòng)生成5.商品銷售五、心得體會(huì)通過學(xué)生的分組設(shè)計(jì),使學(xué)生能夠基本掌握C+程序設(shè)計(jì)的方法,并且在此基礎(chǔ)上掌握類的構(gòu)造方法,明確類中構(gòu)造函數(shù)、成員函數(shù)的建立以及調(diào)用,靈活運(yùn)用派生與繼承。此外,并且

5、,結(jié)合C+中,字符串函數(shù)的編譯系統(tǒng)給定的庫函數(shù),采用一定的邏輯編譯,實(shí)現(xiàn)題目中要求的各項(xiàng)要求,達(dá)到基本實(shí)驗(yàn)?zāi)康?,提高自己的C+語言使用水平。六、程序代碼清單#include #include / setw()右對(duì)齊函數(shù)#include using namespace std;class ShangPin /商品類private:char name10;int count;public:ShangPin(char* s_name,int s_count)strcpy(name,s_name);count=s_count;char* getName() return name;int getCou

6、nt() return count;void setCount(int a) count=a;void print()coutsetw(10)namesetw(10)count;class YongPin : public ShangPin /日用品類public:YongPin(char* s_name=NONE,int s_count=0):ShangPin(s_name,s_count);void print()ShangPin:print();coutendl;class ShiPin:public ShangPin /食品類private:int year;int moon;int

7、day;public:ShiPin(char* s_name=NONE,int s_count=0,int a=0,int b=0,int c=0):ShangPin(s_name,s_count)year=a;moon=b;day=c;int getYear() return year;int getMoon() return moon;int getDay() return day;void print()ShangPin:print();coutsetw(10)yearsetw(3)moonsetw(3)dayendl;class DianQi:public ShangPin /電器類p

8、rivate:char colour10;public:DianQi(char* s_name=NONE,int count=0,char* s_colour=NONE):ShangPin(s_name,count)strcpy(colour,s_colour);char* gateColour() return colour;void print()ShangPin:print();coutsetw(30)colourendl;int str(char* s1,char* s2) /判斷字符串內(nèi)容是否相同while(*s1=*s2)if(*s1=0) return 1;s1+;s2+;ret

9、urn 0;int main()YongPin yp10; /申請(qǐng)10組用日品類型的空間ShiPin sp10;DianQi dq10;int a,b=1,i,count;char name10;while(1)cout*歡迎來到超市商品管理系統(tǒng)!*endl;cout* 1:增加 *endl;cout* 2:銷售 *endl;cout* 3:查詢 *endl;cout* 4:隨機(jī) *endl;cout* 0:退出 *endl;cout*endl;couta;switch(a)case 0: return 1; /退出程序case 1: /增加cout請(qǐng)輸入增加商品種類endl; cout1:日

10、用品endl2:食品endl3:電器a;switch(a)case 1: /增加日用品cout請(qǐng)按格式輸入:日用品名稱 增加數(shù)量namecount;b=1;for(i=0;str(ypi.getName(),name)=0&i10;i+) /str(ypi.getName(),name)=0名稱是否不一樣if(str(ypi.getName(),NONE) /str(ypi.getName(),NONE)名稱不存在ypi=YongPin(name,count);b=0;break;if(i=10) cout空間已滿,無法存儲(chǔ),;break;if(b)ypi.setCount(ypi.getCo

11、unt()+count);coutsetw(10) 名稱setw(10)數(shù)量setw(15)保質(zhì)期setw(15)顏色endl;ypi.print();break;case 2: /增加食品cout請(qǐng)按格式輸入:食品名稱 增加數(shù)量 保質(zhì)期(年 月 日)namecountyearmoonday;b=1;for(i=0;str(spi.getName(),NONE)=0&i10;i+)if(str(spi.getName(),name)&day=spi.getDay()&year=spi.getYear()&moon=spi.getMoon()spi.setCount(spi.getCount()

12、+count);b=0;break;if(i=10) cout空間已滿,無法存儲(chǔ),;break;if(b)spi=ShiPin(name,count,year,moon,day);coutsetw(10) 名稱setw(10)數(shù)量setw(15)保質(zhì)期setw(15)顏色endl;spi.print();break;case 3: /增加電器cout請(qǐng)按格式輸入:電器名稱 增加數(shù)量 顏色namecountcolour;b=1;for(i=0;str(dqi.getName(),NONE)=0&i10;i+)if(str(dqi.getName(),name)&str(dqi.gateColou

13、r(),colour)dqi.setCount(dqi.getCount()+count);b=0;break;if(i=10) cout空間已滿,無法存儲(chǔ),;break;if(b)dqi=DianQi(name,count,colour);coutsetw(10) 名稱setw(10)數(shù)量setw(15)保質(zhì)期setw(15)顏色endl;dqi.print();break;break;case 2: /賣出cout請(qǐng)輸入賣出商品種類endl1:日用品endl2:食品endl3:電器a;switch(a)case 1: /賣出日用品cout請(qǐng)按格式輸入:日用品名稱 賣出數(shù)量namecount

14、;b=1;for(i=0;str(ypi.getName(),name)=0&i10;i+)if(str(ypi.getName(),NONE) cout無此商品出售,;b=0;break;if(b)if(ypi.getCount()-count)0)coutypi.getName()還有ypi.getCount()件,不夠出售,;break;ypi.setCount(ypi.getCount()-count);coutsetw(10) 名稱setw(10)數(shù)量setw(15)保質(zhì)期setw(15)顏色endl;ypi.print();break;case 2: /賣出食品cout請(qǐng)按格式輸入

15、:食品名稱 賣出數(shù)量 保質(zhì)期(年 月 日)namecountyearmoonday;b=1;for(i=0;str(spi.getName(),NONE)=0&i10;i+)if(str(spi.getName(),name)&day=spi.getDay()&year=spi.getYear()&moon=spi.getMoon()if(spi.getCount()-count)0) coutspi.getName()還有spi.getCount()件,不夠出售,;b=0;break;spi.setCount(spi.getCount()-count);b=0;coutsetw(10) 名稱

16、setw(10)數(shù)量setw(15)保質(zhì)期setw(15)顏色endl;spi.print();break;if(b)cout無此商品出售,;break;case 3: /賣出電器cout請(qǐng)按格式輸入:電器名稱 賣出數(shù)量 顏色namecountcolour;b=1;for(i=0;str(dqi.getName(),NONE)=0&i10;i+)if(str(dqi.getName(),name)&str(dqi.gateColour(),colour)if(dqi.getCount()-count)0)coutdqi.getName()還有dqi.getCount()件,不夠出售,;b=0;

17、break;dqi.setCount(dqi.getCount()-count);b=0;coutsetw(10) 名稱setw(10)數(shù)量setw(15)保質(zhì)期setw(15)顏色endl;dqi.print();break;if(b)cout無此商品出售,;break;break;case 3: /查詢cout 請(qǐng)選擇查詢商品種類endl1:日用品endl2:食品endl3:電器endl4:全部(a);switch(a)case 1: /查詢?nèi)沼闷穋out日用品:endlsetw(10)名稱setw(10)數(shù)量endlendl;for(i=0;str(ypi.getName(),NONE)

18、=0&i10;i+) ypi.print();break;case 2: /查詢食品cout 食品:endlsetw(10)名稱setw(10)數(shù)量setw(15)保質(zhì)期endlendl;for(i=0;str(spi.getName(),NONE)=0&i10;i+)spi.print();break;case 3: /查詢電器cout 電器:endlsetw(10)名稱setw(10)數(shù)量setw(30)顏色endlendl;for(i=0;str(dqi.getName(),NONE)=0&i10;i+)dqi.print();break;case 4: /查詢?nèi)縞outsetw(10) 名稱setw(10)數(shù)

溫馨提示

  • 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)論