- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《面向对象程序设计》
课程设计报告
姓名: 叶小波 姚旺富 李成
班级:
信管 082
信息工程学院信息管理系
二〇一一年一月
题目: 建立企业工资计算及管理系统
一、 题目要求 :
采用面向对象程序设计思想,利用文本文件来存储数据,实现数据的输入,处理,查询(按
姓名,编号,职业,对应员工工资分布情况查询)等功能,并自动计算出工资。
二、 需求分析 :
实现数据的输入及处理、编辑、管理、查询(按姓名,编号,职业,对应员工工资分布情况
查询)
数据输入的 -------根据题意,输入员工的信息,包括职业,姓名,编号及对应的工资处理
数据,系统会进行处理。
查询 ------- 根据题意,按照姓名、编号、职业、对应员工工资分布情况进行查询
三、
设计思路 :
1、 对象设计:抽象类
employee ,对应产生
3 个派生类
technician, salesman, manager, 再把
salesman,manager, salesman 与
manager
作为虚基类派生出一个
salesmanager 类,从而避免
二义性问题。
2、 Technician,salesman,manager,salesmanager 都用将用到 pay()与 display()两个函数,而且都是派
生得到,于是在基类中设置了虚函数 pay()与 display().
3、 函数的设计:设置了 6 个函数,分别为添加员工及工资计算,按姓名查询,按编号查询,按
职业查询,对应员工工资分布情况查询,查看所有员工信息
4、 6 个函数分别设为类的友元函数,可以访问私有成员。
5、 采用文本文件存储数据。
四、 详细设计 :
1. 类定义:
开始
结 束
功能选择
添加成员与 按姓名查询
按编号查询 按职业查询 对应员工工资 输出员工工资
工资计算
分函数不能调用类中的私有成员,用友元函数得以解决。
七、心得体会:
经过一星期的课程实习,重设计到实现,虽然花费了不少时间,但也学到了很多。
主要总结以下几点:
1:运用面向对象程序设计的思想。并将文件读入,读出,多态,派生,虚基类,虚函数,合理整合并运
用在代码中,实现程序。
2.程序代码实现是个耐性 ,细心的过程,写完一段,调试一段,遇到问题,分析问题,解决问题,事半功倍。
3.提高了动手能力。
课程设计虽然技术了, C++是一块很大的领域,还有很多地方和知识点不了解,要我们不断地学习,探索,
思考,提高我们的能力。
八、源代码:
#include
#include
#include
#include
class employee
{
protected:
int no;
char name[20];
float salary;
public:
employee()
{
cout职工编号: ;
cinno;
cout职工姓名 ;
cinname;
salary=0;
}
virtual void pay()=0;
virtual void display()=0;
friend void add();
// 添加员工及工资计算
friend void visitname() ;
// 按姓名查询
friend void visitnum() ;
// 按标号查询
friend void visitprofession();
// 按职业查询
friend void searchpay() ;
friend void outpay();
~employee(){};
// 对应员工工资分布情况查询
};
class technician:public employee
{
private:
float hourlyrate;
int workhours;
public:
technician()
{
hourlyrate=100;
}
void pay()
{
coutname本月工作时数: ;
cinworkhours;
salary=hourlyrate*workhours;
}
void display()
{
cout 兼职技术人员 name(编号为 no) 本
月工资 :salaryendl;
}
friend void add();
// 添加员工及工资计算
friend void visitname() ;
// 按姓名查询
friend void visitnum() ;
// 按标号查询
friend void visitprofession();
// 按职业查询
friend void searchpay() ;
friend void outpay();
~technician(){};
// 对应员
文档评论(0)