Day45、《c++小项目----薪酬计算》、正则表达式
来源:互联网 发布:写php用什么编辑器 编辑:程序博客网 时间:2024/06/07 05:38
《c++小项目----薪酬计算》
普通员工
/ | \
技术员 经理 销售员
\ / \ /
技术主管 销售主管
所有员工:姓名、工号、职位级别、出勤率(输入出勤天数/23)
技术员:研发津贴(元/小时)
经理:绩效奖金
销售员:提成比率
薪资:基本工资+绩效工资
基本工资:职位级别对应固定的额度*出勤率
绩效工资:因职务而异(用多态)
普通员工绩效工资:基本工资的一半
经理的绩效:绩效奖金*绩效因数(输入)
技术员绩效工资:研发津贴*工作小时数*进度因数(输入)
销售员绩效工资:销售额(输入)*提高比率
技术主管绩效工资:(技术员绩效工资+经理的绩效工资)/2
销售主管绩效工资:(销售员绩效工资+经理的绩效工资)/2
实例化员工对象,打印员工信息,输入必要数据,计算薪资并计算
vi employSalary:
#include<iostream>
using namespace std;
//普通员工
class Employee{
public:
Employee(const string& name,int id,int grade):
m_name(name),m_id(id),m_grade(grade){}
void printInfo(void){//打印员工信息
printBasic();//员工的公有信息
printExtra();//员工的特有信息绩效工资
}
void paysalary(void){//计算员工工资
cout<<"工资:"<<calBasic()+calMerit()<<endl;//基本工资加
}
protected:
double m_attend;//出勤率
private:
double calBasic(void){//基本工资计算
cout<<"出勤天数:";
int attend;
cin>>attend;
m_attend=attend/23.0;
m_basic=s_grades[m_grade-1]*m_attend;
return m_basic;
}
virtual double calMerit(void){//绩效工资计算
return m_basic/2;
}
void printBasic(void){
cout<<"姓名="<<m_name<<endl;
cout<<"工号="<<m_id<<endl;
cout<<"职级="<<m_grade<<endl;
}
virtual void printExtra(void){
cout<<"职位:普通员工"<<endl;
}
string m_name;
int m_id;
int m_grade;//职位级别
double m_basic;//基本工资
static double s_grades[8];//职级薪资表
};
double Employee::s_grades[]={1000,2000,3000,
4000,5000,6000,7000,8000};
//技术员类
class Technician:virtual public Employee{
public:
Technician(const string& name,int id,int grade,double allow):
Employee(name,id,grade),m_allow(allow){}
protected:
void printExtra(void){
cout<<"职位:技术员"<<endl;
cout<<"研发津贴:"<<m_allow<<endl;
}
double calMerit(void){
cout<<"输入进度因数:";
double factor;
cin>>factor;
//小时数*研发津贴*进度因数
return 8*26*m_attend*m_allow*factor;
}
private:
double m_allow;//研发津贴
};
//经理
class Manager:virtual public Employee{
public:
Manager(const string& name,int id,int grade,double bonus):
Employee(name,id,grade),m_bonus(bonus){}
protected:
void printExtra(void){
cout<<"职位:经理"<<endl;
cout<<"绩效奖金"<<m_bonus;
}
double calMerit(void){
cout<<"输入绩效因数";
double factor;
cin>>factor;
//绩效奖金*绩效因数*出勤率
return m_bonus*factor*m_attend;
}
private:
double m_bonus;//绩效奖金
};
//技术主管
class TechMngr:public Technician,publicManager{
public:
TechMngr(const string& name,int id,int grade,double allow,doublebonus):
Technician(name,id,grade,allow),
Manager(name,id,grade,bonus),
Employee(name,id,grade){}
private:
void printExtra(void){
Technician::printExtra();
Manager::printExtra();
}
double calMerit(void){
//技术员+经理/2
return (Technician::calMerit()+
Manager::calMerit())/2;
}
};
int main(void){
Employee emp("张飞",10010,3);
emp.printInfo();
emp.paysalary();
cout<<"=============="<<endl;
Technician tech("孔明",10011,5,20);
tech.printInfo();
tech.paysalary();
cout<<"=============="<<endl;
Manager mngr("刘备",10000,5,8000);
mngr.printInfo();
mngr.paysalary();
cout<<"=============="<<endl;
TechMngr techmngr("曹操",11111,6,20,8000);
techmngr.printInfo();
techmngr.paysalary();
return 0;
}
tarena@tarena-virtual-machine:~/project$./a.out
姓名=张飞
工号=10010
职级=3
职位:普通员工
出勤天数:25
工资:4891.3
==============
姓名=孔明
工号=10011
职级=5
职位:技术员
研发津贴:20
出勤天数:26
输入进度因数:3
工资:19760
==============
姓名=刘备
工号=10000
职级=5
职位:经理
绩效奖金8000出勤天数:25
输入绩效因数5
工资:48913
==============
姓名=曹操
工号=11111
职级=6
职位:技术员
研发津贴:20
职位:经理
绩效奖金8000出勤天数:28
输入进度因数:5
输入绩效因数3
工资:34573.9
概念:
云平台:多台机器组成的一个计算机集群
多文件联合编译:
qmake –project 生成 .pro文件
qmake .pro文件生成Makefile
正则表达式:
href=”\s*\([^>”]*\)\s*”
\s -- 匹配任何空白字符(空格、制表、换行等)
* -- 重复前一个匹配任意次
\( -- 子表达式左边界
\ ) -- 字表达式右边界
[^>”] -- 匹配任何不是空格、大于号和双引号的字符
- Day45、《c++小项目----薪酬计算》、正则表达式
- 正则表达式小谈
- 正则表达式小收集
- 正则表达式小探
- 正则表达式小笔记
- 小话正则表达式
- 正则表达式小用
- 正则表达式小总结
- 正则表达式小总结
- 正则表达式小知识
- 正则表达式小总结
- 正则表达式小例
- 正则表达式小Tips
- 正则表达式小总结
- 正则表达式小应用
- 小知识-正则表达式
- Problem B: 薪酬计算
- Problem G: 薪酬计算
- oracle定时备份脚本
- HttpClientUtil-用于后台发起请求
- php 400 ,500错误
- 51nod oj 1262 扔球 【容斥定理||欧拉定理】
- nvm nodejs npm 环境配置(个人学习中...)
- Day45、《c++小项目----薪酬计算》、正则表达式
- 各种Mutex的使用与区别
- Android性能优化典范 笔记
- 关于thinkphp的增删改查
- ios制作 framework
- 【一牛网&科大讯飞】AIUI评估板免费赠?讯飞评测活动告诉你:有戏!
- mysql递归查询组织机构
- postcss压缩 postcss-clean替换cssnano
- Java 内存区域和GC机制