``定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生出新类SaleManager(销售经理)类,各类之间的继承关系
(1)在Staff类中包含的数据成员有编号(num)、姓名(name)、出勤率(rateOfAttend)、基本工资(basicSal)和奖金(prize)。在Saleman类中还包含数据成员销售员提成比例(deductRate)和个人销售额(personAmount),在Manager类中还包含数据成员经理提成比例(totalDeductRate)和总销售额(totalAmount)。在SaleManager类中不包含其它数据成员。
(2)各类人员的实发工资公式如下:
员工实发工资 = 基本工资 + 奖金 * 出勤率
销售员实发工资 = 基本工资 + 奖金 * 出勤率 + 个人销售额 * 销售员提成比例
经理实发工资 = 基本工资 + 奖金 * 出勤率 + 总销售额 * 经理提成比例
销售经理实发工资 =基本工资 + 奖金 * 出勤率 + 个人销售额 * 销售员提成比例+ 总销售额 * 经理提成比例
(3)每个类都有构造函数、输出基本信息函数(Output)和输出实发工资函数(OutputWage)。
源代码如下:

#include<iostream>
#include<string.h>
using namespace std;
class Staff{private:int num;char name[18];double rateofattend;int basicSal;int prize;
public:Staff(int number,char nm[],double c,int d,int e):num(number),rateofattend( c ),basicSal(d),prize(e){strcpy(name,nm);}void Output(){cout <<"编号:"<< num << endl<< "姓名:"<<name << endl <<"出勤率:"<< rateofattend <<endl<<"基本工资;"<< basicSal <<endl<<"奖金:"<< prize << endl;}void display(){cout<<"----------分割线---------"<<endl;cout<<"<<职员>>"<<endl;}double OutputWage(){return (basicSal+prize*rateofattend);}
};class Salemen:virtual public Staff{private:double deductRate;double personAmount;
public:Salemen(int a,char *b,double c,int d,int e,double f,double g):Staff(a,b,c,d,e),deductRate(f),personAmount(g){};void Output(){cout<<"----------分割线---------"<<endl;cout<<"<<销售员>>"<<endl;Staff::Output();cout <<"销售员提成比例:"<< deductRate << "  " <<"个人销售额:"<< personAmount << "  " ;}void display(){cout <<"销售员提成比例:"<< deductRate << "  " <<"个人销售额:"<< personAmount << "  " ;}double OutputWage(){return (Staff::OutputWage()+deductRate*personAmount);}
};class Manager:virtual public Staff{private:double totalDeductRate;double totalAmount;
public:Manager(int a,char nm[],double c,int d,int e,double f,double g):Staff(a,nm,c,d,e),totalDeductRate(f),totalAmount(g){};void Output(){cout<<"----------分割线---------"<<endl;cout<<"<<经理>>"<<endl;Staff::Output();cout << "经理提成比例:"<<totalDeductRate << "  " <<"总销售额:"<< totalAmount << "  " ;}void display(){cout << "经理提成比例:"<<totalDeductRate << "  " <<"总销售额:"<< totalAmount << "  " ;}double OutputWage(){return (Staff::OutputWage()+totalDeductRate*totalAmount);}
};class SaleManager:public Salemen,public Manager
{public:SaleManager(int a,char nm[],double c,int d,int e,double f,double g,double h,double i):Salemen(a,nm,c,d,e,f,g),Manager(a,nm,c,d,e,h,i),Staff(a,nm,c,d,e){}void Output(){cout<<"----------分割线---------"<<endl;cout<<"<<销售经理>>"<<endl;Staff::Output();Salemen::display();cout<<endl;Manager::display();}double OutputWage(){return (Salemen::OutputWage()+Manager::OutputWage()-Staff::OutputWage());}
};
main()
{Staff sta1(10086,"LBW",0.9,2000,3000);sta1.display();sta1.Output();sta1.OutputWage();cout << endl ;Salemen sal1(9418,"white",0.9,3000,4000,0.1,10000);sal1.Output();sal1.OutputWage();cout << endl ;Manager man1(96291,"55",0.9,4000,5000,0.1,20000);man1.Output();man1.OutputWage();cout << endl ;SaleManager salm1(55,"NB",1,5000,6000,0.1,10000,0.05,40000);salm1.Output();salm1.OutputWage();cout << endl;return 0;//This code was written by gfh in SCMZU.
}


