資源描述:
《c實(shí)驗(yàn)報(bào)告繼承與多態(tài)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、專業(yè)課程實(shí)驗(yàn)報(bào)告課程名稱:C++面向?qū)ο蟪绦蛟O(shè)計(jì)開(kāi)課學(xué)期:2015至2016學(xué)年第1學(xué)期專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)年級(jí)班級(jí):2013級(jí)學(xué)生姓名:侯瑄學(xué)號(hào):222013321210092實(shí)驗(yàn)教師:陳睿計(jì)算機(jī)與信息科學(xué)學(xué)院軟件學(xué)院實(shí)驗(yàn)項(xiàng)目名稱繼承與多態(tài)實(shí)驗(yàn)時(shí)間2015/10/11實(shí)驗(yàn)類型□驗(yàn)證性設(shè)計(jì)性□綜合性一、實(shí)驗(yàn)?zāi)康?1)?掌握派生類的聲明方法和派生類構(gòu)造函數(shù)的定義方法。?(2)?掌握不同繼承方式下,基類成員在派生類中的訪問(wèn)屬性。?(3)?掌握在繼承方式下,構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行順序與構(gòu)造規(guī)則。?(4)?學(xué)習(xí)虛基類在解決二義性問(wèn)題中的作用。(
2、5)深入理解C++的繼承與多態(tài)。二、實(shí)驗(yàn)要求題目如下:某公司有老板Boss、雇員Employee、小時(shí)工HourlyWorker和營(yíng)銷人員CommWorker,他們的薪金計(jì)算方法如下:老板實(shí)行年薪制,如一年15萬(wàn);雇員按月計(jì)酬,方法是基本工資+獎(jiǎng)金;小時(shí)工按工作時(shí)間計(jì)算報(bào)酬,方法是工作小時(shí)*每小時(shí)單價(jià);營(yíng)銷人員按月計(jì)酬,方法是基本工資+銷售利潤(rùn)*5%。每類人員都有姓名、職工編號(hào)、年齡、性別、工資等數(shù)據(jù)。設(shè)計(jì)計(jì)算各類人員報(bào)酬的程序,用虛函數(shù)getPay()計(jì)算各類人員的應(yīng)得報(bào)酬,用虛函數(shù)print()打印輸出各位工作人員的基本數(shù)據(jù)。三、實(shí)驗(yàn)內(nèi)
3、容與設(shè)計(jì)(主要內(nèi)容,操作步驟、算法描述或程序代碼)對(duì)于此題目,我通過(guò)定義一個(gè)頭文件和兩個(gè)源文件來(lái)實(shí)現(xiàn)本題目要求滿足的功能代碼如下:(本試驗(yàn)基于vs2010運(yùn)行)(1)頭文件worker.h//worker.h#ifndefWORKER_H#defineWORKER_H#includeusingnamespacestd;classPerson//定義person類{public:stringname,id,sex,salarySystem;intage;Person(){}Person(stringpname,intpage,
4、stringpid,stringpsex,stringpsalarySystem="month"):name(pname),age(page),id(pid),sex(psex),salarySystem(psalarySystem){}virtualdoublegetPay(){return0.0;};virtualvoidprint(){};};classBoss:publicPerson//從person類繼承出來(lái)的boss類{public:Boss(stringname,intage,stringid,stringsex,strin
5、gsalarySystem="year"):Person(name,age,id,sex,salarySystem){}virtualdoublegetPay();virtualvoidprint();};classEmployee:publicPerson//從person類繼承出來(lái)派生類員工類{public:doublebonus,baseSalary;Employee(){}Employee(stringname,intage,stringid,stringsex,doubleebonus=3000,doubleebaseSalary
6、=4500,stringsalarySystem="month"):Person(name,age,id,sex,salarySystem),bonus(ebonus),baseSalary(ebaseSalary){}virtualdoublegetPay();virtualvoidprint();};classHourlyWorker:publicPerson//從person類繼承出來(lái)派生類HourlyWorker類{public:intworkHour;doublepieceOfHour;HourlyWorker(stringnam
7、e,intage,stringid,stringsex,inthworkHour,doublehpieceOfHour=13,stringsalarySystem="hour"):Person(name,age,id,sex,salarySystem),workHour(hworkHour),pieceOfHour(hpieceOfHour){}virtualdoublegetPay();virtualvoidprint();};classCommWorker:publicPerson//從person類繼承出來(lái)派生類CommWorker類
8、{public:doublebaseSalary,salesProfit;CommWorker(stringname,intage,stringid,stringsex,doub