




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)題目:假設(shè)某商店有如下幾種貨品:襯衣、帽子、立柜。每一種貨物都有與其關(guān)聯(lián)的說明信息。襯衣:?jiǎn)蝺r(jià)、產(chǎn)地、庫(kù)存量、布料;帽子:?jiǎn)蝺r(jià)、產(chǎn)地、庫(kù)存量、布料、樣式(平頂或尖頂);立柜:?jiǎn)蝺r(jià)、產(chǎn)地、庫(kù)存量、木料、顏色。對(duì)這些商品的操作有:商品的進(jìn)庫(kù)(增加庫(kù)存量),商品的出庫(kù)(減少庫(kù)存量),該類貨品總價(jià)格的計(jì)算。要求自行設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),用類的繼承與派生關(guān)系將上述的各種貨品表示出來,并使用類的構(gòu)造函數(shù)來初始化每一類對(duì)象的初始數(shù)據(jù)。而后將上述的商品管理計(jì)算機(jī)化,完成操作要求的功能?!緦?shí)現(xiàn)方法提示】1設(shè)立3 個(gè)不同的類來描述與處理3 種不同的貨品。首先注意到上述3 種貨品數(shù)據(jù)之間的相互關(guān)聯(lián)關(guān)系,
2、可使用C+基類及其派生類的定義方法,先抽象出(“提取”出)如下每一貨品都具有的 “公有”數(shù)據(jù)構(gòu)成一個(gè)所謂的基類base,而后再派生出所需的那3 個(gè)類。(1)base(基)類:?jiǎn)蝺r(jià)、產(chǎn)地、庫(kù)存量;(2)由base 作為基類,派生出shirt(襯衣)類:增加“布料”數(shù)據(jù);(3)由base 出發(fā),派生出wardrobe(立柜)類:增加“木料”與“顏色”數(shù)據(jù);(4)而后又由shirt 類出發(fā)(作為基類),派生出cap(帽子)類:增加“樣式”數(shù)據(jù)。2對(duì)應(yīng)于要對(duì)各類數(shù)據(jù)所進(jìn)行的操作,而設(shè)立出類的如下幾個(gè)成員函數(shù)。(1)構(gòu)造函數(shù)通過傳遞來的實(shí)參數(shù)據(jù),來構(gòu)造出每一對(duì)象所具有的各數(shù)據(jù)成員。如基類base 需要傳
3、遞place、count 與price 三項(xiàng)數(shù)據(jù),而派生類shirt 則需在base 數(shù)據(jù)的基礎(chǔ)上增加第四項(xiàng)即布料數(shù)據(jù)material 等。(2)商品的進(jìn)庫(kù)(增加庫(kù)存量)void in_something(int add_cnt);將對(duì)象的庫(kù)存量count 增加一個(gè)數(shù)量add_cnt。(3)商品的出庫(kù)(減少庫(kù)存量)void out_something(int del_cnt);將對(duì)象的庫(kù)存量count 減少一個(gè)數(shù)量del_cnt。(4)該類貨品總價(jià)格的計(jì)算double total_price();通過使用“price*count”計(jì)算并返回對(duì)象所代表貨品的總價(jià)格。(5)對(duì)象數(shù)據(jù)的輸出。在屏幕上
4、顯示出對(duì)象所擁有的當(dāng)前數(shù)據(jù)。 /復(fù)雜化要求:1. 各自商品擁有獨(dú)立特征 獨(dú)立庫(kù)存數(shù)量、單價(jià)和其他特性2. 2.錄入功能中(1)需要判斷現(xiàn)在輸入與以前輸入的是否相同 若相同 則疊加庫(kù)存量(2)在(1)的基礎(chǔ)上判斷單價(jià)是否沖突 若沖突 則要求重新錄入3.功能部分要求自由度 并設(shè)立查詢功能程序如下: #include<iostream>#include<string>using namespace std;class baseprotected: float price; /單價(jià) string place; /產(chǎn)地 int count; /庫(kù)存量 public: base(f
5、loat &p,int &c,string &pl) price=p; count=c; place=pl; void in_something(int add_cnt) count+=add_cnt; void out_something(int del_cnt) if(del_cnt>count)count=0; /變0保護(hù) 小于0的按0計(jì)算 else count-=del_cnt; double total_price() return price*count; int r_count() return count; ;class shirt:public
6、baseprotected: string material;public: shirt(float &p ,int &c ,string &pl ,string &m):base( p , c, pl) material=m; void print() cout<<"n襯衣"<<"t產(chǎn)地:"<<place<<"t材料:"<<material <<"n庫(kù)存量:"<<count<<"
7、;t單價(jià):"<<price<<"t總價(jià)格"<<total_price()<<endl; ;class wardrobe:public baseprotected: string wood; string color;public: wardrobe(float &p ,int &c ,string &pl ,string &w ,string &co ):base(p,c,pl) wood=w; color=co; void print() cout<<"
8、n立柜"<<"t產(chǎn)地:"<<place<<"t顏色:"<<color<<"t木料:"<<wood<<"n庫(kù)存量:" <<count<<"t單價(jià):"<<price<<"t總價(jià)格"<<total_price()<<endl; ;class cap:public shirtprotected: string style
9、;public: cap(float &p ,int &c ,string &pl ,string &m,string &st ):shirt(p,c,pl,m) style=st; void print() cout<<"n帽子"<<"t產(chǎn)地:"<<place<<"t材料:"<<material <<"樣式:"<<style<<"n庫(kù)存量:"<<c
10、ount<<"t單價(jià):" <<price<<"t總價(jià)格"<<total_price()<<endl; ;int choose(string a) /用于判斷下一步執(zhí)行的命令 0.結(jié)束1.襯衣2.帽子3.立柜4.查詢5.入庫(kù)6.出庫(kù)7.出錯(cuò)重輸 if(a="0")return 0; /結(jié)束 else if(a="襯衣"|a="shirt")return 1; else if(a="帽子"|a="cap&quo
11、t;)return 2; else if(a="立柜"|a="wardrobe")return 3; else if(a="查詢"|a="?"|a="about")return 4; else if(a="入庫(kù)"|a="+"|a="in")return 5; else if(a="出庫(kù)"|a="-"|a="out")return 6; else if(a="幫助&qu
12、ot;|a="?"|a="help")return 8; else return 7; int total_count(cap &a,shirt &b,wardrobe &c) return a.r_count()+b.r_count()+c.r_count(); /Powered by X.Duke int main(void)/=輸入部分 int cho=1,i; /cho為選擇計(jì)數(shù)器 接收choose函數(shù)的返回值 通過if語句判斷要執(zhí)行的語句 int ci=0,wi=0,si=0; /標(biāo)記 角標(biāo) float pci5=0.0
13、0,pwi5=0.00,psi5=0.00; /單價(jià) int cou_cap5=0,0,0,0,0,cou_shi5=0,0,0,0,0,cou_war5=0,0,0,0,0; /依次記錄帽子 襯衣 立柜的庫(kù)存量 string pla_cap5="0","0","0","0","0" /保存帽子產(chǎn)地信息 string pla_war5="0","0","0","0","0" /保存立柜產(chǎn)地信息 s
14、tring pla_shi5="0","0","0","0","0" /保存襯衣產(chǎn)地信息 string col5="0","0","0","0","0" /保存顏色信息 string s_mat5="0","0","0","0","0" /保存襯衣_布料信息 string c_mat5="
15、0","0","0","0","0" /保存帽子_布料信息 string woo5="0","0","0","0","0" /保存木料信息 string sty5="0","0","0","0","0" /保存樣式信息 string temp,temp1="0",temp2="0
16、",temp3="0" /臨時(shí)寄存字符 int cou_temp;float p_temp; /臨時(shí)記錄初始值 int loop_sw=0; /事件標(biāo)記點(diǎn) 為0時(shí)不跳過 非0時(shí)跳過 /提示性語句 cout<<"現(xiàn)在對(duì)3種商品 n襯衣(shirt),帽子(cap),立柜(wardrobe) n實(shí)現(xiàn)基本管理功能"<<endl<<"n=首先進(jìn)行初始化工作="<<endl; cout<<"即將錄入商品名稱(也可以是括號(hào)中的英文)輸入0結(jié)束"<<
17、;endl; while(cho!=0) /分類輸入 cout<<"輸入商品名稱" cin>>temp; cho=choose(temp); if(cho=1) /shirt ->place material if(si=5)cout<<"超過最大數(shù)量輸入限制,跳出"continue; /溢出保護(hù) cout<<"設(shè)置襯衣的單價(jià):"cin>>p_temp; /設(shè)置帽子單價(jià) cout<<"輸入產(chǎn)地 布料 初始數(shù)量 并以空格隔開"<<
18、;endl;cin>>temp1>>temp2>>cou_temp; for(i=0;i<=si;i+) /用于判斷是否與之前輸入的有沖突 if(temp1=pla_shii&&temp2=s_mati) if(p_temp!=psisi)cout<<"價(jià)格沖突,輸入最終價(jià)格:"cin>>psisi; cout<<"與之前輸入的商品重復(fù),將數(shù)量疊加"<<endl;cou_shii+=cou_temp; loop_sw=1; /由于重復(fù) 事件開關(guān)打開
19、跳過賦值工作 if(loop_sw=0) psisi=p_temp; pla_shisi=temp1; s_matsi=temp2; cou_shisi+=cou_temp; /賦值工作 cou_temp=0; /掃尾清零工作 loop_sw=0; /同上 if(cho=2) /cap ->place material style if(ci=5)cout<<"超過最大數(shù)量輸入限制,跳出"continue; cout<<"設(shè)置帽子單價(jià):"cin>>p_temp; / cout<<"輸入產(chǎn)地
20、布料 樣式 初始數(shù)量 并以空格隔開"<<endl;cin>>temp1>>temp2>>temp3>>cou_temp; for(i=0;i<=ci;i+) if(temp1=pla_capi&&temp2=c_mati&&temp3=styi) if(p_temp!=pcici)cout<<"價(jià)格沖突,輸入最終價(jià)格:"cin>>pcici; cout<<"與之前輸入的商品重復(fù),將數(shù)量疊加"<<end
21、l;cou_capi+=cou_temp; loop_sw=1; if(loop_sw=0) pcici=p_temp; pla_capci=temp1; c_matci=temp2; styci=temp3; cou_capci+=cou_temp; cou_temp=0; loop_sw=0; if(cho=3) /wardrobe ->place wood color if(wi=5)cout<<"超過最大數(shù)量輸入限制,跳出"continue; cout<<"設(shè)置立柜單價(jià):"cin>>p_temp; cou
22、t<<"輸入產(chǎn)地 木料 顏色 初始數(shù)量 并以空格隔開"<<endl;cin>>temp1>>temp2>>temp3>>cou_temp; for(i=0;i<=wi;i+) if(temp1=pla_wari&&temp2=wooi&&temp3=coli) if(p_temp!=pwiwi)cout<<"價(jià)格沖突,輸入最終價(jià)格:"cin>>pwiwi; cout<<"與之前輸入的商品重復(fù),將數(shù)量疊
23、加"<<endl;cou_wari+=cou_temp; loop_sw=1; if(loop_sw=0) pwiwi=p_temp; pla_warwi=temp1; woowi=temp2; colwi=temp3; cou_warwi+=cou_temp; cou_temp=0; loop_sw=0; if(cho=7)cout<<"輸入有誤 重新" cho=1; /選擇計(jì)數(shù)器重新設(shè)置 /開始初始化工作 shirt s_5= shirt(psi0,cou_shi0,pla_shi0,s_mat0), shirt(psi1,cou_sh
24、i1,pla_shi1,s_mat1), shirt(psi2,cou_shi2,pla_shi2,s_mat2), shirt(psi3,cou_shi3,pla_shi3,s_mat3), shirt(psi4,cou_shi4,pla_shi4,s_mat4) ; cap c_5= cap(pci0,cou_cap0,pla_cap0,c_mat0,sty0), cap(pci1,cou_cap1,pla_cap1,c_mat1,sty1), cap(pci2,cou_cap2,pla_cap2,c_mat2,sty2), cap(pci3,cou_cap3,pla_cap3,c_mat
25、3,sty3), cap(pci4,cou_cap4,pla_cap4,c_mat4,sty4) ; wardrobe w_5= wardrobe(pwi0,cou_war0,pla_war0,woo0,col0), wardrobe(pwi1,cou_war1,pla_war1,woo1,col1), wardrobe(pwi2,cou_war2,pla_war2,woo2,col2), wardrobe(pwi3,cou_war3,pla_war3,woo3,col3), wardrobe(pwi4,cou_war4,pla_war4,woo4,col4) ;/輸入部分結(jié)束/=功能部分 i
26、nt total=0,totalcap=0,totalshi=0,totalwar=0; /用于累計(jì)庫(kù)存總數(shù) float ptotal=0.00,stotal=0.00,ctotal=0.00,wtotal=0.00; /用于累計(jì)總價(jià)值 int j=0; cout<<"初始化結(jié)束 啟用基本功能"<<endl<<"n輸入查詢或about 查詢當(dāng)前庫(kù)存情況"<<endl; cout<<"輸入+或in或 入庫(kù) 實(shí)現(xiàn)入庫(kù)功能"<<endl; cout<<&qu
27、ot;輸入-或out或 出庫(kù) 實(shí)現(xiàn)出庫(kù)功能"<<endl; while(cho!=0) if(loop_sw=0)cout<<"請(qǐng)輸入相應(yīng)功能:"cin>>temp; cho=choose(temp); if(cho=7)cout<<"輸入有誤 重新" if(cho=4) /查詢功能 for(i=0;i<si;i+)s_i.print(); for(i=0;i<ci;i+)c_i.print(); for(i=0;i<wi;i+)w_i.print(); for(i=0;i<
28、;5;i+) total+=total_count(c_i,s_i,w_i); ptotal+=(s_i.total_price()+c_i.total_price()+w_i.total_price(); stotal+=s_i.total_price(); ctotal+=c_i.total_price(); wtotal+=w_i.total_price(); totalcap+=c_i.r_count(); totalshi+=s_i.r_count(); totalwar+=w_i.r_count(); cout<<"n襯衣總庫(kù)存:"<<t
29、otalshi<<"t價(jià)值:"<<stotal<<"n帽子總庫(kù)存:"<<totalcap<<"t價(jià)值:"<<ctotal<<"n立柜總庫(kù)存:"<<totalwar<<"t價(jià)值:"<<wtotal<<"n所有商品庫(kù)存總量:"<<total<<"t總價(jià)值:"<<ptotal<<end
30、l; if(loop_sw=1)break; if(cho=5) /入庫(kù) while(cho!=0) cout<<"輸入要入庫(kù)的商品種類(輸入0結(jié)束):"cin>>temp; cho=choose(temp); if(cho)cout<<temp<<"中有以下小類 輸入編號(hào)進(jìn)行入庫(kù)操作" if(cho=1) for(i=0;i<si;i+) cout<<"n編號(hào) "<<i<<"t產(chǎn)地 "<<pla_shii<
31、< "t布料:"<<s_mati<<"t現(xiàn)有 "<<s_i.r_count(); cout<<"n輸入商品編號(hào):"cin>>j; if(si=0)cout<<"無商品"<<endl; else while(j<0|j>=si)cout<<"有誤 重新輸入:"cin>>j; cout<<"入庫(kù)數(shù)量:"cin>>cou_temp;s
32、_j.in_something(cou_temp); if(cho=2) for(i=0;i<ci;i+) cout<<"n編號(hào) "<<i<<"t產(chǎn)地 "<<pla_capi<<"t布料:"<<c_mati <<"樣式:"<<styi<<"t現(xiàn)有 "<<c_i.r_count(); if(ci=0)cout<<"無商品"<<en
33、dl; else cout<<"n輸入商品編號(hào):"cin>>j; while(j<0|j>=ci)cout<<"有誤 重新輸入:"cin>>j; cout<<"入庫(kù)數(shù)量:"cin>>cou_temp;c_j.in_something(cou_temp); if(cho=3) for(i=0;i<wi;i+) cout<<"n編號(hào) "<<i<<"t產(chǎn)地 "<<p
34、la_wari<<"t木料:"<<wooi <<"顏色:"<<coli<<"t現(xiàn)有 "<<w_i.r_count(); if(ci=0)cout<<"無商品"<<endl; else cout<<"n輸入商品編號(hào):"cin>>j; while(j<0|j>=wi)cout<<"有誤 重新輸入:"cin>>j; cout&l
35、t;<"入庫(kù)數(shù)量:"cin>>cou_temp;w_j.in_something(cou_temp); if(cho=7)cout<<"有誤 重新" cho=5; if(cho=6) /出庫(kù) while(cho!=0) cout<<"輸入要出庫(kù)的商品種類(輸入0結(jié)束):"cin>>temp; cho=choose(temp); if(cho)cout<<temp<<"中有以下小類 輸入編號(hào)進(jìn)行出庫(kù)操作" if(cho=1) for(i=0;i<si;i+) cout<<"n編程 "<<i<<"t產(chǎn)地 "<<pla_shii<< "t布料:"<<s_mati<<
溫馨提示
- 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 推動(dòng)教育科技人才一體化統(tǒng)籌發(fā)展方案
- 廣告中的心理暗示與設(shè)計(jì)效果考察試題及答案
- 生產(chǎn)安全管理在紡織中的實(shí)踐試題及答案
- 助理廣告師企業(yè)社會(huì)責(zé)任實(shí)踐試題及答案
- 新聞評(píng)論歷年試題及答案
- 掌握紡織質(zhì)量控制流程試題及答案
- 2024年紡織工程師新型染整工藝試題及答案
- 加強(qiáng)返貧防范與低收入群體扶持的行動(dòng)方案
- 供熱管網(wǎng)與設(shè)施升級(jí)改造方案實(shí)施
- 大模型在醫(yī)療領(lǐng)域的倫理治理與實(shí)踐路徑
- GB/T 12704.2-2009紡織品織物透濕性試驗(yàn)方法第2部分:蒸發(fā)法
- 公眾責(zé)任險(xiǎn)、財(cái)產(chǎn)一切險(xiǎn)培訓(xùn)課件
- 2022山東高考語文答題卡(新高考I卷)word版3
- lovo操作手冊(cè)中文翻譯版-professorgong
- 有限空間作業(yè)氣體檢測(cè)記錄表
- 重力式降落救生艇的降落和釋放裝置課件
- DB37∕T 5118-2018 市政工程資料管理標(biāo)準(zhǔn)
- 土地集約利用教學(xué)課件
- 《食堂安全培訓(xùn)》ppt
- 油水井管理及動(dòng)態(tài)分析.
- 完整版電力工程設(shè)計(jì)資質(zhì)分級(jí)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論