ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:85.90KB ,
资源ID:10090083      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-10090083.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(工资信息管理系统.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

工资信息管理系统.docx

1、工资信息管理系统一、 题目要求工资信息管理系统【要求】该系统能够实现工资信息管理。系统包括录入、浏览、查询、统计等功能。其中录入功能要求能够添加新的工资信息到文件;浏览功能要求能按照工资卡号、姓名分类浏览,提供分屏显示;有排序功能,排序后按照工资卡号升序或实发工资降序输出;查询功能要求能够按照工资卡号、姓名查询;统计功能要求能够按照月份累计统计某职工在某时间段实发工资总金额。【提示】1. 文件中一行数据对应一个职工工资信息2. 工资信息的数据结构采用结构体数组,一个数组元素对应一条工资单记录3. 工资单信息包括工资卡号、姓名、月份、应发工资、水费、电费、税金、实发工资等4. 实发工资=应发工资

2、-水费-电费-税金,其中税金的计算方法为a.应发工资800元,税金=0b.800应发工资1400元,税金=(应发工资-1400)*10%另:课程实习报告的参考格式1. 题目编号2. 写出系统总设计的思路、功能模块划分。给出合理的测试数据及运行结果,要求能够体现程序的正确性和完备性及对错误输入的处理。总结算法或系统的优缺点,给出算法或系统进一步改进的设想。在附录中给出源代码,3. 附录二、 需求分析根据题目要求,由于工资单信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要浏览学生的信息,应提供录入、浏览、查询、统计等操作;另外还应提供键盘式选择菜单实现功能选择。三、总体设计根据上

3、面的需求分析,可以将这个系统的设计分为以下几个模块:数据输入,数据添加,数据浏览,数据查询,数据统计。图一系统功能模块图四、详细设计1.主函数主函数提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。流程图图二主函数模块功能流程图程序main()/*主函数*/intn,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单应对数字的范围内*/doputs(tt*MENU*nn);puts(tttt1.Enternewdata);puts(tttt2.addnewdata);puts(tttt3.Browseall);puts(tttt4.Searchbyname);put

4、s(tttt5.Searchbynum);puts(tttt6.Countgongzi);puts(tttt7.Exit);puts(nntt*n);printf(Choiceyournumber(1-7):bb);scanf(%d,&n);if(n7)w=1;getchar();/*对选择的数字作判断*/elsew=0;while(w=1);switch(n)case1:enter();break;/*输入模块*/case2:add();break;/*添加模块*/case3:browse();break;/*浏览模块*/case4:search_name();break;/*查询模块*/c

5、ase5:search_num();break;/*查询模块*/case6:count();break;/*统计模块*/case7:exit(0);break;/*退出*/*其中4和5两个模块式在查询要求的基础上加上的模块*/2各功能模块设计(1)输入函数【分析】单独看各数据信息,姓名是字符型,可以采用字符型数组;工资卡号和月份是整数,采用整型;实发工资,水费,电费,税金,应发工资有可能是小数可采用实型。数据信息存放在文件中,一条记录对应一个职工的工资单信息,既符合习惯也方便信息管理。同时把职工的工资卡号,姓名,月份,应发工资,水费,电费,税金,实发工资作为结构体成员,用结构体数组存放若干个职

6、工的工资信息。structgzintnum;charname20;intmonth;longys;longss;longwf;longef;longtax;gN;/*gN中每个数组元素对应一个职工*/【流程图】图三输入模块流程图【程序】enter()inti,n;printf(Howmanygongzixinxi(0-%d)?:,N-1);scanf(%d,&n);printf(nEnterdatanownn);for(i=0;in;i+)printf(nInput%dthgongzirecord.n,i+1);input(i);sort();if(i!=0)save(n);printf_ba

7、ck();(2)添加模块【分析】该模块的功能是用户需要增加新的职工工资信息记录,从键盘输入并逐条写入到原来的输入文件中,注意采用追加而不是覆盖的方式。【流程图】图四添加模块流程图【程序】add()inti,n,m,k;FILE*fp;n=load();printf(Hoemangpeopleareyouwanttoadd(0-%d):,N-n-1);scanf(%d,&m);k=m+n;for(i=n;ik;i+)printf(ninput%dthsalaryrecord.n,i-n+1);input(i);sort();save(k);printf_back();(3)浏览模块【分析】该模块

8、的功能是显示所有职工工资信息记录。【流程图】图五浏览模块流程图【程序】browse()inti,n;n=load();printf_face();for(i=0;in;i+)if(i%10=0)printf(nnPassanykeytocontiune.);getch();puts(nn);printf_one(i);printf(n);printf(tThereare%drecord.n,n);printf(nPassanykeytoback.);getch();menu();(4)按姓名查找模块【分析】该模块的功能是根据输入的职工姓名查找对应的工资信息记录。【流程图】图六按姓名查找模块流程

9、图【程序】search_name()inti,n,k,w1=1;structgzs;n=load();dok=-1;printf(nnEnternamethatyouwanttosearch!name);scanf(%s,s.name);printf_face();for(i=0;in;i+)if(strcmp(s.name,gi.name)=0)k=i;printf_one(k);if(k=-1)printf(nnNoexist!please);printf(nnAreyouagain?nt1).Again2)Noandbackbb);scanf(%d,&w1);while(k=-1&w1=

10、1);menu();(5)按工资卡号查找模块【分析】该模块的功能是根据输入的职工工资卡号查找对应的工资信息记录。【流程图】图七按工资卡号查找模块流程图【程序】search_num()inti,n,k,w1=1;structgzs;n=load();dok=-1;printf(nnEnternumberthatyouwanttosearch!number);scanf(%d,&s.num);printf_face();for(i=0;in;i+)if(s.num=gi.num)k=i;printf_one(k);if(k=-1)printf(nnNoexist!please);printf(nn

11、Areyouagain?nt1).Again2)Noandbackbb);scanf(%d,&w1);while(k=-1&w1=1);menu();(6)统计模块【分析】该模块的功能是根据用户输入的职工姓名和所统计的月份来计算得出某个时间段的工资总额。【流程图】图八统计模块流程图【程序】count()inti,j,k,n,sum=0;charname20;n=load();printf(nEntertheenployersname:tt);scanf(%s,name);printf(nEnterthefirstmonthtocount!month:tt);scanf(%d,&j);print

