面向对象程序设计课程设计报告模板
课程设计
20 ~ 20 学年第学期
设计题目职工工资管理系统设计
院(系)计算机科学与信息工程学院
专业
班级学号
学生
设计时间20 年1 月日——2011 年1 月日
指导教师
提交日期20 年月日
应用技术学院课程设计任务书
二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)
(1)分析职工工资管理系统程序结构: 画出程序粗略的流程图和各个模块的详细流程图,每个功能模块用文字说明他们的功能(与对应流程图放在一起);
(2)对你已经实现的功能(修改的、新编写的)做详细的说明, 并附上流程图及程序清单。
(3)自己对该职工工资管理系统的进一步设想;
(4)对于有设想但最终未实现的功能的大致编程思路的阐述;
(5)论述在设计过程中遇到的并且对你具有启发性的问题。
(6)严禁抄袭,发现雷同,双方扣分。
三、课程设计工作进度计划:
周一、二:教师布置任务,讲解本课设模块。画出主程序粗略的流程图和各个模块的详细流程图。设计程序及调试程序。
周三、四:设计程序及调试程序。同时着手写报告。
周五:完成设计,提交报告,接受教师考评。
四、主要参考资料
(1)《面向对象程序设计》,莉,清华大学,
(2)《面向对象程序设计C++语言》,朱战立等编电子科技大学
(3)《面向对象程序设计----Visual C++》,斌等编, 清华大学
(4)《面向对象程序设计----C++语言描述》, Richard Johnsonbaugh(美)等著,蔡宇辉等译,机械工业,2003
目录
1概述: (4)
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)
参考文献: (12)
原代码 (12)
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();将员工的工资数据记录到结构体中,打开文件,将数据输入文件,关闭