员工类

#include <iostream> 
#include <string> 
#include <typeinfo>
using namespace std;
class Person{
	public:
		Person(string Name,string Id,int Age,bool Sex):name(Name),id(Id),age(Age),sex(Sex){}
		virtual double getPay()=0;
		virtual void print(){
			cout<<"职工编号:"<<id<<endl;
			cout<<"职位:"<<typeid(*this).name()<<endl;
			cout<<"姓名:"<<name<<endl;
			cout<<"年龄:"<<age<<endl;
			cout<<"性别:"<<(sex?"男":"女")<<endl;
		}
	private:
		string name,id;
		int age;
		bool sex;
};
class Boss:public Person{
	public:
		Boss(string Name,string Id,int Age,bool Sex,double YearPay):Person(Name,Id,Age,Sex),yearPay(YearPay){}
		double getPay(){return yearPay;};
		void print(){
			Person::print();
			cout<<"年薪:"<<getPay()<<endl;
		}
	private:
		double yearPay;
};
class Employee:public Person{
	public:
		Employee(string Name,string Id,int Age,bool Sex,double BasePay,double Reward):Person(Name,Id,Age,Sex),basePay(BasePay),reward(Reward){}
		double getPay(){return basePay+reward;};
		void print(){
			Person::print();
			cout<<"基本工资:"<<basePay<<endl;
			cout<<"奖金:"<<reward<<endl; 
			cout<<"月薪:"<<getPay()<<endl;
		}
	private:
		double basePay;
		double reward;
};
class HourlyWorker:public Person{
	public:
		HourlyWorker(string Name,string Id,int Age,bool Sex,double Hour,double Price):Person(Name,Id,Age,Sex),hour(Hour),price(Price){}
		double getPay(){return hour*price;};
		void print(){
			Person::print();
			cout<<"工作时长:"<<hour<<endl;
			cout<<"单价/时:"<<price<<endl; 
			cout<<"工资:"<<getPay()<<endl;
		}
	private:
		double hour;
		double price;
};
class CommWorker:public Person{
	public:
		CommWorker(string Name,string Id,int Age,bool Sex,double BasePay,double Profit):Person(Name,Id,Age,Sex),basePay(BasePay),profit(Profit){}
		double getPay(){return basePay+0.05*profit;};
		void print(){
			Person::print();
			cout<<"基本工资:"<<basePay<<endl;
			cout<<"销售利润:"<<profit<<endl; 
			cout<<"月薪:"<<getPay()<<endl;
		}
	private:
		double basePay;
		double profit;
};
int main(){
	Person *p;
	Boss boss("A","001",50,1,150000);
	Employee employee("B","002",40,0,2000,1000);
	HourlyWorker hourlyWorker("C","003",30,1,50,30);
	CommWorker commWorker("D","004",20,0,2500,600000);
	p=&boss;
	p->print();
	cout<<"----------------"<<endl;
	p=&employee;
	p->print();
	cout<<"----------------"<<endl;
	p=&hourlyWorker;
	p->print();
	cout<<"----------------"<<endl;
	p=&commWorker;
	p->print();
} 

 

全部评论

相关推荐

04-02 10:09
门头沟学院 Java
用微笑面对困难:这里面问题还是很多的,我也不清楚为啥大家会感觉没啥问题。首先就是全栈开发实习9个月的内容都没有java实习生的内容多,1整个技术栈没看出太核心和难点的内容,感觉好像被拉过去打杂了,而且全栈基本上很容易被毙。里面能问的bug是在太多了比如L:继承 BaseMapper 可直接使用内置方法’。请问你的 BaseMapper 是如何扫描实体类注解如果瞬时产生 100 个上传任务,MySQL 的索引设计是否会有瓶颈?你做过分库分表或者索引优化吗?全栈的内容可以针对动态难点去搞,技能特长写在下面吧,你写了这么多技能,项目和实习体现了多少?你可以在项目里多做文章然后把这个放下去,从大致来看实习不算太水,有含金量你也要写上内容针对哨兵里面的节点变化能问出一万个问题,这个很容易就爆了。
提前批简历挂麻了怎么办
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务