教师工资管理系统C实现_第1页
教师工资管理系统C实现_第2页
教师工资管理系统C实现_第3页
教师工资管理系统C实现_第4页
教师工资管理系统C实现_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、教师工资管理系统一选题背景二需求分析 一、设计选题与目标1.选题要求:教师工资管理系统每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资合计扣款。A、教师信息处理(1)输入教师信息(2) 插入(修改)教师信息:(3) 删除教师信息:(4) 浏览教师信息:提示:具体功能及操作参考题1。B、教师数据处理:(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费

2、、房租、所得税、卫生费、公积金等基本数据。(2) 教师实发工资、应发工资、合计扣款计算。提示:计算规则如题目。(3) 教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4) 教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。(5) 教师综合信息输出提示:输出教师信息到屏幕。2.目标 教师数据处理:(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2) 教师实发工资、应发工资、合计扣款计算。 计算规则如题目。(3) 教师数据管理 输入教师号,读出并显示该教师信息,输入新数据,将改后

3、信息写入文件(4) 教师数据查询:输入教师号或其他信息,即读出所有数据信息,并显示出来。(5) 教师综合信息输出输出教师信息到屏幕三总体设计利用六个模块分别实现教师信息的输入,修改,删除,查询,保存以及信息文件的读入功能。并使用不同的函数实现不同的功能。使用链表存储及处理数据。程序流程图如下:输出界面选择操作选择1输入数据Break选择2修改数据break选择3删除数据Break选择4选择5查询数据保存退出数据BreakBreak输出:无效选项Break结束四详细设计1.功能模块共分为六个模块:(1) 输入教师信息模块 在主菜单中运用结构体teacher,输入教师信息,首先建立链表,将用户信息

4、储存到链表中,输入完成后提示用户是否继续输入,如果用户输入“Y”,则再次调用,实现继续输入教师信息的操作。如果用户输入”NO“,则返回主菜单界面。(2) 修改教师信息模块 在主函数中调用void change_id(),修改记录操作需要对数组中目标元素的数据域中的值进行操作。首先请用户输入要修改的教师编号,然后若找到该记录就提示用户输入各个信息。(3) 删除教师信息模块 在主函数中调用void delete_id(),以删除教师信息,首先按学号查询教师信息,如果没有找到教师信息,给出提示。如果找到教师信息,将教师信息显示出来,提示用户删除。(4) 查询教师信息 查询分三种,调用void sho

5、w_all()显示所有教师信息;调用void search_id()按编号查询教师信息;调用void search_name()按姓名查询教师信息。(5) 读入教师信息文件模块 调用void readfromfile()函数从文件导入教师信息(6) 保存并退出模块调用void writetofile()写入文件。2函数的设计与调用(1)主函数的设计编写主函数的主要任务就是确定调用函数以及控制屏幕显示。(2)其他函数1)原型void show_all;功能 展出所有录入文件参数 无 返回值 无 工作方式 调用 char name10; float salary;float allowance;

6、float life; float tel;float utilities;float rent;float due; float health; float fund; float total; float should; float actual; 2)原型void tea_new功能 创建新的信息录入参数 无返回值 无工作方式 创建file 3)原型void searchmenu;功能 查找菜单参数 无返回值 无工作方式 调用void search_id;void search_name;4)原型void search_id;功能 查找信息 按编号查找参数 无返回值 整个信息工作方式 调

