教师工资管理系统C语言.docx_第1页
教师工资管理系统C语言.docx_第2页
教师工资管理系统C语言.docx_第3页
教师工资管理系统C语言.docx_第4页
教师工资管理系统C语言.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

教师工资管理系统C语言#include#include#include#includetypedef struct teacherchar name32;char unit32;char sex4;char address32;long number,phone;float salary,allowance,tax,call,waterandele,rent,clean,gong,koukuan,total;struct teacher *next;TEACHER; /节点的结构体,包含数据和指针.TEACHER *head;/头节点void init() /初始化头节点并从文件中读取数据存入链表 head=(TEACHER *)malloc(sizeof(TEACHER);head-next=NULL;FILE *f_p;if(f_p = fopen(teacher.txt,a+) != NULL)fseek(f_p,0L,SEEK_END);int len = ftell(f_p);rewind(f_p);while(len!=0&!feof(f_p)TEACHER *node=(TEACHER *)malloc(sizeof(TEACHER);fscanf(f_p,%s%s%s%s%ld%ld,node-name,node-sex,node-unit,node-address,&node-number,&node-phone);fscanf(f_p,%f%f%f%f,&node-salary,&node-allowance,&node-tax,&node-call);fscanf(f_p,%f%f%f%f%f%f,&node-waterandele,&node-rent,&node-clean,&node-gong,&node-koukuan,&node-total);node-next = head-next;head-next = node;fclose(f_p);TEACHER *search(char *s) /遍历整个链表并打印数据TEACHER *nod=head-next;/把头节点赋值给nod节点while(nod != NULL)/循环到最后一个节点if(!strcmp(nod-name,s) | (!strcmp(nod-unit,s)printf(姓名:%sn性别: %sn单位:%sn家庭住址:%sn教师号:%ldn电话号:%ldn,nod-name,nod-sex,nod-unit,nod-address,nod-number,nod-phone);printf(基本工资:%.2fn津贴:%.2fn扣税:%.2fn话费:%.2fn,nod-salary,nod-allowance,nod-tax,nod-call);printf(水电费:%.2fn房租:%.2fn卫生费:%.2fn公积金:%.2fn,nod-waterandele,nod-rent,nod-clean,nod-gong);printf(合计扣款:%.2fn实发工资:%.2fn,nod-koukuan,nod-total);return nod;/返回到第一个nod节点else nod = nod-next;/跳出循环printf(未找到数据!n);return NULL;int addmenu()/添加教师信息子菜单TEACHER *node;char command;system(cls);printf(*n);printf(* 添加子菜单 *n);printf(*n);printf(* 功能:4.返回主菜单 5.添加 *n);printf(* 请选择需要使用的功能: *n);printf(*n);fflush(stdin);while(command=getchar()!=4)printf(添加信息:n);node=(TEACHER *)malloc(sizeof(TEACHER);fflush(stdin);printf(姓名:);fflush(stdin);gets(node-name);printf(性别:);gets(node-sex);fflush(stdin);printf(单位:);fflush(stdin);gets(node-unit);printf(家庭住址:);gets(node-address);fflush(stdin);printf(教师号:);fflush(stdin);scanf(%ld,&node-number);printf(电话号码:);scanf(%ld,&node-phone); fflush(stdin);printf(基本工资:);scanf(%f,&node-salary);fflush(stdin);printf(津贴:);scanf(%f,&node-allowance);fflush(stdin);printf(扣税:);scanf(%f,&node-tax);fflush(stdin);printf(话费:);scanf(%f,&node-call);fflush(stdin);printf(水电费:);scanf(%f,&node-waterandele);fflush(stdin);printf(房租:);scanf(%f,&node-rent);fflush(stdin);printf(卫生费:);scanf(%f,&node-clean);fflush(stdin);printf(公积金:);scanf(%f,&node-gong);fflush(stdin);node-koukuan = node-tax + node-call + node-waterandele + node-rent + node-clean + node-gong;node-total = node-salary + node-allowance - node-koukuan;node-next = head-next;head-next = node;printf(输入c退出,其他字符继续n);if(command=getchar()=c)break;return 0;bool save()/保存教师信息函数TEACHER *nod = head-next;FILE *fp;/定义文件指针if(fp=fopen(teacher.txt,w) = NULL)printf(打开文件异常n);return false;elsewhile(nod != NULL)/打开teacher这个文件并写入信息fprintf(fp,%s %s %s %s %ld %ld ,nod-name,nod-sex,nod-unit,nod-address,nod-number,nod-phone);fprintf(fp,%.2f %.2f %.2f %.2f ,nod-salary,nod-allowance,nod-tax,nod-call);fprintf(fp,%.2f %.2f %.2f %.2f %.2f %.2f,nod-waterandele,nod-rent,nod-clean,nod-gong,nod-koukuan,nod-total);if(nod-next!=NULL)fprintf(fp,n);nod = nod-next;fclose(fp);return true;bool modify()/修改教师信息函数char name16;printf(请输入需修改教师的姓名:);scanf(%s,name);TEACHER *nod=head-next;while(nod != NULL)if(!strcmp(nod-name,name)printf(请输入新信息:n);printf(姓名:);fflush(stdin);gets(nod-name);printf(性别:);gets(nod-sex);fflush(stdin);printf(单位:);fflush(stdin);gets(nod-unit);printf(家庭住址:);fflush(stdin);gets(nod-address);printf(教师号:);fflush(stdin);scanf(%ld,&nod-number);printf(电话号码:); fflush(stdin);scanf(%ld,&nod-phone);printf(基本工资:);scanf(%f,&nod-salary);fflush(stdin);printf(津贴:);scanf(%f,&nod-allowance);fflush(stdin);printf(扣税:);scanf(%f,&nod-tax);fflush(stdin);printf(话费:);scanf(%f,&nod-call);fflush(stdin);printf(水电费:);scanf(%f,&nod-waterandele);fflush(stdin);printf(房租:);scanf(%f,&nod-rent);fflush(stdin);printf(卫生费:);scanf(%f,&nod-clean);fflush(stdin);printf(公积金:);scanf(%f,&nod-gong);fflush(stdin);nod-koukuan = nod-tax + nod-call + nod-waterandele + nod-rent + nod-clean + nod-gong;nod-total = nod-salary + nod-allowance - nod-koukuan;return true;nod = nod-next;return false;bool Delete()/删除教师信息函数char name16;printf(请输入需删除教师的姓名:);scanf(%s,name);fflush(stdin);TEACHER *delete_nod = head;while(delete_nod-next)if(!strcmp(delete_nod-next-name,name)TEACHER *wait_delete_nod = delete_nod-next;delete_nod-next = wait_delete_nod-next;free(wait_delete_nod);return true;delete_nod = delete_nod-next;return false;int searchmenu()/查寻教师信息菜单char name16;char command;system(cls);printf(|-|n);printf(| 查询和修改子菜单 |n);printf(|-|n);printf(|功能:4.返回主菜单 5.通过姓名/单位查找 6.修改 7.删除 |n);printf(|-|n);fflush(stdin);printf(请输入需要实现的操作:);while(command=getchar() !=4)switch(command)case 5: printf(请输入需要查找的姓名/单位:);fflush(stdin);gets(name);fflush(stdin);search(name);break;case 6: if(modify()printf(修改成功!n);elseprintf(未查询到该教师!请重试.n);break;case 7:if(Delete()printf(删除成功!n);elseprintf(未查询到该教师!请重试.n);break;fflush(stdin);printf(请输入需要实现的操作:);return 0;int menu()/系统欢迎界面char command;system(cls);printf(*-*n);printf(* 欢迎进入教师工资管理系统 *n);printf(*-*n);printf(*功能:1.添加 2.查询/修改 3.保存 4.退出n); printf(*-*n);printf(* 本系统由XXX所编 *n); printf(*-*n);printf( 请输入需要实现的操作: n);while(command=getchar()!=4)switch(command)case 1: addmenu(); break;case 2: searchmenu();break;case 3:bool judge=save();if(judge)printf(保存成功!n);elseprintf(保存失败!n

温馨提示

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

评论

0/150

提交评论