课程设计报告.docx
- 文档编号:7108612
- 上传时间:2023-01-18
- 格式:DOCX
- 页数:11
- 大小:67.96KB
课程设计报告.docx
《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
课程设计报告课程设计报告课程设计报告(说明书)课程:
面向对象语言与C+程序设计题目:
高校工资管理系统班级:
数字媒体100学号:
0305100103学生姓名:
丁云翔日期:
2011.12.302012.1.31.课程设计目的
(1)熟练掌握C+语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;(3)利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2.设计题目(问题)描述和要求2.1题目:
公高校工资管理系统2.1.1问题描述:
现一高校有五类职工:
教师,实验员,行政人员,教师兼职实验员,行政人员兼职教师。
为了实现工资发放的自动功能,现要求编写程序来自动完成此功能。
同时注意生成的相关数据结果以文件方式存放在硬盘中。
程序应具备从键盘录入,文件的可继续录入,任意职工的工资查询(可由职工编号和职工姓名来实现),如若有职工由于工作调动,则可进行相对应的删除动作。
2.1.2要求:
每一学期将学校职工的本学期任职情况及上学期工作的相关情况输入计算机,则本学期职工的月工资按程序处理后的结果发放,其中职工的工资计算方法如下:
)其中工资的基本构成如下:
教师:
基本工资+课时费;实验员:
基本工资+实验室补助;行政人员:
基本工资+行政补贴;教师兼职实验员:
基本工资+课时费+实验室补助;行政人员兼职教师:
基本工资+行政补贴+课时费;其中:
1.课时费:
教师每一学期的基本工作量为120,实验员每学期基本工作量为70,行政人员没有基本工作量,每节课时费为20元;课时费=(上学期工作量-基本工作量)*20;注意:
如果上学期基本工作量没完成,则其(上学期工作量-基本工作量)*20为负值。
2.基本工资:
教师800元,实验员650元,行政人员750元。
3.行政补贴:
250元。
4.实验室补助:
150元。
3系统分析与设计3.1系统功能模块根据问题描述和要求,系统要求能够按姓名或者编号显示、查找、增加、删除和保存各类人员的信息。
确定程序至少应该具备如下功能:
“查询人员”、“增加人员”、“删除人员”、“数据存盘”基本模块。
做为一个完整系统,除了具有增加人员,删除人员信息模块,还应该具有修改人员相关信息的功能,所以本系统设计时考虑增加“修改人员”模块。
考虑到根据编号查找人员信息功能在“删除人员”、“修改人员”等模块都使用,所以可以考虑设置为一个模块。
考虑到系统要求人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
这样就要求人员编号在增加人员时自动生成(增加1)且不重复。
根据这个要求,可以考虑设置一个全局量:
“当前最大编号”,每增加一个人员,当前最大编号自动增1,然后新增加人员使用这个编号。
为了保证系统能记个编号,可以使用一个数据文件保存当前这个编号。
系统每次开始运行前从文件读入这个编号,随着人员增加,编号自动增加,系统每次运行结束时将这个编号写入文件。
本系统将初值(没有一个用户时)设置为0。
考虑到人员的许多固定信息如:
教师,实验员,领导有基本工资,教师课时费用,实验员的实验室补助,领导的行政补助等都是一些不需要每个人员都要输入的信息,所以可以将这些信息都保存在一个数据文件中,本系统为了方便起见,将这些信息与“最大编号”全部保存在一个文件中,并使用“基础数据设置”模块进行设置和管理。
3.2系统总体框架根据高校职工信息情况可设计一个基类,其中有两个公有数据成员和三个公有成员函数,由该类派生出教师,实验员,领导人员,三个类在二次派生出教师兼职实验员,教师兼领导两个类。
据此利用对象/类,继承,多态性,文件操作等知识可实现高校工资管理系统的程序设计。
该程序可实现如下功能:
1、职工信息的输入2、职工工资的查询3、职工工资信息的删除与修改4、输出显示根据高校五类职工:
教师,实验员,领导人员,教师兼职实验员,教师兼职领导的工资组成情况,可以观察到,五类职员的共同信息组成为工资,教师兼实验员和教师兼职领导的工资组成由各自的补助/贴加上教师的工资形式。
据此利用对象/类,继承,多态性等知识可实现高校工资管理系统的程序设计。
可设计一个基类Person,其中有两个公有数据成员和三个公有成员函数,由该类派生出教师类Teacher,实验员类Cc,领导类Leader,三个类在二次派生出教师兼职实验员类Zz(Teacher&Cc),教师兼职领导类Jianzhi(Teacher&Leader)。
步骤:
1、分清高校职工工资层次,将各类人员根据工资情况定义为不同的类,并分清各个类之间的继承关系。
2、分别对各类进行分析,设置各类自己的功能函数,工资的计算函数,定义构造函数和析构函数。
3、定义主函数,根据系统要完成的功能,寻找相应的功能函数,如要完成数据的存储,则利用文件的相关操作进行执行。
4、对程序进行调试,寻找错误,并连接进行程序的操作,验证程序的正确性,和程序的目的性。
5、最后对程序进行修改,完善,已达到满意的目的.3.3源程序清单(参见附录1)4系统调试出现的问题(调试问题出现的主要问题:
编译语法错误及修改,重点是运行逻辑问题修改和调整)1.在jiaoshishuru函数里总工资m开始没有判断是否小于0,使运行结果为负。
2.在调用Teacher类中函数时出现了语法错误,使程序无法正常运行,调试后改正。
3.在jiaoshiluru函数中outfile缺失时开始的录入数据无法保存,查资料改正。
5系统运行报告根据系统功能对系统提供的所有功能进行测试,运行结果参见附录2。
6总结1、本次课程设计我负责Teacher类和相关函数jiaoshiluru,jiaoshishuchu,jiaoshichaxun的编写。
2、通过本次编写我认识到我在还是的引用和概念上还有所不足。
3、认识到在团队中要配合大家的进度和完成的度,单人的超前或之后会影响整体节奏。
参考书目1、钱能主编,C+程序设计教程,清华大学出版社,2000.112、戴锋编著,VisualC+程序设计基础,清华大学出版社,2001.4附录1#include#include#include#include#includeusingnamespacestd;inti;classPersonpublic:
voiddisplay()coutname;coutnum;while(num=0)cout请重新输入工号大于的数:
num;stringname;/名字intnum;/工号classTeacher:
publicPerson/教师public:
Teacher()ints=800;wage=s;butie1=0;voiddisplay1();intwage;/基本工资inttime;intbutie1;intjintie1;/课时voidTeacher:
display1()cout请输入;Person:
display();couttime;while(time=0)cout请重新输入课时大于的数:
time;voidjiaoshiluru()/教师录入ofstreamoutfile(教师.txt,ios:
app);if(!
outfile)cerropenerror!
endl;exit(0);intb;coutb;for(i=0;ib;i+)ti.display1();cout是否保存信息(y(Y)/n(N)c;if(c=Y|c=y)outfileti.numti.nameti.wageti.timeendl;outfile.close();voidjiaoshishuchu()/教师输出显示ifstreaminfile(教师.txt,ios:
in);intm;for(i=0;iti.numti.nameti.wageti.time;if(ti.num=0)break;intjintie1;jintie1=(ti.time-120)*20;m=ti.wage+jintie1;if(m0)m=0;coutt教师:
setw(8)ti.numsetfill()setw(10)ti.namesetfill()setw(10)ti.wagesetfill()setw(14)jintie1setfill()setw(12)ti.butie1setfill()setw(10)mendl;infile.close();voidjiaoshichaxun()ifstreaminfile(教师.txt,ios:
in);stringnam;intnum;intm,n,x;couttt1.按教师的姓名查找ntt2.按教师的工号查找;coutx;switch(x)case1:
coutnam;for(i=0,n=0;iti.numti.nameti.wageti.time;if(ti.num=0)break;if(ti.name=nam)n+;m=ti.wage+(ti.time-24)*30;couttt工号姓名工资endl;coutt教师:
ti.numti.namemendl;if(n=0)cout没有你要查询的教师。
endl;infile.close();break;case2:
coutnum;for(i=0,n=0;iti.numti.nameti.wageti.time;if(ti.num=0)break;if(ti.num=num)n+;m=ti.wage+(ti.time-24)*30;couttt工号姓名工资endl;coutt教师:
ti.numti.namemendl;if(n=0)cout没有你要查询的教师。
endl;infile.close();break;default:
cout操作选择错误!
endl;break;voidshow7()couttttt高校工资管理系统endl;couttttt1:
职工信息添加endl;couttttt2:
职工信息输出显示endl;couttttt3:
职工信息查询endl;couttttt4:
退出endl;coutc;if(c=7)cout退出成功。
endl;break;elseswitch(c)case1:
wenjianluru();break;case2:
shuchu();break;case3:
/xiugai();break;case4:
del();break;case5:
wenjianchaxun();break;case6:
/sort();break;default:
cout上一次输入错误。
endl;break;return0;附录2(运行结果)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告