7、用 number5)原型void search_name;功能 查找信息 按姓名查找参数 无返回值 整个信息工作方式 调用char name6)原型void delete_id功能 删除数据 按编号删除参数 无返回值 无工作方式 调用 id 7)原型 void change_id; 功能 改变数据 按编号改参数 无返回值 整个录入信息工作方式 调用 idshow_allreadfromfilesearchmenuMainmenusearch_idsearch_namewritetofiletea_newdelete_id(change_id3.数据结构的设计定义结构体teacher,用于存放教

8、师的信息。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;4.算法实

9、现链表是算法的关键。在添加新的数据时,可以表头插入也可以表尾插入,这两种插入方法决定了其他成员函数数据的处理。本系统中采取的是表尾插入的方法。在删除某信息时需要判断数据是在表头,表中还是表尾,如果删除的是在表中,则需要将删除的前后链表连接起来。统大量运用了链表的5种基本操作:建立链表、链表的插入、删除、输入和查找。5.程序清单#include#include#include #include/*教师工资管理系统结构体定义*/struct teacherint number; char name10; float salary; float allowance; float life; floa

10、t 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 dele

11、te_id(); void change_id(); 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); choi

12、c=getch(); switch(choic) 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(teacher.bin,wb)=NULL)printf(n

13、t建立失败);exit(0);elseprintf(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按回车键进入主菜单);getch(); return; /写入文件void wri

14、tetofile()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(0);/添加记录void tea_new()printf(请输入教师号:);scanf(%d,&teanum.number);printf(请输入教师姓名:);s

15、canf(%s,);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(请输入教师的所得税:

16、);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.tota

17、l; num+;printf(是否继续添加?(Y/N); if(getch()=y) tea_new (); return;/查询菜单void searchmenu() char choic; system(cls); printf(nt-查询-); printf(nt-1显示所有-); printf(nt-2按编号查询-); printf(nt-3按姓名查询-); printf(nt-4返回主菜单-); printf(nt请选择:n); choic=getch(); switch(choic) case1:show_all();break; case2:search_id();break;

18、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,); printf(nt基本工资: %.5f,teai.salary); printf(nt津贴: %.5f,teai.allowance); printf(nt生活补贴: %.5f,teai.life); printf(nt电话费: %.5f,te

19、ai.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); if(i+1num) printf(nt_); system

20、(pause); printf(nt*); else printf(nt文件中无记录); printf(nt按回车键回到主菜单); getch(); return;/按编号查询void search_id() int mark=0; int i,a=0; int id; printf(nt请输入编号:); scanf(%d,&id); for(i=0;inum;i+) if(id=teai.number) printf(nt*以下是你要查找的教师工资信息*n); printf(nt编号: %d,teai.number); printf(nt姓名: %s,); printf(n

21、t基本工资: %.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应发工资: %.

22、5f,teai.should); printf(nt合计扣款: %.5f,teai.total); printf(nt实发工资: %.5f,teai.actual); printf(nt*); printf(nt按回车键回到主菜单); mark+; getch(); 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

23、); for(i=a;inum;i+) if(strcmp(,name)=0) printf(nt*以下是你要查找的教师工资信息*n); printf(nt编号: %d,teai.number); printf(nt姓名: %s,); 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

24、); 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+; if(i+1)num) printf(tn是否继续查找相同名字的教师信息:(y/n); if(getch

25、()=y) a=i;continue; else return; else printf(nt按回车键返回主菜单); 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情输入要删除的编号:); sc

26、anf(%d,&id); if(num=0) printf(nt对不起,文件中无任何教师工资信息记录); printf(nt按回车键回到主菜单); getch(); return; for(i=0;inum;i+) if(id=teai.number) printf(nt*以下是你要删除的教师工资信息*n); printf(nt编号: %d,teai.number); printf(nt姓名: %s,); printf(nt基本工资: %.5f,teai.salary); printf(nt津贴: %.5f,teai.allowance); printf(nt生活补贴: %.

27、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.act

28、ual); printf(nt是否删除?(y/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(); /修改菜单void change_id() in

29、t 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,); printf(nt基本工资: %.5f,teai.salary); printf(nt津贴: %.5f,teai.allowance); printf(nt生活补贴: %.5f,teai.

30、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=

31、i; break; else continue; printf(nt请重新输入以下信息:n); printf(请输入教师号:);scanf(%d,&teanum.number);printf(请输入教师姓名:);scanf(%s,);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);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论