C++课设教师工资管理系统14629.pdf

上传人:得** 文档编号:84875280 上传时间:2023-04-08 格式:PDF 页数:21 大小:871.02KB
返回 下载 相关 举报
C++课设教师工资管理系统14629.pdf_第1页
第1页 / 共21页
C++课设教师工资管理系统14629.pdf_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《C++课设教师工资管理系统14629.pdf》由会员分享,可在线阅读,更多相关《C++课设教师工资管理系统14629.pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、目 录 目 录.1 一、设计目的.2 二.设计内容.3 三概要设计.4 1.功能模块图.4 2各个模块详细的功能描述。.4 四详细设计.5 1、输入记录模块.5 2、插入记录模块.6 3、删除记录模块(具体流程图如图所示).7 4、函数功能描述.7 五 测试数据及运行结果.9 1.系统主界面.9 2.输入界面.10 3.输出教师信息界面.12 4.插入教师信息界面.12 六调试情况,设计技巧及体会.13 附录 源代码.13 一、设计目的 本程序旨在训练基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。本程序涉及结构体、数组、指针、文件等方面的知识。通过本程序的

2、训练,使读者能对C语言的文件操作有一个更深刻的了解,掌握利用数组存储结构实现教师工资管理系统,为进一步开发出高质量信息管理系统打下坚实的基础。(1)巩固和加强C+语言程序设计课程的理论知识。(2)掌握+语言的基本概念、语法、语义和数据类型的使用特点。(3)掌握+语言程序设计的方法及编程技巧,能正确使用+语言编写程序。(4)进一步理解和运用结构化程设计的思想和方法;学会利用流程图表示算法。(5)掌握调试程序的基本方法及上机操作方法。(6)掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。课程设计的思想和方法还可以作为毕业论文时的参考资料。(7)通过查阅手册和文献资料,培养自己独立分析问题和

3、解决问题的能力。为自己做毕业设计打好基础。(8)初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。通过激发学习兴趣,调动自己主动学习的积极性,并根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。(9)培养自己的创新能力和创新思维。可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。(10)培养自己良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。自己在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。二.设计内容 每个教师的信息为:教师号、姓名、性别、单

4、位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资 合计扣款。1、教师信息处理(1)输入教师信息(2)插入(修改)教师信息:(3)删除教师信息:(4)浏览教师信息:提示:具体功能及操作参考题 1。2、教师数据处理(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2)教师实发工资、应发工资、合计扣款计算。提示:计算规则如题目。(3)教师数据管理 提示

5、:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4)教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。(5)教师综合信息输出 提示:输出教师信息到屏幕。三概要设计 1.功能模块图 图1教师工资系统功能模块图 2各个模块详细的功能描述。(1)输入教师信息模块 在主菜单中运用结构体teacher,输入教师信息,首先建立链表,将用户输入教师工资管理系统 1输入教师信息 2插入教师信息 3修改教师信息 4删除教师信息 5浏览教师信息 6系统信息 7退出系统 主界面 选择操作 结 束 的学生信息存储到链表中,输入完成后提示用户时候继续输入,如果用户输入“Y”或

6、“y”,则再次调用,实现继续输入学生信息的操作。如果用户输入“N”或“n”,则返回主菜单界面。(2)插入教师信息模块 在主菜单中调用teacher*insert(),然后按照提示依次输入教师信息,然后再调用void print()函数讲所有的教师信息记录打印出来。然后再返回主菜单界面。(3)修改教师信息模块 在主菜单中调用void edit()函数。按教师号查找教师信息,如果找到教师信息,调用void edit()函数提示用户输入新的教师信息,完成修改的操作。操作结束后提示用户修改成功。然后返回主菜单界面。(4)删除教师信息模块 在主菜单中调用del()函数,以删除教师信息,首先按学号查询教师

7、信息,如果没有找到教师信息,给出提示信息。如果查找到该教师信息,给出改教师的全部信息,如果查找到,则删除该教师信息,给出删除成功的提示信息。然后返回主菜单界面。(5)浏览教师信息模块 在主菜单中调用void print()函数来显示教师信息,先判断链表是否为空。如果链表不为空时,逐条显示链表中教师的信息,显示调用teacher*next()函数按照教师号的大小来显示教师的信息。然后返回主菜单界面。(6)系统信息模块 在主菜单中输入6,可知系统信息、版本。(7)退出系统模块 将链表中的数据全部释放掉,防止内存泄露。退出系统。四详细设计 1、输入记录模块 输入教师信息的流程图如下图。首先要开辟一个

