c语言教师工资管理系统方案Word格式.doc
《c语言教师工资管理系统方案Word格式.doc》由会员分享,可在线阅读,更多相关《c语言教师工资管理系统方案Word格式.doc(23页珍藏版)》请在冰豆网上搜索。
(4)进一步理解和运用结构化程设计的思想和方法;
学会利用流程图表示算法。
(5)掌握调试程序的基本方法及上机操作方法。
(6)掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。
课程设计的思想和方法还可以作为毕业论文时的参考资料。
(7)通过查阅手册和文献资料,培养自己独立分析问题和解决问题的能力。
为自己做毕业设计打好基础。
(8)初步掌握开发一个小型实用系统的基本方法:
结合实际应用的要求,使课程设计既覆盖知识点,又接近工程实际需要。
通过激发学习兴趣,调动自己主动学习的积极性,并根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。
(9)培养自己的创新能力和创新思维。
可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。
(10)培养自己良好的程序设计风格。
在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。
自己在课程设计书写代码时,应该严格.按要求处理,以便建立良好的程序设计风格。
22.课程设计题目课程设计题目教师工资管理系统教师工资管理系统每个教师的信息为:
教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。
注:
应发工资=基本工资+津贴+生活补贴;
合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;
实发工资=应发工资合计扣款。
A、教师信息处理
(1)输入教师信息
(2)插入(修改)教师信息:
(3)删除教师信息:
(4)浏览教师信息:
提示:
具体功能及操作参考题1。
B、教师数据处理:
(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。
(2)教师实发工资、应发工资、合计扣款计算。
计算规则如题目。
(3)教师数据管理提示:
输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4)教师数据查询:
输入教师号或其他信息,即读出所有数据信息,并显示出来。
(5)教师综合信息输出提示:
输出教师信息到屏幕。
.33.功能描述功能描述根据需求描述,本人按照结构化程序设计的原则将整个系统划分若干个功能模块。
系统各子模块的设计如下:
图1教师工资系统功能模块图教师工资管理系统1输入教师信息2插入教师信息3删除教师信息4浏览教师信息5录入教师信息6查询教师信息7修改教师信息8加载教师信息0退出系统主界面选择操作结束.
(1)输入教师信息模块在主菜单中运用结构体teacher,输入教师信息,首先建立链表,将用户输入的学生信息存储到链表中,输入完成后提示用户时候继续输入,如果用户输入“Y”或“y”,则再次调用,实现继续输入学生信息的操作。
如果用户输入“N”或“n”,则返回主菜单界面。
(2)插入教师信息模块在主菜单中调用teacher*insert(),然后按照提示依次输入教师信息,然后再调用voidprint()函数讲所有的教师信息记录打印出来。
然后再返回主菜单界面。
(3)删除教师信息模块在主菜单中调用del()函数,以删除教师信息,首先按学号查询教师信息,如果没有找到教师信息,给出提示信息。
如果查找到该教师信息,给出改教师的全部信息,如果查找到,则删除该教师信息,给出删除成功的提示信息。
然后返回主菜单界面。
(4)浏览教师信息模块在主菜单中调用voidprint()函数来显示教师信息,先判断链表是否为空。
如果链表不为空时,逐条显示链表中教师的信息,显示调用teacher*next()函数按照教师号的大小来显示教师的信息。
(5)保存教师信息模块在主菜单中调用voidsave()函数来保存教师信息到teacher_list这个文件中。
并给出“保存成功”的提示信息。
.(6)查询教师信息模块在主菜单中选择6的时候进行教师信息的查询,调用voidquery()函数,按教师号查询信息。
提示用户输入要查找的教师号,然后调用voidquery()函数,查找成功,最后打印出教师的信息。
(7)修改教师信息模块在主菜单中调用voidedit()函数。
按教师号查找教师信息,如果找到教师信息,调用voidedit()函数提示用户输入新的教师信息,完成修改的操作。
操作结束后提示用户修改成功。
(8)加载教师信息模块在主菜单中调用voidload()函数。
如果存在teacher_list文件并不为空,打开文件,找到教师信息。
如果存在teacher_list文件并为空,给出提示,“cannotopenfile”。
(9)退出系统模块将链表中的数据全部释放掉,防止内存泄露。
退出系统。
44.数据结构设计数据结构设计本程序定义了结构体teacher,主要用于存放图书的基本信息,如下所示:
structteacher.intnum;
charname10;
charsex10;
charunit10;
charaddress10;
longtelnum;
floatsalary_1;
floatallowance;
floatlife_allow;
floatsalary_2;
floattel_fee;
floatwater_fee;
floatrent;
floattax;
floathealth_fee;
floatgrant;
floattotal_fee;
floatactual_salary;
structteacher*next;
其中,各字段含义如下intnum:
教师号charname10:
教师姓名charsex10:
教师性别.charunit10:
教师单位charaddress10:
教师住址longtelnum:
教师电话号码floatsalary_1:
基本工资floatallowance:
津贴floatlife_allow:
生活补贴floatsalary_2:
应发工资floattel_fee:
电话费floatwater_fee:
水电费floatrent:
房租floattax:
个人所得税floathealth_fee:
卫生费floatgrant:
公积金floattotal_fee:
合计扣款floatactual_salary:
实发工资structteacher*next:
指向下一个节点的指针55.功能模块设计功能模块设计55.1.1主控模块设计主控模块设计主控函数的流程图如图1所示。
首先,调用voidwelcome()子函数和charmainmenu()子函数显示欢迎界面和初始界面;
再次,调用main()函数并令ch=mainmenu(),在main()函数中,用switch语句实现该系统各功能,若ch=1,系统实现输入教师信息功能;
若ch=2,系统实现插入教师信息功能;
若ch=3,系统实现删除教师信息功能;
若ch=4,系统实现浏览教师信息功能;
若ch=5,系统实现保存教师信息功能;
若ch=6,系统实现查询教师信息功能;
若ch=7,系统实现修改教师信息功能;
若ch=8,系统实现加载教师信息功能;
若ch=0,退出系统。
(对主控函数进行文字描述).55.2.2输入记录模块输入记录模块他他输入教师信息的流程图如下图。
首先要开辟一个新节点,并使p1,p2指向它。
读入一个教师数据给p1所指的节点。
此时要使head=NULL,n=0,并且p1-num!
=0。
具体流程图如图:
55.33插入插入记录模块记录模块插入记录模块具体流程图如下图所示:
开辟一个新节点,并使P1,p2指向它读入一个教师数据给P1所指的结点Head=NULL&
n=0num!
=oN=n+1N=1真假Head=p1p2-next=p1把p1所指的结点把p1所指的结点作为第一结点连接到表尾P2=p1再开辟一个新结点,使p1指向它读入一个教师数据给p1所指结点.f55.44删除删除记录模块记录模块(具体流程图如图所示)(具体流程图如图所示)P1=head,p0=teacher原来的链表是空表是否当p0-nump1-num以及p1所指的不是表尾结点P2指向p1位置P1向后移一个结点P0-numnum将p0所真假指的结p1指向头结点点作为是否p1-next=p0唯一的head=p0p2-next=p0结点p0-next=p1p0-next=p1p0-next=NULL链表是一个空链表真假P1=head输当num!
=p1-num以及p1所指的结点不是表尾结点P2=p1出P1=p1-nextP1是要删除的结点是否空p1所指的头结点是否输出找不到表head=p2-next=教师信息P1-nextp1-next.66.函数功能描述函数功能描述66.1.1保存数据函数保存数据函数savesave()()函数原型:
voidsave()功能描述:
将链表teacher中的N个数据写入到磁盘文件teacher_list中,如果保存成功,则给出提示保存成功,否则返回“cannotofenfile”表示无法打开文件,返回“filewriteerror”表示文件输入错误。
66.2.2查询教师信息函数查询教师信息函数queryquery()()函数原型:
voidquery(structteacher*p)功能描述:
将链表teacher中的head指向p,然后让用户输入教师号no,依次在链表中需找