某公司有老板Boss、雇员Employee、小时工HourlyWorker和营销人员CommWorker,设计一个程序计算他们的薪金

该博客讨论如何使用C++设计一个程序来计算老板、雇员、小时工和营销人员的薪酬。程序基于类的设计,包括一个基类Person,包含姓名、编号、年龄和性别等属性,以及虚函数getPay()和print()。派生类覆盖getPay()以计算各自类型的薪酬,如老板的年薪、雇员的月工资加奖金、小时工的小时工资、营销人员的工资加销售利润的5%。此外,还讨论了面向对象概念的应用,如构造函数、继承、多态和虚函数。
摘要由CSDN通过智能技术生成

老板实行年薪制,如一年15万;
雇员按月计酬,方法是基本工资+奖金;
小时工按工作时间计算报酬,方法是工作小时*每小时单价;
营销人员按月计酬,方法是基本工资+销售利润 *5%。

每类人员都有姓名、职工编号、年龄、性别、工资等数据。设计计算各类人员报酬的程序,用虚函数getPay()计算各类人员的应得报酬。用虚函数print()打印输出各类工作人员的基本数据。

提示:将各类人员都共有的属性和行为抽象在类Person中,包括姓名、职工编号、年龄、性别等,以及函数getPay()和print()。getPay()设计为纯虚函数。将print()设计成一般虚函数,其余类从Person类派生,各类再定义getPay()的实现方法,并重载函数print()输出具体数据。

解读

这个题是典型的面向对象的一道题,并作为C++学习中的一道例题或习题。其运用到所学习的构造函数继承派生多态以及虚函数的综合运用。

注意

本人水平有限,现在正处于初识学习阶段,提供一些我的思考,以供参考。

题解

总体结构如下

全部代码

#include<iostream>
#include<string>
using namespace std;

class Person{
   
	string Name;
	string Id;
	short Age;
	string Sex;
public:
	Person(string name, string id, short age, string sex) {
    Name = name; Id = id; Age = age; Sex = sex; }
	string getName() {
    return Name; }
	string getId() {
    return Id; }
	short getAge() {
    return Age; }
	string getSex() {
    return Sex; }
	float getSalary() {
    return 0.0; }
	virtual void print() {
    cout << "姓名: " << Name << "\t编号: " << Id << "\t年龄: " << Age << "\t性别: " << Sex << endl; }
	virtual void getPay() = 0;
};

class Boss :public Person {
   
	int sal = 150000;
public:
	Boss(string name, string id
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值