资源描述:
《c实验报告继承与多态》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、专业课程实验报告课程名称:C++面向对象程序设计开课学期:2015至2016学年第1学期专业:计算机科学与技术年级班级:2013级学生姓名:侯瑄学号:222013321210092实验教师:陈睿计算机与信息科学学院软件学院实验项目名称继承与多态实验时间2015/10/11实验类型□验证性设计性□综合性一、实验目的(1) 掌握派生类的声明方法和派生类构造函数的定义方法。 (2) 掌握不同继承方式下,基类成员在派生类中的访问属性。 (3) 掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。 (4) 学习虚基类在解决二义性问题中的作用。(
2、5)深入理解C++的继承与多态。二、实验要求题目如下:某公司有老板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,
4、stringpid,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,strin
5、gsalarySystem="year"):Person(name,age,id,sex,salarySystem){}virtualdoublegetPay();virtualvoidprint();};classEmployee:publicPerson//从person类继承出来派生类员工类{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类继承出来派生类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类继承出来派生类CommWorker类
8、{public:doublebaseSalary,salesProfit;CommWorker(stringname,intage,stringid,stringsex,doub