1、面向对象程序设计程序设计报告 1 课程设计 20102010 20201111 学年第学年第一一学期学期 设计题目设计题目 职工工资管理系统设计职工工资管理系统设计 院(系)院(系) 计算机科学与信息工程系计算机科学与信息工程系 专专 业业 计算机科学与技术计算机科学与技术 班班 级级 1111111111111111 学号学号 11111111111111111111 学生姓名学生姓名 设计时间设计时间 20112011 年年 1 12 2 月月 2626 日日20122012 年年 1212 月月 3030 日日 指导教师指导教师 提交日期提交日期 2012011 1 年年 1 12 2
2、月月 2626 日日 面向对象程序设计程序设计报告 2 课程设计任务书课程设计任务书 课程名称 面向对象程序设计课程设计 课程代码 设计题目 职工工资管理系统的设计 题目序号 设计时间 2011 年 12 月 26 日 2011 年 12 月 30 日 系(院) 计算机科学与信息工 程系 专业 计算机科学与技术 班级 一、课程设计任务(条件) 、具体技术参数(指标)一、课程设计任务(条件) 、具体技术参数(指标) 本课程设计是面向对象程序设计课程的后继教学环节,学好 C+语言就必须坚持用面向对 象的思维方式分析问题、解决问题,最好的方法是仿照教材编写 C+实际应用程序。 根据教材中人事管理应用
3、程序框架,在此基础上按要求完成以下实际应用程序。 职工工资管理系统课程设计题目: 实现一个简单的工资管理系统。系统的主要功能是计算职工当月工资并存档。公司内有 5 种不同 类型的职工:技术人员、销售人员、文秘、技术经理和销售经理,他们的工资计算方式各不相同。 技术人员的工资根据他当月工作的小时数来定,时薪 35 元;销售人员的工资则是根据本人当月 销售额来确定,工资为销售额的 5%;文秘有 4000 元的基本工资,奖金视为当月工作情况而定;技 术经理和销售经理都有 6000 元的固定工资,技术经理的工作业绩可分为 3 个等级,每级可获得 1000 元奖金,销售经理的奖金由他所管理的销售员的销售
4、业绩而定,总销售额的 2% 职工工资管理系统的设计: 对于整个系统的设计思路是,首先,由员工输入用户信息,包括编号、姓名和职务;然后,在计 算某职工的当月工资时, 系统先从已输入的职工信息文件中获取职工的工作类型, 接着调用不同的处 理程序进行计算;最后将结果存档。 从用户需求中,可以发现 5 种类型的职员都可以分别设计为一个类。首先,他们都属于雇员,因 此可以设计一个基类 employee(雇员) ,然后从中派生出 technician(技术人员)类,salesman(销售 人员)类、secretary(文秘)类。对于技术经理和销售经理来说,他们都属于经理,所以设计时可以 从 employe
5、e 类中派生出一个 manager(经理)类作为 techmanager(技术经理)和 salesman(销售经 理) 类的父类。 而经理类本身并不对应实际的员工类型, 由于技术经理有技术人员和经理的双重特点, 因此 techmanager 类同时继承 technician 类和 manger 类;销售经理有销售人员和经理的双重特点,因 此 salesmanager 类同时继承 salesman 类和 manager 类。 根据用户需要 employee 类应该拥有的属性有:编号、姓名、职务、月份和工资。Employee 类的 服务可以包括 info() 、 search() 、countSa
6、lary() 、recordInfo()和 recordSalary() 。其中,info() 函数用于接收用户输入的职工信息;search()函数用来根据职工名查找职工信息;countSalary()函数为 工资计算函数,但在基类中为空,原因是各类人员的工资计算方法不同,无法在基类中统一定义,必 须在派生类中分别定义。recordInfo()函数和 recordSalary()函数分别是职工信息和职工工资的记录函 数,分别将信息存入文件 info.txt 和 salary.txt。 具体的基类和派生类的定义如下图: 面向对象程序设计程序设计报告 3 二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)