课程设计报告书:教师工资管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
吉首大学信息科学与工程学院课程设计报告书
课程高级语言程序设计
课题:
姓名:
学号:
专业:
年级:
指导教师:
基地指导教师:
年月
项目介绍与设计目的
课程设计目的
加深对高级语言程序设计理论和基本知识的理解,掌握结构化程序设计开发的基本方法,进一步提升综合运用所学知识和实际动手能力。
(1)巩固和加强《C语言程序设计》课程的理论知识。
(2)掌握C语言的基本概念、语法、语义和数据类型的使用特点。
(3)掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。
(4)进一步理解和运用结构化程设计的思想和方法;学会利用流程图表示算法。
(5)掌握调试程序的基本方法及上机操作方法。
(6)掌握书写程设计开发文档的能力,学会撰写课程设计总结报告。
课程设计的思想和方法还可以作为毕业论文时的参考资料。
项目介绍
教师工资管理系统
每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。
注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。
A、教师信息处理
(1) 输入教师信息
(2) 插入(修改)教师信息:
(3) 删除教师信息:
(4) 浏览教师信息:
提示:具体功能及操作参考题1。
B、教师数据处理:
(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。
(2) 教师实发工资、应发工资、合计扣款计算。
提示:计算规则如题目。
(3) 教师数据管理
提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件
(4) 教师数据查询:
提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。
(5) 教师综合信息输出
提示:输出教师信息到屏幕。
功能描述
根据需求描述,按照结构化程序设计的原则将整个系统划分若干个功能模块。
系统各子模块的设计如下:
(1)输入教师信息模块
在主菜单中运用结构体teacher ,输入教师信息,首先建立数组,将用户输入的学生信息存储到数组中,输入完成后提示用户时候继续输入,如果用户输入“Y ”,则再次调用,实现继续输入学生信息的操作。
如果用户输入“N ”,则返回主菜单界面。
(2)插入教师信息模块
在主菜单中调用tea_new (),然后按照提示依次输入教师信息。
然后再返回主菜单界面。
(3)删除教师信息模块
在主菜单中调用delete_id ()函数,以删除教师信息,首先按学号查询教师信息,如果教
师
工资
管
理
系
统 1——输入教师信息 2——插入教师信息 3——删除教师信息 4——浏览教师信息 5——录入教师信息 6——查询教师信息
7——修改教师信息
8——加载教师信息
0——退出系统 主界面 选择操作 结 束
没有找到教师信息,给出提示信息。
如果查找到该教师信息,给出改教师的全部信息,如果查找到,则删除该教师信息,给出删除成功的提示信息。
然后返回主菜单界面。
(4)保存教师信息模块
在主菜单中调用writetofile()函数来保存教师信息到teacher.bin这个文件中。
并给出“保存成功”的提示信息。
然后返回主菜单界面。
(5)浏览教师信息模块
在主菜单中调用searchmenu()函数输出查找菜单,根据用户的输入运行对应的功能。
‘1’调用show_all()函数,输出所有教师的信息;‘2’调用search_id()函数,浏览对应教师号的教师信息;‘3’调用search_name()函数,浏览对应教师名字的教师信息;‘4’调用mainmenu()函数,返回主菜单。
(6)修改教师信息模块
在主菜单中调用change_id ()函数。
按教师号查找教师信息,如果找到教师信息,则完成修改的操作。
操作结束后提示用户修改成功。
然后返回主菜单界面。
(9)退出系统模块
将数组中的数据全部释放掉,防止内存泄露。
退出系统。
数据结构设计
本程序定义了结构体 teacher,主要用于存放图书的基本信息,如下所示:
struct teacher
{
int number;//教师号
char name[10]; //姓名
char sex[5];//性别
char danweiname[20];//单位地址
char address[20];//地址
char phone[12];//电话
float salary;//基本工资
float allowance; //津贴
float life; //生活补贴
float tel;//费(fee)
float utilities;//水电费
float rent;//房租
float due;//所得税
float health;//生活费
float fund;//公积金
float total;//合计扣款
float should;//应发工资
float actual; //实发工资
} tea[500];
主控模块设计
主控函数的流程图如图1所示。
首先,调用mainmenu()函数显示欢迎界面和初始界面;在mainmenu()函数中,令命令输入choic=getch(),用switch语句实现该系统各功能,若choic=1,系统实现输入教师信息功能;若choic=2,系统实现修改教师信息功能;若choic=3,系统实现删除教师信息功能;若choic=4,系统实现查询教师信息功能;若choic=5,系统实现保存教师信息功能并退出系统。
(对主控函数进行文字描述)
函数功能描述
保存数据函数writetofile()
函数原型:void writetofile()
功能描述:将数组tea中的N个数据写入到磁盘文件teacher.bin中,如果保存成功,则给出提示保存成功,否则返回“NULL”表示无法打开文件,返回“非1”表示文件输入错误。
查询教师信息函数searchmenu()
函数原型:void searchmenu()
功能描述:‘1’调用show_all()函数,输出所有教师的信息;‘2’调用search_id()函数,浏览对应教师号的教师信息;‘3’调用search_name()函数,浏览对应教师名字的教师信息;‘4’调用mainmenu()函数,返回主菜单。
修改教师信息函数change_id ()
函数原型:change_id ()
功能描述:首先让用户输入希望修改的教师的教师号id,然后在数组中一条一条查找看tea[i].number是否等于a,如果找到,则让用户再次输入教师的具体信息,输入完毕跳出,转向主菜单界面。
如果没有找到,则令i=i+1。
直到查询完所有的教师记录。
运行结果
系统主界面
用户刚进入系统时,如下图所示。
主菜单界面:
用户根据自己的需求输入自己的选择。
输入界面
用户在主菜单界面的时候输入1,显示如下图:
依次给出需要输入的信息,教师号、姓名、性别、单位地址、教师住址、教师电话、基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等。
当公积金输入完成,系统将给出提示是否想继续输入教师信息,显示如下图
如果输入Y,则继续输入教师信息;如果输入N,则返回到主菜单界面。
如果已经输入教师信息,再在主菜单选择4——浏览教师信息,结果如图:根据输入运行对应的功能,输入1,如下图:
主界面输入3运行删除功能,并根据教师号删除教师信息,如下图:
输入Y确定删除,N返回主界面。
保存和加载教师信息界面
首先将之前输入进去的教师信息进行保存,然后退出系统,再打开系统,将之前的教师信息数据全部加载过来。
然后浏览教师数据。
如图所示:
总结和分析
朱林卫:持续一个学期的C语言学习给了我太多的感触,刚接触课程设计时,从题目上看,感觉题目很大,设计量很大,也很复杂,感觉不是简单的就能解决的。
这样只用重新摸起书继续来看,获得新的知识和巩固以前的C方面的知识。
提升自己的能力。
整个程序的设计是分模块实现具体的功能,每个模块分别由不同的函数构成。
数组的建立实现输入信息的功能,通过使用文件fread和fwrite函数方便的将数据信息写入文件以及将文件中的信息载入显示段。
通过这个学期的课程设计的练习与设计我学会了很多,也更加熟悉C语言程序设计,从中得到了很多乐趣,很快乐,感觉C语言的世界里面奇妙无比。
虽然在途中也遇到很多的苦难,但是还是通过问同学和学长解决了。
最后看到自己设计的程序能够运行起来特别的开心。
这次的程序设计很有意义,也很锻炼人的能力,特别是C语言方面的能力,为自己在C语言方面打下基础。
指导老师评语:
成绩评定:
指导老师签名:
基地指导老师签名:
年月日
教研室意见
教研室主任签章
年月日
学院意见
分管院长签章
年月日。