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