C++语言课程设计人事管理系统Word文件下载.docx
《C++语言课程设计人事管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《C++语言课程设计人事管理系统Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
根据要求查找已有人员信息;
4、显示功能:
显示所存信息的内容。
三、程序运行环境
Visualc++6.0
四、系统总框架图
五、程序类的说明
六、源程序
//pengfuyuan.cpp
#include<
iostream.h>
#include"
employee.h"
intmain()
{
managerm1;
techniciant1;
salesmanagersm1;
salesmans1;
employee*emp[4]={&
m1,&
t1,&
sm1,&
s1};
//用指针数组的个元素存放各对象的地址
inti;
for(i=0;
i<
4;
i++)
{/*依次调用各派生类对象的成员函数,完成各自不同的升级、
计算月薪、显示信息功能。
*/
emp[i]->
promote();
pay();
displayStatus();
}
return0;
}
//employee.h
classemployee
protected:
char*name;
//姓名
intindividualEmpNo;
//个人编号
intgrade;
//级别
floataccumPay;
//月薪总额
staticintemployeeNo;
//本公司职员编号目前最大值
public:
employee();
//构造函数
~employee();
//析构函数
virtualvoidpay()=0;
//计算月薪函数(纯虚函数)
virtualvoidpromote(intincrement=0);
//升级函数(虚函数)
virtualvoiddisplayStatus()=0;
//显示人员信息(纯虚函数)
};
classtechnician:
publicemployee//兼职技术人员类
private:
floathourlyRate;
//每小时酬金
intworkHours;
//当月工作时数
technician();
voidpromote(int);
//升级函数
voidpay();
//计算月薪函数
voiddisplayStatus();
//显示人员信息
classsalesman:
virtualpublicemployee//兼职推销员类
floatCommRate;
//按销售额提取酬金的百分比
floatsales;
//当月销售额
salesman();
//升级函数
classmanager:
virtualpublicemployee//经理类
floatmonthlyPay;
//固定月薪数
manager();
classsalesmanager:
publicmanager,publicsalesman//销售经理类
salesmanager();
//empfunc.cpp
string.h>
intemployee:
:
employeeNo=1000;
//员工编号基数为1000
employee:
employee()
charnamestr[50];
//输入雇员姓名时首先临时存放在namestr中
cout<
<
"
请输下一个入雇员的姓名:
;
cin>
>
namestr;
name=newchar[strlen(namestr)+1];
//动态申请用于存放姓名的内存空间
strcpy(name,namestr);
//将临时存放的姓名复制到name
individualEmpNo=employeeNo++;
//新输入的员工,其编号为目前最大编号加1
grade=1;
//级别初值为1
accumPay=0.0;
//月薪总额初值为0
~employee()
deletename;
//在析构函数中删除为存放姓名动态分配的内存空间
voidemployee:
promote(intincrement)
grade+=increment;
//升级,提升的级数由increment指定
technician:
technician()
hourlyRate=100;
//每小时酬金100元
voidtechnician:
promote(int)
employee:
promote
(2);
//调用基类的升级函数,升2级
pay()
请输入"
name<
本月的工作时数:
workHours;
accumPay=hourlyRate*workHours;
//计算月薪,按小时计酬
兼职技术人员"
编号"
individualEmpNo
<
本月工资"
accumPay<
endl;
displayStatus()
级别为"
grade<
级,已付本月工资"
salesman:
salesman()
CommRate=0.04;
//销售提成比例4%
voidsalesman:
promote(0);
//调用基类的升级函数,升0级
本月的销售额:
sales;
accumPay=sales*CommRate;
//月薪=销售提成
推销员"
manager:
manager()
monthlyPay=8000;
//固定月薪8000元
voidmanager:
promote(3);
//调用基类的升级函数,升3级
accumPay=monthlyPay;
//月薪总额即固定月薪数
经理"
salesmanager:
salesmanager()
monthlyPay=5000;
CommRate=0.005;
voidsalesmanager:
//调用基类的升级函数,升2级
所管辖部门本月的销售总额:
accumPay=monthlyPay+CommRate*sales;
//月薪=固定月薪+销售提成
销售经理"
七、模块分析
1、添加模块
系统提示用户输入职员的新信息,插入链表
2、修改模块
用户输入要修改的职员姓名代号,系统用修改函数查找,显示该名职员的信息,然后
提示用户输入新的信息
3、查找模块
用户输入要查找的职员姓名代号,系统用查找函数查找然后调用输出函数,输出所查找职员信息,包括月薪等
4、显示模块
输出所有职员资料,包括工作时间,月薪等
八、特色函数
voidtechnician: