《面向对象程序设计》课程设计报告模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
20 ~ 20 学年第学期
设计题目职工工资管理系统设计
院(系)计算机科学与信息工程学院
专业
班级学号
学生姓名
设计时间20 年 1 月日——2011 年 1 月日
指导教师
提交日期 20 年月日
上海应用技术学院课程设计任务书
目录
1概述: .................................................................................. 错误!未定义书签。
1.1基本功能 (5)
1.2拓展功能: (6)
2课题分析 (7)
2.1类的设计 (7)
2.2类的实现 (8)
3详细设计说明 (9)
3.1程序主界面 (9)
3.2方案 (9)
3.3程序描述(输入INPUT) (9)
3.4 运行结果............................................................11 4课程设计总结 (12)
5软件使用说明 (13)
6附录(参考文献,原代码:) (13)
参考文献:................................................ 错误!未定义书签。原代码 ................................................... 错误!未定义书签。
1概述:
课程设计目的
本课程设计是《面向对象程序设计》课程的后继教学环节,学好C++语言就必须坚持用面向对象的思维方式分析问题、解决问题,最好的方法是仿照教材编写C++实际应用程序。
根据教材中人事管理应用程序框架,在此基础上按要求完成以下实际应用程序。
1.1基本功能
1.1.1输入员工信息
输入员工信息包括以下几个信息点
员工姓名
员工编号(4位数)
员工职务类型(1.技术经理2. 销售经理3. 技术人员4. 销售人员5. 文秘.)
输入后将自动保存至info.txt文件中。
在每次输入的时候均判断输入的合法性。
1.1.2计算员工工资
让用户输入要计算的员工姓名,然后根据不同的计算方式进行计算,具体计算方法为
1. 技术经理有6000元的固定工资,工作业绩可分为3个等级,每级可获得1000元奖金,
2. 销售经理有6000元的固定工资,奖金由他所管理的销售员的销售业绩而定,总销售额的2%
3.技术人员的工资根据他当月工作的小时数来定,时薪35元;
4. 销售人员的工资则是根据本人当月销售额来确定,工资为销售额的5%;
5. 文秘有4000元的基本工资,奖金视为当月工作情况而定;
提示是否需要存档
如果需要存档,则提示记录的月份,需要用户输入
在每次输入的时候均判断输入的合法性。
1.2 拓展功能:
1.2.1查询(已经完成)
1.2.2显示全部数据(已经完成)
1.2.3员工数据删除(未完成)
2课题分析
2.1类的设计
我的类的设计完全按照指导书上的设计图标所示,
设定一个虚基类employee,对于类中所有数据全部定义为公有,为后面的继承提供方便接下来technician、manager、salesman和secretary全部共有继承employee
最后根据技术经理和销售经理的特点,技术经理techmanager继承technician和manager
销售经理继承manager和salesman
这样做的目地和特点是结构清晰,目地明确,方法简便。
2.2类的实现
technician、manager、salesman和secretary以及techmanager和salesmanager构造函数全部传入自己的参数,用于计算工资,计算工资函数全部依照自己的计算特点来进行计算,其中techmanager和salesmanager又有各自的特点进行了继承。
在基类的employee中先定义了数据类型,全部为公有,这样方便下面的继承来访问到,对于里面的函数
void info();用于输入信息
bool search();用于查找
bool disply();用于全部显示
virtual void countsalary()=0;虚函数,用于计算工资,但是在这里什么也不做
int recordinfo();记录输入的信息
int recordsalary();记录员工的工资
具体做法
定义struct infostruct和struct salarystruct,用于存放不同要求的信息
void info();提示用户输入姓名,然后存入临时的字符串数组,拷贝到NAME中,再提示输入编号,复制到number中。
bool search();打开文件,读取信息,查找和name相匹配的,关闭文件。
bool disply(),打开文件,进行循环,知道文件结束,循环体中读一条信息显示一条
int recordinfo();将员工的基本数据记录到结构体中,打开文件,将数据输入文件,关闭文件
int recordsalary();将员工的工资数据记录到结构体中,打开文件,将数据输入文件,关闭文件
3详细设计说明
3.1程序主界面
3.1.1程序系统的结构
在类的实现中将题目中所包括的用法全部都写出,在主函数中,直接用IF语句来进行完成到,在每个IF语句中,对对象EM来访问类中的函数,方便而又快捷。
3.2方案
由菜单引导用户进行所需的功能,菜单如示意图所示要一目了然,
该程序不仅可以给用户提供输入员工信息的用处,而且具有查找,全部显示,以及保存和调用等功能,虽然在有些地方还有不足之处,有待开发,但是还是非常实用和方便。
按照题目提出的要求,先进行类的定义,随后对每个类进行函数的编写,完成类的实现,在主函数中,进行各个不同的操作,都是对pem数组进行调用。*pem[6]={&ma,&tm,&sm,&te,&sa,&se}