工资信息管理系统_第1页
工资信息管理系统_第2页
工资信息管理系统_第3页
工资信息管理系统_第4页
工资信息管理系统_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

-来源网络-来源网络-来源网络-来源网络精心整理、题目要求工资信息管理系统【要求】该系统能够实现工资信息管理。系统包括录入、浏览、查询计等功能。其中录入功能要求能够添加新的工资信息到文件;览功能要求能按照工资卡号、姓名分类浏览,提供分屏显示;排序功能,排序后按照工资卡号升序或实发工资降序输出;査询功能要求能够按照工资卡号、姓名査询;统计功能要求能够按照月份累计统计某职工在某时间段实发工资总金额。【提示】文件中一行数据对应一个职工工资信息工资信息的数据结构采用结构体数组,一个数组元素对应一条工资单记录工资单信息包括工资卡号、姓名、月份、应发工资、水费、电费、税金、实发工资等实发工资=应发工资-水费-电费-税金,其中税金的计算方法为应发工资<800元,税金=0800<应发工资<1400元,税金=(应发工资-800)*5%应发工资>1400元,税金=(应发工资-1400)*10%另:课程实习报告的参考格式精心整理题目编号写出系统总设计的思路、功能模块划分。给出合理的测试数据及运行结果,要求能够体现程序的正确性和完备性及对错误输入的处理。总结算法或系统的优缺点,给出算法或系统进一步改进的设想。在附录中给出源代码,附录二、需求分析根据题目要求,由于工资单信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要浏览学生的信息,应提供录入、浏览、査询、统计等操作;另外还应提供键盘式选择菜单实现功能选择。三、总体设计根据上面的需求分析,可以将这个系统的设计分为以下几个模块:数据输入,数据添加,数据浏览,数据査询,数据统计。精心整理四、详细设计1.主函数主函数提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。[流程图]图二主函数模块功能流程图[程序]main。/********************主函数**********************/{intn,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单应对数字的范围内*/do{puts("\t\t**********MENU*************************\n\n");puts("\t\t\t\t1.Enternewdata");puts("\t\t\t\t2.addnewdata");puts("\t\t\t\t3・Browseall");puts("\t\t\t\t4.Searchbyname");puts("\t\t\t\t5.Searchbynum");puts("\t\t\t\t6.Countgongzi");puts("\t\t\t\t7.Exit");puts("\n\n\t\t**********************************\n");printf("Choiceyournumber(1-7):[]\b\b");-来源网络精心整理scanf("%d",&n);if(n<l||n>7){w=1;getchar();}/*对选择的数字作判断*/elsew=0;}while(w==1);switch(n){case1:enter();break;/*输入模块*/case2:add();break;/*添加模块*/case3:browse();break;/*浏览模块*/case4:search_name();break;/*查询模块*/case5:search_num();break;/*查询模块*/case6:count();break;/*统计模块*/case7:exit(0);break;/*退出*/}/*其中4和5两个模块式在查询要求的基础上加上的模块*/}2.各功能模块设计输入函数【分析】单独看各数据信息,姓名是字符型,可以采用字符型数组;工资号和月份是整数,采用整型;实发工资,水费,电费,税金,应发工资有可能是小数可采用实型。数据信息存放在文件中,一条记录对应一个职工的工资单信息,既符合习惯也方便信息管理同时把职工的工资卡号,姓名,月份,应发工资,水费,电费,精心整理税金,实发工资作为结构体成员,用结构体数组存放若干个职工的工资信息。structgz{intnum;charname[20];intmonth;longys;longss;longwf;longef;longtax;}g[N];/*g[N]中每个数组元素对应一个职工*/【流程图】图三输入模块流程图【程序】enter()-来源网络精心整理{inti,n;printf("Howmanygongzixinxi(0-%d)?:",N-1);scanf("%d",&n);printf("\nEnterdatanow\n\n");for(i=0;i<n;i++){printf("\nInput%dthgongzirecord・\n",i+1);input(i);}sort。;if(i!=O)save(n);printf_back();}添加模块【分析】该模块的功能是用户需要增加新的职工工资信息记录,从键盘输入并逐条写入到原来的输入文件中,注意采用追加而不是覆盖的方式。【流程图】精心整理图四添加模块流程图【程序】add(){inti,n,m,k;FILE*fp;n=load();printf("Hoemangpeopleareyouwanttoadd(0-%d):",N-nT);scanf("%d",&m);k=m+n;for(i=n;i<k;i++){printf("\ninput%dthsalaryrecord.\n",i-n+1);input(i);}sort();save(k);-来源网络精心整理printf_back();}浏览模块【分析】该模块的功能是显示所有职工工资信息记录【流程图】【程序】browse。{inti,n;n=load();printf_face();for(i=0;i<n;i++){if(i%10==0){printf("\n\nPassanykeytocontiune...");getch();puts("\n\n");}printf_one(i);printf("\n");-来源网络-来源网络-来源网络-来源网络-来源网络精心整理}printf("\tThereare%drecord.\n",n);printf("\nPassanykeytoback");getch();menu();}按姓名査找模块【分析】该模块的功能是根据输入的职工姓名查找对应的工资信息记录。【流程图】图六按姓名查找模块流程图【程序】search_name(){inti,n,k,w1=1;structgzs;n=load();do{k=-1;printf("\n\nEnternamethatyouwanttosearch!name");scanf("%s",);printf_face();for(i=0;i<n;i++)精心整理if(strcmp(,g[i].name)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNoexist!please");printf("\n\nAreyouagain?\n\t1).Again2)Noandback[]\b\b");scanf("%d",&w1);}}wh订e(k==-1&&w1==1);menu。;}按工资卡号查找模块【分析】该模块的功能是根据输入的职工工资卡号査找对应的工资信息记录。【流程图】图七按工资卡号査找模块流程图【程序】search_num(){inti,n,k,w1=1;structgzs;n=load();do{k=-1;精心整理printf("\n\nEnternumberthatyouwanttosearch!number");scanf("%d",&s.num);printf_face();for(i=0;i<n;i++)if(s.num==g[i].num){k=i;printf_one(k);}if(k==T){printf("\n\nNoexist!please");printf("\n\nAreyouagain?\n\t1)・Again2)Noandback[]\b\b");scanf("%d",&w1);}}wh订e(k==-1&&w1==1);menu。;}统计模块【分析】该模块的功能是根据用户输入的职工姓名和所统计的月份来计算得出某个时间段的工资总额。【流程图】精心整理图八统计模块流程图【程序】count。{inti,j,k,n,sum=0;charname[20];n=load();printf("\nEntertheenployer'sname:[]\t\t");scanf("%s",name);printf("\nEnterthefirstmonthtocount!month:[]\t\t");scanf("%d",&j);printf("\nEnterthelastmonthtocount!month:[]\t\t");scanf("%d",&k);for(i=0;i<n;i++)if(strcmp(name,g[i].name)==0&&g[i].month>=j&&g[i].month<=k){printf_one(i);-来源网络-来源网络-来源网络-来源网络-来源网络精心整理sum=sum+g[i].ss;}printf("\ntheresultofcount:sum=%d\n",sum);menu();3.公共函数(1)排序函数sort。【程序】sort。{inti,j,n;structgzt;n=load();for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(g[i]・num>g[j].num){t=g[i];g[i]=g[j];g[j]=t;}2)输入函数input(inti)程序】input(inti)精心整理{scanf("%d%s%d%ld%ld%ld",&g[i].num,g[i].name,&g[i].month,&g[i].ys,&g[i].wf,&g[i].ef);tax(i);}保存函数save(intn)【程序】save(intn){FILE*fp;inti;if((fp=fopen("salary.txt","w"))==NULL){printf("\nCannotopenfile\n");returnNULL;}for(i=0;i<n;i++)if(g[i]・num!=O)if(fwrite(&g[i],sizeof(structgz),1,fp)!=1)printf("filewriteerror\n");fclose(fp);}税金计算函数tax(inti)【程序】tax(inti){精心整理if(g[i].ys<800)g[i].tax=0;elseif(800<g[i].ys&&g[i].ys<1400)g[i].tax=((g[i].ys-800)*5/100);elseg[i].tax=((g[i].ys-1400)*5/100);g[i].ss=g[i].ys-g[i].wf-g[i].ef-g[i].tax;}加载函数load()【程序】load(){FILE*fp;inti;if((fp=fopen("salary.txt","r"))==NULL){printf("\nCannotopenfile\n");returnNULL;}for(i=0;!feof(fp);i++)fread(&g[i],sizeof(structgz),1,fp);fclose(fp);return(iT);}显示数据结构项目的函数printf_face()printf_face(){printf("\nnumnamemonthyswfefsstax\n");}精心整理显示一个记录的函数printf_one(inti){printf("%5d%10s%5d%10ld%10ld%10ld%10ld%10ld",g[i].num,g[i].name,g[i].month,g[i].ys,g[i].wf,g[i].ef,g[i].ss,g[i].tax);}一个任务结束时的选择浏览还是返回的函数printf_back(){intk,w;printf("\n\n\tSuccessful・\n\n");printf("Whatdoyouwanttodo?\n\n\t1)・Browseallnow2)・Back

温馨提示

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

评论

0/150

提交评论