滨州学院面向对象程序设计课程设计题目:小型工资管理系统的设计与实现系院计算机科学技术系专业计算机科学与技术班级姓名学号指导教师职称2013年1月4日滨州学院课程设计(学年论文)任务书(指导教师用表)学生姓名指导教师王玉芬题目小型工资管理系统的设计与实现主要内容设计一小型系统实现对工资的管理。研究方法类的设计与实现、文件、容器等主要任务及目标1.能够是实现信息的输入、保存。2.能完成信息的添加和删除。3.能实现信息的修改和查询4.能是实现文件的存储。主要参考文献[1]郑莉,董渊,何江周.《C++语言程序设计》(第4版)[M].清华大学出版社,2010,7.[2]郑莉,董渊.《C++语言程序设计》(第4版)学生用书[M].清华大学出社,2011,6.[3]刘宇君,张月琴,叶瑶,王庆生.《C++程序设计案例分析》[M].清华大学出版社,2011,11.[4]丛书编委会.《C++程序设计案例分析》[M].电子工业出版社,2010,10进度安排各阶段任务日期选定设计课题,下达设计任务第15周教师讲解第16周学生查询资料,进行设计开发并完成设计报告第16-17周答辩考查第17周指导教师签字:系(院)负责人签字:装订线滨州学院课程设计(学年论文)成绩评定表系(院):计算机科学技术系学生姓名崔艳芳专业班级计算机科学与技术2012跨计本1班题目小型工资管理系统的设计与实现内容提要为了提高人事工资管理效率,减轻劳动强度,提高信息处理速度和准确性,为人事工资管理者提供更方便、科学的服务项目,在分析了人事工资自动管理和人工管理的差异的基础上,介绍了一个利用计算机自动管理的人事工资管理信息系统平台,并对其组成结构和系统功能进行了全面地分析,提出了人事工资管理系统的实现和解决方案,该方案利用计算机支持高效率地完成人事工资管理的日常事务,是适应现代企事业单位制度要求、推动企事业单位人事工资管理走向科学化、规范化的必要条件。本系统以C++程序设计作为开发工具,以企事业单位为对象,开发的一个从某种程度上能满足小型企事业单位的人事信息管理的要求的“工资管理系统”。具有数据管理和事业单位人事事务管理的功能指导教师评语成绩:指导教师(签名):年月日装订线面向对象程序设计——C++语言程序设计成绩评定学号姓名软件成绩报告成绩面向对象程序设计——C++语言程序设计1摘要:在市场经济的大环境下,越来越多的人逐渐认识到用计算机技术进行各类管理,交流的便捷,基中最突出的要算企事业单位的工资管理了,为了提高人事工资管理效率,减轻劳动强度,提高信息处理速度和准确性,为人事工资管理者提供更方便、科学的服务项目,在分析了人事工资自动管理和人工管理的差异的基础上,介绍了一个利用计算机自动管理的人事工资管理信息系统平台,并对其组成结构和系统功能进行了全面地分析,提出了人事工资管理系统的实现和解决方案,该方案利用计算机支持高效率地完成人事工资管理的日常事务,是适应现代企事业单位制度要求、推动企事业单位人事工资管理走向科学化、规范化的必要条件。本系统以C++程序设计作为开发工具,以企事业单位为对象,开发的一个从某种程度上能满足小型企事业单位的人事信息管理的要求的“工资管理系统”。本系统具有数据管理和事业单位人事事务管理功能。关键词:工资管理C++程序设计一、课程设计的目的与要求本课程设计主要培养学生应用面向对象的思想进行程序设计、开发和创新的能力;培养学生调查研究、查阅技术文献资料、手册以及编写技术说明文档的能力;同时培养学生团结协作的能力。从而培养学生理论与实践相结合及解决实际问题的能力。在学习了C++基础知识以及对C++的范型程序设计和流等知识有所了解的情况下,要求学生在VisualC++程序环境下,能够综合应用抽象、封装、继承和多态性等面向对象程序设计的思想进行类的定义和设计,实现一个较为简单的小型系统或应用程序的开发和设计。二、设计正文1.概述1.1课题题目:小型工资管理系统1.2系统的主要目标:本系统需要实现的目标简要概括如下:(1)公司主要有3类人员:教师、领导、教师兼职领导。要求存储这些人的职工号、姓名、基本工资、课时津贴、补贴等信息。(2)工资的计算方法:总工资=基本工资+课时津贴+补贴面向对象程序设计——C++语言程序设计2(3)输入数据要求按以下格式输出:工号名字基本工资课时津贴补贴总工资(5)菜单要求:要有一个菜单,用于选择各项功能,其中①职工信息添加:输入各种数据;②职工信息输出显示:输出职工的课时补贴及工资信息;③职工信息修改;④职工信息删除;⑤职工信息查询;⑥职工工资由高到低排序;⑦退出:推出本系统;1.3系统的开发环境及运行环境:操作系统:WindowsXP开发工具:Visualc++6.02.案例需求分析(1)案例描述小型工资管理系统是为服务于公司内部人事和工资信息的管理而开发,主要用于使用电脑掌握和记录员工档案、快速计算和记录工资发放、全面统计员工信息、课时等事项,要求系统界面美观大方,数据的修改和删除简单方便,数据具有可靠性和稳定性。(2)功能说明(1)科学管理员工信息,优化分类,全面反映员工情况。(2)管理课时信息,保证工作秩序。(3)记录薪资发放信息,保证有效的激励机制。(3)案例分析以提高职工信息管理效率为目的,开发为中小型企业管理的子系统,取代繁琐的手工操作。职工工资管理系统不仅可以提高企业工作效率,还可以保证企业职工信息的管理质量。3.案例设计(1)类的设计面向对象程序设计——C++语言程序设计3基于以上案例分析,画出UML类图,列出设计的类的数据成员和函数成员及其功能。1主函数:main()2stringnam;//雇员姓名intnum;//雇员的工号intn,x;//n为雇员的数目3菜单函数:wenjianluru()//职工信息添加shuchu()//职工信息输出显示xiugai();//职工信息修改del();//职工信息删除wenjianchaxun();//职工信息查询sort();//工资由高到低排序4录入菜单:jiaoshiluru()//教师录入jianzhiluru()//雇员兼职领导录入Leaderluru()//领导录入5显示函数:jiaoshishuchu()//教师输出显leadershuchu()//领导输出jianzhishuchu()//雇员兼职领导输出6查询函数:jiaoshichaxun()leaderxhaxun()//领导查询jianzhichaxun()//教师兼职领导查询7修改函数:jiaoshixiugai()//教师修改janzhi2xiugai()//雇员兼职领导修改8删除函数:jiaoshidel()//雇员删除leaderdel()//领导删除jianzhidel()//雇员兼职领导删除9工资排序函数:jiaoshi_sort()//雇员排序jianzhi_sort()//雇员兼职领导排序包含类:EmployeePersonLeaderJianzhi(2)主程序设计职工类教师类领导类教师兼职领导类面向对象程序设计——C++语言程序设计44.系统流程设计画出系统流程图主界面安全退出系统职工信息输出显示职工信息删除职工信息添加职工信息查询职工工资由高到低职工信息修改面向对象程序设计——C++语言程序设计55系统实现该系统运行的主界面截图其代码如下:#includeiostream#includefstream#includestdlib.h开始Case1输入选项Switch(answer)Case5Case2Case3Case4Defautlt结束数据录入break数据统计break数据打印break数据备份break输入错误break面向对象程序设计——C++语言程序设计6#includestring#includeiomanipusingnamespacestd;inti;classPerson{public:voiddisplay(){cout姓名:;cinname;cout工号:;cinnum;while(num=0){cout请重新输入工号大于0的数:endl;cinnum;}}stringname;//名字intnum;};//工号classTeacher:publicPerson//教师{public:Teacher(){ints=1000;wage=s;butie1=0;}voiddisplay1();intwage;//基本工资面向对象程序设计——C++语言程序设计7inttime;intbutie1;intjintie1;};//课时voidTeacher::display1(){cout请输入;Person::display();cout请输入教师的课时(小时):;cintime;while(time=0){cout请重新输入课时大于0的数:endl;cintime;}voidjiaoshiluru()//教师录入{ofstreamoutfile(教师.txt,ios::app);if(!outfile){cerropenerror!endl;exit(0);}intb;cout请选择你要录入教师的个数:;cinb;for(i=0;ib;i++){t[i].display1();cout是否保存信息(y(Y)/n(N))endl;}voidLeaderluru()//领导录入{面向对象程序设计——C++语言程序设计8ofstreamoutfile(领导.txt,ios::app);}intb;cout请输入你要录入领导的个数:;cinb;for(i=0;ib;i++){x[i].display1();cout是否保存信息(y(Y)/n(N))endl;}}voidjianzhiluru()//教师兼职领导录入{ofstreamoutfile(教师兼职领导.txt,ios::app);if(!outfile){cerropenerror!endl;exit(0);}voidwenjianluru()//文件录入{intc;for(i=0;;i++){show();cinc;if(c==4){cout退出录入成功。endl;system(cls);break;}voidleadershuchu()//领导输出面向对象程序设计——C++语言程序设计9{ifstreaminfile(领导.txt,ios::in);intm;for(i=0;i100;i++){x[i].num=0;infilex[i].numx[i].namex[i].wagex[i].butie;if(x[i].num==0)break;m=x[i].wage+x[i].butie;voidshuchu()//输出显示{cout\t\t工号名字基本工资课时津贴补贴总工资endl;jiaoshishuchu();leadershuchu();jianzhishuchu();}switch(x){case1:{cout\t\t请输入要查找的教师的姓名:;cinnam;for(i=0,n=0;i100;i++){infilet[i].numt[i].namet[i].waget[i].time;if(t[i].num==0)break;if(t[i].name==nam){n++;m=t[i].wage+(t[i].time-24)*30;cout\t\t工号姓名工资endl;cout\t教师:t[i].numt[i].namem面向对象程序设计——C++语言程序设计10endl;}}if(n==0)cout没有你要查询的教师。endl;infile.close();}break;switch(x){case1:{cout\t\t请输入要查找的教师兼职领导的姓名