8、新节点,并使 p1,p2 指向它。读入一个教师数据给 p1 所指的节点。此时要使 head=NULL,n=0,并且p1-num!=0。具体流程图如图:2、插入记录模块 插入记录模块具体流程图如下图所示:f 开辟一个新节点,并使 P1,p2 指向它 读入一个教师数据给 P1 所指的结点 Head=NULL&n=0 num!=o N=n+1 N=1 真 假 Head=p1 p2-next=p1 把p1所指的结点 把p1所指的结点 作为第一结点 连接到表尾 P2=p1 再开辟一个新结点,使 p1 指向它 读入一个教师数据给 p1 所指结点 P1=head ,p0=teacher 原来的链表是空表 是

9、 否 当 p0-nump1-num 以及 p1 所指的不是表尾结点 P2 指向 p1 位置 P1 向后移一个结点 P0-numnum 将 p0 所 真 假 指的结 p1 指向头结点 点作为 是 否 p1-next=p0 唯一的 head=p0 p2-next=p0 结点 p0-next=p1 p0-next=p1 p0-next=NULL 3、删除记录模块(具体流程图如图所示)4、函数功能描述(1)保存数据函数 save()函数原型:void save()功能描述:将链表 teacher 中的 N 个数据写入到磁盘文件 teacher_list 中,如果保存成功,则给出提示保存成功,否则返回“

10、cannot ofen file”表示无法打开文件,返回“file write error”表示文件输入错误。(2)浏览教师信息函数 query()函数原型:void query(struct teacher*p)功能描述:将链表 teacher 中的 head 指向 p,然后让用户输入教师号 no,依次在 链表是一个空链表 真 假 P1=head 输 当 num!=p1-num 以及 p1 所指的结点不是表尾结点 P2=p1 出 P1=p1-next P1 是要删除的结点 是 否 空 p1 所指的头结点 是 否 输出找不到 表 head=p2-next=教师信息 P1-next p1-nex

11、t 链表中需找 p,如果教师号不对,则指针往后面拨动一下,使 p=p-next;知道找到相对应的正确的教师号。然后打印出教师的基本信息。函数流程图如图 所示 p-num=no p-num!=no 图(3)修改教师信息函数 edit()函数原型:void edit(struct teacher*p)功能描述:首先让用户输入希望修改的教师的教师号 a,然后在链表中一条一条查找看 p-num 是否等于 a,如果找到,则让用户再次输入教师的具体信息,输入完毕跳出,转向主菜单界面。如果没有找到,则令 p=p-next。直到查询完所有的教师记录。函数流程图如图 所示 Yes no p=head p=p-n

12、ext 打印教师信息 输入想修改教师信息的教师号 a p-num=a 再次输入教师信息 p=p-next 五测试数据及运行结果 1.系统主界面 用户刚进入系统时,如图 1、2 所示。主菜单界面:图 1 图 2 2.输入界面 用户在主菜单界面的时候输入 1,显示如图 图 2 依次给出需要输入的信息的,教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等。当公积金输入完成,系统将给出提示是否想继续输入教师信息,显示如图 如果输入 Y 或者 y,则继续输入教师信息;如果输入 N 或者 n,则返回到主菜单界面。显示如下图:3.输出教

13、师信息界面 如果已经输入教师信息,再在主菜单选择 4浏览教师信息,结果如图:4.插入教师信息界面 在主菜单中进入 2插入教师信息,然后依次插入教师的所有信息,最后打印链表里的记录,如图:六调试情况,设计技巧及体会 持续一个学期的课程设计给了我太多的感触,开始从题目上看,感觉题目很大,设计量很大,也很复杂,感觉不是简单的就能解决的。这样只用重新拾起书继续来看,获得新的知识和巩固以前的C方面的知识。提升自己的能力。整个程序的设计是分模块实现具体的功能,每个模块分别由不同的函数构成。链表的建立实现输入信息的功能,相比较于数组更加方便,更能够节省内存空间等。通过使用文件fread和fwrite函数方便

14、的将数据信息写入文件以及将文件中的信息载入显示段。通过这个学期的课程设计的练习与设计我学会了很多,也更加熟悉C语言程序设计,从中得到了很多乐趣,很快乐,感觉C语言的世界里面奇妙无比。虽然在途中也遇到很多的苦难,但是还是通过问同学和学长解决了。最后看到自己设计的程序能够运行起来特别的开心。这次的程序设计很有意义,也很锻炼人的能力,特别是C语言方面的能力,为自己在C+语言方面打下基础。附录 源代码#include#include#include#include#include using namespace std;int i;class Person public:void display()c

