




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中南大學(xué)c++實(shí)踐報(bào)告星期三四五實(shí)訓(xùn)內(nèi)容1、模擬網(wǎng)上購(gòu)書結(jié)賬功能;實(shí)訓(xùn)要求1、給出詳細(xì)的需求分析和描述,并給出實(shí)際需求分析文檔和UML描述;2、給出詳細(xì)設(shè)計(jì)文檔及UML描述;3、根據(jù)詳細(xì)設(shè)計(jì)的結(jié)果,寫出完整的C++代碼。要注意編碼風(fēng)格與編碼規(guī)范。4、根據(jù)測(cè)試?yán)碚?,寫出測(cè)試數(shù)據(jù)并給出詳細(xì)測(cè)試報(bào)告;5、對(duì)該系統(tǒng)的可擴(kuò)充性、可修改性和可維護(hù)性給出客觀的評(píng)價(jià)。①問(wèn)題分析與功能定義:本體是一個(gè)非常實(shí)用的題目。隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)上購(gòu)物越來(lái)越受到大家的喜愛(ài),坐在家中,點(diǎn)點(diǎn)鼠標(biāo),就有人把你要的東西送到手中,多愜意呀。現(xiàn)在要解決的問(wèn)題是:用戶網(wǎng)上購(gòu)書以后,系統(tǒng)根據(jù)購(gòu)書人的不同類型計(jì)算出購(gòu)書人的費(fèi)用。網(wǎng)上購(gòu)書的一般過(guò)程是:用戶首先輸入他的會(huì)員號(hào),然后,選擇想買的書籍放到購(gòu)書筐中,選擇結(jié)束以后,用戶要求系統(tǒng)結(jié)賬,系統(tǒng)編輯算出費(fèi)用通知用戶。本例并不像模擬網(wǎng)上購(gòu)書的全部過(guò)程,所以會(huì)把選擇書的過(guò)程省去,假設(shè)用戶已經(jīng)選定了兩本書。根據(jù)實(shí)際情況,確定了購(gòu)書人可分為三類:普通人、會(huì)員、貴賓。②對(duì)象(類)設(shè)計(jì)根據(jù)上面的分析,需要設(shè)計(jì)一個(gè)基類buyer和它的3個(gè)派生類member(會(huì)員)、layfolk(普通人)、honoured_guest(貴賓)?;愔邪臄?shù)據(jù)成員是姓名、購(gòu)書人編號(hào)、地址、購(gòu)書金額。Member類中除了繼承了buyer的數(shù)據(jù),還增加了會(huì)員級(jí)別:honoured_guest則增加了折扣率一項(xiàng)。在基類中定義了構(gòu)造函數(shù)和對(duì)所有類型的購(gòu)書人相同的操作,getbuyname()負(fù)責(zé)取出購(gòu)書者的姓名;getaddress()負(fù)責(zé)取出購(gòu)書者的地址;getpay()負(fù)責(zé)取出購(gòu)書者應(yīng)付的金額;getid()負(fù)責(zé)取出購(gòu)書者的編號(hào)。有關(guān)購(gòu)書者的定義類如下:classbuyer{protected:stringname;intbuyerID;stringaddress;doublepay;public:buyer();buyer(stringn,intb,stringa,doublep);stringgetbuyername();stringgetaddress();doublegetpay();intgetid();virtualvoiddisplay()=0;virtualvoidsetpay(double=0)=0;};classmember:publicbuyer{public:member(stringn,intb,intl,stringa,doublep):buyer(n,b,a,p){leaguer_grade=1;}voiddisplay();voidsetpay(doublep);private:intleaguer_grade;};classhonoured_guest:publicbuyer{doublediscount_rate;public:honoured_guest(stringn,intb,doubler,stringa,doublep):buyer(n,b,a,p){discount_rate=r;}voiddisplay();voidsetpay(doublep);};classlayfolk:publicbuyer{public:layfolk(stringn,intb,stringa,doublep):buyer(n,b,a,p){}voiddisplay();voidsetpay(doublep);};由于在計(jì)算購(gòu)書金額的時(shí)要知道用戶買了那些書以及書的原價(jià),所以必須建立一個(gè)類book,幫助完成對(duì)數(shù)的有關(guān)操作。類book的定義如下:classbook{protected:stringbook_ID;stringbook_name;stringauther;stringpublishing;doubleprice;public:book();book(stringb_id,stringb_n,stringau,stringpu,doublepr);voiddisplay();stringgetbook_ID();stringgetbook_name();stringgetauther();stringgetpublishing();doublegetprice();};從book到buyer類的箭頭表示:book對(duì)象要傳消息給buyer對(duì)象。classstring{friendostream&operator<<(ostream&S,conststring&Str);friendistream&operator>>(istream&S,string&Str);public:string();string(conststring&Str);voidoperator=(conststring&Str);~string();string(char*p);private:shortm_Length;char*m_Data;};③核心控制設(shè)計(jì)在主函數(shù)中我們要做的操作包括:(1)建立繼承了基類buyer的3各類對(duì)象。(2)建立兩個(gè)book對(duì)象。(3)請(qǐng)用戶輸入購(gòu)書人的編號(hào)。(4)通過(guò)編號(hào)查詢到相應(yīng)的對(duì)象。(5)用對(duì)象的計(jì)算金額的方法計(jì)算購(gòu)書金額。④編碼與測(cè)試完成前幾階段的工作,現(xiàn)在就可以編碼實(shí)現(xiàn)程序了。程序中包括了4個(gè)文件:buy.h、book..h、strclass.h和buy_book.cpp文件。Buy_book.cpp程序中有main()函數(shù)完整程序及相應(yīng)的說(shuō)明如下://buy.h文件classbuyer{protected:stringname;intbuyerID;stringaddress;doublepay;public:buyer();buyer(stringn,intb,stringa,doublep);stringgetbuyername();stringgetaddress();doublegetpay();intgetid();virtualvoiddisplay()=0;virtualvoidsetpay(double=0)=0;};classmember:publicbuyer{public:member(stringn,intb,intl,stringa,doublep):buyer(n,b,a,p){leaguer_grade=1;}voiddisplay();voidsetpay(doublep);private:intleaguer_grade;};classhonoured_guest:publicbuyer{doublediscount_rate;public:honoured_guest(stringn,intb,doubler,stringa,doublep):buyer(n,b,a,p){discount_rate=r;}voiddisplay();voidsetpay(doublep);};classlayfolk:publicbuyer{public:layfolk(stringn,intb,stringa,doublep):buyer(n,b,a,p){}voiddisplay();voidsetpay(doublep);};buyer::buyer(){name="";buyerID=0;address="";pay=0;}buyer::buyer(stringn,intb,stringa,doublep){name=n;buyerID=b;address=a;pay=p;}doublebuyer::getpay(){returnpay;}stringbuyer::getaddress(){returnaddress;}stringbuyer::getbuyername(){returnname;}intbuyer::getid(){returnbuyerID;}voidmember::display(){cout<<"購(gòu)書人姓名:"<<name<<"\";<bdsfid="239"></name<<"\";<>cout<<"購(gòu)書人編號(hào):"<<buyerid<<"\";<bdsfid="241"></buyerid<<"\";<>cout<<"購(gòu)書人為會(huì)員,級(jí)別:"<<leaguer_grade<<"\";<bdsfid="243"></leaguer_grade<<"\";<>cout<<"地址:"<<address<<"\";<bdsfid="245"></address<<"\";<>}voidmember::setpay(doublep){if(leaguer_grade==1)pay=.95*p+pay;elseif(leaguer_grade==2)pay=.90*p+pay;elseif(leaguer_grade==3)pay=.85*p+pay;elseif(leaguer_grade==4)pay=.8*p+pay;elseif(leaguer_grade==5)pay=.7*p+pay;elsecout<<"級(jí)別錯(cuò)誤!";}voidhonoured_guest::display(){cout<<"購(gòu)書人姓名:"<<name<<"\";<bdsfid="265"></name<<"\";<>cout<<"購(gòu)書人編號(hào):"<<buyerid<<"\";<bdsfid="267"></buyerid<<"\";<>cout<<"購(gòu)書人為貴賓,折扣率為:"<<discount_rate*100<<"%\";<bdsfid="269"></discount_rate*100<<"%\";<>cout<<"地址:"<<address<<"\\";<bdsfid="271"></address<<"\\";<>}voidhonoured_guest::setpay(doublep){pay=pay+(1-discount_rate)*p;}voidlayfolk::display(){cout<<"購(gòu)書人姓名:"<<name<<"\";<bdsfid="278"></name<<"\";<>cout<<"購(gòu)書人編號(hào):"<<buyerid<<"\";<bdsfid="280"></buyerid<<"\";<>cout<<"購(gòu)書人為普通人"<<"\";
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)莊基地出租合同范本
- 買賣物業(yè)用房合同范本
- 醫(yī)療行業(yè)會(huì)議服務(wù)合同范例
- 廚房滅火維保合同范本
- 合資購(gòu)車經(jīng)營(yíng)合同范本
- 吊車合伙經(jīng)營(yíng)合同范本
- 含稅購(gòu)貨合同范本
- 運(yùn)動(dòng)俱樂(lè)部協(xié)議合同范本
- 蔬菜配送合同范本
- 入股餐廳合同范本
- 《抖音營(yíng)銷教程》課件
- 2025屆山東核電校園招聘正式啟動(dòng)筆試參考題庫(kù)附帶答案詳解
- 2025安徽蕪湖市運(yùn)達(dá)軌道交通建設(shè)運(yùn)營(yíng)限公司招聘129人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2025年湖南科技職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025屆江蘇省無(wú)錫市江陰實(shí)驗(yàn)中學(xué)中考聯(lián)考?xì)v史試題含解析
- 中國(guó)高血壓防治指南(2024年修訂版)解讀課件
- 公路工程標(biāo)準(zhǔn)施工招標(biāo)文件(2018年版)
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蝕工程施工及驗(yàn)收規(guī)范
- (高清版)JTG 3370.1-2018 公路隧道設(shè)計(jì)規(guī)范 第一冊(cè) 土建工程
- 小學(xué)科學(xué)冀人版六年級(jí)下冊(cè)全冊(cè)同步練習(xí)含答案
- 酒店前臺(tái)績(jī)效考核表
評(píng)論
0/150
提交評(píng)論