高校工资管理系统程序设计.docx
《高校工资管理系统程序设计.docx》由会员分享,可在线阅读,更多相关《高校工资管理系统程序设计.docx(31页珍藏版)》请在冰豆网上搜索。
高校工资管理系统程序设计
面向对象设计方法C++
课程设计
高校工资管理系统
凌鑫鑫、李文静、江慧慧、李奎
17、15、11、13
11级信息与计算科学本
(1)班
李红梅
信息工程学院信科系
2013年5月25日
面向对象设计方法C++课程设计任务分配
院(系):
信息工程学院教研室:
软件教研室
课程设计题目
高校工资管理系统
课程设计目的
1、这次小组一起完成的程序设计课让我们全面系统的学习到了C++面向对象程序设计的基本概念、基本语法和编程方法。
2、正确理解掌握C++面向对象程序设计的基本特性:
类、对象、继承与派生、多态、模板、流类库等。
3、面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
4、要求我们达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。
小组成员及任务分配
姓名
学号
承担任务
是否组长
凌鑫鑫
1142155117
信息查询
是
李文静
1142155115
信息录入
否
江慧慧
1142155111
类的定义
否
李奎
1142155113
信息删除
否
一.需求分析
由于现在流行多劳多得式薪金发放方式,各高校工资的管理也变得越来越来复杂,为了对工资进行系统化的管理,并实现工资的自动发放功能,特设计此系统。
它可以对职工的基本信息进行输入和存取,其次可以选择职工的编号和姓名查询职工的工资的所有基本信息,如若有职工由于工作调动,则可进行相对应的删除动作。
生成的相关数据以文件的形式存放在硬盘上,并且可以继续录入,以达到建议操作的目的。
题目:
高校工资管理系统
问题的描述(功能要求):
现在高校有五类职工:
教师,实验员,行政人员,教师兼职实验员,行政人员兼职教师。
为了实现工资发放的自动功能,现要求编写程序来自动完成此功能。
同时注意生成的相关数据结果以文件方式存放在硬盘中。
程序应具备从键盘录入,文件的可继续录入,任意职工的工资查询(可由职工编号和职工姓名来实现),如若有职工由于工作调动,则可进行相对应的删除动作。
相关信息:
每一学期将学校职工的本学期任职情况及上学期工作的相关情况输入计算机,则本学期职工的月工资按程序处理后的结果发放,其中职工的工资计算方法如下:
其中工资的基本构成如下:
教师:
基本工资+课时费;
实验员:
基本工资+实验室补助;
行政人员:
基本工资+行政补贴;
教师兼职实验员:
基本工资+课时费+实验室补助;
行政人员兼职教师:
基本工资+行政补贴+课时费;
其中:
(1)课时费:
教师每一学期的基本工作量为120,教师兼职实验员每学期基本工作量为70,行政人员没有基本工作量,每节课时费为20元;课时费=(上学期工作量-基本工作量)*20;
注意:
如果上学期基本工作量没完成,则其(上学期工作量-基本工作量)*20为负值。
(2)基本工资:
教师800元,实验员650元,行政人员750元。
(3)行政补贴:
250元。
(4)实验室补助:
150元。
二.总体设计
经过小组成员讨论,我们分析出若想管理好高校工资的管理系统,需要划分成以下几种模块!
.
图2.1高校工资管理系统模块图
经过对以上题目的分析对于我们要设计的程序,包含以下几个类,以下是类的层次图:
图2.2系统函数分布图
三.相关功能模块实现
1.系统进入
此部分功能主要是提供进入系统的一个接口,系统以菜单形式打开,输入选项执行相关动作,在输入选项的同时系统还对你输入的选项进行检验,若不合理,系统就会自动提示输入错误,并重新输入;若合理,则执行相关动作。
2.信息录入
此部分的功能主要是对职工的信息进行录入并保存,包括其编号和姓名及教师课时量。
图3.1信息录入流程图
3.信息查询
此部分的功能主的编号或者是姓名查询工资,若之前没有录入此人信息,则输出“没有你要查询的对象”。
图3.2信息查询流程图
4.信息删除
此部分的功能主要是有职工由于工作调动,可进行相对应的删除动作。
若找到删除对象并将其删除,则输出删除成功!
图3.3信息删除流程图
5.退出系统
此部分功能就是在执行完所有动作后推出此系统。
四.系统调试
1:
主菜单
图4.1主菜单
2:
录入操作
图4.2录入操作图
3:
查询操作
图4.3查询操作图
4:
删除操作
图4.4删除操作图
5:
退出系统
图4.5退出系统
五.总结与体会
通过这次对《高校工资管理系统》的设计,我体会到面向对象程序设计的特点,多态性,封装性,继承性,并掌握了一定的编程技巧,拓展了思维,提升了自己解决实际问题的能力。
虽然对文件和多态的理解还很肤浅,但是我学到了很多平时学不到的东西。
通过这次课程设计,深深体会到我对很多的专业知识还不了解,同时也把我在学这门课程的所存在的弊端暴露出来了,这就促使我要更多的阅读课外书籍,学到更多的专业知识,使自己得到不断的提高。
最后,我要衷心感谢老师和同学在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的课程设计。
六.源代码
#include
#include
#include
#include
inti;
classEmployee//基类:
雇员类
{
public:
charname[20];
intnum;
voiddisplay()
{
cout<<"姓名:
";cin>>name;
cout<<"编号:
";cin>>num;
}
};
classTeacher:
publicEmployee//教师类
{
public:
intscore;
inttime;
Teacher(ints=800)
{score=s;}
voiddisplay1()
{
cout<<"请输入教师的";
Employee:
:
display();//类外部进行调用函数
cout<<"请输入教师的工作量(课时):
";
cin>>time;
}
};
classShiyanyuan:
publicEmployee//实验员类
{
public:
intscore;
intbuzu;
Shiyanyuan(ints=650,intb=150)
{score=s;buzu=b;}
voiddisplay1()
{
cout<<"请输入实验员的";
Employee:
:
display();
}
};
classManager:
publicEmployee//行政人员类
{
public:
intscore;
intbutie;
Manager(ints=750,intb=250)
{score=s;butie=b;}
voiddisplay1()
{
cout<<"请输入行政人员的";
Employee:
:
display();
}
};
classJianzhi1:
publicTeacher,publicShiyanyuan//兼职1教师兼职实验员类
{
public:
Jianzhi1(ints=800,intb=150):
Teacher(s=800),Shiyanyuan(b=150){}//初始化成员列表
voiddisplay1()
{
cout<<"请输入教师兼职实验员的";
Teacher:
:
display();
cout<<"请输入教师兼职实验员的工作量(课时):
";
cin>>time;
}
};
classJianzhi2:
publicManager,publicTeacher//兼职2行政人员兼职教师类
{
public:
intbutie;
Jianzhi2(ints=750,intb=250):
Manager(s=750)
{butie=b;}
voiddisplay1()
{
cout<<"请输入行政人员兼职教师的";
Teacher:
:
display();
cout<<"请输入行政人员兼职教师的工作量(课时):
";
cin>>time;
}
};
Teachert[100];
Shiyanyuans[100];
Managerm[100];
Jianzhi1j[100];
Jianzhi2j2[100];
voidshow()//录入菜单
{cout<<"请输入你要录入的对象:
"<cout<<"1:
教师"<cout<<"2:
实验员"<cout<<"3:
行政人员"<cout<<"4:
教师兼职实验员"<cout<<"5:
行政人员兼职教师"<cout<<"6:
退出录入"<cout<<"请选择:
";}
voidjiaoshiluru()//教师录入
{
ofstreamoutfile("d:
\\教师.txt",ios:
:
app);//对打开的文件进行数据追加,并保存
if(outfile.fail())
{
cout<<"openerror!
"<exit
(1);
}
intb;
cout<<"请选择你要录入教师的个数:
";
cin>>b;
for(i=0;i
{
t[i].display1();
outfile<}
outfile.close();
}
voidshiyanyuanluru()//实验员录入
{
ofstreamoutfile("d:
\\实验员.txt",ios:
:
app);
if(outfile.fail())
{
cout<<"openerror!
"<exit
(1);
}intb;
cout<<"请输入你要录入实验员的个数:
";
cin>>b;
for(i=0;i
{
s[i].display1();
outfile<
}
}
voidManagerluru()//行政人员录入
{
ofstreamoutfile("d:
\\行政人员.txt",ios:
:
app);
if(outfile.fail())
{
cout<<"openerror!
"<exit
(1);
}intb;
cout<<"请输入你要录入行政人员的个数:
";cin>>b;
for(i=0;i
{
m[i].display1();
outfile<