15、out name;cout num;while(num=0)cout请重新输入工号大于0的数:num;string name;xt,ios:app);if(!outfile)cerr open error!endl;exit(0);int b;cout b;for(i=0;i b;i+)ti.display1();cout是否保存信息(y(Y)/n(N)c;if(c=Y|c=y)outfile ti.num ti.name ti.wage ti.time endl;();void wenjianluru()xt,ios:in);int m;for(i=0;i ti.num ti.name ti

16、.wage ti.time;if(ti.num=0)break;int jintie1;jintie1=ti.time*30;m=ti.wage+jintie1;cout t教师:setw(8)ti.num setfill()setw(10)ti.name setfill()setw(10)ti.wage setfill()setw(14)jintie1setfill()setw(12)ti.butie1setfill()setw(10)m endl;();void leadershuchu()xt,ios:in);int m;for(i=0;i xi.num xi.name xi.wage

17、xi.butie;if(xi.num=0)break;m=xi.wage+xi.butie;cout t领导:setfill()setw(8)xi.num setfill()setw(10)xi.name setfill()setw(10)xi.wagesetfill()setw(14)xi.jintiesetfill()setw(12)xi.butiesetfill()setw(10)m endl;();void shuchu()xt,ios:in);string nam;int num;int m,n,x;couttt1.按教师的姓名查找ntt2.按教师的工号查找;coutx;switch

18、(x)case 1:coutnam;for(i=0,n=0;i ti.num ti.name ti.wage ti.time;if(ti.num=0)break;if(ti.name=nam)n+;m=ti.wage+(ti.time-24)*30;couttt工号 姓名 工资endl;cout t教师:ti.num ti.name m endl;if(n=0)cout 没有你要查询的教师。endl;();break;case 2:coutnum;for(i=0,n=0;i ti.num ti.name ti.wage ti.time;if(ti.num=0)break;if(ti.num=n

19、um)n+;m=ti.wage+(ti.time-24)*30;couttt工号 姓名 工资endl;cout t教师:ti.num ti.name m endl;if(n=0)cout 没有你要查询的教师。endl;();break;default:cout操作选择错误!endl;break;void wenjianchaxun()xt,ios:in);string nam;int n,n1,m1=0;cout nam;cout n;for(i=0;i ti.num ti.name ti.wage ti.time;if(ti.num=0)break;m1+;if(ti.name=nam)n1

20、=ti.time;ti.time=n;n=n1;();ofstream outfile(教师.txt,ios:out);for(i=0;i m1;i+)outfile ti.num ti.name ti.wage ti.time endl;();void xiugai()xt,ios:in);string nam;int num;int n,x;couttt1.按教师的姓名删除ntt2.按教师的工号删除;coutx;switch(x)case 1:coutnam;for(i=0,n=0;i ti.num ti.name ti.wage ti.time;if(ti.num=0)break;if(

21、ti.name=nam)n+;ti.num=0;break;if(n=0)cout 没有你要删除的教师。endl;else cout删除成功!endl;();break;case 2:coutnum;for(i=0,n=0;i ti.num ti.name ti.wage ti.time;if(ti.num=0)break;if(ti.num=num)n+;ti.num=0;break;if(n=0)cout 没有你要删除的教师。endl;else cout删除成功endl;();break;default:cout操作选择错误!endl;break;();ofstream outfile(教

22、师.txt,ios:out);for(i=0;i 100;i+)if(ti.num!=0)outfile ti.num ti.name ti.wage ti.time endl;();void show_sort()cout 请选择如下操作:endl;cout tt 1:教师排序 endl;cout tt 2:教师兼职领导排序 endl;cout tt 3:退出排序 endl;cout 请选择你的一个操作:;void jiaoshi_sort()xt,ios:in);int m100;for(i=0;i ti.num ti.name ti.wage ti.time;if(ti.num=0)br

23、eak;mi=ti.wage+ti.time *30;();int count=i;Teacher teacher;int tmp;for(int x=0;x count-1;+x)for(int y=x+1;y count;+y)if(mx my)teacher=tx;tx=ty;ty=teacher;tmp=mx;mx=my;my=tmp;cout tt 工号 名字 总工资 endl;for(i=0;i count;+i)cout t教师:setfill()setw(6)ti.num setfill()setw(10)ti.name setfill()setw(10)mi c;if(c=3

24、)cout 退出排序成功。endl;system(cls);break;else switch(c)case 1:jiaoshi_sort();break;case 2:jianzhi_sort();break;default:cout 上一次输入错误。endl;Break void show7()cout tttt 高校工资管理系统 endl;cout tttt1:职工信息添加 endl;cout tttt2:职工信息输出显示 endl;cout tttt3:职工信息修改 endl;cout tttt4:职工信息删除 endl;cout tttt5:职工信息查询 endl;cout tttt6:职工工资由高到低排序 endl;cout tttt7:退出 endl;cout c;if(c=7)cout 退出成功。endl;break;else switch(c)case 1:wenjianluru();break;case 2:shuchu();break;case 3:xiugai();break;case 4:del();break;case 5:wenjianchaxun()break;case 6:sort();break;default:cout 上一次输入错误。endl;break;return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