C++语言课程设计人事管理系统.docx

上传人:b****6 文档编号:6554276 上传时间:2023-01-07 格式:DOCX 页数:10 大小:66.30KB
下载 相关 举报
C++语言课程设计人事管理系统.docx_第1页
第1页 / 共10页
C++语言课程设计人事管理系统.docx_第2页
第2页 / 共10页
C++语言课程设计人事管理系统.docx_第3页
第3页 / 共10页
C++语言课程设计人事管理系统.docx_第4页
第4页 / 共10页
C++语言课程设计人事管理系统.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

C++语言课程设计人事管理系统.docx

《C++语言课程设计人事管理系统.docx》由会员分享,可在线阅读,更多相关《C++语言课程设计人事管理系统.docx(10页珍藏版)》请在冰豆网上搜索。

C++语言课程设计人事管理系统.docx

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<<"兼职技术人员"<

<<"本月工资"<

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 专升本

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1