12、f(nEnterthelastmonthtocount!month:tt);scanf(%d,&k);for(i=0;i=j&gi.month=k)printf_one(i);sum=sum+gi.ss;printf(ntheresultofcount:sum=%dn,sum);menu();3公共函数(1)排序函数sort()【程序】sort()inti,j,n;structgzt;n=load();for(i=0;in;i+)for(j=i+1;jgj.num)t=gi;gi=gj;gj=t;(2)输入函数input(inti)【程序】input(inti)scanf(%d%s%d%ld%

13、ld%ld,&gi.num,gi.name,&gi.month,&gi.ys,&gi.wf,&gi.ef);tax(i);(3)保存函数save(intn)【程序】save(intn)FILE*fp;inti;if(fp=fopen(salary.txt,w)=NULL)printf(nCannotopenfilen);returnNULL;for(i=0;in;i+)if(gi.num!=0)if(fwrite(&gi,sizeof(structgz),1,fp)!=1)printf(filewriteerrorn);fclose(fp);(4)税金计算函数tax(inti)【程序】tax(

14、inti)if(gi.ys800)gi.tax=0;elseif(800gi.ys&gi.ys1400)gi.tax=(gi.ys-800)*5/100);elsegi.tax=(gi.ys-1400)*5/100);gi.ss=gi.ys-gi.wf-gi.ef-gi.tax;(5)加载函数load()【程序】load()FILE*fp;inti;if(fp=fopen(salary.txt,r)=NULL)printf(nCannotopenfilen);returnNULL;for(i=0;!feof(fp);i+)fread(&gi,sizeof(structgz),1,fp);fcl

15、ose(fp);return(i-1);(6)显示数据结构项目的函数printf_face()printf_face()printf(nnumnamemonthyswfefsstaxn);(7)显示一个记录的函数printf_one(inti)printf(%5d%10s%5d%10ld%10ld%10ld%10ld%10ld,gi.num,gi.name,gi.month,gi.ys,gi.wf,gi.ef,gi.ss,gi.tax);(8)一个任务结束时的选择浏览还是返回的函数printf_back()intk,w;printf(nntSuccessful.nn);printf(Whatd

16、oyouwanttodo?nnt1).Browseallnow2).Back;bb);scanf(%d,&w);elsemenu();if(w=1)browse();五、上机操作1数据源2编译、连接和运行3结果下面是各个模块的界面图(1) 主菜单函数(2) 输入模块在主界面出现后输入1回车看到下图(3) 添加模块(4) 浏览模块(5) 按姓名查找模块(6) 按工资卡号查找模块(7) 统计模块六、总结通过该实例的学习,可以进一步理解和运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序的的基本方法,学会利用流程图表示算法,进一步掌握和提高利用C语言进行程序设计的能力。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2