C++小型公司员工管理系统

编程入门 行业动态 更新时间:2024-10-06 08:38:18

C++小型公司员工<a href=https://www.elefans.com/category/jswz/34/1769858.html style=管理系统"/>

C++小型公司员工管理系统

小型公司员工管理系统

 

(为了避免繁琐的初始化,所有虚基类的构造函数均不带参数,,采用键盘录入的方式赋值)

 

子对象:教育背景类==CEducation

(毕业学校,最高学历)

 

员工类==Staff

(属性:姓名,工作编号,基本工资,奖金,当月出勤记录;教育背景(子对象))

(行为:录入和显示信息,根据考勤等因素计算月薪(不同类别的员工计算的方法各不相同)【所以可以把这个声明为虚函数,当然也可以静态联编,使用作用域限定符就好了】) 

 

                                                                           销售人员                      行政人员                     经理


                                                                                                                  销售经理


#ifndef _WOSHILEIA_H_
#define _WOSHILEIA_H_
#includeusing namespace std;
#include#includeclass CEducation  //定义教育背景类
{
public:CEducation();  //空的构造函数void Seteducation(void);  //输入毕业学校和最高学历void Geteducation(void); //输出毕业学校和最高学历
protected:char *gra_school;	//毕业学校char highest_edu;  //最高学历
};
class Staff  //定义职员类
{
public:Staff();  //空的构造函数void SetStaff(void);  //输入职员信息void show(void);      //显示职员信息
protected:char name[20];  //职员姓名long number;  //工作编号int base_salary;  //基础工资int award; //奖金double attendance; //当月出勤记录(0~1之间)CEducation education;  //教育背景子对象
};
class Salemen:virtual public Staff  //定义销售人员类
{
public:Salemen();  //空的构造函数void SetPerAmount(void);//输入个人销售额void SetPerRate(void); //输入销售人员提成率void GetSalary(void);//计算当月工资
protected:int PerAmount;//个人销售额double PerRate;//提成比例
};
class Excutive:public Staff  //定义行政人员类
{
public:Excutive();  //空的构造函数void GetSalary(void); //计算当月工资
};
class Manager :virtual public Staff //定义经理类
{
public:Manager(); //定义空的构造函数void SetComAmount(void); //输入公司销售额void SetComRate(void); //输入经理提成比例void GetSalary(void); //计算当月工资
protected:int Amount;//销售额double Rate;//提成比例
};
class Sale_Manager:public Salemen,public Manager //定义销售经理类
{
public:Sale_Manager(); //定义空的构造函数void GetSalary(void); //计算当月工资
};
#endif
#include"woshileia.h"
CEducation::CEducation(){};//CEducation类的空的构造函数
void CEducation::Seteducation(void)//输入毕业学校和最高学历
{char *temp_stu = new char[50];cout << "请输入毕业学校:";cin >> temp_stu;cout <<< "请输入最高学历(专科H、本科B、硕研M、博研D):";cin >> highest_edu;highest_edu = toupper(highest_edu);gra_school = new char[strlen(temp_stu) + 1];strcpy(gra_school, temp_stu);delete[]temp_stu;
}
void CEducation::Geteducation(void)//输出毕业学校和最高学历
{cout << "毕业学校:" << gra_school << endl;switch (highest_edu){case 'H':cout << "专科" << endl;break;case 'B':cout << "本科" << endl;break;case 'M':cout << "硕研" << endl;break;case 'D':cout << "博研" << endl; break;}
}
Staff::Staff(){};//Staff类的空的构造函数
void Staff::SetStaff(void) //输入职员信息
{cout << "请输入姓名:";cin >> name;cout << "请输入工作编号:";cin >> number;cout << "请输入基础工资:";cin >> base_salary;cout << "请输入奖金:";cin >> award;cout<< "请输入当月出勤记录:";cin >> attendance;
}
void Staff::show(void)
{cout <<< "姓名:" << name << endl << "工作编号:" << number << endl << "基本工资:" << base_salary << endl;cout<< "奖金:" << award << endl;
}
Salemen::Salemen(void){};//Salemen类的空的构造函数
void Salemen::SetPerAmount(void)
{cout << "请输入个人销售额:";cin >> PerAmount;
}
void Salemen::SetPerRate(void)
{cout << "请输入销售人员的提成比例:";cin >> PerRate;
}
void Salemen::GetSalary(void)
{cout <<"当月工资:" << base_salary + award + PerAmount*PerRate - (1 - attendance) * 200;
}
Excutive::Excutive(void){};//Excutive类的空的构造函数
void Excutive::GetSalary(void)
{cout << "当月工资:" << base_salary + award - (1 - attendance) * 200;
}
Manager::Manager(void){};//Manager类的空构造函数
void Manager::SetComAmount(void)
{cout <<  "请输入公司销售额:";cin >> Amount;
}
void Manager::SetComRate(void)
{cout <<"请输入经理的提成比例:";cin >> Rate;
}
void Manager::GetSalary(void)
{cout << "当月工资:" << base_salary + award + Amount*Rate - (1-attendance) * 200;
}
Sale_Manager::Sale_Manager(void){};//Sale_Manager类的空构造函数
void Sale_Manager::GetSalary(void)
{cout << "当月工资:" << base_salary + award + PerAmount*PerRate + Amount*Rate - (1 - attendance) * 200;
}
#include"woshileia.h"
#includeint main(void)
{char flag = 'y';int choose;while (toupper(flag) == 'Y'){cout << "请选择人员类别(1.销售人员,2.行政人员,3.经理,4.销售经理):";cin >> choose;switch (choose){case 1:{Salemen person;person.SetStaff();person.SetPerAmount();person.SetPerRate();cout << "================================================" << endl;person.show();person.GetSalary();break;}case 2:{Excutive person;person.SetStaff();cout << "================================================" << endl;person.show();person.GetSalary();break;}case 3:{Manager person;person.SetStaff();person.SetComAmount();person.SetComRate();cout << "================================================" << endl;person.show();person.GetSalary();break;}case 4:{Sale_Manager person;person.SetStaff();person.SetPerAmount();person.SetPerRate();person.SetComAmount();person.SetComRate();cout << "================================================" << endl;person.show();person.GetSalary();break;}}cout << endl << "================================================";cout << endl << "是否继续输入信息(“是”[y],“否”[n]):";cin >> flag;}system("pause");return 0;
} 

更多推荐

C++小型公司员工管理系统

本文发布于:2024-02-28 04:10:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768129.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:管理系统   公司员工

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!