下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文档从网络中收集,已重新整理排版.word版本可编辑.欢迎下载支持.4word版本可编辑.欢迎下载支持.课程设计报告 基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单 的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。课程名称课题名称面向对象程序设计高校工资管理系统专班学姓业 级 号, 名计算机科学与技术计算机1181班 201113030122 宋思达指导教师2012年 12 月 15日湖南工程学院课程设计任务书课程名称而向对象程序设计课 题高校工资管理系统专业班级计算机1181班学生姓名宋思达学 号 201113030122指导老师 李珍辉谭小兰审 批
2、任务书下达日期2012年12月15日任务完成日期2013年01月05日一、设计内容与设计要求1 .课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完面向对象程序设计 课程后进行的一次全面的综合练习。要求学生达到熟练掌握C+语言的基本知识和技能;2 .课题题目高校工资管理系统3 .设计要求:(1)根据自己对应的课题完成以下主要工作:完成系统需求分析:包括 系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。完 成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模 块图)。完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E -R图);数据库逻
3、辑结构设计;类层次图;界面设计与各功能模块实现。系 统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修 改和调整。使用说明书及编程体会:说明如何使用你编写的程序,详细列出 每一步的操作步骤。关键源程序(带注释)(2)按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存 档。(3)不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。文档从网络中收集,己重新整理排版.word版本可编辑,欢迎下载支持.二、进度安排第17周 星期二8: 0012: 00星期三 8: 0012: 00星期四8: 0012: 00星期五8: 0012: 00星期六 8: 0012: 00
4、第18周星期五8: 0012: 00三、参考书籍1.C+ +程序设计课程设计刘振安编著TP312C5632.C+ Builder和Delphi课程设计与系统开发案例伍俊良 清华大学出版社7-302-06072-X3. Visual C+课程设计案例精编 严华峰 中国水利水电出版社7-5084-2007-1 20044. Visual C+课程设计与系统开发案例 伍俊良 清华大学出版社7-302-05968-3 20025. Visual C+语言课程设计:案例精选与编程指导陈清华朱红 东南大学出版社 7-81089-275-4 20036. VisualC+课程设计案例精编中国水利水电出版社7
5、-5084-1004-1 20027. 数据结构课程设计案例精编:用C/C+描述李建学李光元吴春芳 清华大学 出版社 7-302-14536-9 2007(编程平台不限,vc+, c+ Builder等等。)9word版本可编辑,欢迎下载支持.高校工资管理系统(一)、课程设计题目:高校工资管理系统(二)、目的与要求:1、目的:(1)要求学生达到熟练掌握C+语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2、基本要求:(I)要求利用面向对象的方法以及C+的编程思想来完成系统的设计;(2)要求在设计的过程中,
6、建立清晰的类层次;(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。3、创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。4、写出设计说明书(三)、设计方法和基本原理:1、问题描述(功能要求):现一高校有五类职工:教师,实验员,行政人员,教师兼职实验员,行政人员兼 职教师。为了实现工资发放的自动功能,现要求编写程序来自动完成此功能。同时注 意生成的相关数据结果以文件方式存放在硬盘中。程序应具备从键盘录入,文件的可 继续录入,任意职工的工资查询(可由职工编号和职工姓名来实现),如若有职工由于 工作调动,则可进
7、行相对应的删除动作。相关信息:每一学期将学校职工的本学期任职情况及上学期工作的相关情况输入”算机,则 本学期职工的月工资按程序处理后的结果发放,其中职工的工资计算方法如下:其中工资的基本构成如下:教师:实验员:行政人员:教师兼职实验员:基本工资+课时费;基本工资+实验室补助;基本工资+行政补贴;基本,:资+课时费+实验室补助:行政人员兼职教师:基本工资+行政补贴+课时费:(其中:(1、)课时费:教师每一学期的基本工作量为120,实验员每学期基本工作量为70, 行政人员没有基本工作量,每节课时费为20元;课时费二(上学期工作量-基本 工作量)*20;注意:如果上学期基本工作量没完成,则其(上学期
8、工作量-基本工作量)*20为负 值。(2)基本工资:教师800元,实验员650元,行政人员750元。(3)行政补贴:250元。(4)实验室补助:150元。2、问题的解决方案:文档从网络中收集,己重新整理排版.word版本可编辑.欢迎下载支持.根据系统功能要求,可以将问题解决分为以下步骤:(1)写出需求分析(做什么);(2)分析系统中的各个实体之间的关系及其属性和行为;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述(包括属性和方法);(5)完成类中各个成员函数的定义;(6)用户界面的设计;(7)分析系统功能模块(系统流程图);(8)代码编写,功能调试;(9)完成系统总结报告
9、以及系统使用说明书。目录1.系统需求分析3Z总体设计8工详细设计12生系统调试161结果分析19团总结201 .系统化需求分析随着计算机技术的飞速发展计算机在高校管理中应用的普及利用计算机实现 高校人事管理势在必行。对于高校来说利用计算机支持高校高效率完成人事管理的日 常事务是适应现代高校制度的要求推动高校人事管理走向科学化、规范化的必要条 件 计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性 好、寿命长、成本低等。这些优点能够极大的提高人事管理的效率 也是高校科学化、 正规化的管理与世界接轨的重要条件,学校有对职工具体信息操作,对职工信息的查询, 修改,增加和删除,工
10、资的计算和发放需求.这个系统可以保存员工信息,根据输入的数 据自动实现工资发放功能,也可以查询该职工所有信息,也可以按职工在编号或姓名来 实现职工在修改,增加和删除功能,实现了任意职工的工资查询。职工信息保存在文件 里,实现文件保存功能2 .总体设计文档从网络中收集,己重新整理排版.word版本可编辑,欢迎下载支持.3 .详细设计GUANLI-name: string-sex: string-address: string-id: string-job: string-number: int-classhour: int-newclsshour: int-pay: int"year:
11、 int-month: int-day: int«static»-laoshiji: int«static»-shiyanji: int«static»-xingzhengji: int«static»-shiyanbu: int«static»-xingzhengbu: int«static»-classpay: int+GUANLK)+outname(): string+outsex(): string+outaddress(): string+outid(): stri
12、ng+outjob(): string+outnumber(): int+outclasshour(): int+outnewclasshour(): int+outpay(): int+outyear(): int+outmonth(): int+outday(): int+changejob(): void+pay(): void+display(): void+newpay(): void+shanpay(): void4 .系统调试1 .图:进入主菜单:2 .图:职工信息录入:9word版本可编辑,欢迎下载支持.文档从网络中收集,己重新整理排版.word版本可编辑,欢迎下载支持.3 .
13、图:输入“N”回到主菜单:4 .图:查询职工信息:5 .图:修改职工信息:6 .图:增加职工信息:7 .图:浏览职工信息:8 .图:删除职工信息:9 .返回主菜单,退出程序。10 结果分析这个设计的独到指出就是,操作简单,实现方便,基本实现了员工基本资料的查询和修 改,对工资的操作也很简洁方便。不足之处是挺多的功能都未实现,比如整个系统,职 工资料对外都是全部开放的,任何人都可对系统进行操作,员工的资料还没进行保密和 封锁工作,系统还有很多需要完善的地方,系统的实用性和灵活性都还很缺乏,不完善 之处还需继续努力的修改11 总结这次的程序设计相对于上学期还是有了进步的,这次的课设中,我遇到了很多
14、的问题,有的通过 思考或查看书本解决了,有的还留在脑子里,只有通过孜孜不倦的求索我们才会有进步,不懂得思 考就不能真正的掌握一门知识。这次的实验给以了我警示,它让我明白我所掌握的知识还很欠缺, 对于继承与派生这一章的知识,我以为自己勉强掌握了,这次实验后我发现我掌握得还不够。基类 的保护成员公有继承到派生类,类外是否可以通过对象来访问呢,原先我认为是可以的,经过这次 程序设计,我知道我错了。总之,我觉得做学问不应该马虎,对于所学一定要有深入的理解,这也 是我这次课设得到的启示。课程设计总体感觉就是有点小麻烦,也终于知道到当初李珍辉 老师讲的C+比上学期学的C语言要难要深奥很多也难了狠多,因为C
15、+的知识面和深 度都比C大很多,学起来相对也比较吃力。而这次的课设,把我在学这门课程存在的弊 端全部暴露出来了,原来对于这门课,我学到的仅仅是一些皮毛而已,在做程序的过程 中,发现好多功能我都无法用我脑中的知识去实现它,必须翻开课本依葫芦画瓢才能把 程序写出来,还有遇到的一些要求根本没遇到过,比如用文件保存的方式保存,这就得 用到C+里的文件流来输入输出,并保存到指定的文件里,这些知识点老实虽然没讲, 但是作为一个大学生,并不是老师不讲就不看的,应该自己去看,因为后边的只是点反 而是最重要的,在我们班,有了好几个同学都已经把后边的知识看了儿遍了,所以他们 用起来就得心应手了,而我,也来不及去好
16、好看书了,只能厚着脸皮去问他们,让他们 列个模版给我,然后再由自己去想程序的具体实行部分,这直接导致的结果就是浪费了好多时间,所以我决定以后一定认真听课,坚决不旷课早退,要把这么只是彻彻底底的 学好,学扎实。附:源程序#include <fstream.h>#include <string.h>class Person 人员类(抽象类)(protected:double num;编号char Name20; 姓名int Duty;人员类别标志(1-教师,2-实验员,3-行政人员,4-教师兼实验员,5-行政兼教师)double Salary; 基本工资Person *ne
17、xt;指针域public:Person() 基类构造next=0; 指针域设置为空)virtual -Person() 基类虚析构)virtual void Input()=O;从键盘输入数据virtual void Input(ifstream& ifs)=O;从文件输入数据virtual void Output()=0;向屏幕输出数据virtual void Output(ofstream& ofs)=0: 向文件输出数据virtual double lncoming()=0;计算收入friend class College;;class Teacher:virtual p
18、ublic Person 教师类(protected:int Hours; 教师课时public:为对象设置数据分为两种途径,通过1)构造函数,2)一般成员函数分开可以使得程序中应用更加灵活本程序采用:缺省构造+Input()Teacher() 构造函数,初始化部分数据Duty=l;Salary=800;void Input() 键盘补充输入其它数据cout«Hn 编号:";cin»num;cout«Hn 姓名:";cin»Name;cout«"n教师上学期课时:";cin»Hours;Sala
19、ry=Incoming();)void Input(ifstream& ifs)(ifs»num»Name»Duty»Hours»Salary;)void Output()cout«num«nt,«Name«HtH«Duty«ntn«Hours«ntH«Salary«ntH«endl;)void Output(ofstream& ofs)(ofs«num«ntH«Name«ntH&
20、#171;Duty«HtM«Hours«"tH«Salary«Htn«endl;)double IncomingOif(Hours>120)return SaIary+(Hours-120)*20;elsereturn Salary;);class Assistant:virtual public Person 实验员protected:int Allowance;int Hours;public:Assistant()Duty=2;Salary=650;Allowance=150;)void Input()cout&
21、#171;Hn 编号:"cin»num;cout«Hn 姓名:";cin»Name;cout«"n实验员上学期实验课时:";cin»Hours;Salary=Incoming();)void Input(ifstream& ifs)ifs»num»Name»Duty»Hours»Salary;)void Output()cout«num«ntH«Name«"tH«Duty«Htn
22、«Hours«HtH«Salary«,tH«endl;)void Output(ofstream& ofs)ofs«num«"t,'«Name«,'t"«Duty«,t"«Hours«"t"«Salary«"t"«endl;)double IncomingOif(Salary>70)return SaIary+Allowance+(Hou
23、rs-70)*20;else9word版本可编辑,欢迎下载支持.文档从网络中收集,己重新整理排版.word版本可编辑,欢迎下载支持.return Salary+Allowance;);class Manager:virtual public Person 行政人员(protected:int Allowance;public:Manager()Duty=3;Salary=750;Allowance=250;1void Input()(cout« "编号:“;cin»num;cout«H 姓名:";cin»Name;Salary=Inc
24、oming();)void Input(ifstream& ifs)ifs»num»Name»Duty»Salary;)void Output()cout«num«"t"«Name«"t"«Duty«,t"«"t"«Salary«"t"«endI;)void Output(ofstream& ofs)(ofs«num«ntH
25、1;Name«,tH«Duty«,tH«Salary«nt"«endl;)double IncomingOreturn Salary+Allowance;);class Teacher_Assistant:public Teachenpublic Assistant 教师兼实验员(public:Teacher_Assistant()Duty=4;Teacher: Salary=800;Assistant: :Allowance= 150;)void Input()cout«Hn 编号:";cin»
26、;num;cout«Hn 姓名:";cin»Name;cout«"n 教师上学期课时:";cin»Teacher:Hours;Salary=Incoming();)void Input(ifstream& ifs)ifs»num»Name»Duty»Teacher:Hours»Salary;void Output()(cout«num«HtH«Name«HtH«Duty«ntH«Teacher:Ho
27、urs<<ntH«Salary«endl;)void Output(ofstream& ofs)ofs«num«ntH«Name«Htn«Duty«HtH«Teacher:Hours«HtH«Salary«HtH«endl:)double IncomingOif(Teacher: Hours> 120)return SaIary+(Teacher:Hours-120)*20+Allowance;elsereturn Salary+AIlow
28、ance;);class Manager_Teacher:public Manager,public Teacher 行政人员兼教师(public:Manager_Teacher()Duty=5;Manager: :Salary=750;void Input()cout«Hn 编号:";cin»num;cout«Hn 姓名:";cin»Name;cout«"n行政人员兼职教师上学期课时:";cin»Hours;Salary=Incoming();)void Input(ifstream&
29、 ifs)(ifs»num»Name»Duty»Hours»Salary;)void Output()cout«num«HtH«Name«HtH«Duty«Htn«Hours«HtH«Salary«ntH«endl;)void Output(ofstream& ofs)(ofs«num«ntH«Name«,t,«Duty«HtM«Hours«&quo
30、t;tH«Salary«Htn«encIl;)double IncomingOreturn Manager:Salary+Allowance+Hours*20;);class College(private:Person *PL;void Clear();int College:Cfind(int ID,Person Person *p2);public:College();构造-College。;析构void Add();增加职工void Delete(); /删除职工void ModifyO;/修改职工void Print(); 输出职工信息void Save
31、();/职工信息存盘void Load();职工信息装入void Find();查找void BuildQ;导引void Stat();/统计;College: :College() /构造函数(创建1个头结点的链表)Person *p=new Teacher;PL=p;coutvv"自动装入数据n"Build();)Conege:Conege()析构函数(仅保留1个头结点)(Person *p=PL;while(p) 逐个删除结点,包括头结点(PL=p->next;delete p;p=PL;)PL=O;)void College:Add() 增力口职工char c
32、;do(cout«"n* 增加职工查找尾结点Person *p=PL;while(p->next)p=p->next;int ch;cout<< ”输入职工分类码1-教师,2-实验员,3-行政人员,4-教师兼实验员,5-行政兼教 师:n”; cin»ch;创建新结点,录入数据,连接到链表Teacher *pt;Assistant *pa;Manager *pm;Teacher_Assistant *pta;Manager_Teacher *pmt;switch(ch)(case 1: pt=new Teacher; pt->Input
33、();p->next=pt;break;case 2: pa=new Assistant; pa->Input();p->next=pa;break;case 3: pm=new Manager; pm->Input();p->next=pm;break;case 4: pta=new Teacher_Assistant; pta->Input();p->next=pta;break;case 5: pmt=new Manager_leacher; pnit->Input();p->next=pmt;break;default: retur
34、n;1coutvv"是否进行循环?y/nn"cin»c;while(c=,y'llc=,Y,);Save();)void College:Clear() /清除所有的职工结点(仅保留头结点)Person *p=PL->next;while(p)(PL->next=p->next;delete p;p=PL->next;)/查找void College:Find()double ID;Person *pl;Person *p2;coutvv"输入你要查询的编号:”;cin»ID;pl=PL->next;p2=
35、PL;while(pl)if(p 1 ->num=ID)break; 找到else(p2=pl; 继续查找pl=pl->next;)if(!pl) cout«H找不到你所查询的人!n请确认你所查询的编号是否出 错! !iT;retum;else cout«"n* 职工信息表 *n"coutv<”编号姓名 岗位 课时收入情况(元)n”;pl->Output();)查找职工结点(返回1-找到,0-未找至IJ.结点指针由pl返回,p2为前看指针)int College:Cfind(int ID,Person *pl,Person *p2
36、)*pl=PL->next;*p2=PL;while(*pl)20 word版本可编辑,欢迎下载支持.文档从网络中收集,己重新整理排版.word版本可编辑.欢迎下载支持.p2->next=p 1 ->next; 连接delete pl;coutvv"正确删除!n”;)Save();)void College:Modify() 修改职工(cout«"n* 修改职工int num;Person *pl,*p2;coutvv"编号:"cin»num;if(!Cfind(num,&pl,&p2)coutvv”
37、指定的人员没有找到!n")else(pl->Output(); 输出原来的职工信息(做提示)pl->Input(); /输入新的职工信息(更新)22word版本可编辑.欢迎下载支持.coutvv”修改完成八屋;)Save();)void College:Print()输出职工信息(cout«"n* 职工信息表 *n"COUt<<”编号姓名 岗位 课时收入情况(元)!1";Person *p=PL->next;if(!p)(coutvv"无职工记录!n"return;1while(p) 遍历链表,
38、输出职工信息(p->Output();p=p->next;) void College:Save() 职工信息存盘?23word版本可编辑.欢迎下载支持.文档从网络中收集,己重新整理排版.word版本可编辑,欢迎下载支持.ofstream f("Person.dat",ios:out); 打开文件遍历输出至文件Person *p=PL->next;while(p)p->Output(f);p=p->next;)f.close(); 关闭文件coutvv"职工信息已经保存在Person.dat.n")void College:
39、Build()职工信息(char buf81; 临时空间int Duty; 人员类型Person *p2; 新建结点的指针long t; 读写位置清除现有结点(保留头结点)Clear();打开文件ifstream f("Person.dat",ios:in);建立结点,读数据Person *p=PL; /尾结点指针while(l)读取人员类型t=f.tellg();f»buf»buf»Duty;if(f)(根据人员类型创建新结点switch(Duty)(case 1: p2=new Teacher; break;case 2: p2=new A
40、ssistant; break;case 3: p2=new Manager; break;case 4: p2=new Teacher_Assistant; break;case 5: p2=new Manager_Teacher; break; default: f.close(); return;) p->next=p2;p=p->next;f.seekg(t);p->Input(f);)elsebreak;)关闭文件f.close();)void College:Load()职工信息录入(char ah;int c;cout«"n*职工信息录入do
41、(coutvv”输入要录入的职工个数:n";cin»c;for(int i=l:i<=c;i+)查找尾结点Person *p=PL;while(p->next)p=p->next;int ch;coutv<”输入职工分类码口-教师,2-实验员,3-行政人员,4-教师兼实验员,5-行政兼教师 cin»ch;创建新结点,录入数据,连接到链表Teacher *pt;Assistant *pa;Manager *pm;Teacher_Assistant *pta;Manager_Teacher *pmt;switch(ch)(case 1: pt=
42、new Teacher; pt->Input();p->next=pt;break;case 2: pa=new Assistant; pa->Input();p->next=pa;break;case 3: pm=new Manager; pm->Input();p->next=pm;break;case 4: pta=new Teacher_Assistant; pta->Input();p->next=pta;break;case 5: pmt=new Manager_leacher; pmt->Input();p->next=pmt;break;default: return;)Save();coutv<”是否还要继续录入职工信息?? y/nn"cin»ah; while(ah='Y,llah=,y,);)void College:Stat()(Person *pl;Person *p2;double Sa=0;int a,b,i=0;doubl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年锂电池循环后高镍正极岩盐相检测与定量分析
- 2026年托育实训基地建设与岗位需求 技能培训项目化模式
- 2026年数据资源持有权确权操作指南
- 2026年X波段低空探测雷达系统操作手册
- 关爱地球不止这一小时-节能环保主题班会课件
- 2026年数字孪生在金融领域的应用:风险模拟与业务流程
- 2026中国国际工程咨询(北京)有限公司社会招聘5人备考题库附完整答案详解【易错题】
- 2026贵州贵阳观山湖区铭廷小学语文教师招聘备考题库带答案详解(新)
- 2026年边境巡检无人化:卫星融合网 无人系统方案
- 2026陕西西安市西北工业大学材料学院高温功能材料团队招聘1人备考题库及参考答案详解(突破训练)
- 2026福建泉州市级国资集团公司总部纪检监察类中层副职岗位招聘5人笔试备考题库及答案解析
- 2026新疆交投建设管理有限责任公司面向社会招聘20人考试参考试题及答案解析
- 有机试剂工安全检查知识考核试卷含答案
- 2025广东珠海市中西医结合医院招聘聘用合同制工作人员27人(第二批)笔试历年典型考题及考点剖析附带答案详解试卷2套
- 2026年温州永嘉县国有企业面向社会公开招聘工作人员12人考试参考题库及答案解析
- 2026广东东莞农商银行总行岗位社会招聘考试参考试题及答案解析
- 2026年一季度湖南能源集团社会招聘520人笔试备考题库及答案解析
- 《耳鼻喉科耳部手术诊疗指南及操作规范(2025版)》
- 新媒体运营新人考核制度
- 航空航天飞控系统设计手册
- 瓷砖销售市场营销推广方案
评论
0/150
提交评论