c++面向对象课程设计报告-高校工资管理系统。 .doc

上传人:李主任 文档编号:3257810 上传时间:2019-08-06 格式:DOC 页数:44 大小:424.04KB
返回 下载 相关 举报
c++面向对象课程设计报告-高校工资管理系统。 .doc_第1页
第1页 / 共44页
c++面向对象课程设计报告-高校工资管理系统。 .doc_第2页
第2页 / 共44页
c++面向对象课程设计报告-高校工资管理系统。 .doc_第3页
第3页 / 共44页
c++面向对象课程设计报告-高校工资管理系统。 .doc_第4页
第4页 / 共44页
c++面向对象课程设计报告-高校工资管理系统。 .doc_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《c++面向对象课程设计报告-高校工资管理系统。 .doc》由会员分享,可在线阅读,更多相关《c++面向对象课程设计报告-高校工资管理系统。 .doc(44页珍藏版)》请在三一文库上搜索。

1、C+课程设计报告高校工资管理系统 院 系: 计算机科学技术学院 班 级: 网络10 1班 姓 名: 合 作 者: 指导教师: 2011 年 6 月 24 日I面向对象程序设计课程设计任务书一、题目:高校工资管理系统二、设计要求(1)王瑛璞、汲晨熙和王兰兰(组长)组成设计小组。(2)小组成员分工协作完成,要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。(3)查阅相关资料,自学具体课题中涉及到的新知识。(4)根据实现的功能,划分出合理的对象类,明确对象类间的关系。为每个对象类设计正确的属性和方法,为每个方法设计合理的方法体。(5)编程简练,程序功能齐全,能正确运行。(6)课题完成后

2、提交课程设计报告,格式规范,内容详实。其主要内容包括:1-封皮、2-课程设计任务书,3-指导教师评语与成绩、4-目录、5-需求分析、6-概要设计、7-详细设计(含主要代码)、8-调试分析与测试结果、9-用户使用说明、10-附录或参考资料。报告用A4纸打印,中文字体为宋体,西文字体用Time New Roma,小四号字,行距采用“固定值”18磅,首行缩进2字符。(7)课程设计报告内容的说明:需求分析-分析课题需要实现的功能以及要用到的知识点,分析课题涉及的对象间的关系;概要设计-根据实现的功能,划分出合理的对象类,明确对象类间的关系;为每个对象类设计正确的属性和方法,为每个方法设计合理的方法体;

3、详细设计-具体的类、对象和功能的实现以及主要程序代码;调试分析与测试结果-用多组测试用例调试分析系统的正确性、完备性等各项性能指标,写出测试结果;用户使用说明-编写该系统的使用说明书;附录或参考资料-完整的程序代码以及查阅资料的参考文献。三、课程设计工作量由于是设计小组团结协作完成设计任务,一般每人的程序量在200行有效程序行左右,不得抄袭。四、课程设计工作计划2011年6月13日,指导教师讲课,学生根据题目准备资料;2010年6月13日、17日、18日,设计小组进行总体方案设计和任务分工;每人完成自己承担的程序模块并通过独立编译;2010年6月21日2010年6月23日,将各模块集成为一个完

4、整的系统,并录入足够的数据进行调试运行;同时撰写报告。2010年6月27日,验收;提交课程设计报告。指导教师签章: 教研室主任签章 面向对象程学设计课程设计指导教师评语与成绩指导教师评语:课程设计表现成绩: 课程设计验收成绩: 课程设计报告成绩: 课程设计 总成绩: 指导教师签章 2010年 6 月 24 日目 录1需求分析11.1 性能需求11.2 功能需求12 程序的基本功能及操作手册22.1 程序的基本功能22.2 操作手册23 详细设计33.1 动画功能模块设计33.2 开始界面功能模块设计43.3 管理员界面功能模块设计114 调试分析与测试结果144.1 开始界面的运行144.2

5、欢迎动画的运行165 系统的总体结构图175.1 定义的函数及说明175.2 系统总体框图176 结束语181 需求分析1.1 性能需求随着高等学校的快速发展,高校规模越来越大,教职员工的数量也越来越多,高校工资管理更加的复杂,而工资管理这以琐碎、复杂又十分细致的工作容不得半点差错,工资的计算、发放、核算的工作两很大,如果实行手动操作,每月发放工资需要手工填制大量的表格、做很大规模的运算,这会在无形中浪费了劳动力,耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理

