1、要求: (1)Cirlce 类基本信息:圆心坐标、半径; Rectangle 类基本信息:长、宽; Triangle 类基本信息:三个顶点坐标; 其中:成员变量为 private 属性,成员函数为public 属性; (2)每个图形类有多个构造函数:缺省构造函数、带参数的构造函 数; (3)每个图形类有计算图形的面积GetArea(),显示图形的基本信息 函数Show(),修改基本信息的函数Set(形参)。 6 实验提示 (1)在派生类的构造函数中,应注意对基类数据成员的初始化; (2)各类图形面积的计算方法不同, 因此不能在基类 Shape 中统 一确定计算的方法。在基类Shape 中实现计
2、算面积功能的函数体GetArea() 应为空,在派生类中根据同名覆盖原则定义各自的同名函数实现具体功 能。 测试数据 Circle: 圆心(30,45) 半径:35 圆心(50,89) 半径:23 Rectangle:长:30 宽:53 长:28 宽:24 Triangle: 顶点:(34,45)、(89,45)、(54,67) 顶点:(22,34)、(67,43)、(86,64) 2.员工管理 某小型公司有四类人员:总经理、技术人员、销售经理、推销员。设 计一个基类employee,派生出manager(总经理)、technician(技术人员)、 salesmanager(销售经理)、sa
3、leman(推销员)。销售经理既是经理又是 销售人员,兼具两类人员的特点,因此同时继承manager 和salesman 两个 类。 (1)类定义 1)employee 类: 基本信息:编号、姓名、性别、出生日期、职位、薪水等; 出生日期使用自定义的 Date(日期)类;基本信息为 private 属性,成员函数为public 属性; 多个构造函数:缺省构造函数、带参数的构造函数、带默认参数的构 造函数; 7 2)Date 类: 成员变量:年、月、日 成员函数:SetYear(int year)、SetMonth(int month)、SetDay(int day) GetYear()、Get
4、Month()、GetDay() 3)派生类technician:新增属性:工作时间 派生类saleman: 新增属性:销售额、所属部门 (2)实现人员信息的录入,用成员函数display()显示员工信息; (3)计算并显示个人月薪,用成员函数pay()计算不同员工的薪水: 月薪计算办法:总经理拿固定月薪8000 元,技术人员按每小时25 元 领取月薪;推销员的月薪按当月销售额的4%提成;销售经理固定月薪5000 元加所管辖部门当月销售总额的5 。 实验提示 (1)在基类中,除了定义构造函数和析构函数,还应统一定义对各 类人员信息应有的操作,规范类族中各派生类的基本行为,但是各类人员 的月薪计
5、算方法不同,不能在基类employee 中统一确定计算方法。各类 人员信息的显示内容不同,同样不能在基类employee中统一确定显示方 法。在基类中实现上述功能的函数体应为空,在派生类中根据同名覆盖原 则定义各自的同名函数实现具体功能。 2、将基类employee 分成两个独立文档:employee.h(类声明头文件) 和 employy.cpp(类实现文件) 3、“职位”的类型设定为int;三、实验结果和数据处理1图形类设计#includecmathusing namespace std;class Shapepublic: virtual double Area() return 0;
6、virtual double Perim() return 0; virtual void Show() ;class Rectangle :public Shape/矩形private: double le;/长 double w;/宽 Rectangle(double le = 0, double w = 0) this-le = le;w = w; Rectangle() double Area() const return le*w; double Perim() const return 2 * (le + w); void Show() cout Area is: Area() e
7、ndl;Perim is: Perim() endl const double PI = 3.1415926535;class Circle/圆形 int x; int y; double r;/半径 Circle(double r = 0)r = r; Circle() return PI*r*r; return 2 * PI*r;class Triangle :public Shape/三角形 int a, b, c, d, e, f; double l, m, n; Triangle()a = a;b = b;c = c;d = d;e = e;f = f; Triangle() dou
8、ble S; S = (l + m + n) / 2; return sqrt(S*(S - l)*(S - m)*(S - n); return (l + m + n);void main() int a, b, c, d, e, f,x,y; double le, w, r, l1, m1, n1; cout Rectangle:inputa:cout le w; if (le = 0 | w y r; if (r b cdef; l1 = sqrt(a - c) *(a - c) +(b - d)*(b - d); m1 = sqrt(a - e) *(a - e) +(b - f)*(
9、b - f); n1 = sqrt(e - c)*(e - c)+(f - d)*(f - d); Triangle Tri; Tri.l = l1; Tri.m = m1; Tri.n = n1; if (l1 = 0 |m1 = 0 | n10 | (l1 + m1) = n1 | (m1 + n1) = l1 | (l1 + n1) = m1)输入的三个顶点不能构成三角形 goto inputc; Tri.Show(); system(pause);2员工管理头文件程序:#pragma onceclass employee int duty; char num, name, sex, s
10、alary; employee(char num=0,char name=0,char sex=0,int duty=0,char salary=0)num = num;duty = duty;sex = sex;salary = salary;name = name; void Setin() void pay() void display()class Date void SetYear(int year); void SetMonth(int month); void SetDay(int day); void GetYear(int year); void GetMonth(int month); void GetDay(int day);源文件程序:#includeemployee.h#includ
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1