《教师工资管理系统C实现.pdf》由会员分享,可在线阅读,更多相关《教师工资管理系统C实现.pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!教师工资管理系统 一选题背景 二需求分析 一、设计选题与目标 1。选题要求:教师工资管理系统 每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资.注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资合计扣款。A、教师信息处理(1)输入教师信息 (2)插入(修改)教师信息:(3)删除教师信息:(4)浏览教师信息:提示:具体功能
2、及操作参考题 1.B、教师数据处理:(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2)教师实发工资、应发工资、合计扣款计算。提示:计算规则如题目。(3)教师数据管理 提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!入文件(4)教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。(5)教师综合信息输出 提示:输出教师信息到屏幕。2。目标 教师数据处理:(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、
3、水电费、房租、所得税、卫生费、公积金等基本数据。(2)教师实发工资、应发工资、合计扣款计算。计算规则如题目。(3)教师数据管理 输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4)教师数据查询:输入教师号或其他信息,即读出所有数据信息,并显示出来。(5)教师综合信息输出 输出教师信息到屏幕 三总体设计 利用六个模块分别实现教师信息的输入,修改,删除,查询,保存以及信息文件的读入功能。并使用不同的函数实现不同的功能.使用链表存储及处理数据.程序流程图如下:欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!选择 3 删除数据 Break
4、 选择 4 选择 5 查询数据 保存退出Break Break 输出:无效选项 Break 结束 输出界面 选择操作 选择 1 输入数据 Break 选择 2 修改数据 break 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!float fund;1float total;float should;float actual;2)原型 void tea_new 功能 创建新的信息录入 参数 无 返回值 无 工作方式 创建 file 3)原型 void s
5、earchmenu;功能 查找菜单 参数 无 返回值 无 工作方式 调用 void search_id;void search_name;4)原型 void search_id;功能 查找信息 按编号查找 参数 无 返回值 整个信息 工作方式 调用 number 5)原型 void search_name;功能 查找信息 按姓名查找 参数 无 返回值 整个信息 工作方式 调用 char name 6)原型 void delete_id 功能 删除数据 按编号删除 参数 无 返回值 无 工作方式 调用 id 7)原型 void change_id;功能 改变数据 按编号改 欢迎您阅读并下载本文档
6、,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!参数 无 返回值 整个录入信息 工作方式 调用 id 3。数据结构的设计 定义结构体 teacher,用于存放教师的信息。struct teacher int number;教师编号 char name10;教师姓名 float salary;教师基本工资 float allowance;教师津贴 float life;教师生活补贴 float tel;教师电话费 float utilities;教师水电费 float rent;教师房租 float due;教师所得税 float health;教室卫生费 float f
7、und;教师公积金 float total;教师合计扣款 Mainmenu readfromfile writetofile show_all tea_new searchmenu search_id search_name delete_id(change_id 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!float should;教师应发工资 float actual;教师实发工资 tea500;4.算法实现 链表是算法的关键.在添加新的数据时,可以表头插入也可以表尾插入,这两种插入方法决定了其他成员函数数据的处理.本系统中采取的是表尾插入
8、的方法。在删除某信息时需要判断数据是在表头,表中还是表尾,如果删除的是在表中,则需要将删除的前后链表连接起来。统大量运用了链表的5种基本操作:建立链表、链表的插入、删除、输入和查找。5.程序清单 includestdio.h includestring.h#include includeconio。h/*教师工资管理系统结构体定义/struct teacher int number;char name10;float salary;float allowance;float life;float tel;float utilities;float rent;float due;float he
9、alth;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();
10、void main()readfromfile();while(1)mainmenu();/主菜单 void mainmenu()char choic;system(”cls);printf(t-欢迎使用(o)/-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();switch(cho
11、ic)case1:tea_new();break;case2:change_id();break;case3:delete_id();break;case4:searchmenu();break;case5:writetofile();break;default:mainmenu();/从文件导入 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!void readfromfile()if((fp=fopen(”teacher.bin,rb”))=NULL)printf(nt 教师工资信息文件不存在哟(/*));if(fp=fopen(”teache
12、r。bin,wb”)=NULL)printf(nt 建立失败”);exit(0);else printf(”nt 教师工资信息文件已建立(o3)”);printf(nt 按回车键进入主菜单”);getch();return;exit(0);fseek(fp,0,2);if(ftell(fp)0)rewind(fp);for(num=0;!feof(fp)fread(teanum,sizeof(struct teacher),1,fp);num+);printf(nt 教师工资信息文件导入成功(*3)”);printf(nt 文件中无任何记录(=_=));printf(nt 按回车键进入主菜单)
13、;getch();return;/写入文件 void writetofile()int i;if(fp=fopen(teacher。bin,”wb”))=NULL)printf(nt 打开文件失败(/);for(i=0;inum;i+)if(fwrite(teai,sizeof(struct teacher),1,fp)!=1)printf(nt 文件写入错误!()n”);欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!fclose(fp);printf(nt 教师工资信息文件已保存);printf(”nt 按任意键退出程序(*)nt);exit(
14、0);/添加记录 void tea_new()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(”请输入教师的水电
15、费:”);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+t
16、eanum。rent+teanum.due+teanum。health+teanum.fund;teanum.actual=teanum.should-teanum.total;num+;printf(”是否继续添加?(Y/N)”);if(getch()=y)tea_new();return;/查询菜单 void searchmenu()欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!char choic;system(”cls”);printf(”nt-查询-”);printf(”nt-1显示所有-”);printf(”nt-2按编号查询-”);
17、printf(”nt-3按姓名查询-);printf(nt-4返回主菜单-);printf(”nt 请选择:n”);choic=getch();switch(choic)case1:show_all();break;case2:search_id();break;case3:search_name();break;case4:mainmenu();break;/显示所有 void show_all()int i;system(cls”);if(num!=0)for(i=0;inum;i+)printf(”nt 编号:%d,teai.number);printf(”nt 姓名:%s”,teai.
18、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
19、 应发工资:%.5f,teai。should);printf(nt 合计扣款:%.5f,teai。total);printf(nt 实发工资:%.5f,teai。actual);if(i+1num)printf(”nt_);欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!system(”pause);printf(nt*);else printf(”nt 文件中无记录);printf(”nt 按回车键回到主菜单);getch();return;/按编号查询 void search_id()int mark=0;int i,a=0;int id;pr
20、intf(”nt 请输入编号:”);scanf(”d”,&id);for(i=0;inum;i+)if(id=teai.number)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
21、”,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();欢迎您阅读并下载本
22、文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!return;if(mark=0)printf(”nt 没有该编号的信息);printf(”nt 按回车键返回主菜单);getch();return;/按姓名查询 void search_name()int mark=0;int i,a=0;char name10;printf(”请输入姓名:);scanf(”s”,name);for(i=a;inum;i+)if(strcmp(teai.name,name)=0)printf(nt*以下是你要查找的教师工资信息*n”);printf(”nt 编号:%d,teai。nu
23、mber);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);print
24、f(”nt 公积金:%。5f”,teai.fund);printf(”nt 应发工资:%.5f,teai。should);printf(”nt 合计扣款:.5f,teai。total);printf(nt 实发工资:.5f”,teai。actual);printf(nt*);mark+;if((i+1)num)printf(tn 是否继续查找相同名字的教师信息:(y/n);欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!if(getch()=y)a=i;continue;else return;else printf(”nt 按回车键返回主菜单);
25、getch();return;if(mark!=0)printf(nt 没有相同姓名的教师信息记录”);printf(”nt 按回车键回到主菜单);getch();return;else printf(”nt 没有相同姓名的教师信息记录”);printf(nt 按回车键回到主菜单”);getch();return;/删除菜单 void delete_id()int i,j;int deletemark=0;int id;printf(nt 情输入要删除的编号:);scanf(%d,&id);if(num=0)printf(nt 对不起,文件中无任何教师工资信息记录”);printf(”nt 按
26、回车键回到主菜单”);getch();return;欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!for(i=0;inum;i+)if(id=teai.number)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
27、(”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
28、/n)”);if(getch()=y)for(j=i;jnum-1;j+)teaj=teaj+1;num-;deletemark+;printf(”nt 删除成功);printf(”nt 是否继续删除?(y/n)”);if(getch()=y)delete_id();return;else return;continue;if(deletemark=0)printf(”nt 没有该教师的记录);printf(nt 是否继续删除?(y/n));if(getch()=y)delete_id();欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!/修改菜单
29、 void change_id()int a=0,findmark=0;int i;int id;printf(”nt 请输入要修改教师的编号:”);scanf(”%d”,id);for(i=a;inum;i+)if(id=teai.number)printf(”nt*以下是你要修改的教师工资信息*n);findmark+;printf(”nt 编号:%d”,teai。number);printf(”nt 姓名:%s”,teai。name);printf(”nt 基本工资:%.5f,teai。salary);printf(”nt 津贴:%.5f”,teai。allowance);printf(
30、”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”,te
31、ai.actual);i=i;break;else continue;printf(”nt 请重新输入以下信息:n);printf(请输入教师号:”);scanf(”d,&teanum.number);printf(请输入教师姓名:”);scanf(s”,teanum.name);printf(请输入教师基本工资:”);scanf(%f”,&teanum。salary);printf(”请输入教师的津贴:”);scanf(”f,&teanum。allowance);欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!printf(”请输入教师的生活补贴
32、:);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=t
33、eanum。salary+teanum。allowance+teanum。life;tea num.total=teanum.tel+tea num.utilities+tea num.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 基
34、本工资:%。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”,tea
35、i.should);printf(”nt 合计扣款:.5f”,teai。total);printf(”nt 实发工资:。5f,teai。actual);printf(nt_”);printf(”nt 按回车键回到主菜单”);getch();return;欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!五程序运行结果测试 六结论与心得 在设计与编写程序的过程中,我捡起了很多自己以前没有注意到的细节,并对一些知识特别是链表的运用有了更好的掌握,巩固了所学,提升了自己的能力。老师和学长们总是建议我们不要眼高手低,不要一味的看书看例程,要自己去写程序,之前我对此不以为意,经过这次课程设计,我改变了原先的看法。真的是只有你自己去动手编程,才会发现自己是否真正掌握了那些知识,才会对所学的知识有更好的理解与运用能力,并且能加深记忆。此外,动手编程的过程本身对自己就是一种锻炼,只能看懂例程而缺少实际设计编写程序能力与经验的人是不会成为一名合格的程序员的。通过这次课程设计设计我学会了很多,也更加熟悉 c 语言程序设计,从中得到很多乐趣。