网站系统管理员模块广西上林建设局网站
网站系统管理员模块,广西上林建设局网站,电商设计的工作内容,百度云加速 wordpress前言#xff1a;
介绍员工信息#xff1a;一个小型公司的人员信息管理系统 某小型公司#xff0c;主要有四类人员#xff1a;经理、技术人员、销售经理和推销员。现在#xff0c;需要存储这些人员的姓名、编号、级别、当前薪水。计算月薪总额并显示全部信息人员编号基数为…前言
介绍员工信息一个小型公司的人员信息管理系统 某小型公司主要有四类人员经理、技术人员、销售经理和推销员。现在需要存储这些人员的姓名、编号、级别、当前薪水。计算月薪总额并显示全部信息人员编号基数为1000 每输入一个人员信息编号顺序加1程序员要有对所有人员提升别的功能。本例中为简单起见所有人员的初始级别均为1级。然后进行升级经理升为4级技术人员和销售经理升为3级推销员仍为1级月薪计算方法是经理拿固定月薪8000元技术人员按每小时100元领取月薪推销员的月薪按该推销员当前售额的4%提成销售经理既拿固定月薪也领取销售提成固定月薪为5000销售提成为所管辖部门当前销售总额的5%
一、分析题意
1.进行画图分析人员关系 注意技术人员、经理、销售人员的基类都是EmployeeSalesManager继承两个类Manager和SalesMan,这里Employee、Manager、SalesMan、SalesManager构成菱形形成了虚继承所以在Manager、SalesMan继承Employee的时候应加上virtual
2.类的设计 二、创建基类--Employee
1.头文件--Employee.h
#pragma once
#includeiostream
#includestring
using namespace std;
class Employee
{
public:Employee();virtual ~Employee();//提供一个显示的初始化员工的函数virtual void init()0;//提供员工薪资的计算方法virtual void getPay() 0;//显示员工信息方法void displayStatus();//升级的方法virtual void upLevel(int level) 0;
protected:string name;//姓名int id;//编号double salary;//薪资int level;//级别//员工的编号基础值static int starNum;
};
static int starNum;
2. .cpp文件--Employee.cpp
#include Employee.h
int Employee::starNum 1000;
Employee::Employee()
{cout Employee()... endl;idstarNum;level 1;salary 0.0;
}
Employee::~Employee()
{cout ~Employee().... endl;
}
void Employee::displayStatus()//显示员工信息
{cout 该员工的姓名为this-name endl;cout 该员工的薪资为 this-salary endl;cout 该员工的编号为 this-id endl;cout 该员工的级别为 this-level endl;
}三、技术人员类--Tecnicion
1.头文件--Tecnicion.h
#pragma once
#include Employee.h
class Tecnicion :public Employee
{
public:Tecnicion();~Tecnicion();virtual void init();virtual void getPay();virtual void upLevel(int level);
private://一个月工作了多少小时int workhour;//每小时多少钱double perHourMoney;
};
2. .cpp文件--Tecnicion.cpp
#include Tecnicion.h
Tecnicion::Tecnicion()
{cout Tecnicion().... endl;}
void Tecnicion::init()
{cout 请输入员工的姓名 endl;cin name;perHourMoney 100;//规定员工每小时赚100元
}
Tecnicion::~Tecnicion()
{cout ~Tecnicion()... endl;
}
void Tecnicion::getPay()
{cout 请输入该员工工作了多少小时 endl;cin workhour;this-salary this-workhour * this-perHourMoney;
}
void Tecnicion::upLevel(int level)
{this-level level;
}
三、经理类--Manger
1.头文件--Manager.h
#pragma once
#include Employee.h
class Manager :virtual public Employee
{
public:~Manager();Manager();virtual void init();virtual void getPay();virtual void upLevel(int level);
protected:double fixSalary;
};
2.cpp文件--Manager.cpp
#include Manager.h
Manager::~Manager()
{cout ~Manager()... endl;
}
Manager::Manager()
{cout Manager()... endl;
}
void Manager::init()
{cout 请输入该经理的姓名 endl;cin this-name;
}
void Manager::getPay()
{this-salary 8000;
}
void Manager::upLevel(int level)
{this-level level;if (this-level 1){this-salary 8000;}else if (this-level 2){this-salary 10000;}
}
四、销售人员--SalesMan
1.头文件--SalesMan.h
#pragma once
#include Employee.h
class SalesMan :virtual public Employee
{
public:SalesMan();~SalesMan();virtual void init();virtual void getPay();virtual void upLevel(int level);
protected://提成的比率double salePercent;//当月销售额int saleAmount;
};
2.cpp文件--SalesMan.cpp
#include SalesMan.h
SalesMan::SalesMan()
{cout SalesMan()... endl;}
void SalesMan::init()
{cout 请输入销售员工的姓名 endl;cin this-name;this-salePercent 0.04;
}
SalesMan::~SalesMan()
{cout ~SalesMan()... endl;
}
void SalesMan::getPay()
{cout 请输入当月销售额 endl;cin this-saleAmount;//计算当月的月薪this-salary (this-saleAmount) * (this-salePercent);
}
void SalesMan::upLevel(int level)
{this-level level;if (this-level 1){this-salePercent 0.04;}
}
五、销售经理--SalesManager
1.头文件--SalesManager.h
#pragma once
#includeManager.h
#includeSalesMan.h
class SalesManager:public Manager,public SalesMan
{
public:SalesManager();~SalesManager();virtual void init();virtual void getPay();virtual void upLevel(int level);
private:
};
2.cpp文件--SalesManager.cpp
#include SalesManager.h
SalesManager::SalesManager()
{cout SalesManager()... endl;
}
void SalesManager::init()
{cout 请输入销售经理的姓名 endl;cin this-name;this-fixSalary 5000;this-salePercent 0.05;
}
SalesManager::~SalesManager()
{cout ~SalesManager()... endl;
}
void SalesManager::getPay()
{cout 请输入当月的销售额 endl;cin this-saleAmount;this-salary this-saleAmount * this-salePercent this-fixSalary;
}
void SalesManager::upLevel(int level)
{this-level level;}
六、主函数--main.cpp
#includeEmployee.h
#includeiostream
using namespace std;
#includestring
#includeTecnicion.h
#includeManager.h
#includeSalesMan.h
#includeSalesManager.h
int main(void)
{
#if 0Employee* em1 new Tecnicion;//科技人员em1-getPay();em1-upLevel(1);em1-displayStatus();delete em1;
#endif#if 0Employee* em2 new Manager;//普通经理em2-getPay();em2-upLevel(0);em2-displayStatus();delete em2;
#endif#if 0Employee* em3 new SalesMan;em3-upLevel(0);em3-getPay();em3-displayStatus();delete em3;
#endif #if 0Employee* em4 new SalesManager;//这里会出现差错 原因在每个类的构造函数中只能初始化对象 而不能整一些业务em4-init();em4-upLevel(1);em4-getPay();em4-displayStatus();delete em4;
#endifEmployee* person_array[] { new Tecnicion,new Manager,new SalesMan,new SalesManager };for (int i 0; i sizeof(person_array) / sizeof(person_array[0]); i){person_array[i]-init();person_array[i]-upLevel(0);person_array[i]-getPay();person_array[i]-displayStatus();}for (int i 0; i sizeof(person_array) / sizeof(person_array[0]); i){delete person_array[i];}return 0;
}
源文件多态案例/多态案例 · 李晓蕊/project.c - 码云 - 开源中国 (gitee.com)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91775.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!