1、目 录 1 前言 1 2 需求分析 1 2.1 任务和要求 . 1 2.2 运行环境 . 1 2.3 开发工具 . 1 3 分析和设计 2 3.1 系统分析及设计思路 2 3.2 主要类图 . 2 3.3 函数流程图 . 3 4 具体代码实现 4 5 课程设计总结 . 10 5.1 程序运行结果或预期运行结果 . 10 5.2 设计结论 12 参考文献 . 13 致 谢 . 14 1 1 前言 某公司内有 5 种不同类型的职工: 技术人员(technician)、销售人员 (salesman)、 文秘(secretary)、 技术经理(tech-manager)、 销售经理(sales-man
2、ager)。 他们的工资计算方式各不相同: 1) 技术人员的工资根据他当月工作的小时数来定,时薪为 35 元; 2) 销售人员的工资则是根据本人当月销售额来确定,工资为销售额的 5%; 3) 文秘有 4000 元的基本工资,奖金视当月工作情况而定; 4) 技术经理和销售经理都有 6000 元的固定工资, 技术经理的工作业绩可分 为 3 个等级,每级可以获得 1000 元奖金, 5) 销售经理除有 6000 元的固定工资外,销售经理的奖金由他所管理的销售 员的销售业绩而定,为总销售额的 0.2%。 为此设计一个工资管理系统管理职工的信息。 2 需求分析 2.1 任务和要求 使用 C+面向对象程序
3、设计一个简易的工资管理系统。 ,系统的主要功能是: 根据不同的职工,计算职工当月工资。确定程序至少应该具备如下功能:.输入 职工, 添加职工,删除职工,结算工资,等基本模块。 1) 输入职工: 用 class person *creat(void) 函数创建链表。 2) 添加职工: 用 class person *insert(class person *head,class person *pe) 函 数添加。 3) 删除职工:用 class person *del(class person *head,double num) 函数删除。 4) 结算工资:用 void selary(clas
4、s person *head) 函数计算。 2.2 运行环境 (1)WINDOWS2000/XP 系统 (2)Visual C+ 6.0 编译环境或 DEV C+ 5.0 编译环境 2.3 开发工具 C+语言 2 3 分析和设计 3.1 系统分析及设计思路 首先公司有五类人,各类之间又有相同的部分例如:姓名、职工号等,所以 定义一个基类 Person,四类人相同部分为基类数据成员。由基类 Person 再派生 出各类:技工类 Technician类、售货员类 Salesman、文秘类 Secretary、技术经理 类 Tech-manager、销售经理类 Sales-manager。 (1)
5、Person类:包含: num,wage,year, name10,post10,sex等数据 成员等。要完成结算工资操作,需要设计 virtual void pay()作为成员函数。 (2) Technician类:继承 Person类,增加 hours 数据。 (3) Salesman类:继承 Person类,增加 sales 数据。 (4) Secretary类:继承 Person类,增加 bonus 数据。 (5) Tech-manager 类:继承 Person类,增加 bonus 数据 (6) Sales-manager 类:继承 Person类,增加 sumsales 数据。 然
6、后分析系统管理需要有几个功能,分别是输入职工,添加职工,删除职工 以及结算工资。我们为这几个功能分别建立对应的函数来实现:class person *creat(void) 、 class person *insert(class person *head,class person *pe) 、class person *del(class person *head,double num) 、void selary(class person *head) 。并 且还有输出函数 print()以及保存信息函数 save() 最后主函数的实现。由于是有选择的菜单,首先想到了 switch 选择语句。 当输入不同值时,进入不同的 case 部分以实现不同的功能。 case1 的功能是实现数据的输入。用 creat()函数创建职工信息,按照提示分 别输入职工的信息:编号、姓名、性别、出生年份,并用 save()函数保存信息。 case2 的功能是实现数据的添加。用 malloc 动态分配内存空间,然后输入要 添加的职工信息。用insert()函数添加进去。用 print()