文档详情

C++第7次实验报告讲诉.doc

发布:2017-01-10约字共9页下载文档
文本预览下载声明
《C语言程序设计》 课程实验报告 实验名称:继承与派生(二) 所使用的开发工具及环境:硬件 PC机一台 实验目的: 理解继承和派生的概念; 理解继承在面向对象程序设计中的重要作用; 掌握通过继承派生出一个新类的方法; 进一步学习简单面向对象程序的编写; 实验内容: 1. 教师干部类//50分 设计一个基类Person类,再派生出教师类(Teacher)、干部类(Cadre),再采用多重继承派生出新类:Teacher_Cadre 要求如下: 1)Person类包含:姓名、年龄、性别、地址、电话等; 在 Teacher类中新增加:title(职称) ,在 Cadre 类中新增加:post(职务) ,在 Teacher_Cadre中新增加:wages(工资)成员; 2)Person类,Teacher类,Cadre类都包含:display()函数,分别输出本类中的成员信息; 3)在Teacher类,Cadre类中的姓名、年龄、性别、地址、电话等数据成员使用相同名字,在派生类中引用这些数据成员时,采用指定作用域的方式; 4)在派生类 Teacher_Cadre 的成员函数 Show()中调用 Teacher 类中的 display()函数,输出姓名、年龄、性别、地址、电话,职称;另外同时再输出其他成员变量。 5)使用对象数组保存输入的对象; 2. 小型公司人员管理 某小型公司有四类人员: 总经理、 技术人员、 销售经理、 推销员。 设计一个基类 employee派生出 manager(总经理) 、technician(技术人员) 、salesmanager(销售经理) 、saleman(推销员)。销售经理既是经理又是销售人员,兼具两类人员的特点,因此同时继承 manager 和salesman 两个类。 //50分 1)类定义 ①employee类: 基本信息:编号、姓名、性别、出生日期、职位、薪水等;出生日期使用自定义的 Date(日期)类;其中:基本信息为 private 属性,成员函数为 public 属性;多个构造函数:缺省构造函数、带参数的构造函数、带默认参数的构造函数;可以从外部访问类成员函数; ②Date 类: 成员变量:年、月、日 成员函数:SetYear(int year)、SetMonth(int month)、SetDay(int day)、GetYear()、GetMonth()、GetDay() ③派生类 technician:新增属性:工作时间 派生类 saleman:新增属性:销售额、所属部门 2)实现人员信息的录入与显示; 3)计算并显示个人月薪: 月薪计算办法:总经理拿固定月薪 8000 元,技术人员按每小时25元领取月薪;推销员的月薪按当月销售额的4%提成; 销售经理固定月薪5000元加所管辖部门当月销售总额的 5‰ 。 [实验提示] ①在基类中,除了定义构造函数和析构函数,还应统一定义对各类人员信息应有的操作,规范类族中各派生类的基本行为,但是各类人员的月薪计算方法不同,不能在基类employee 中统一确定计算方法。各类人员信息的显示内容不同,同样不能在基类employee中统一确定显示方法。在基类中实现上述功能的函数体应为空,在派生类中根据同名覆盖原则定义各自的同名函数实现具体功能。 ②将基类 employee 分成两个独立文档:employee.h(类声明头文件) 和 employy.cpp(类实现文件) ③“职位”的类型设定为 int; 结果与分析: Sy7-1: #includeiostream #includestring using namespace std; class Person { public: Person(){} Person(string na,int ag,string se,string ad,string te):name(na),age(ag),sex(se),addr(ad),tel(te){} void display(); private: string name; int age; string sex; string addr; string tel; }; class Teacher: public Person { public: Teacher(string na,int ag,string se,string ad,string te,string ti):Person(na,ag,se,ad,te),title(ti){} void display(); private: string title; //职称 }; class Cadre: public Per
显示全部
相似文档