(C人事管理系统课程设计报告.doc
文本预览下载声明
设计题目(问题)描述和要求
题目:人事管理系统 某小型公司,主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。现在,需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。
要求:
其中,人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。 程序对所有人员有提升级别的功能 月薪的计算方法是:经理拿固定月薪,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成 ,销售经理既拿固定月薪也领取销售提成。 能按姓名或者编号显示、查找、增加、删除和保存各类人员的信息
模块按姓名或者编号显示、查找、增加、删除和保存各类人员的信息人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1Base.txt:(格式:项目 数据)
经理固定月薪 3000
销售经理固定月薪 1000
销售经理提成% 1
销售人员提成% 2
技术人员小时工资 20
ID 6
Person.txt:(格式:编号,姓名,人员类别,其它数据,销售员销售额,技术人员工作小时)
2 wang 3 100000
3 liu 1
4 wu 4 100
5 huang 2
6 tao 3 150000
注:人员类型编号1-经理;2-销售经理;3-销售员;4-技术人员
系统设计
系统类的层次图next,Person(),CalcSalary(),Output()}
Manager Sales SalesManager Technician
{ Manager(), {Amount, {Amount, { t,
CalcSalary(), Sales(),GetAmount(), SalesManager(), Technician(),
Output()} SetAmount(), SetAmount(), GetT(),SetT(),
CalcSalary(), CalcSalary(), CalcSalary(),
Output()} Output()} Output()}
其中:
(1)Person 类的No-人员编号,Name-人员姓名,Duty-人员类别,Earning-工资,next-指向下一个人员的指针;Person 类的CalcSalary(),Output()定义为纯虚函数分别表示要计算人员工资和输出人员信息,由于定义纯虚函数,所以Person是抽象类,具体计算工资,输出人员信息由派生类完成。
(2)各个派生的类,包含本类对象特有的数据,Sales::Amount-销售员销售额,SalesManager::Amount-销售经理的总销售额(系统统计各个销售员销售额得到销售经理的总销售额),Technician::t-技术人员工作小时数。
Company
{Person *Worker,
Clear(),Company(),~Company(),Add(),Delete(),Modify(),
Query(),Set(),Save(),Load()}
其中:
(1)Worker就是人员链表。
(2)Clear()用于清除人员链表所有结点。
(3)Add(),Delete(),Modify(),Query(),Set(),Save(),Load()分别表示系统各个功能模块:增加人员,删除人员,修改人员,查询本月经营信息,基础数据设置,数据存盘,数据装入。
系统流程图
(2) Company::Add()
(3) Company::Delete()
(4) Company::Modify
(5) Company::Query()
(6)Company::Save()
(7) Company::Load()
源程序清单
参见附录
系统测试
(列出各功能具体的输入数据及对应的输出结果,说明其是否符合设计要求)
小结
(设计过程心得体会)
附录:
/*本程序有关的两个数据文件:
base.txt-基础数据文件(必须存在,且按规定格式保存)
person.txt-人员信息文件(可选)
*/
#include iostream.h
#include fstream.h
#include ctype.h
#include string.h
//全局数据,对象
double ManagerSalary; //经理固定月薪
double SalesManager
显示全部