工资信息管理系统_第1页
工资信息管理系统_第2页
免费预览已结束,剩余12页可下载查看

下载本文档

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

文档简介

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

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

3、根据上面的需求分析,可以将这个系统的设计分为以下几个模块: 数据输入,数据添加,数 据浏览,数据查询,数据统计。丘资信息管理系统图一系统功能模块图四、详细设计1.主函数主函数提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。流程图图二主函数模块功能流程图程序数据输入数据添加数据查询main()/*主 函数*int n,w; /*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单应对数字的范围内*/puts(tttt 1.Enter new data);puts(tttt 2.add new data);puts(tttt 3.Browse all);puts(tttt 4.

4、Search by name);puts(tttt 5.Search by num);puts(tttt 6.Count gongzi);puts(tttt 7.Exit);printf(Choice your number(1-7): bb);scanf(%d,&n);if(n7) w=1;getchar(); /*对选择的数字作判断*/ else w=0;while (w=1); switch(n) case 1: enter();break; /*输入模块*/ case 2: add();break; /*添加模块*/ case 3: browse();break; /*浏览模块

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

6、管理。 同时把职工的 工资卡号,姓名,月份,应发工资,水费,电费,税金,实发工资作为结构体成员,用结构 体数组存放若干个职工的工资信息。struct gz int num;char name20;int month;long ys;long ss;long wf;long ef;long tax; gN; /*gN中每个数组元素对应一个职工*/【流程图】厂输入用户要输入的职工记录的个数n、1i 从 0 到 n-1 调用输入函数 input(i)Ido puts(tt*MENU*nn);puts(nntt*n);1ri!=0保存调用函数 Save(n)-J图三 输入模块流程图【程序】en ter

7、() int i,n;prin tf(How many gon gzixi nxi (0-%d)?:,N-1);scan f(%d, &n);prin tf(n En ter data now nn ”);for(i=0;i n ;i+)pri ntf(nln put %dth gon gzi record.n,i+1);in put(i);sort();if(i!=0) save( n);prin tf_back();(2)添加模块【分析】该模块的功能是用户需要增加新的职工工资信息记录,从键盘输入并逐条写入到原来的输入文件中,注意采用追加而不是覆盖的方式。【流程图】调用加载函数 n=

8、load();并计算可以记录个数 n图四 添加模块流程图【程序】add() in t i,n ,m,k;FILE *fp;n=load();prin tf(Hoe mang people are you want to add(0-%d):,N-n-1); sea nf(%d,&m);k=m+n;for(i=n ;ik;i+)pri ntf(nin put %dth salary reeord.n,i-n+1);in put(i);sort();save(k);prin tf_baek();(3)浏览模块【分析】该模块的功能是显示所有职工工资信息记录。【流程图】图五浏览模块流程图【程序

9、】browse() int i,n;n=load();prin tf_face();for(i=0;i n ;i+) if(i%10=0) printf(nnPass any key to contiune.);getch(); puts(nn);prin tf_on e(i); prin tf(n);prin tf(tThere are %d record.n, n);prin tf(nPass any key to back.);getch();menu();(4)按姓名查找模块【分析】该模块的功能是根据输入的职工姓名查找对应的工资信息记录。【流程图】图六按姓名查找模块流程图【程序】sea

10、rch_ name() int i,n ,k,w1=1;struct gz s;n=load();do k=-1;prin tf(nnEn ter n ame that you want to search! n ame);sca nf(%s,s .n ame);prin tf_face();for(i=0;i n ;i+)if(strcmp(s .n ame,gi. name)=0)k=i; prin tf_on e(k);if(k=-1)pri ntf(nnNo exist!please);prin tf(nnAre you aga in?nt 1).Aga in 2)No and bac

