- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 27
面向对象程序设计
——课程设计
题 目: 高校工资管理系统
指导教师: 石 玮
专 业: 计算机科学与技术
姓 名: 杨 玲
学 号: 2008115010147
高校工资管理系统的设计与实现
湖北师范学院 计算机科学与技术学院 0801班 杨玲 2008115010147
通过学习C++这门课程,结合学习过的数据结构等知识,本文完成了高校工资管理系统的设计与实现,希望以此加强对面向对象理论知识和C++编程知识的巩固和学习。
一 系统需求
设计和实现高校工资管理系统:高校中人员有:行政人员、教师、实验室人员、后勤人员、外聘人员。通过本系统要求实现以下功能:
1)添加职员的基本信息;
2)校内人员调离学校删除信息;
3)根据工作证号查询校内人员的工资,根据姓名查询外聘人员的工资;
4)根据工资计算准则计算总工资;
5)分类输出所有人员的信息。
二 分析与设计
这个课程设计主要是封装和继承的使用。
对于本系统中的七种不同种类的对象:行政人员、教师、实验室人员、后勤人员、外聘人员、行政人员兼教师、教师兼实验室人员,抽取各类职员的共性特征,分别对应七个类:行政人员类、教师类、实验室人员类、后勤人员类、外聘人员类、行政人员兼教师类、教师兼实验室人员类。然后在七个类的基础上,抽取七类职员的共性特征形成一个基类:人员类。
1.人员类的共性特征和共性操作
(1)人员类的共性特征
人员类的共性特征有:
工作证号、姓名、性别、岗位、基本工资、总工资。
人员类的共性操作有:
●数据输入:输入职员各属性信息,工作证号、姓名、性别;
●数据输出:输出职员的各个信息,工作证号、姓名、性别、岗位、基本工资、总工资
●计算总工资:总工资的计算函数为float Total_Salary()。
为了方便信息的读取,给每类职员设置了一个区别与其他职员的各类编号。
其他各类职员继承人员类的共性特征,并派生出自己特有的属性。
(2)行政人员的特征
行政人员的特征有:工作证号、姓名、性别、岗位、津贴、奖金、总工资。
(3)教师类的特征
教师的特征有:工作证号、姓名、性别、岗位、教师上课课时、奖金、总工资。
(4)实验室人员类的特征
实验室人员的特征有:工作证号、姓名、性别、岗位、实验室人员上课课时、奖金、总工资。
(5)后勤人员类的特征
后勤人员类的特征有:工作证号、姓名、性别、岗位、奖金、总工资。
(6)外聘人员类的特征
外聘人员类的特征有:工作证号、姓名、性别、岗位、奖金、总工资。
(7)行政人员兼教师类的特征有
行政人员兼教师类的特征有:工作证号、姓名、性别、岗位、津贴、教师上课课时、奖金、总工资。
(8)教师兼实验室人员类的特征有
教师兼实验室人员类的特征有:工作证号、姓名、性别、岗位、奖金、教师上课课时、教师兼实验室人员上课课时、总工资。
2.系统类的操作
系统的管理功能自成一个类:系统类。该类的主要操作有:职员的增加、职员的删除、职员的修改、显示职员信息、职员信息查询等功能。
下图是分析得到的对象模型图。
系统
职员信息的增加
职员信息的删除
职员信息的修改
职员信息的显示
职员信息的查询
职工信息的保存
人员类
工作证号
姓名
性别
岗位
基本工资
总工资
数据输入
数据输出
计算总工资
外聘人员
奖金
数据输入
数据输出
计算总工资
后勤人员
奖金
数据输入
数据输出
计算总工资
实验室人员
上课课时
奖金
数据输入
数据输出
计算总工资
行政人员
补助
奖金
数据输入
数据输出
计算总工资
教师
上课课时
奖金
数据输入
数据输出
计算总工资
行政人员兼教师
数据输入
数据输出
计算总工资
教师兼实验室人员
数据输入
数据输出
计算总工资
图示 高校工资管理系统的对象模型图
3.系统类的设计
各个职员类涉及的操作都比较简单,具体的实现代码在本节后给出。下面着重说明系统类的College的操作设计:
(1)系统维护着一个存放职员信息的文件和六个对象数组。当系统启动成功后,自动将职员信息从文件中读入内存中。这个功能由系统类College的构造函数自动调用void save();
void College::Save()
{
ofstream f(Persons.dat,ios::out);//打开文件
Persons *p=PL-next;
while(p)
{
p-Output(f);
p=p-next;
}
f.close(); //关闭文件
cout\t\t\t 信息存储成功! endl;
cout\
文档评论(0)