C++语言课程设计人事管理系统.docx
《C++语言课程设计人事管理系统.docx》由会员分享,可在线阅读,更多相关《C++语言课程设计人事管理系统.docx(10页珍藏版)》请在冰豆网上搜索。
C++语言课程设计人事管理系统
C++语言课程设计
——人事管理系统
一、需求分析..................................3
二、程序的主要功能............................3
三、程序运行平台..............................3
四、系统总枢架图..............................3
五、程序类的说明..............................4
六、源程序....................................5
七、模块分析..................................12
八、特色函数..................................13
九、不足与对策................................13
一、需求分析
小型公司人员信息的管理用大型软件系统来管理很不现实,而一个小巧玲珑的信息管理系统可能更适于此类公司。
二、程序的主要功能
1、添加功能:
添加职员的基本信息,包括姓名、编号、级别、工作时间、工作成绩等;
2、修改功能:
对信息进行修改;
3、查找功能:
根据要求查找已有人员信息;
4、显示功能:
显示所存信息的内容。
三、程序运行环境
Visualc++6.0
四、系统总框架图
五、程序类的说明
六、源程序
//pengfuyuan.cpp
#include
#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();
emp[i]->pay();
emp[i]->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;//当月工作时数
public:
technician();//构造函数
voidpromote(int);//升级函数
voidpay();//计算月薪函数
voiddisplayStatus();//显示人员信息
};
classsalesman:
virtualpublicemployee//兼职推销员类
{
protected:
floatCommRate;//按销售额提取酬金的百分比
floatsales;//当月销售额
public:
salesman();//构造函数
voidpromote(int);//升级函数
voidpay();//计算月薪函数
voiddisplayStatus();//显示人员信息
};
classmanager:
virtualpublicemployee//经理类
{
protected:
floatmonthlyPay;//固定月薪数
public:
manager();//构造函数
voidpromote(int);//升级函数
voidpay();//计算月薪函数
voiddisplayStatus();//显示人员信息
};
classsalesmanager:
publicmanager,publicsalesman//销售经理类
{
public:
salesmanager();//构造函数
voidpromote(int);//升级函数
voidpay();//计算月薪函数
voiddisplayStatus();//显示人员信息
};
//empfunc.cpp
#include
#include
#include"employee.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:
:
~employee()
{
deletename;//在析构函数中删除为存放姓名动态分配的内存空间
}
voidemployee:
:
promote(intincrement)
{
grade+=increment;//升级,提升的级数由increment指定
}
technician:
:
technician()
{
hourlyRate=100;//每小时酬金100元
}
voidtechnician:
:
promote(int)
{
employee:
:
promote
(2);//调用基类的升级函数,升2级
}
voidtechnician:
:
pay()
{
cout<<"请输入"<";
cin>>workHours;
accumPay=hourlyRate*workHours;//计算月薪,按小时计酬
cout<<"兼职技术人员"<<<"本月工资"<}
voidtechnician:
:
displayStatus()
{
cout<<"兼职技术人员"<<<"级别为"<}
salesman:
:
salesman()
{
CommRate=0.04;//销售提成比例4%
}
voidsalesman:
:
promote(int)
{
employee:
:
promote(0);//调用基类的升级函数,升0级
}
voidsalesman:
:
pay()
{
cout<<"请输入"<";
cin>>sales;
accumPay=sales*CommRate;//月薪=销售提成
cout<<"推销员"<<<"本月工资"<}
voidsalesman:
:
displayStatus()
{
cout<<"推销员"<<<"级别为"<}
manager:
:
manager()
{
monthlyPay=8000;//固定月薪8000元
}
voidmanager:
:
promote(int)
{
employee:
:
promote(3);//调用基类的升级函数,升3级
}
voidmanager:
:
pay()
{
accumPay=monthlyPay;//月薪总额即固定月薪数
cout<<"经理"<<<"本月工资"<}
voidmanager:
:
displayStatus()
{
cout<<"经理"<<<"级别为"<}
salesmanager:
:
salesmanager()
{
monthlyPay=5000;
CommRate=0.005;
}
voidsalesmanager:
:
promote(int)
{
employee:
:
promote
(2);//调用基类的升级函数,升2级
}
voidsalesmanager:
:
pay()
{
cout<<"请输入"<:
name<<"所管辖部门本月的销售总额:
";
cin>>sales;
accumPay=monthlyPay+CommRate*sales;//月薪=固定月薪+销售提成
cout<<"销售经理"<<<"本月工资"<}
voidsalesmanager:
:
displayStatus()
{
cout<<"销售经理"<<<"级别为"<}
七、模块分析
1、添加模块
系统提示用户输入职员的新信息,插入链表
2、修改模块
用户输入要修改的职员姓名代号,系统用修改函数查找,显示该名职员的信息,然后
提示用户输入新的信息
3、查找模块
用户输入要查找的职员姓名代号,系统用查找函数查找然后调用输出函数,输出所查找职员信息,包括月薪等
4、显示模块
输出所有职员资料,包括工作时间,月薪等
八、特色函数
voidtechnician:
:
pay()
{
cout<<"请输入"<";
cin>>workHours;
accumPay=hourlyRate*workHours;//计算月薪,按小时计酬
cout<<"兼职技术人员"<<<"本月工资"<}