教师工资管理系统C语言

上传人:灯火****19 文档编号:65983449 上传时间:2022-03-26 格式:DOCX 页数:8 大小:37.46KB
收藏 版权申诉 举报 下载
教师工资管理系统C语言_第1页
第1页 / 共8页
教师工资管理系统C语言_第2页
第2页 / 共8页
教师工资管理系统C语言_第3页
第3页 / 共8页
资源描述:

《教师工资管理系统C语言》由会员分享,可在线阅读,更多相关《教师工资管理系统C语言(8页珍藏版)》请在装配图网上搜索。

1、教师工资管理系统C语言 #include #include #include #include typedef struct teacher{ char name[32]; char unit[32]; char sex[4]; char address[32]; long number,phone; float salary,allowance,tax,call,waterandele,rent,clean,gong,koukuan,total; struct teacher *next;

2、}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)) {

3、 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,&

4、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))){ pr

5、intf(" 姓名:%s\n 性别 : %s\n 单位:%s\n 家庭住址:%s\n 教师号:%ld\n 电 话号: %ld\n",nod ->name,nod ->sex,nod->unit,nod ->address,nod ->number,nod ->phone); printf(" 基 本 工 资 :%.2f\n 津 贴 :%.2f\n 扣 税 :%.2f\n 话 费: %.2f\n",nod ->salary,nod->allowance,nod ->tax,nod ->call); printf(" 水 电 费 :%.2f\n 房 租 :%.2f\n 卫 生 费 :%.2

6、f\n 公 积 金: %.2f\n",nod ->waterandele,nod ->rent,nod ->clean,nod - >gong); printf(" 合计扣款: %.2f\n 实发工资: %.2f\n",nod ->koukuan,nod ->total); return nod;// 返回到第一个nod 节点 } else nod = nod ->next;// 跳出循环 } printf(" 未找到数据!\n"); return NULL; } int addmenu()// 添加教师信息子菜单 { TEACHER*node; char comman

7、d; system("cls"); printf(" ************************** **\n"); printf("*添加子菜单*\n"); printf(" ************************** **\n"); *\n"); printf("* 功能 :4.返回主菜单5.添加 printf("* 请选择需要使用的功能: *\n"); printf(" ************************** **\n"); fflush(stdin); while((command=getchar())!='4'

8、) { 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)

9、; 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 ->

10、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(" 公积金 :"); scan

11、f("%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(

12、))=='c') break; } return 0; } bool save()// 保存教师信息函数 { TEACHER*nod = head->next; FILE*fp;// 定义文件指针 if((fp=fopen("teacher.txt","w")) == NULL) { printf(" 打开文件异常\n"); return false; } else while(nod != NULL)〃打开teacher这个文件并写入信息 { fprintf(fp,"%s%s%s%s%ld%ld ",nod ->name,nod ->sex,nod->unit,n

13、od ->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 - >go ng,nod ->koukuan,nod ->total); if(nod ->next!=NULL) fprintf(fp,"\n"); nod = n

14、od ->next; } fclose(fp); return true; } bool modify()// 修改教师信息函数 { char name[16]; printf(" 请输入需修改教师的姓名: "); scanf("%s",name); TEACHER*nod=head - >next; while(nod != NULL) { if(!strcmp(nod ->name,name)) { printf(" 请输入新信息: \n"); printf(" 姓名 :"); fflush(stdin); gets(nod - >name); prin

15、tf(" 性别 :"); 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(" 基

16、本工资 :"); 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(std

17、in); 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->

18、salary + nod->allowance - nod ->koukuan; return true; } nod = nod->next; } return false; } bool Delete()// 删除教师信息函数 { char name[16]; printf(" 请输入需删除教师的姓名: "); scanf("%s",name); fflush(stdin); TEACHER*delete_nod = head; while(delete_nod ->next) { if(!strcmp(delete_nod ->next->name,name

19、)) { 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 name[16]; char command; system("cls"); printf("| |\n"); printf("|

20、查询和修改子菜单|\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);

21、 break; case'6': if(modify()) printf(" 修改成功! \n"); else printf(" 未查询到该教师!请重试...\n"); break; case'7': if(Delete()) printf(" 删除成功! \n"); else printf(" 未查询到该教师!请重试...\n"); break; } fflush(stdin); printf(" 请输入需要实现的操作 :"); } return 0; } int menu()// 系统欢迎界面 { char command; system("cl

22、s"); 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': se

23、archmenu();break; case'3': bool judge=save(); if(judge) printf(" 保存成功!\n"); else printf(" 保存失败!\n"); break; } printf(" 请按任意键返回 ...\n"); getch(); fflush(stdin); /* 子函数退出后再次显示主界面*/ system("cls"); printf("| |\n"); printf("|教师工资管理系统|\n"); printf("| |\n"); printf("| 功能 :1.添加 2.查询 /修改 3.保存 4.退出 |\n"); printf("| |\n"); printf("|请输入需要实现的操作:|\n"); printf("| |\n"); } printf("|感谢您使用本系统|\n"); return 0; } int main() { init(); menu(); return 0; }

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

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!