C++高级程序设计(职工工资管理系统)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

中南大学《高级程序设计实践(C++)》课程设计报告设计题目职工工资管理系统指导老师王晓丽黎群辉设计者张亦弛专业班级电气信息类1224设计日期2013.6.24——2013.7中南大学信息科学与工程学院电气信息类1224张亦弛-1-目录一、课程设计的目的..........................................................2二、课程设计的基本内容...................................................2三、课程设计的基本要求...................................................3四、软件整体规划和方案...................................................4五、程序功能简介..............................................................5六、调试结果.....................................................................13七、软件特色与不足..........................................................21八、遇到的问题..................................................................21九、设计心得与总结..........................................................22十、参考文献......................................................................22十一、附录..........................................................................23中南大学信息科学与工程学院电气信息类1224张亦弛-2-一、课程设计的目的本设计是课程——《面向对象编程(C++)》的一个关键实践环节。它是根据教学计划的要求,在教师的指导下,对我们学生实施程序设计训练的必要过程,是对前期课堂学习内容的综合应用及其效果的检验和提高。其目的在于培养我们综合运用理论知识来分析和解决实际问题的能力、以及严谨的科学态度和良好的程序设计习惯。在课程设计中,要求我们能够遵循软件开发过程的基本规范,运用面向对象程序设计的方法,按照选定的课程设计题目要求,独自地完成设计、编写、调试和测试应用程序及编写文档的任务。(1)掌握C++语言的程序设计方法;(2)理论联系实际,进一步提高学生的软件开发技术;(3)培养学生分析、解决问题的能力;(4)提高学生实践论文撰写能力。二、课程设计的基本要求1)本设计采用教师指导、学生自学和独立编程操作方式,先由我们查阅与本设计有关的书籍和资料,利用VisualC++6.0设计环境与开发工具,在两周时间内,完成课程设计内容中的一个管理系统,具体要求如下:1、独立思考:独立完成课程设计中各任务的设计和调试。2、上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。数据管理:管理系统中的数据可用数据库(如Access数据库)的形式保存,也可用普通文件(文本文件或二进制文件)的形式保存。(本系统采用文本文件形式保存,可储存小型的数据,也就是说不会超过100人的数据,超出会报已满无法执行)3、程序要求:界面美观、可操作性强、稳定性好。对系统所需完成的功能分析;中南大学信息科学与工程学院电气信息类1224张亦弛-3-使用VisualC++编译器进行程序编译;提出系统的设计方案;对所设计源程序进行调试。2)创新要求:在基本要求达到后,可进行创新设计。3)课程设计论文编写要求:提交一份设计报告(即设计说明书)包括:设计任务的目的、任务、基本内容、总体设计方案、软件设计(各功能模块的流程图及详细的文字分析与说明)、软件特色与不足、调试结果、设计心得与总结、参考资料等。内容不得少于设计说明书专用纸20页,书写要整洁、规范,装订成册。三、课程设计的基本内容我所做内容是职工工资管理系统,基本内容如下:职工工资管理系统1、基本要求:为方便管理职工工资,编写一个职工工资管理系统软件。系统记录必须包括职工姓名、职工编号、基本工资、职务工资、岗位津贴、五险一金等。2、基本管理功能:(1)添加:增加一个职工信息到管理系统中。(2)查询:可以根据姓名查找某人的相关信息,若找到则显示其信息。(3)修改:在管理系统中修改一个职工的信息。(4)保存:将所有职工的信息保存在一个文件中(数据库文件或普通的文本文件)。(5)读取:从文件中读取已保存了数据。(6)删除:从管理系统中删除一条记录。(7)恢复:能恢复被删除的记录。中南大学信息科学与工程学院电气信息类1224张亦弛-4-(8)统计:(A)计算各项工资平均工资及总工资,(B)统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2500元、2500~1000元)以内的工资职工人数及占总职工人数的百分比。(C)以表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。(9)其他:可以根据自己的思路设计其他功能。四、软件整体规划和方案1、总的设计任务(1)设计一个菜单驱动程序,包括7个菜单内容,输入1-7之间的任何一个数字,就可以进入相应的选择项目,并执行对应的程序。(2)输出的信息分别为:增加职工信息、查找职工信息、修改职工信息、打印全部职工信息、删除单一职工信息、统计、退出程序。(3)对职工信息按工号或姓名进行查询。该系统具有存贮学生数据,按工号、姓名查询,按需要修改职工信息,列出职工工资和统计的功能(4)主要设计两个类,第一是职工类(用于统计职工基本信息),第二个是职工类的友元类,叫系统类(用于处理数据),以及菜单函数、主函数来实现各项选择功能,输出正确的运行结果。(5)运用所学知识(主要为函数、循环语句、类的定义、测试、封装、数据隐藏、),掌握面向对象程序设计的基本概念和基本方法,掌握C++语言的基本语法和基本内容,并能运用C++语言进行基本的面向对象程序设计,并且通过综合课程设计,提高学生的实践动手技能,培养学生独立分析分析问题和解决问题的能力。2、系统功能模块1、增加职工信息2、查找职工信息3、修改职工信息4、职工工资列表5、删除职工信息中南大学信息科学与工程学院电气信息类1224张亦弛-5-6、统计7、退出程序3、功能的实现使用者根据页面菜单的显示,选择相应是项目并输入所需项目前的序号,按enter键然后再根据提示,执行相应的操作,以达到功能的实现。4、总的程序流程图图:五、程序功能简介用户运行程序后进入系统主界面,在主界面用户可以输入所有职工的数据并保存到date1.txt与date2..txt文件中,date1.txt文件是ASCII文本文件,可以直接读取,即便修改也不会影响系统中的数据,因为这个文件只是一个表面文件。而date2.txt是真正存储数据、处理数据的文件,这样做变使得数据变得安全,外部开始菜单修改信息工资列表删除信息退出增加信息查找信息统计信息结束程序中南大学信息科学与工程学院电气信息类1224张亦弛-6-无法修改。该系统运行时也可以读取文件中已有的学生数据。用户在保存数据的时候,如果保存位置没有文件则自动新建一个文件进行保存。但该系统同时只能对一个数据文件进行相关操作,不能同时打开多个数据文件,其类似于单用户操作系统。该系统中还存在“date9.txt”与“date10.txt”这两个文件,这两个问价适用于判断是否添加新文件的判断(date10.txt)与储存计数器的文件(date9.txt)。由于新版本的c++库中没有ios::nocreat与ios::noplace两个对文件的操作,所以用如下代码来代替:voidxitong::build()//build是用于文件建立的函数{fstreamfs(date9.txt,ios_base::in);//试图打开文件if(!fs){fs.close();fs.open(date9.txt,ios_base::out);//新建文件fs.close();ofstreamoutfile2(date10.txt,ios::out);n=0;outfile2n;outfile2.close();ofstreamoutfile(date1.txt,ios::out);ofstreamofile(date2.txt,ios::binary);outfile.close();ofile.close();}else//文件存在则不去创造新文件{}}当用户读取学生数据后可对其进行显示,插入,删除,修改等相关操作。用户在操作过程中执行完每一次的操作,该系统都会进行文件的保存,以防止修改的数据丢失。为了体现人性化,每次修改和增加都会提问是否要进行修改(或增加),当用户确认后才会进行修改(或增加),并保存数据(存入文件中)。在main()函数中主要是通过”switch()”语句选择判断来调用相关功能模块。系统的运行是在一个永真的循环里进行的,只有在主界面并选择“退出本系统”时,才会跳出永真循环,并退出程序。并且每次进行界面函数的调用时都会清除屏幕的杂项,使界面变得简洁。中南大学信息科学与工程学院电气信息类1224张亦弛-7-Main()函数的执行程序框图如下:开始Case1Case6Case5Case4Case3Case2Case8Case7添加函数breakbreak修改信息break显示信息break恢复信息break统计信息break查找函数break删除信息输入选项a结束中南大学信息科学与工程学院电气信息类1224张亦弛-8-下面介绍每个函数的功能:1、添加函数:添加函数是用来想文件中添加数据。首先从文件中读取数据,如果没有文件的话会自动建立一个新文件。之后按照要求输入新增人员的姓名,工号,基本工资,职务工资,岗位津贴,五险一金等。输入之后会提示是否保存文件,回答y或者n即可,回答y则会写入文件中去。程序流程图如下:每次添加函数的运行完成,都会执行保存函数,会在文件末尾加上新添加的信息。不必担心数据的丢失。2、查找函数:查找函数用来查找已经存入的信息,程序流程图附在后面。首先读取文件中的数据,放入内存中。然后用switch语句进行选择,选项为姓名查询与工号查询两种。选择好之后,先输入姓名,用循环语句在类数组中进行搜寻,找到符合的那一项之后,使得判断寄存器变为1,然后会执行输出单项函数,则查询到的人员,系统会将会自动输出该人员的所有数据。如果找不到符合的项则会输出“查无此人”的一行字符,提示没有输入过这个人的数据。cink;//输入名字for(i=0;in;i++){开始从文件中读入数据输入所要求的数据是否保存保存函数,写入文件结束中南大学信息科学与工程学院电气信息类1224张亦弛-9-if(k==e[i].name)//查询是否有符合的项{b=1;break;}}if(b==1){displayone(i);break;}//displayone(i)用来显示搜索到的数据所有信息elsecout查无此人,请先输入数据endl;break;中南大学信息科学与工程学院电气信息类1224张亦弛-10-3、删除函数:删除函数用来删除不需要的数据,流程图附在后面。执行删除操作时,首先读取文件,然后开启选择项switch语句,输入选项,选择通过姓名还是通过工开始读取文件输入选项Case1输入名字k循环变量i赋初值0ini++K==e[i].nameCase2输入工号d循环变量i赋初值0ini++D==e[i].num结束中南大学信息科学与工程学院电气信息

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功