1、目 录目 录 .1一、设计目的 1二. 设计内容 2三概要设计 31.功能模块图 .32各个模块详细的功能描述。 4四详细设计 51、输入记录模块 52、插入记录模块 63、删除记录模块(具体流程图如图所示) 64、函数功能描述 7五 测试数据及运行结果 .81.系统主界面 .82.输入界面 .93.输出教师信息界面 114. 插入教师信息界面 .12六调试情况,设计技巧及体会 .12附录 源代码 132一、设计目的本程序旨在训练基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。本程序涉及结构体、数组、指针、文件等方面的知识。通过本程序的训练,使读者能对C语言
2、的文件操作有一个更深刻的了解,掌握利用数组存储结构实现教师工资管理系统,为进一步开发出高质量信息管理系统打下坚实的基础。(1)巩固和加强C+语言程序设计课程的理论知识。(2)掌握+语言的基本概念、语法、语义和数据类型的使用特点。(3)掌握+语言程序设计的方法及编程技巧,能正确使用+语言编写程序。(4)进一步理解和运用结构化程设计的思想和方法;学会利用流程图表示算法。(5)掌握调试程序的基本方法及上机操作方法。(6)掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。课程设计的思想和方法还可以作为毕业论文时的参考资料。(7)通过查阅手册和文献资料,培养自己独立分析问题和解决问题的能力。为自己
3、做毕业设计打好基础。(8)初步掌握开发一个小型实用系统的基本方法: 结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。通过激发学习兴趣,调动自己主动学习的积极性,并根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。(9)培养自己的创新能力和创新思维。可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。(10)培养自己良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。自己在课程设计书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。3二. 设计内容每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、
4、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+ 生活补贴;合计扣款=电话费+水电费+房租+所得税+ 卫生费+公积金;实发工资=应发工资 合计扣款。1、教师信息处理(1) 输入教师信息(2) 插入(修改)教师信息:(3) 删除教师信息:(4) 浏览教师信息:提示:具体功能及操作参考题 1。2、教师数据处理(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2) 教师实发工资、应发工资、合计扣款计算。提示:计算规则如题目。(3) 教师数据管理提示:
5、输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4) 教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。(5) 教师综合信息输出提示:输出教师信息到屏幕。4三概要设计1.功能模块图图1教师工资系统功能模块图2各个模块详细的功能描述。(1)输入教师信息模块在主菜单中运用结构体teacher,输入教师信息,首先建立链表,将用户输教师工资管理系统1输入教师信息2插入教师信息3修改教师信息4删除教师信息5浏览教师信息6系统信息7退出系统主界面选择操作结 束5入的学生信息存储到链表中,输入完成后提示用户时候继续输入,如果用户输入“Y”或“y” ,则再次调用,实现
6、继续输入学生信息的操作。如果用户输入“N”或“n” ,则返回主菜单界面。(2)插入教师信息模块在主菜单中调用teacher *insert(),然后按照提示依次输入教师信息,然后再调用void print()函数讲所有的教师信息记录打印出来。然后再返回主菜单界面。(3)修改教师信息模块在主菜单中调用void edit()函数。按教师号查找教师信息,如果找到教师信息,调用void edit()函数提示用户输入新的教师信息,完成修改的操作。操作结束后提示用户修改成功。然后返回主菜单界面。(4)删除教师信息模块在主菜单中调用del()函数,以删除教师信息,首先按学号查询教师信息,如果没有找到教师信息
7、,给出提示信息。如果查找到该教师信息,给出改教师的全部信息,如果查找到,则删除该教师信息,给出删除成功的提示信息。然后返回主菜单界面。(5)浏览教师信息模块在主菜单中调用void print()函数来显示教师信息,先判断链表是否为空。如果链表不为空时,逐条显示链表中教师的信息,显示调用teacher *next()函数按照教师号的大小来显示教师的信息。然后返回主菜单界面。(6)系统信息模块在主菜单中输入6,可知系统信息、版本。(7)退出系统模块将链表中的数据全部释放掉,防止内存泄露。退出系统。四详细设计1、输入记录模块输入教师信息的流程图如下图。首先要开辟一个新节点,并使 p1,p2 指向6它
8、。读入一个教师数据给 p1 所指的节点。此时要使 head=NULL,n=0,并且 p1-num!=0。具体流程图如图:2、插入记录模块插入记录模块具体流程图如下图所示:f开辟一个新节点,并使 P1,p2 指向它读入一个教师数据给 P1 所指的结点Head=NULL int i;class Person public:void display()cout name;cout num;while(numnum;14string name;/名字int num;/工号class Teacher: public Person/教师public:Teacher() int s=1000;wage =
9、s;butie1=0;void display1();int wage;/基本工资int time;int butie1;int jintie1;/课时void Teacher:display1()cout time;while(timetime;/补贴Teacher t100;Leader x100;Jianzhi j100;void show()cout b;for (i = 0; i c;if(c=Y|c=y)outfile c;if (c = 4)cout ti.num ti.name ti.wage ti.time;if (ti.num = 0)break;int jintie1;j
10、intie1=ti.time*30;m = ti.wage + jintie1;cout xi.num xi.name xi.wage xi.butie;17if (xi.num = 0)break;m = xi.wage + xi.butie;cout x;switch(x)case 1:coutnam;for (i = 0, n = 0; i ti.num ti.name ti.wage ti.time;if (ti.num = 0)break;18if (ti.name=nam) n+;m = ti.wage + (ti.time - 24) * 30;coutnum; for (i =
11、 0, n = 0; i ti.num ti.name ti.wage ti.time;if (ti.num = 0)break;if (ti.num=num) n+;m = ti.wage + (ti.time - 24) * 30;cout c;19if (c = 4) cout nam;cout n;for (i = 0; i ti.num ti.name ti.wage ti.time;if (ti.num = 0)20break;m1+;if (ti.name =nam) n1 = ti.time;ti.time = n;n = n1;infile.close();ofstream
12、outfile(“教师.txt“, ios:out);for (i = 0; i c;if (c = 3) cout x;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 (ti.name=nam) n+;ti.num=0;break; if (n =0)cout num; for (i = 0, n = 0; i ti.num ti.name ti.wage ti.time;22if (ti.num = 0)break;if (ti.num=n
13、um) n+;ti.num=0;break;if (n =0)cout ti.num ti.name ti.wage ti.time;if (ti.num = 0)23break;mi = ti.wage + ti.time * 30;infile.close();int count = i;Teacher teacher;int tmp;for (int x = 0; x c;if (c = 3) cout c;if (c = 7) cout “退出成功。“ endl;break; elseswitch (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;25