cpp课程设计实验题:定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生相关推荐

  1. cpp课程设计实验题:定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(coun

    CPP实验题:定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name).学号(num).数学成绩(mathScore).英语成绩(englishScore).人数(count).数 ...

  2. 定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生出新类SaleMana

    定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生出新类SaleMana ...

  3. c++语言程序设计教程与实验实验报告,C++程序设计课程设计实验报告—网络五子棋...

    C++程序设计课程设计实验报告-网络五子棋 计算机学院 实验报告 课程名称: C++程序设计课程设计 开课学期: 2010-2011学年第2学期 院 班: 计算机学院 093 指导老师: 项目题目: ...

  4. 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告

    <基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方 ...

  5. (MFC)广州大学大一下课程设计实验报告-学生成绩管理系统

    程序设计 课程设计实验报告 学院: 计算机科学与网络工程学院 专业班级: XXX 姓名: XXX 学号: 190XXXXXXX 指导老师:张艳玲 2020.6.29 目录 一.课程设计题目及内容 二. ...

  6. HDU操作系统课程设计实验三

    HDU操作系统课程设计实验三 一.设计目的 二.内容要求 三.实验内容 信号量的使用 1.实现一个模拟的shell,基本功能加find.grep命令 2.实现一个管道通信程序,基本功能加有名管道通信 ...

  7. 计算机组成原理模型机设计实验总结,计算机组成原理课程设计实验报告-基本模型机设计与实现.docx...

    计算机组成原理课程设计实验报告-基本模型机设计与实现 计 算 机 组 成 原 理 实 验 报 告 评 语: 成绩 教 师: 年 月 日 班 级: 1403011 学 号: 140301124 姓 名: ...

  8. 计算机模型机设计实验报告,计算机组成原理课程设计实验报告-基本模型机设计与实现...

    计算机组成原理课程设计实验报告-基本模型机设计与实现 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 计 算 机 组 成 原 理实 ...

  9. c语言图形时钟编程,C语言图形时钟课程设计实验报告.doc

    C语言图形时钟课程设计实验报告.doc 目录 1.系统功能要求 . 2. 数据结构设计及 说明 . 3.程序结构(画流程图) . 4.各模块的功能 . 5.试验结果(包括输入数据和输出结果) . 6. ...

最新文章

  1. matlab求kcf算法响应图_剖析KCF
  2. 滑动窗口——TCP可靠传输的实现[转]
  3. 中国IT运维O2O市场产值规模预测及发展策略建议报告2022年
  4. 把“血”注入到产品里
  5. dac解码芯片天梯_【关于AK4499引发的思考】选DAC,解码芯片追新有没有必要?
  6. C++ 成员函数做友元
  7. sublime4 安装pretty json 并绑定快捷键
  8. python编写ATM类_Python中编写类的各种技巧和方法
  9. xargs 和 exec详解
  10. 使用redux和axios获取api数据
  11. Vue动态权限路由addRoutes执行初次白屏解决方法。
  12. 微信小程序scroll-view横向滚动
  13. 怎么用计算机测试手速,火凤凰游戏APM实时手速测试器
  14. 百度logo识别SDK108问题解决
  15. 北京市海淀区土地利用总体规划(2006-2020)(zz.is2120.BG57IV3)
  16. ad中使用智能粘贴_AD元件复制粘贴使用技巧
  17. oracle gbk 无法识别,oracle 字符集总结(超出GBK范围的字符存取问题未解决)
  18. Linux中write函数
  19. 软件测试是做什么的?好学的吗?
  20. 【GPT4】GPT4 官方报告解读

热门文章

  1. 面试 Google, 我失败了 | Google 面经分享
  2. 微信朋友圈,微信红包,QQ登录测试用例
  3. CIDR(Classless InterDomain Routing ,无类别域际路由选择)
  4. RouterOS利用aliyun的API接口实现DDNS动态解析
  5. Android手机上网必备:UC浏览器
  6. 【C++】 常对象、常数据成员、常成员函数总结
  7. 实用拜占庭将军问题论文翻译
  8. 拯救C盘:转移虚拟内存
  9. python写小程序后端-微信小程序 后端用Flask实现
  10. Vue如何在考试中搞出高质量的成绩