6、,同时计算机具有着手工管理无法比拟的优点。例如:迅速检索,查找方便,可靠性高,储存量大,保密性好,寿命长,低成本,安全等等。这些有点能够极大的提高人事工资管理的效率,也是科学化管理,与世界接轨的重要条件。这就对高校工资管理系统提出了新的要求,用计算机管理系统来管理高校工资已经成为目前的趋势,使用计算机可以告诉,快捷的完成以上工作。在计算机联网后,数据在网间传递,可以实现数据的交互,避免重复劳动,规范数据管理的行为,继而提高了管理的效率和水平。高校工资管理系统便是以计算机为工具,通过对工资管理所需的信息管理,不仅把管理人员从大量繁琐的数据中拯救出来,而且优化了管理体系,提高了管理效率,使管理简易

7、化、高效化、智能化,与此同时也提高了管理的透明度和互动性。在企业部门里,管理人员应该对员工的基本档案信息进行记录存储,这样,在确定好部门里的人员对象后,才能正确的进行进一步操作动作,如对人员进行工资计算、工资统计分析等。管理人员应该在需要的时候能及时的查看员工的基本档案信息,对如员工的调职、离开等要能够即使的给予信息更正。1.2 功能需求程序运行后显示动画图片,按任意键退出欢迎界面。之后选择相应的权限(管理员或普通用户),选择为管理员时必须输入密码方可进入旗下界面,其中包括数据录入、查询、删除、修改及统计等各种功能,选择为普通用户时无需输入密码,但只能进行数据的查询、统计、浏览。另外进行各种操

8、作前都会出现相应的文字提示,方便使用者更好的应用此软件。数据输入后系统自动将其保存到person.dat文件中,如果要删除或修改已输入的个别数据,则只需选择此功能,系统即从文件中查到相应数据加以删除或修改,并再次进行数据的保存,从而完成工资管理的自动化。2 程序的基本功能及操作手册2.1 程序的基本功能 (1) 向文件中录入职工信息数据。(2)查询职工信息,获取岗位、工时、薪资等信息(3)修改一个员工的资料。(4)删除某个员工的信息。(5)按类别浏览职工薪资信息。(6)按工号查询某个薪资信息。(7)增加职工信息。(8)区别管理员身份与普通用户,分别分配不同浏览空间。2.2 操作手册运行程序后,

9、先出现欢迎动画,虽然简短,但是透漏出了我们程序开发人员对用户的衷心祝愿, 它会在屏幕上运动一周,然后自行消失。随之出现一静态画面“歡迎登陸”。接着映入眼帘的是系统的基本界面,核实身份,并赋予使用者应有的身份。如果您是管理员,在介入密码后会被赋予管理员身份进入程序,在程序中,您可以做录入职工数据、修改职工数据、删除职工数据、浏览、统计等操作。如果您不是管理员,那么选择相应的数字后,您会拥有 浏览、查询、统计等权利。3 详细设计3.1 动画功能模块设计此简单的动画为:两个笑脸分别从屏幕的左端和右端移动到中间,设计主要是用循环和清屏来完成的,类似于扫描原理。程序流程图如下: 开 始I=2,j=2i4

10、4&j25分别输出j和40-i个空格后,输出相应图片先输出20个空格后,输出相应图片等待按任意键清 屏清 屏结 束j+,i=i+4主要代码如下:void donghua()system(cls);int j;for(j=2,i=2;j25&i44;j+,i=i+4) coutnnnn; coutsetw(j) setw(40-i) endl;coutsetw(j) setw(40-i) endl;coutsetw(j) (*_*)setw(40-i) (*_*)endl;coutsetw(j) setw(40-i) endl;coutsetw(j) setw(40-i) endl;coutse

11、tw(j) | | | | setw(40-i) | | | | endl;system(cls);coutnnnn;coutsetw(20) endl;coutsetw(20) endl;coutsetw(20) endl;coutsetw(20) 歡 迎 登 陸 endl;coutsetw(20) endl;coutsetw(20) endl;coutsetw(20) endl;coutsetw(20) endl;coutsetw(20) endl;coutsetw(20) endl;system(pause);3.2 开始界面功能模块设计此开始界面主要是让用户选择所需的权限(管理员或普通

12、用户),若选择管理员权限,则必须先输入管理员密码才能进入下一步操作;若选择普通用户权限,则可直接进入旗下的用户界面,此界面只能进行数据的查询、统计、浏览和返回到开始界面四个功能。程序流程图(密码登陆部分)如下:开 始下一步NNYYk+j+pk=passk输入pk=0Passk!=0Pass10=”wwwww”主要代码如下:Void jiem()char j,c;char p10,pass10=wwwww; int i=0,k;College c0; /定义大学对象cout*欢迎使用我们的程序*endl;cout*请输入你要使用的权限. *endl;cout* 1.管理员 *endl;cout*

