C教师工资管理系统 .docx
精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习课程设计报告软件工程学院:天津理工高校华信软件学院专业名称:可编辑资料 - - - 欢迎下载精品名师归纳总结课程设计科目C语言课程设计所在班级:同学学号: 同学姓名: 指导老师: 完成时间:可编辑资料 - - - 欢迎下载精品名师归纳总结对课程设计工作过程的简短介绍和自我评判课程设计成果评定表在工程设计中,我认真的翻阅了C 语言学习教材,并在各大 IT网站( csdn)搜寻源代码。然后就是不断的改正编辑程序中的错误,不断的改正。体会 到了编程的艰辛。看着编辑的程序完善的运行,心中的欢快是不言而喻的。同学签名:2021 年 6 月 11 日可编辑资料 - - - 欢迎下载精品名师归纳总结(以下由评定老师填写)质量评判指标(在相应栏目给分,优秀20-25 分,良好 15-20分,中等 10-15 分,及格 5-10 分,不及格 0-5 分)评 价 质 量可编辑资料 - - - 欢迎下载精品名师归纳总结评 价 项 目工作量和态度( 25分)试验、运算牢靠性(25 分)文字和图表质量(25 分) 总体评判(25 分)评定成果(百分优秀良好中等及格不及格可编辑资料 - - - 欢迎下载精品名师归纳总结制)目录设计任务与目标4方案设计与论证6程序框图或流程图,程序清单与调用关系9全部源程序清单11程序运行结果测试与分析28结论与心得 参考资料311老师工资治理系统一、设计任务与目标任务:老师工资治理系统每个老师的信息为:老师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资 +津贴 +生活补贴。合计扣款 =电话费 +水电费 +房租 +所得税 +卫生费 +公积金。实发工资=应发工资合计扣款。A、老师信息处理(1) 输入老师信息(2) 插入(修改)老师信息:1可编辑资料 - - - 欢迎下载精品名师归纳总结(3) 删除老师信息:(4) 浏览老师信息:提示:具体功能及操作参考题 1。B、老师数据处理:(1) 按老师号录入老师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2) 老师实发工资、应发工资、合计扣款运算。提示:运算规章如题目。(3) 老师数据治理提示:输入老师号,读出并显示该老师信息,输入新数据,将改后信息写入文件(4) 老师数据查询:提示:输入老师号或其他信息,即读出全部数据信息,并显示出来。(5) 老师综合信息输出提示:输出老师信息到屏幕。案例论证:1. 完成此设计的目的意义此题目能让我综合的考虑设计一个信息处理系统,要求设计出主函数, 确定调用函数,成员的函数设计。2. 目标老师数据处理:(1) 按老师号录入老师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2) 老师实发工资、应发工资、合计扣款运算。运算规章如题目。(3) 老师数据治理输入老师号,读出并显示该老师信息,输入新数据,将改后信息写入文件(4) 老师数据查询:输入老师号或其他信息,即读出全部数据信息,并显示出来。可编辑资料 - - - 欢迎下载精品名师归纳总结(5) 老师综合信息输出输出老师信息到屏幕二、方案设计与论证(1)主函数的设计编写主函数的主要任务就是确定调用函数以及把握屏幕显示。 定调用的函数依据要求,该系统至少应当实现五种基本功能:输出工作信息,删除工资信 息,修改工资信息,查找工资信息,列出全部信息。实现以上任何一种功能都必需要调用一个函数,依据标识符的定义规章,分别命名为原型 void show_all。功能 展出全部录入文件参数 无返回值 无工作方式 调用 char name10 。float salary 。 float allowance 。 float life 。 float tel 。float utilities 。float rent 。float due 。 float health 。 float fund 。 2float total 。 float should。 float actual 。原型 voidtea_new功能 创建新的信息录入参数 无返回值 无工作方式 创建 file原型 void searchmenu 。功能 查找菜单参数 无返回值 无工作方式 调用 void search_id。void search_name 。原型 void search_id。可编辑资料 - - - 欢迎下载精品名师归纳总结功能 查找信息 按编号查找参数 无返回值 整个信息工作方式 调用 number原型 void search_name 。功能 查找信息 按姓名查找参数 无返回值 整个信息工作方式 调用 char name原型 void delete_id功能 删除数据 按编号删除参数 无返回值 无工作方式 调用 id原型 void change_id。功能 转变数据 按编号改参数 无返回值 整个录入信息工作方式 调用 id(2) 函数的设计编写函数的目的就是编写一个能实现某种功能的函数供主函数调用函数设计的主要任务是确定调用的成员函数以及屏幕显示。 确定调用的成员函数。不同的函数调用的成员函数是不尽相同的,基本上每个函数都有一个对应的成员函。char name10 。float salary。float allowance。float life。可编辑资料 - - - 欢迎下载精品名师归纳总结float telfloat utilities。float rent。float duefloat health。float fund。 3 float total。float should。float actual。(3) 算法实现链表是算法的关键。在添加新的数据时,可以表头插入也可以表尾插入,这两种插入方法准备了其他成员函数数据的处理。本系统中实行的是表尾插入的方法。在删除某信息时需要判定数据是在表头,表中仍是表 尾,假如删除的是在表中,就需要将删除的前后链表连接起来。统大量运用了链表的 5 种基本操作:建立链表、链表的插入、删除、输入和查找。三、程序框图或流程图,程序清单与调用关系输出界面选择操作选择 1输入数据Break选择 2修改数据break可编辑资料 - - - 欢迎下载精品名师归纳总结选择 3删除数据Break可编辑资料 - - - 欢迎下载精品名师归纳总结选择 4选择 5查询数据保 存 退 出BreakBreak可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结输 出 : 无 效 选Break可编辑资料 - - - 欢迎下载精品名师归纳总结终止可编辑资料 - - - 欢迎下载精品名师归纳总结readfromfileshow_allsearchmenu可编辑资料 - - - 欢迎下载精品名师归纳总结Mainmenusearch_idwritetofilesearch_nametea_newdelete_id可编辑资料 - - - 欢迎下载精品名师归纳总结四、全部源程序清单change_id可编辑资料 - - - 欢迎下载精品名师归纳总结#include<stdio.h> #include<string.h> #include <stdlib.h> #include<conio.h>/* 老师工资治理系统结构体定义 */struct teacherint number。char name10。float salary。float allowance。float life 。float tel。float utilities 。float rent。float due。float health。float fund。float total。float should。float actual。tea500。int num=0。FILE *fp 。void mainmenu。void readfromfile 。void writetofile 。void show_all。void tea_new 。可编辑资料 - - - 欢迎下载精品名师归纳总结void searchmenu。void search_id。void search_name。 void delete_id。void change_id。void mainreadfromfile 。while1mainmenu。/ 主菜单void mainmenuchar choic。system"cls"。printf"t-WELCOME-n"。printf"t*老师工资治理系统 *nn"。printf"t-1输入老师信息 -n" 。printf"t-2修改老师信息 -n" 。printf"t-3删除老师信息 -n" 。printf"t-4查询老师信息 -n" 。printf"t-5储存并退出 -n" 。printf"t*n"。printf"t 请选择: n" 。choic=getch。switchchoic可编辑资料 - - - 欢迎下载精品名师归纳总结case'1':tea_new 。 break。case'2':change_id 。 break。case'3':delete_id 。 break。case'4':searchmenu。 break。case'5':writetofile。break。default:mainmenu。/ 从文件导入void readfromfileiffp=fopen"teacher.bin","rb"=NULLprintf"nt 老师工资信息文件不存在 "。iffp=fopen"teacher.bin","wb"=NULL可编辑资料 - - - 欢迎下载精品名师归纳总结elseprintf"nt 建立失败 "。exit0 。printf"nt 老师工资信息文件已建立 "。printf"nt 按回车键进入主菜单 "。getch。return。可编辑资料 - - - 欢迎下载精品名师归纳总结exit0 。fseekfp,0,2。ifftellfp>0可编辑资料 - - - 欢迎下载精品名师归纳总结rewindfp 。fornum=0 。 .feoffp&&fread&teanum,sizeofstruct teacher,1,fp。num+。printf"nt 老师工资信息文件导入成功 "。printf"nt 文件中无任何记录 "。printf"nt 按回车键进入主菜单 "。getch。return。/ 写入文件void writetofileint i。iffp=fopen"teacher.bin","wb"=NULLprintf"nt 打开文件失败 "。fori=0 。i<num 。i+iffwrite&teai,sizeofstruct teacher,1,fp.=1printf"nt 文件写入错误 .n" 。fclosefp。printf"nt 老师工资信息文件已储存 "。printf"nt 按任意键退出程序 nt"。可编辑资料 - - - 欢迎下载精品名师归纳总结exit0。/添加记录void tea_newprintf" 请输入老师号: "。scanf"%d",&teanum.number。printf" 请输入老师姓名 :" 。scanf"%s",teanum.name。 printf" 请输入老师基本工资: "。scanf"%f",&teanum.salary 。printf" 请输入老师的津贴: "。scanf"%f",&teanum.allowance 。printf" 请输入老师的生活补贴: "。scanf"%f",&teanum.life 。printf" 请输入老师的电话费: "。scanf"%f",&teanum.tel 。printf" 请输入老师的水电费: "。scanf"%f",&teanum.utilities 。printf" 请输入老师的房租: "。scanf"%f",&teanum.rent 。printf" 请输入老师的所得税: "。scanf"%f",&teanum.due 。printf" 请输入老师的卫生费: "。scanf"%f",&teanum.health 。printf" 请输入老师的公积金: "。scanf"%f",&teanum.fund 。teanum.should =teanum.salary +teanum.allowance +teanum.life。teanum.total=teanum.tel+teanum.utilities可编辑资料 - - - 欢迎下载精品名师归纳总结+teanum.rent+teanum.due+teanum.health+teanum.fund。teanum.actual=teanum.should-teanum.total。num+。printf" 是否连续添加 .Y/N" 。ifgetch='y' tea_new 。return。/ 查询菜单void searchmenuchar choic。system"cls"。printf"nt- 查询-" 。printf"nt-1 显示全部 -" 。printf"nt-2 按编号查询 -" 。printf"nt-3 按姓名查询 -" 。printf"nt-4 返回主菜单 -" 。printf"nt 请选择 :n" 。choic=getch。switchchoic可编辑资料 - - - 欢迎下载精品名师归纳总结case'1':show_all。break。可编辑资料 - - - 欢迎下载精品名师归纳总结case'2':search_id。 break。case'3':search_name。 break。可编辑资料 - - - 欢迎下载精品名师归纳总结case'4':mainmenu。break。可编辑资料 - - - 欢迎下载精品名师归纳总结/ 显示全部void show_all可编辑资料 - - - 欢迎下载精品名师归纳总结int i。system"cls"。ifnum.=0fori=0。i<num。i+printf"nt 编号: %d",teai.number。printf"nt 姓名: %s",teai.name。printf"nt 基本工资 : %.5f",teai.salary 。printf"nt 津贴: %.5f",teai.allowance 。printf"nt 生活补贴 : %.5f",teai.life 。printf"nt 电话费: %.5f",teai.tel 。printf"nt 水电费: %.5f",teai.utilities 。printf"nt 房租: %.5f",teai.rent 。printf"nt 所得税: %.5f",teai.due。printf"nt 卫生费: %.5f",teai.health。printf"nt 公积金: %.5f",teai.fund 。printf"nt 应发工资 : %.5f",teai.should 。printf"nt 合计扣款 : %.5f",teai.total 。printf"nt 实发工资 : %.5f",teai.actual 。ifi+1<numprintf"nt"。system"pause"。printf"nt*"。else可编辑资料 - - - 欢迎下载精品名师归纳总结printf"nt 文件中无记录 "。printf"nt 按回车键回到主菜单 "。getch。return。/ 按编号查询void search_idint mark=0。int i,a=0。int id 。printf"nt 请输入编号 :"。scanf"%d",&id。fori=0。i<num。i+ifid=teai.numberprintf"nt*以下是你要查找的老师工资信息 *n"。printf"nt 编号: %d",teai.number。printf"nt 姓名: %s",teai.name。printf"nt 基本工资 : %.5f",teai.salary 。printf"nt 津贴: %.5f",teai.allowance 。printf"nt 生活补贴 : %.5f",teai.life 。printf"nt 电话费: %.5f",teai.tel 。printf"nt 水电费: %.5f",teai.utilities 。printf"nt 房租: %.5f",teai.rent 。printf"nt 所得税: %.5f",teai.due。printf"nt 卫生费: %.5f",teai.health。printf"nt 公积金: %.5f",teai.fund 。可编辑资料 - - - 欢迎下载精品名师归纳总结printf"nt 应发工资 : %.5f",teai.should 。printf"nt 合计扣款 : %.5f",teai.total 。printf"nt 实发工资 : %.5f",teai.actual 。printf"nt*"。printf"nt 按回车键回到主菜单 "。mark+。getch。return。ifmark=0printf"nt 没有该编号的信息 "。printf"nt 按回车键返回主菜单 "。getch。return。/ 按姓名查询void search_nameint mark=0。int i,a=0。char name10。printf" 请输入姓名 :" 。scanf"%s",name。fori=a。i<num。i+ifstrcmpteai.name,name=0可编辑资料 - - - 欢迎下载精品名师归纳总结printf"nt*以下是你要查找的老师工资信息 *n"。printf"nt 编号: %d",teai.number。printf"nt 姓名: %s",teai.name。printf"nt 基本工资 : %.5f",teai.salary 。printf"nt 津贴: %.5f",teai.allowance 。printf"nt 生活补贴 : %.5f",teai.life 。printf"nt 电话费: %.5f",teai.tel 。printf"nt 水电费: %.5f",teai.utilities 。printf"nt 房租: %.5f",teai.rent 。printf"nt 所得税: %.5f",teai.due。printf"nt 卫生费: %.5f",teai.health。printf"nt 公积金: %.5f",teai.fund 。printf"nt 应发工资 : %.5f",teai.should 。printf"nt 合计扣款 : %.5f",teai.total 。printf"nt 实发工资 : %.5f",teai.actual 。printf"nt*"。mark+。ifi+1<numprintf"tn 是否连续查找相同名字的老师信息 :y/n" 。ifgetch='y'可编辑资料 - - - 欢迎下载精品名师归纳总结elsea=。icontinue。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结elsereturn。可编辑资料 - - - 欢迎下载精品名师归纳总结printf"nt 按回车键返回主菜单 "。getch。return。ifmark.=0printf"nt 没有相同姓名的老师信息记录 "。printf"nt 按回车键回到主菜单 "。getch。return。elseprintf"nt 没有相同姓名的老师信息记录 "。printf"nt 按回车键回到主菜单 "。getch。return。/ 删除菜单void delete_idint i,j 。int deletemark=0。int id 。printf"nt 情输入要删除的编号 :"。scanf"%d",&id 。ifnum=0可编辑资料 - - - 欢迎下载精品名师归纳总结printf"nt 对不起,文件中无任何老师工资信息记录"。printf"nt 按回车键回到主菜单 "。getch。 return。fori=0。i<num 。i+ifid=teai.numberprintf"nt*以下是你要删除的老师工资信息 *n"。printf"nt 编号: %d",teai.number。printf"nt 姓名: %s",teai.name。printf"nt 基本工资 : %.5f",teai.salary 。printf"nt 津贴: %.5f",teai.allowance 。printf"nt 生活补贴 : %.5f",teai.life 。printf"nt 电话费: %.5f",teai.tel 。printf"nt 水电费: %.5f",teai.utilities 。printf"nt 房租: %.5f",teai.rent 。printf"nt 所得税: %.5f",teai.due。printf"nt 卫生费: %.5f",teai.health。printf"nt 公积金: %.5f",teai.fund 。printf"nt 应发工资 : %.5f",teai.should 。printf"nt 合计扣款 : %.5f",teai.total 。printf"nt 实发工资 : %.5f",teai.actual 。printf"nt 是否删除 .y/n" 。ifgetch='y'forj=i。j<num-1。j+可编辑资料 - - - 欢迎下载精品名师归纳总结teaj=teaj+1 。num-。deletemark+。printf"nt 删除成功 " 。printf"nt 是否连续删除 .y/n" 。ifgetch='y' delete_id。return。可编辑资料 - - - 欢迎下载精品名师归纳总结elsecontinue。return。可编辑资料 - - - 欢迎下载精品名师归纳总结ifdeletemark=0printf"nt 没有该老师的记录 "。printf"nt 是否连续删除 .y/n" 。ifgetch='y' delete_id。/ 修改菜单void change_idint a=0,findmark=0。int i。int id。printf"nt 请输入要修改老师的编号 :" 。可编辑资料 - - - 欢迎下载精品名师归纳总结scanf"%d",&id。fori=a。i<num。i+ifid=teai.numberprintf"nt*以下是你要删除的老师工资信息 *n"。findmark+。printf"nt 编号: %d",teai.number。printf"nt 姓名: %s",teai.name。printf"nt 基本工资 : %.5f",teai.salary 。printf"nt 津贴: %.5f",teai.allowance 。printf"nt 生活补贴 : %.5f",teai.life 。printf"nt 电话费: %.5f",teai.tel 。printf"nt 水电费: %.5f",teai.utilities 。printf"nt 房租: %.5f",teai.rent 。printf"nt 所得税: %.5f",teai.due。printf"nt 卫生费: %.5f",teai.health。printf"nt 公积金: %.5f",teai.fund 。printf"nt 应发工资 : %.5f",teai.should 。printf"nt 合计扣款 : %.5f",teai.total 。printf"nt 实发工资 : %.5f",teai.actual 。i=i。break。elsecontinue。printf"nt 请重新输入以下信息 :n"。printf" 请输入老师号: "。scanf"%d",&teanum.number。可编辑资料 - - - 欢迎下载精品名师归纳总结printf" 请输入老师姓名 :" 。scanf"%s",teanum.name。 printf" 请输入老师基本工资: "。scanf"%f",&teanum.salary 。printf" 请输入老师的津贴: "。scanf"%f",&teanum.allowance 。printf" 请输入老师的生活补贴: "。scanf"%f",&teanum.life 。printf" 请输入老师的电话费: "。scanf"%f",&teanum.tel 。printf" 请输入老师的水电费: "。scanf"%f",&teanum.utilities 。printf" 请输入老师的房租: "。scanf"%f",&teanum.rent 。printf" 请输入老师的所得税: "。scanf"%f",&teanum.due 。printf" 请输入老师的卫生费: "。scanf"%f",&teanum.health 。printf" 请输入老师的公积金: "。scanf"%f",&teanum.fund 。teanum.should =teanum.salary +teanum.allowance +teanum.life。teanum.total=teanum.tel+teanum.utilities+teanum.rent+teanum.due+teanum.health+teanum.fund。teanum.actual=teanum.should-teanum.total。printf"nt 以下是你修改后的老师工资信息 :n"。findmark+。printf"nt"。 printf"nt 编号: %d",teai.number。printf"nt 姓名: %s",teai.name。可编辑资料 - - - 欢迎下载精品名师归纳总结printf"nt 基本工资 : %.5f",teai.salary 。printf"nt