您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 51CTO下载-c++程序设计_教工工资管理系统
封面徐州师范大学计算机科学与技术学院面向对象课程设计题目:学校教师工资管理系统专业班级:09z网络姓名:王学勇学号:078325001面向对象课程设计II目录序言..............................................................................................................III摘要................................................................................................................IV设计总结.............................................................................................................11参考文献.............................................................................................................11附录:源代码(带注释).................................................................................12面向对象课程设计III序言借助现代信息技术和管理理论,建立学校管理信息系统势在必行。对学校而言,全面开发和应用计算机管理信息系统就是有必要的。在学校管理中,教师是学校的宝贵资源,也是学校的“生命线”,因此人事管理是学校的计算机管理信息系统重要组成部分。而工资管理又是人力资源管理的重中之重。实行电子化的工资管理,可以让人力资源管理人员从繁重琐碎的案头工作解脱出来,去完成更重要的工作。在本次课程设计当中,我的课题就是设计“学校教师工资管理系统”的仿真软件。通过设计任务书中的要求以及介绍,大致确定了主要的目的是:学习和掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。为了更好的完成此次课程设计,我首先了解了学校教师的管理结构,并查询了大量书籍,制订了合理的方案,然后设计出大体的框架,接下来将各个部分慢慢的扩充起来,使其充盈丰实,然后完成了大致的雏形,并通过不断地测试和调试,完成了最终的成品。最后,经过自己的一番努力以及指导老师的悉心指导,终于完成了此方针软件的设计,通过这次课程设计,我基本了解并且学习了如何分析研究数据对象的特性、数据的组织方法、如何选取合适的数据逻辑结构和存储结构。这对以后的学习都有着很大的帮助。面向对象课程设计IV摘要本系统基本上能够满足学校教师工资管理的需求。工资管理系统中使用了各种表格,保存相关的工资信息,方便查询,浏览,修改等操作。本系统结合实际的人事、财务制度,经过实际的需求分析,采用功能强大的VC++作为开发工具开发出来的学校教师工资管理系统。本文首先分析了学校教师工资管理的应用现状,阐述了本工资管理系统的开发目的。通过对一系列问题的分析,确定了系统的开发平台。接着详细给出了从学校教师工资管理系统分析到总体设计详细设计与实现及测试的各个环节,最后对本次课程设计作出了总结。本系统以VisualC++6.0为平台,使用C++编程语言编写实现,包含冒泡排序的数据结构,和对文件夹的基本操作等基础知识。本系统能够打印报表,方便保存和管理。关键词:面向对象、课程设计、计算机科学与技术学院、教师工资管理面向对象课程设计11.系统需求及功能分析(1)、这是一个小型学院教工工资管理系统,工资管理的数据文件中存储有教工姓名、月工资、教工号、性别、年龄、电话号码,该程序可以录入和显示所有员工的相关资料。在录入所有教工后,系统会自动对教工按工资进行降序排列存入文件中。(2)、项目运行的软、硬件环境:Windows操作系统以及相应的软硬件MicrosoftVisualC++6.0(3)、项目具体的功能要求:○1、数据录入:输入各种数据;○2、数据统计:各行政人员的工资计算最终按工资进行的冒泡排序;○3、数据打印:打印表格;○4、数据备份:把相关数据写入文件;○5、退出:退出本系统。(4)、类层次结构图类层次结构图如图1所示:教工类图1类层次结构图辅导员类讲师类教授类行政人员类面向对象课程设计22.设计方案首先定义教工类employee;再通过employee类分别派生出讲师类technician、辅导员类manager、教授类seller;还有行政人员类sellermanager是从讲师类和教授类派生得到。各类中产成员函数就只是对数据成员的设置和取出操作。另外有四个函数inputmanager、inputseller、inputsellermanager、inputtechnician分别对类manager、seller、sellermanager、technician四个类的对象的赋值操作。在本系统中我用的是数组操作所有的教工,因为此系统是为小型公司所设计,所以在系统中预设教工为1000个。一开始用“employeeemployeeall[EMP];”语句定义一个一维数组用来存放employee的对象。当操作员输入完成后,系统会自动调用一个函数(compositorall)对所有员工的工资进行降序排列。然后用函数(outputtofile)把排列好了的数据自动保存在“E:\\小型公司工资管理系统文档.txt”文件中。资料保存后,系统会提示:“是否打印?”,若打印则显示出来打印,若不打印则就直接退出系统。本程序从整体上来看是通过函数之间的调用来实现的。3.数据结构表数据成员结构图如图1所示:表1数据成员结构图序号成员名数据类型长度字段含义1AgeInt2年龄2EmployeesLong4学院教工总人数3MonthwagesDouble4教工工的月工资4NameChar10姓名面向对象课程设计35NumberChar10教工号6PostChar10职位7SexChar10性别8TelephoneChar15电话号码9ManagersStaticint2辅导员的总人数10SellersStaticint2教授的总人数11SellroomStaticdouble4个人课程量12SellroomsStaticdouble4同专业的课程总量13TechniciansStaticint2讲师的人数4.数据测试表数据测试表如表2所示:表2数据测试表姓名吴满星周国礼黄聪张雪梅姜海燕职位讲师教授讲师教授教授性别男男男女女年龄2139203021电话号码1597448545009317185886158736972361588665574515886632946面向对象课程设计4教工号101102103104105课程量108109109工作时间10198姓名全欢屈华海赵湘季戴赛玉张自轩职位辅导员讲师讲师行政人员教授性别男男男女男年龄2021212021电话号码1387508822015873690339158866434801588666814915974485474教工号106107108109110课程量106工作时间99975.运行和调试输入第1个教工的资料如图3所示:面向对象课程设计5图3输入第1个教工的资料输入第2个教工的资料如图4所示:图4输入第2个教工的资料输入第3个教工的资料如图5所示:面向对象课程设计6图5输入第3个教工的资料输入第4个教工的资料如图6所示:图6输入第4个教工的资料输入“5”退出程序并自动排序、保存文件如图7所示:面向对象课程设计7图7输入“5”退出程序并自动排序、保存文件问题1、在以下这段程序段中:…………intn;cinn;switch(n){case1:inputtechnician(employeeall[i]);i++;break;case2:inputmanager(employeeall[i]);i++;break;面向对象课程设计8case3:inputseller(employeeall[i]);i++;break;case4:inputsellermanager(employeeall[i]);i++;break;case5:system(cls);//刷新屏幕****compositorall(employeeall);//教工的工资降序排列outputtofile(employeeall);//把资料保存到文件中*cout是否打印资料(y/n);chara[5];cina;if(a[0]=='y'||a[0]=='Y')printfile();//把文件中的资料显示到显示器上return1;default:cout\t错误!请重新输入!\n;}…………若输入的是整数程序可以正常运行,如果误输入了非数字字符(比如:a)则程序运行到这里时会是一个“死循环”中。解决方法:把int型变量“n”定义为一个字符数组char[5];再把switch(n)改为switch(n[0]),通过比较字符数组中的第一个元素。但是如果用户输入“145”这样的话,程序比较字符数组中的第一个字符是“1”程序还是会正确运行下去。这个问题的解决方案是在switch(n[0])前加一条语句if(strlen(n)==1),else面向对象课程设计9cout\t错误!请重新输入!\n。修改后的程序段如下:…………charn[5];cinn;if(strlen(n)==1){switch(n[0]){case'1':inputtechnician(employeeall[i]);i++;break;case'2':inputmanager(employeeall[i]);i++;break;case'3':inputseller(employeeall[i]);i++;break;case'4':inputsellermanager(employeeall[i]);i++;break;case'5':system(cls);//刷新屏幕**********************compositorall(employeeall);//教工的工资降序排列outputtofile(employeeall);//把资料保存到文件中*面向对象课程设计10cout是否打印资料(y/n);chara[5];cina;if(a[0]=='y'||a[0]=='Y')printfile();//把文件中的资料显示到显示器上return1;default:cout\t错误!请重新输入!\n;}}elsecout\t错误!请重新输入!\n;…………问题2、提高数据录入的正确性解决方法:A、在录入数据的时候由于性别只有男、女两性别不可能有另外的第三性别出现,所以录入性别时是通过选择的方式录入而不是键入性别这样就能有效的避免第三性别的出现。B、一个人的姓名都会在英文15个字母、汉字4个内,所以通过加一条语句:if(strlen(temp)15来判断姓名的长度,若不符合则要求重新输入,符合则继续运行下去。C、在录入年龄的时候,年龄不可能是一个小于0的数,也不可能是太大的数,通过if(temp=18||temp65)语句来判断该年龄是否在18至65之间。年龄在大于18是因为我们国家的法定成年年龄是18岁,要满18岁才能参加工作;而小于65周岁呢,一般年高60岁就是退休年龄不再参加工作了。面向对象课程设计11设计总结面向对象课程设计是计算机专业一门重要的专业基础课。此次课程设计的目的是以C++程序设计语言为基础,通过完成一些具有一定难度的课程设计题目的编写、调试、运行工作,使我进一步掌握面向过程和面向对象程序设计的基本方法和编程技巧,巩固所学理论知识,使理论与实际相结合。从而提高自我分析问题、解决问题的能力。培养独立的C++语言程
本文标题:51CTO下载-c++程序设计_教工工资管理系统
链接地址:https://www.777doc.com/doc-5162010 .html