1、C+语言课程设计人事管理系统C+语言课程设计人事管理系统 一、需求分析3二、程序的主要功能3三、程序运行平台3四、系统总枢架图3五、程序类的说明4六、源程序5七、模块分析12八、特色函数13九、不足与对策13一、需求分析小型公司人员信息的管理用大型软件系统来管理很不现实,而一个小巧玲珑的信息管理系统可能更适于此类公司。二、程序的主要功能1、添加功能:添加职员的基本信息,包括姓名、编号、级别、工作时间、工作成绩等;2、修改功能:对信息进行修改;3、查找功能:根据要求查找已有人员信息;4、显示功能:显示所存信息的内容。三、程序运行环境Visual c+6.0四、系统总框架图五、程序类的说明 六、源
2、程序 /pengfuyuan.cpp#include#includeemployee.hint main() manager m1; technician t1; salesmanager sm1; salesman s1; employee *emp4=&m1,&t1,&sm1,&s1; /用指针数组的个元素存放各对象的地址 int i; for(i=0;ipromote(); empi-pay(); empi-displayStatus(); return 0;/employee.hclass employeeprotected: char *name; /姓名 int individua
3、lEmpNo; /个人编号 int grade; /级别 float accumPay; /月薪总额 static int employeeNo; /本公司职员编号目前最大值public: employee(); /构造函数 employee(); /析构函数 virtual void pay()=0; /计算月薪函数(纯虚函数) virtual void promote(int increment=0); /升级函数(虚函数) virtual void displayStatus()=0; /显示人员信息(纯虚函数);class technician:public employee /兼职技
4、术人员类private: float hourlyRate; /每小时酬金 int workHours; /当月工作时数public: technician(); /构造函数 void promote(int); /升级函数 void pay(); /计算月薪函数 void displayStatus(); /显示人员信息;class salesman:virtual public employee /兼职推销员类protected: float CommRate; /按销售额提取酬金的百分比 float sales; /当月销售额public: salesman(); /构造函数 void
5、promote(int); /升级函数 void pay(); /计算月薪函数 void displayStatus(); /显示人员信息;class manager:virtual public employee /经理类protected: float monthlyPay; /固定月薪数public: manager(); /构造函数 void promote(int); /升级函数 void pay(); /计算月薪函数 void displayStatus(); /显示人员信息;class salesmanager:public manager,public salesman /销售
6、经理类public: salesmanager(); /构造函数 void promote(int); /升级函数 void pay(); /计算月薪函数 void displayStatus(); /显示人员信息;/empfunc.cpp#include#include#includeemployee.hint employee:employeeNo=1000; /员工编号基数为1000employee:employee() char namestr50; /输入雇员姓名时首先临时存放在namestr中 coutnamestr; name=new charstrlen(namestr)+1;
7、 /动态申请用于存放姓名的内存空间 strcpy(name,namestr); /将临时存放的姓名复制到name individualEmpNo=employeeNo+; /新输入的员工,其编号为目前最大编号加1 grade=1; /级别初值为1 accumPay=0.0; /月薪总额初值为0employee:employee() delete name; /在析构函数中删除为存放姓名动态分配的内存空间void employee:promote(int increment) grade+=increment; /升级,提升的级数由increment指定technician:technician
8、() hourlyRate=100; /每小时酬金100元void technician:promote(int) employee:promote(2); /调用基类的升级函数,升2级void technician:pay() cout请输入nameworkHours; accumPay=hourlyRate*workHours; /计算月薪,按小时计酬 cout兼职技术人员name编号individualEmpNo 本月工资accumPayendl;void technician:displayStatus() cout兼职技术人员name编号individualEmpNo 级别为grad
9、e级,已付本月工资accumPayendl;salesman:salesman() CommRate=0.04; /销售提成比例4%void salesman:promote(int) employee:promote(0); /调用基类的升级函数,升0级void salesman:pay() cout请输入namesales; accumPay=sales*CommRate; /月薪=销售提成 cout推销员name编号individualEmpNo 本月工资accumPayendl;void salesman:displayStatus() cout推销员name编号individualE
10、mpNo 级别为grade级,已付本月工资accumPayendl;manager:manager() monthlyPay=8000; /固定月薪8000元void manager:promote(int) employee:promote(3); /调用基类的升级函数,升3级void manager:pay() accumPay=monthlyPay; /月薪总额即固定月薪数 cout经理name编号individualEmpNo 本月工资accumPayendl;void manager:displayStatus() cout经理name编号individualEmpNo 级别为gra
11、de级,已付本月工资accumPayendl;salesmanager:salesmanager() monthlyPay=5000; CommRate=0.005;void salesmanager:promote(int) employee:promote(2); /调用基类的升级函数,升2级void salesmanager:pay() cout请输入employee:namesales; accumPay=monthlyPay+CommRate*sales; /月薪=固定月薪+销售提成 cout销售经理name编号individualEmpNo 本月工资accumPayendl;voi
12、d salesmanager:displayStatus() cout销售经理name编号individualEmpNo 级别为grade级,已付本月工资accumPayendl;七、模块分析1、添加模块 系统提示用户输入职员的新信息,插入链表2、修改模块 用户输入要修改的职员姓名代号,系统用修改函数查找,显示该名职员的信息,然后提示用户输入新的信息3、查找模块用户输入要查找的职员姓名代号,系统用查找函数查找然后调用输出函数,输出所查找职员信息,包括月薪等4、显示模块输出所有职员资料,包括工作时间,月薪等 八、特色函数 void technician:pay() cout请输入nameworkHours; accumPay=hourlyRate*workHours; /计算月薪,按小时计酬 cout兼职技术人员name编号individualEmpNo 本月工资accumPayendl;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1