m0_56707387 2021-06-12 12:50 采纳率: 66.7%
浏览 51
已采纳

能不能帮忙做一个人员信息管理系统

作业不会做,能不能用c++帮忙做一个人员信息管理系统

某公司有四种类型的员工:经理、兼职技术人员、推销员和销售经理。各员工的月薪计算如下:经理拿固定月薪8000元;兼职技术人员按100/每小时领取月薪;推销员的月薪按固定月薪2000元和当月推销额的4%提成;销售经理拿固定月薪和销售提成,固定月薪为5000元,销售提成为所管辖部门当月销售额总额的5‰。要求:

1.设计一个基类Employee,派生出其他的类,每个类有构造函数和析构函数;

2.每个类的成员变量至少包括:姓名、员工编号和月薪总额;

3.在主函数中,使用各派生类分别定义一个对象,需要从键盘输入:

1)这四类员工的姓名;

2)兼职技术人员本月的工作小时数;

3)推销员本月的销售额;

4)销售经理所管辖部门本月的销售总额。

4.分别输出这四类员工本月工资;

5.至少使用虚基类、抽象类和虚函数中的两种技术。

 

  • 写回答

3条回答 默认 最新

  • qfl_sdu 2021-06-12 14:15
    关注

    代码如下,如有帮助,请采纳一下,谢谢。

    #include <iostream>
    #include <string>
    using namespace std;
    //虚基类
    class People
    {
    public:
    	People(){}
    };
    //抽象类类
    class Employee : virtual public People
    {
    protected:
    	string name;
    public:
    	Employee(string s):People(){name = s;};
    	virtual double getSolary() = 0;
    	virtual void display() = 0;
    };
    //经理
    class Manager:public Employee
    {
    public:
    	Manager(string s):Employee(s){}
    	double getSolary()
    	{
    		return 8000;
    	}
    	void display()
    	{
    		cout  << name << "'s  solary:" << getSolary() << endl;
    	}
    };
    //兼职技术员
    class Jianzhi :public Employee
    {
    private:
    	int hour;
    public:
    	Jianzhi(string s,int h):Employee(s){hour = h;}
    	double getSolary()
    	{
    		return 100*hour;
    	}
    	void display()
    	{
    		cout  << name << "'s  solary:" << getSolary() << endl;
    	}
    };
    //推销员
    class tuixiaoyuan :public Employee
    {
    private:
    	double xse; //销售额
    public:
    	tuixiaoyuan(string s,double x):Employee(s)
    	{
    		xse = x;
    	}
    	double getSolary()
    	{
    		return  xse * 0.4 + 2000;
    	}
    	void display()
    	{
    		cout  << name << "'s  solary:" << getSolary() << endl;
    	}
    };
    
    class Xiaoshoujingli :public Employee
    {
    private:
    	double xsze;
    public:
    	Xiaoshoujingli(string n,double x):Employee(n)
    	{
    		xsze = x;
    	}
    	double getSolary()
    	{
    		return xsze * 0.04 + 5000;
    	}
    	void display()
    	{
    		cout  << name << "'s  solary:" << getSolary() << endl;
    	}
    };
    
    
    int main()
    {
    	string name;
    	cout << "请输入经理的姓名:";
    	cin >> name;
    	Manager mag(name);
    
    	cout << "请输入兼职技术人员的姓名:";
    	cin >> name;
    	cout << "请输入兼职时长:";
    	int hour;
    	cin >> hour;
    	Jianzhi jz(name,hour);
    
    	cout << "请输入推销员姓名:";
    	cin >> name;
    	cout << "请输入推销额:";
    	double ed;
    	cin >> ed;
    	tuixiaoyuan txy(name,ed);
    
    	cout << "请输入销售经理姓名:";
    	cin >> name;
    	cout << "请输入部门的销售总额:";
    	double zed;
    	cin >> zed;
    	Xiaoshoujingli xsjl(name,zed);
    
    	mag.display();
    	jz.display();
    	txy.display();
    	xsjl.display();
    	return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Android STD快速启动
  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动