版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教师工资管理系统C实现教师工资管理系统C实现教师工资管理系统C实现教师工资管理系统C实现编制仅供参考审核批准生效日期地址:电话:传真:邮编:教师工资管理系统一.选题背景二.需求分析一、设计选题与目标1.选题要求:教师工资管理系统每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。A、教师信息处理(1)输入教师信息 (2)插入(修改)教师信息:(3)删除教师信息:(4)浏览教师信息:提示:具体功能及操作参考题1。B、教师数据处理:(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2)教师实发工资、应发工资、合计扣款计算。提示:计算规则如题目。(3)教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4)教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。(5)教师综合信息输出提示:输出教师信息到屏幕。2.目标教师数据处理:(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。(2)教师实发工资、应发工资、合计扣款计算。计算规则如题目。(3)教师数据管理 输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4)教师数据查询: 输入教师号或其他信息,即读出所有数据信息,并显示出来。(5)教师综合信息输出输出教师信息到屏幕三.总体设计利用六个模块分别实现教师信息的输入,修改,删除,查询,保存以及信息文件的读入功能。并使用不同的函数实现不同的功能。使用链表存储及处理数据。程序流程图如下:输出界面输出界面选择操作选择1输入数据Break选择2修改数据break选择3删除数据B选择3删除数据Break选择4选择5查询数据保存退出数据BreakBreak输出:无效选项Break结束四.详细设计1.功能模块共分为六个模块:输入教师信息模块在主菜单中运用结构体teacher,输入教师信息,首先建立链表,将用户信息储存到链表中,输入完成后提示用户是否继续输入,如果用户输入“Y”,则再次调用,实现继续输入教师信息的操作。如果用户输入”NO“,则返回主菜单界面。修改教师信息模块在主函数中调用voidchange_id(),修改记录操作需要对数组中目标元素的数据域中的值进行操作。首先请用户输入要修改的教师编号,然后若找到该记录就提示用户输入各个信息。删除教师信息模块在主函数中调用voiddelete_id(),以删除教师信息,首先按学号查询教师信息,如果没有找到教师信息,给出提示。如果找到教师信息,将教师信息显示出来,提示用户删除。查询教师信息查询分三种,调用voidshow_all()显示所有教师信息;调用voidsearch_id()按编号查询教师信息;调用voidsearch_name()按姓名查询教师信息。读入教师信息文件模块调用voidreadfromfile()函数从文件导入教师信息保存并退出模块调用voidwritetofile()写入文件。2.函数的设计与调用(1)主函数的设计编写主函数的主要任务就是确定调用函数以及控制屏幕显示。(2)其他函数1)原型voidshow_all;功能展出所有录入文件参数无返回值无工作方式调用charname[10];floatsalary;floatallowance;floatlife;floattel;floatutilities;floatrent;floatdue;floathealth;floatfund;floattotal;floatshould;floatactual;2)原型voidtea_new功能创建新的信息录入参数无返回值无工作方式创建file3)原型voidsearchmenu;功能查找菜单参数无返回值无工作方式调用voidsearch_id;voidsearch_name;4)原型voidsearch_id;功能查找信息按编号查找参数无返回值整个信息工作方式调用number5)原型voidsearch_name;功能查找信息按姓名查找参数无返回值整个信息工作方式调用charname6)原型voiddelete_id功能删除数据按编号删除参数无返回值无工作方式调用id7)原型voidchange_id;功能改变数据按编号改参数无返回值整个录入信息工作方式调用idshow_allreadfromfileshow_allreadfromfilesearchmenusearchmenuMainmenuMainmenusearch_idsearch_idsearch_namewritetofilesearch_namewritetofiletea_newtea_newdelete_id(delete_id(change_idchange_id3.数据结构的设计定义结构体teacher,用于存放教师的信息。structteacher{ intnumber;教师编号 charname[10];教师姓名floatsalary;教师基本工资floatallowance;教师津贴floatlife;教师生活补贴floattel;教师电话费floatutilities;教师水电费floatrent;教师房租floatdue;教师所得税floathealth;教室卫生费floatfund;教师公积金 floattotal;教师合计扣款 floatshould;教师应发工资 floatactual;教师实发工资}tea[500];4.算法实现链表是算法的关键。在添加新的数据时,可以表头插入也可以表尾插入,这两种插入方法决定了其他成员函数数据的处理。本系统中采取的是表尾插入的方法。在删除某信息时需要判断数据是在表头,表中还是表尾,如果删除的是在表中,则需要将删除的前后链表连接起来。统大量运用了链表的5种基本操作:建立链表、链表的插入、删除、输入和查找。5.程序清单#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>/*教师工资管理系统结构体定义*/structteacher{ intnumber; charname[10];floatsalary;floatallowance;floatlife;floattel;floatutilities;floatrent;floatdue;floathealth;floatfund; floattotal; floatshould; floatactual;}tea[500];intnum=0;FILE*fp;voidmainmenu(); voidreadfromfile(); voidwritetofile(); voidshow_all(); voidtea_new(); voidsearchmenu(); voidsearch_id(); voidsearch_name(); voiddelete_id(); voidchange_id(); voidmain(){ readfromfile(); while(1) { mainmenu(); }}//主菜单voidmainmenu(){ charchoic;system("cls");printf("\t----------------欢迎使用\(^o^)/~-------------------\n");printf("\t****************教师工资管理系统******************\n\n");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(choic) { 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(); }}//从文件导入voidreadfromfile(){ if((fp=fopen("teacher.bin","rb"))==NULL) { printf("\n\t教师工资信息文件不存在哟(*/ω╲*)"); if((fp=fopen("teacher.bin","wb"))==NULL) { printf("\n\t建立失败"); exit(0); } else { printf("\n\t教师工资信息文件已建立(~o ̄3 ̄)~"); printf("\n\t按回车键进入主菜单"); getch(); return; } exit(0); } fseek(fp,0,2); if(ftell(fp)>0) { rewind(fp); for(num=0;!feof(fp)&&fread(&tea[num],sizeof(structteacher),1,fp);num++); printf("\n\t教师工资信息文件导入成功(* ̄3 ̄)╭"); printf("\n\t文件中无任何记录(=@__@=)"); printf("\n\t按回车键进入主菜单"); getch(); return; }}//写入文件voidwritetofile(){ inti;if((fp=fopen("teacher.bin","wb"))==NULL) { printf("\n\t打开文件失败(*/ω╲*)"); } for(i=0;i<num;i++) { if(fwrite(&tea[i],sizeof(structteacher),1,fp)!=1) { printf("\n\t文件写入错误!(>﹏<)\n"); } } fclose(fp); printf("\n\t教师工资信息文件已保存"); printf("\n\t按任意键退出程序(* ̄ω ̄)\n\t"); exit(0);}//添加记录voidtea_new(){ printf("请输入教师号:"); scanf("%d",&tea[num].number); printf("请输入教师姓名:"); scanf("%s",tea[num].name); printf("请输入教师基本工资:"); scanf("%f",&tea[num].salary); printf("请输入教师的津贴:"); scanf("%f",&tea[num].allowance); printf("请输入教师的生活补贴:"); scanf("%f",&tea[num].life); printf("请输入教师的电话费:"); scanf("%f",&tea[num].tel); printf("请输入教师的水电费:"); scanf("%f",&tea[num].utilities); printf("请输入教师的房租:"); scanf("%f",&tea[num].rent); printf("请输入教师的所得税:"); scanf("%f",&tea[num].due); printf("请输入教师的卫生费:"); scanf("%f",&tea[num].health); printf("请输入教师的公积金:"); scanf("%f",&tea[num].fund); tea[num].should=tea[num].salary+tea[num].allowance+tea[num].life; tea[num].total=tea[num].tel+tea[num].utilities+tea[num].rent+tea[num].due+tea[num].health+tea[num].fund; tea[num].actual=tea[num].should-tea[num].total; num++; printf("是否继续添加(Y/N)");
if(getch()=='y')tea_new();return;}//查询菜单voidsearchmenu(){charchoic;system("cls");printf("\n\t------------查询-------------------");printf("\n\t--------[1]显示所有----------------");printf("\n\t--------[2]按编号查询--------------");printf("\n\t--------[3]按姓名查询--------------");printf("\n\t--------[4]返回主菜单--------------");printf("\n\t请选择:\n");choic=getch();switch(choic) {case'1':show_all();break; case'2':search_id();break; case'3':search_name();break;case'4':mainmenu();break; }}//显示所有voidshow_all(){inti;system("cls");if(num!=0) {for(i=0;i<num;i++) {printf("\n\t编号:%d",tea[i].number);printf("\n\t姓名:%s",tea[i].name);printf("\n\t基本工资:%.5f",tea[i].salary);printf("\n\t津贴:%.5f",tea[i].allowance);printf("\n\t生活补贴:%.5f",tea[i].life);printf("\n\t电话费:%.5f",tea[i].tel);printf("\n\t水电费:%.5f",tea[i].utilities);printf("\n\t房租:%.5f",tea[i].rent);printf("\n\t所得税:%.5f",tea[i].due);printf("\n\t卫生费:%.5f",tea[i].health);printf("\n\t公积金:%.5f",tea[i].fund);printf("\n\t应发工资:%.5f",tea[i].should);printf("\n\t合计扣款:%.5f",tea[i].total);printf("\n\t实发工资:%.5f",tea[i].actual);if(i+1<num) {printf("\n\t_____________________");system("pause"); } }printf("\n\t*************************************"); }elseprintf("\n\t文件中无记录┭┮﹏┭┮");printf("\n\t按回车键回到主菜单");getch();return;}//按编号查询voidsearch_id(){intmark=0;inti,a=0;intid;printf("\n\t请输入编号:");scanf("%d",&id);for(i=0;i<num;i++) {if(id==tea[i].number) {printf("\n\t******以下是你要查找的教师工资信息******\n");printf("\n\t编号:%d",tea[i].number);printf("\n\t姓名:%s",tea[i].name);printf("\n\t基本工资:%.5f",tea[i].salary);printf("\n\t津贴:%.5f",tea[i].allowance);printf("\n\t生活补贴:%.5f",tea[i].life);printf("\n\t电话费:%.5f",tea[i].tel);printf("\n\t水电费:%.5f",tea[i].utilities);printf("\n\t房租:%.5f",tea[i].rent);printf("\n\t所得税:%.5f",tea[i].due);printf("\n\t卫生费:%.5f",tea[i].health);printf("\n\t公积金:%.5f",tea[i].fund);printf("\n\t应发工资:%.5f",tea[i].should);printf("\n\t合计扣款:%.5f",tea[i].total);printf("\n\t实发工资:%.5f",tea[i].actual);printf("\n\t*************************************");printf("\n\t按回车键回到主菜单");mark++;getch();return; } }if(mark==0) {printf("\n\t没有该编号的信息");printf("\n\t按回车键返回主菜单");getch();return; }}//按姓名查询voidsearch_name(){intmark=0;inti,a=0;charname[10];printf("请输入姓名:");scanf("%s",name);for(i=a;i<num;i++) {if(strcmp(tea[i].name,name)==0) {printf("\n\t******以下是你要查找的教师工资信息******\n");printf("\n\t编号:%d",tea[i].number);printf("\n\t姓名:%s",tea[i].name);printf("\n\t基本工资:%.5f",tea[i].salary);printf("\n\t津贴:%.5f",tea[i].allowance);printf("\n\t生活补贴:%.5f",tea[i].life);printf("\n\t电话费:%.5f",tea[i].tel);printf("\n\t水电费:%.5f",tea[i].utilities);printf("\n\t房租:%.5f",tea[i].rent);printf("\n\t所得税:%.5f",tea[i].due);printf("\n\t卫生费:%.5f",tea[i].health);printf("\n\t公积金:%.5f",tea[i].fund);printf("\n\t应发工资:%.5f",tea[i].should);printf("\n\t合计扣款:%.5f",tea[i].total);printf("\n\t实发工资:%.5f",tea[i].actual);printf("\n\t*************************************");mark++;if((i+1)<num) {printf("\t\n是否继续查找相同名字的教师信息:(y/n)");if(getch()=='y') {a=i;continue; }elsereturn; }else {printf("\n\t按回车键返回主菜单");getch();return; } } }if(mark!=0) {printf("\n\t没有相同姓名的教师信息记录");printf("\n\t按回车键回到主菜单");getch();return; }else {printf("\n\t没有相同姓名的教师信息记录");printf("\n\t按回车键回到主菜单");getch();return; }}//删除菜单voiddelete_id(){inti,j;intdeletemark=0;intid;printf("\n\t情输入要删除的编号:");scanf("%d",&id);if(num==0) {printf("\n\t对不起,文件中无任何教师工资信息记录");printf("\n\t按回车键回到主菜单");getch();return; }for(i=0;i<num;i++) {if(id==tea[i].number) {printf("\n\t******以下是你要删除的教师工资信息******\n");printf("\n\t编号:%d",tea[i].number);printf("\n\t姓名:%s",tea[i].name);printf("\n\t基本工资:%.5f",tea[i].salary);printf("\n\t津贴:%.5f",tea[i].allowance);printf("\n\t生活补贴:%.5f",tea[i].life);printf("\n\t电话费:%.5f",tea[i].tel);printf("\n\t水电费:%.5f",tea[i].utilities);printf("\n\t房租:%.5f",tea[i].rent);printf("\n\t所得税:%.5f",tea[i].due);printf("\n\t卫生费:%.5f",tea[i].health);printf("\n\t公积金:%.5f",tea[i].fund);printf("\n\t应发工资:%.5f",tea[i].should);printf("\n\t合计扣款:%.5f",tea[i].total);printf("\n\t实发工资:%.5f",tea[i].actual);printf("\n\t是否删除(y/n)");
if(getch()=='y') {for(j=i;j<num-1;j++)tea[j]=tea[j+1];num--;deletemark++;printf("\n\t删除成功");printf("\n\t是否继续删除(y/n)");
if(getch()=='y')delete_id();return; }elsereturn; }continue; }if(deletemark==0) {printf("\n\t没有该教师的记录");printf("\n\t是否继续删除(y/n)");
if(getch()=='y')delete_id(); }}//修改菜单voidchange_id(){inta=0,findmark=0;inti;intid;printf("\n\t请输入要修改教师的编号:");scanf("%d",&id);for(i=a;i<num;i++) {if(id==tea[i].number) {printf("\n\t******以下是你要修改的教师工资信息******\n");findmark++;printf("\n\t编号:%d",tea[i].number);printf("\n\t姓名:%s",tea[i].name);printf("\n\t基本工资:%.5f",tea[i].salary);printf("\n\t津贴:%.5f",tea[i].allowance);printf("\n\t生活补贴:%.5f",tea[i].life);printf("\n\t电话费:%.5f",tea[i].tel);printf("\n\t水电费:%.5f",tea[i].utilities);printf("\n\t房租:%.5f",tea[i].rent);printf("\n\t所得税:%.5f",tea[i].due);printf("\n\t卫生费:%.5f",tea[i].health);printf("\n\t公积金:%.5f",tea[i].fund);printf("\n\t应发工资:%.5f",tea[i].should);printf("\n\t合计扣款:%.5f",tea[i].total);printf("\n\t实发工资:%.5f",tea[i].actual);i=i; break; }elsecontinue; }printf("\n\t请重新输入以下信息:\n");printf("请输入教师号:"); scanf("%d",&tea[num].number); printf("请输入教师姓名:"); scanf("%s",tea[num].name); printf("请输入教师基本工资:"); scanf("%f",&tea[num].salary); printf("请输入教师的津贴:"); scanf("%f",&tea[num].allowance); printf("请输入教师的生活补贴:"); scanf("%f",&tea[num].life); printf("请输入教师的电话费:"); scanf("%f",&tea[num].tel); printf("请输入教师的水电费:"); scanf("%f",&tea[num].utilities); printf("请输入教师的房租:"); scanf("%f",&tea[num].rent); printf("请输入教师的所得税:"); scanf("%f",&tea[num].due); printf("请输入教师的卫生费:"); sc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 果品综合检测财务报表预测
- 农资营销半年工作总结(5篇)
- 土木地质实习报告
- 关于质量安全承诺书范文集合六篇
- 高考数学复习解答题提高第一轮专题复习专题01数列求通项(数列前n项和Sn法、数列前n项积Tn法)(典型题型归类训练)(学生版+解析)
- 专题8.1 统计和概率的简单应用(例题讲解)-2022-2023学年九年级数学下册基础知识专项讲练(苏科版)
- xx学校加强预防未成年人被侵害和违法犯罪工作的实施方案
- 语文统编版(2024)一年级上册识字5 对韵歌(新) 教案
- 华师《现代汉语语法与修辞》在线作业
- 部编版历史八年级上册第八单元 第26课《教育文化事业的发展》检测卷(后附答案及解析)
- 2024年认证行业法律法规及认证基础知识 CCAA年度确认 试题与答案
- 外贸 发票 invoice 形式发票
- 工作量确认单
- 风机项目可行性报告-范文模板
- 注册一级结构工程师基础考试知识点汇总
- 邛崃市征地补偿安置实施办法
- 心经上中下三卷完整注音版
- 完整版建筑工程专业术语及名词解释
- C语言实现的socket5代理
- 加强事业单位监督管理工作的实践与思考
- 音响行业设计标准总结
评论
0/150
提交评论