《继承与派生实验报告(共10页).doc》由会员分享,可在线阅读,更多相关《继承与派生实验报告(共10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上姓名 学号 班级 年级 指导教师 李翠 西安财经学院信息学院 面向对象方法及程序设计 实验报告实验名称 继承与派生 实验室 519 实验日期 12.23 继承与派生一、 实验目的与要求1. 进一步巩固C+语言中类和对象的概念和应用。2. 掌握继承和派生的概念和实现。3. 进一步熟练掌握类和对象的概念,使用的方法,访问的规则。4. 掌握单继承的概念和应用。5. 掌握多继承和虚基类的概念,并熟练应用。二、 实验内容1. 根据如图所示编辑程序,计算教师的课时,计算学生的平均成绩,假定每个学生3门课程,并输出每个类的信息(例如教师的职称,学生的专业等,程序实现要求使用到虚基类
2、的知识)。2. 编写一个程序实现员工的工资管理。该公司主要有4类人员,经理(manager),销售经理(salesmanager),技术人员(technician),销售员(salesman)。这些人员都是职员(employee),有编号,姓名,月工资,工龄等信息。月工资的计算方法为:经理固定月薪8000元,技术人员每小时工资100元,销售人员底薪为1000,然后加上每月的销售额的4%,销售经理底薪5000,然后加上本部门当月销售总额的千分之五。要求编写程序计算该公司职员的月工资并输出到屏幕上。(假定该公司1个经理,1个销售经理,3个技术人员,3个销售人员)三、 实验环境硬件环境:PC一台软件
3、环境:WIN7操作系统、Microsoft visual c+ 2010四、 实验步骤五、 实验结果 六、 小结通过本次实验,使我对继承与派生有了更深入的了解。包括,虚基类以及虚基类与派生类的构造函数与析构函数的调用等等。七、 源程序清单内容1:#includeiostreamusing namespace std;class person;class teacher:virtual public personpublic:int b;class teacher1:virtual public teacherpublic:teacher1(int B)b=B;cout教授endl;cout课时
4、:bendl;class teacher2:virtual public teacherpublic:teacher2(int D)b=D;cout讲师endl;cout课时:bendl;class teacher3:virtual public teacherpublic:teacher3(int F)b=F;cout研究生助教endl;cout课时:bendl;class student:public personpublic:float a1,a2,a3;class student1:public studentpublic:student1(float b1,float b2,floa
5、t b3)a1=b1;a2=b2;a3=b3;cout英语:a1endl;cout数据库:a2endl;coutjava:a3endl;class student2:public studentpublic:student2(float b1,float b2,float b3)a1=b1;a2=b2;a3=b3;cout本科生:endl;cout英语:a1endl;cout组成原理:a2endl;coutc+:a3endl;class student3:public studentpublic:student3(float b1,float b2,float b3)a1=b1;a2=b2;a
6、3=b3;cout专科生:endl;cout英语:a1endl;coutc语言:a2endl;cout数字电路:a3endl;class zhuyan:public teacher3,public student1public:zhuyan(int x,float a,float b,float c):teacher3(x),student1(a,b,c);int main()teacher1 q(50);teacher2 w(70);student2 e(75,82,100);student3 r(78,79,87);zhuyan t(80,70,78,81);system(pause);r
7、eturn 0;内容2:#include using namespace std;class employeepublic:employee()coutnumber;coutname;salary=0;protected:char number5;char name10;double salary;class manager:public employeepublic: manager()monthlypay=8000;salary=monthlypay;void print()cout经理:name编号:number本月工资:salaryendl;protected:int monthlyp
8、ay;class technician:public employeepublic: technician()weekpay=100;void pay()coutnameworkhour;salary=workhour*100;void print()cout技术人员:name编号:number本月工资:salaryendl;protected:int weekpay;int workhour;class salesman:public employeepublic:salesman()basicsalary=1000; commrate=0.04;void pay()coutnamesale
9、s;salary=basicsalary+sales* commrate;void print()cout销售员:name编号:number本月工资:salaryendl;protected:int basicsalary; double commrate; double sales;class salesmanager:public salesmanpublic:salesmanager()monthlypay=5000; commrate=0.005;void pay()coutnamesales;salary=monthlypay+sales* commrate;void print()
10、cout销售经理:name编号:number本月工资:salaryendl;private: double monthlypay;int main()manager obj1;obj1.print();technician obj2,obj3,obj4;obj2.pay(); obj2.print();obj3.pay(); obj3.print();obj4.pay(); obj4.print();salesman obj5,obj6,obj7;obj5.pay(); obj5.print();obj6.pay(); obj6.print();obj7.pay(); obj7.print();salesmanager obj8;obj8.pay(); obj8.print();system(pause);专心-专注-专业