11、k bb ); sca nf(%d,&w1);while(k=-1 &w仁=1);menu();(5)按工资卡号查找模块【分析】该模块的功能是根据输入的职工工资卡号查找对应的工资信息记录。 【流程图】输入职工工资卡号是否找到此职工记录*提示役有找到【程序】search_ num() int i,n ,k,w1=1;struct gz s;n=load();do k=-1;prin tf(nnEn ter nu mber that you want to search! nu mber);sca nf(%d, &s. nu m);prin tf_face();for(i=

12、0;i n ;i+)if(s.num=gi. num)k=i; prin tf_on e(k);if(k=-1)pri ntf(nnNo exist!please);prin tf(nnAre you aga in?nt 1).Aga in 2)No and back bb );sca nf(%d,&w1);while(k=-1 &w仁=1);men u();(6)统计模块【分析】该模块的功能是根据用户输入的职工姓名和所统计的月份来计算得出某个时间段的工资 总额。【流程图】區示找湖记录图七按工资卡号查找模块流程图图八统计模块流程图【程序】cou nt()int i,j,k, n

13、,sum=O;char n ame20;n=load();prin tf(nEn ter the en ployers n ame: tt);sca nf(%s, name);prin tf(nEn ter the first month to count! mon th: tt);sca nf(%d,&j);prin tf(nEn ter the last month to count! mon th: tt);sca nf(%d,&k);for(i=0;i=j&gi.m on th=k) pri ntf_on e(i);sum=sum+gi.ss;prin tf(n

14、the result of count: sum=%dn,sum);men u();3公共函数(1)排序函数sort()【程序】sort()in t i,j, n;struct gz t;n=load();for(i=0;i n;i+)for(j=i+1;j gj. num)t=gi;gi=gj;gj=t;(2)输入函数input (int i)【程序】input (int i) scanf(%d%s%d%ld%ld%ld,&gi.num,,&gi.month,&gi.ys,&gi.wf,&g i.ef);tax(i);(3)保存函数sav

15、e(int n)【程序】save(int n) FILE *fp;int i;if(fp=fopen(salary.txt,w)=NULL) printf(nCannot open filen);return NULL; for(i=0;in;i+) if(gi.num!=0) if(fwrite(&gi,sizeof(struct gz),1,fp)!=1)printf(file write errorn);fclose(fp);(4)税金计算函数tax( int i)【程序】tax( int i)if(gi.ys800) gi.tax=0;else if(800gi.ys&

16、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; int i; if(fp=fopen(salary.txt,r)=NULL) printf(nCannot openfilen);return NULL; for(i=0;!feof(fp);i+) fread(&gi,sizeof(struct gz),1,fp);fclose(fp);return(i-l);(6)显

17、示数据结构项目的函数prin tf_face()prin tf_face() prin tf(n num n ame month ys wf ef sstax n);(7)显示一个记录的函数printf_on e(i nt i) pri ntf(%5d%10s%5d%10ld%10ld%10ld%10ld%10ld,gi. num,gi. name,gi.mo nth,gi.ys,gi.wf,gi.ef,gi.ss,gi.tax);(8)一个任务结束时的选择浏览还是返回的函数prin tf_back() int k,w;prin tf(nntSuccessful.nn);printf(What

18、 do you want to do?nnt 1).Browse all now 2).Back; bb);scan f(%d,&w);else menu();if(w=1) browse();五、上机操作1数据源2.编译、连接和运行3结果下面是各个模块的界面图(1) 主菜单函数(2)输入模块在主界面出现后输入1回车看到下图: 2訂|J旦凶Choice your nuraber:11 Hou m曰ny gongzixinxi?:3Enter data口廿和Input 1th gfongzi record. 1 chen 1 790 52 65Input 2th gfongzi reco

19、rd. 2 auang 1 1200 32 32grongzi irecord- 1100 25 32Successful.What dlo POUuant to do?1.Browse all now 2BBck;C (3) 添加模块(4) 浏览模块Cho ice youv nuntber : 3 Pass any key to back.-C:DOOJME-4-A. *2.add new data3BBrouse all4.Searchby mame5.Search hynum6.Count gongz i7. Exitnumnanenont JiefsstaxPass anukey to contiune .1chen1chen2-guang2guangThere are1212 40 0 0-0095=0555522 221119729660730000 02Input 1chen(5)按姓名查找模块Choice your nu( (wber : 411HEnter new* dati2.add new dta3.Browse all4.Search hy name

温馨提示

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

评论

0/150

提交评论