13、 2.普通用户*endl;cout* 0.退出系统*endl;cout*endl;coutc;if(c=1)coutp; for(k=0;passk!=0;k+) if(pk=passk) i+; if(i=5) system(cls); guanli(); else coutendl; cout密码错误!;coutj;if(j=y|j=Y)system(cls);jiem();else exit(0); else if(c=2) do system(cls); cout*n; cout* 你是普通用户,只能进行下列操作. *nendl; cout*n; cout*1-查询*n; cout*2

14、-统计*n; cout*3-浏览*n; cout*0-返回到开始*n; cout*n; cout*endl; coutc; switch(c) case 1:c0.Find(); system(pause);break; case 2:c0.Stat();system(pause); break; case 3:c0.Print(); system(pause);break; case 0:system(cls);jiem();system(pause);break; default: cout你输入的字符有误!n;cout请确认后重新选择(0-3);goto b; while(c!=0);

15、system(cls);jiem(); else if(c=0)exit(0);elsecout你输入的字符有误!n;cout请确认后重新选择(0-2);goto k;College类中的四个成员函数的实现代码如下:void College:Find() double ID; Person *p1; Person *p2; coutID; p1=PL-next; p2=PL; while(p1) if(p1-num=ID) break; /找到 else p2=p1; /继续查找 p1=p1-next; if(!p1) cout找不到你所查询的人!n请确认你所查询的编号是否出错!n;retur

16、n; else coutn* 职工信息表 *n; coutOutput(); /查找职工结点(返回1-找到,0-未找到.结点指针由p1返回,p2为前看指针) int College:Cfind(int ID,Person *p1,Person *p2) *p1=PL-next; *p2=PL; while(*p1) if(*p1)-num=ID) break; /找到 else *p2=*p1; /继续查找 *p1=(*p1)-next; return *p1?1:0;Void College:Print() coutn* 职工信息表 *n; coutnext; if(!p) coutOutp

17、ut(); p=p-next; Void College:Stat() Person *p1; Person *p2; double Sa=0; int a,b,i=0; double c,d; couta; if(a=1) coutb; p1=PL-next; p2=PL; while(p1) if(p1-Duty=b) i+; /找到 p2=p1; /继续查找 p1=p1-next; else p2=p1; /继续查找 p1=p1-next; coutb类职工的个数是:iendl; else if(a=2) coutc; coutd; p1=PL-next; p2=PL; while(p1

18、) if(p1-Salary=c&p1-SalaryOutput();/找到 p2=p1; /继续查找 p1=p1-next; else p2=p1; /继续查找 p1=p1-next; else if(a=3) Person *p=PL-next; while(p) /遍历链表 Sa=Sa+(p-Salary); p=p-next; cout工资总数是:Sanext; while(p) i=i+1; p=p-next; cout总人数是:iendl; cout统计完成!n; 3.3 管理员界面功能模块设计此界面类似于用户界面,但它拥有管理员特有的功能权限,除了用户的功能外,它还有数据录入、删

19、除职工、增加职工、修改职工功能,以便于管理员随时对数据进行更新,而普通用户则无权对数据进行任何更新操作,这也是此系统的一大亮点。程序流程图如下: 开始下一步输入字符ch标记此处为d清 屏输出相应字符列Delete函数输出字符串,回到d处清屏后,jiem函数Load函数Find函数Modify函数Add函数Stat函数Print函数YN清屏后,执行jiem函数ch!=0主要程序代码如下:void guanli() char ch; College c; /定义大学对象 /显示主菜单,接受选择,并分支调用大学类的相应功能的成员函数 do system(cls); coutn; cout 高校工资管

20、理系统 n; cout1数据录入 n; cout2查 询 n; cout3修改职工 n; cout4增加职工 n; cout5删除职工 n; cout6统 计 n; cout7浏 览 n; cout0返回到开始 n; coutn; coutch; switch (ch) case 1: c.Load();system(pause); break; case 2: c.Find();system(pause); break; case 3: c.Modify();system(pause); break; case 4: c.Add();system(pause); break; case 5:

21、 c.Delete();system(pause); break; case 6: c.Stat(); system(pause);break; case 7: c.Print();system(pause); break; case 0:system(cls);jiem();system(pause);break; default: cout你输入的字符有误!n;cout请确认后重新选择(0-3);goto d; while(ch!=0); system(cls);jiem(); 4 调试分析与测试结果4.1 开始界面的运行预期结果:(1)显示提示的画面,等待输入字符 (2)输入字符1后,提

22、示输入密码,(3)进入管理员界面,出现提示画面,(4)输入字符2后,进入普通用户界面,(5)输入字符0后,退出系统,(6)输入非法字符后,提示重新输入。实际效果:(1)、(3)、(4)、(5)满足,(2)、(6)不满足,(2)中输入正确密码后不能进入管理员界面,(6)中输入非法字符后,直接退出了程序。查错:出错的(2)部分代码如下:coutp; for(k=0;passk!=0;k+) if(pk=passk) i+; if(i=5) /system(cls); guanli(); 修改:将“pk=passk”改为“pk=passk”。修改后运行的实际效果于预期效果一张(图片如下): 查错:出

23、错的(6)部分代码如下:b: cinc; switch(c) case 1:c0.Find(); system(pause);break; case 2:c0.Stat();system(pause); break; case 3:c0.Print(); system(pause);break; case 0:system(cls);jiem();system(pause);break; default: cout你输入的字符有误!n;cout请确认后重新选择(0-3); while(c!=0); system(cls);jiem(); 修改:在cout请确认后重新选择(0-3);后加上got

24、o b;。修改后实际效果与预期效果一致(图片如下):4.2 欢迎动画的运行预期结果:(1)两个笑脸分别从左端和右端向中间移动,(2)然后出现欢迎登陆的图片,并等待按任意键。实际效果:(1)满足,但(2)不等待按任意键直接进入了开始界面。查错:错误的部分代码如下:coutnnnn;coutsetw(20) endl;coutsetw(20) endl;coutsetw(20) endl;coutsetw(20) 歡 迎 登 陸 endl;coutsetw(20) endl;coutsetw(20) endl;coutsetw(20) endl;coutsetw(20) endl;coutsetw

25、(20) endl;coutsetw(20) endl;修改:在最后的前加上system(pause);。修改后实际效果与预期效果一致(图片如下):5 系统的总体结构图5.1 定义的函数及说明此程序由如下函数构成: College(); 构造函数 College(); 析构函数Add();增加职工函数Delete();删除职工函数 Modify(); 修改职工函数 Print(); 输出职工信息函数Save(); 职工信息存盘函数 Load(); 职工信息装入函数 Find(); 查找 Build(); 导引 Stat(); 统计 Main-主函数。5.2 系统总体框图高校工资管理系统修改职工

26、删除职工管理员身份普通用户数据录入增加职工浏览统计查询开场动画6 结束语通过工资管理系统的编程练习思考数据结构的使用,比如对类及其派生类、类的对象、类的指针的应用等,让我们感受到了对类的操作。此外还熟悉了各种函数的应用。对于我们初学者来说,学习编写工资管理系统,对我们掌握了解C+语言的知识有很大的帮助。我们通过编程实践,还能拓展思路,让我们去寻找需要那些函数的调用,怎样提高程序的质量等。通过编程我知道了想要写出好的程序,需要有扎实的基础,这样才会遇到一些基本算法时做的游刃有余。在编程时,我们要有丰富的想象力,不拘泥于固定的思维方式,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上

27、,所以我们要通过多个途径来帮助自己建立较丰富的知识结构。在编程时,我们遇到了很多的困难,这就需要我们多与别人交流。在编程时我们也看到了有良好的编程风格是十分重要的,至少在时间效率上就体现了这一点。现在自己也能编写管理系统了,却没想到的是写管理系统并没想象的那么简单(还有这份文档)。这两周,我们整天为了编程而忙碌,但看到自己的工资管理系统终于完成了,我们还是觉得很开心。当一切都完成以后,除了学会编写管理系统外,我们也学会了许多别的东西。首先,我们学会了合作。合作,必然会产生分歧;学会去解决分歧,留下更多的是友谊。其次,我们学会了分工。分工是为了更好的合作,分工才能提高合作的效率。最后,我们学会了

28、奋斗。我们相信,通过在北华大学的四年学习,我们定能写出更精彩的程序,描绘出更精彩的人生。在这里,我们要感谢指导我们课程设计的张淑英老师,给予我们悉心的指导。老师多次询问我们编写进程,并为我们指点迷津,帮助我们开拓研究思路,精心点拨、热枕鼓励。老师一丝不苟的工作作风,严谨求实的态度以及踏踏实实的精神,不仅授我以文,更教会我做人,给以终生受益无穷之道。我还要感谢我们开发小组的另外2名同学,在设计中给予我很大的帮助。正是由于我们团结协作,才顺利地完成了课程设计任务。在设计中,我确实感到了团队合作的力量。课程设计完成之后,留下的必将是美好的回忆。#include#include #include #i

29、nclude #include#includeusing namespace std;void jiem();void guanli();void donghua() system(cls); int j,i; for(j=2,i=2;j25&i44;j+,i=i+4) coutnnnn; coutsetw(j) setw(40-i) endl; coutsetw(j) setw(40-i) endl; coutsetw(j) (*_*)setw(40-i) (*_*)endl; coutsetw(j) setw(40-i) endl; coutsetw(j) setw(40-i) endl; coutsetw(j) | | | | setw(40-i) | | | | endl;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1