职工工资管理系统课程设计报告.doc

上传人:小飞机 文档编号:1926923 上传时间:2022-12-26 格式:DOC 页数:37 大小:390.50KB
返回 下载 相关 举报
职工工资管理系统课程设计报告.doc_第1页
第1页 / 共37页
职工工资管理系统课程设计报告.doc_第2页
第2页 / 共37页
职工工资管理系统课程设计报告.doc_第3页
第3页 / 共37页
职工工资管理系统课程设计报告.doc_第4页
第4页 / 共37页
职工工资管理系统课程设计报告.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《职工工资管理系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《职工工资管理系统课程设计报告.doc(37页珍藏版)》请在三一办公上搜索。

1、目 录一、需求分析2二、概要设计2三、详细设计5四、调试分析18五、用户手册19六、测试数据19七、附录23一、 需求分析职工工资管理系统 功能设计要求 (1)输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。(2)显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。(3)修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。(4)查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。 (5)删除

2、记录:可删除数据文件中的任一记录。 (6) 统计: (A)计算各项工资平均工资及总工资, (B)统计符合指定条件(如职工工资前三项之和在3000元以上、30002000元、20001000元) 以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。 (7)保存数据文件功能。 例如:职工工资信息表 ID号 姓名 基本工资 职务工资 津贴 医疗保险- 公积金- 总工资 01 张望 1286 794 198 109 135 2034 02 李明 1185 628 135 94 114 1740 03 王小民 895 438 98 64

3、 73 1294 04 张效章 1350 868 210 116 150 2162 05 彭山 745 398 84 61 68 1098 各项平均工资 1092.2 625.2 145 88.8 108(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计1、程序总体功能框架: 总量显示主菜单查找功能显示功能删除功能输入功能退出程序添加功能修改功能按姓名删除按工号查找修改工号修改姓名修改职务工资修改基本工资修改医疗保险修改津贴修改公积金按姓名查找按工号删除2、一些数据结构的介绍:struct wor

4、ker 定义职工的结构体int num; 职工工号char name20; 职工姓名int jibengongzi; 职工的基本工资int zhiwugongzi; 职工的职务工资int jintie; 职工的津贴int yiliaobaoxian; 职工的医疗保险int gongjijin; 职工的公积金int qiansan; 职工前三项工资(基本工资、职务工资、津贴)之和 int sum; 职工的总工资worker100; 建立最多为100,、名为worker的结构体3、定义主要的函数: void menu();void Input();void Modify();void Search

5、();void Add();void Delete();void Show();void Exit();4、几个主要函数介绍:清屏函数:system(cls); 将前面操作的屏幕清楚,但不会清除数据菜单函数:menu(); 显示主菜单,便于选择输入函数:Input(); 用于输入数据 修改函数:Modify(); 用于修改数据 查找函数:Search(); 用于查找信息 添加函数:Add(); 用于增加信息 删除函数:Delete(); 用于删除信息 显示函数:Show(); 用于显示信息 退出函数:Exit(); 用于退出该系统 选择函数:select(); 用于选择显示信息或返回到菜单 保

6、存信息的函数:save(): 用于保存信息 保存人数的函数:P(); 用于保存已保存数据的人数5、本程序模块结构 主函数模块 int main() system(cls); menu();执行主函数后,执行菜单函数。 菜单函数模块void menu() int n; system(cls); printf(nnn); printf(tt*n); printf(tt* *n); printf(tt* If you were the first to enter the system *n); printf(tt* please select Input! *n); printf(tt* *n);

7、 printf(tt* 1-Input *n); printf(tt* 2-Modify *n); printf(tt* 3-Search *n); printf(tt* 4-Add *n); printf(tt* 5-Delete *n); printf(tt* 6-Show *n); printf(tt* 7-Exit *n); printf(tt* *n); printf(tt*n); printf(ttn); printf(nn); printf(ttInput your choose(1-7):); scanf(%d,&n); if(n=1&n=1&n=0&p=100) /输入职工的

8、信息 printf(nn); printf(Please input data:n); printf(n); f1(); for(i=0;ip;i+) input(i); workeri.sum=workeri.jibengongzi+workeri.zhiwugongzi +workeri.jintie-workeri.yiliaobaoxian-workeri.gongjijin; /计算职工的总工资 workeri.qiansan=workeri.jibengongzi+workeri.zhiwugongzi+workeri.jintie; /职工前三项工资(基本工资、职务工资、津贴)之

9、和 else Input(); /如果输入的职工人数超过100,返回输入函数重新输入 save(p); /保存输入的职工信息 select(); /选择显示信息或返回到菜单void Modify() /修改函数 int i,j=-1,d,k,t,n;char m20; FILE *fp; /定义一个文件指针 system(cls); /清屏 n=P(); printf(nn); printf(Choose the way you want to modify:n); /选择通过何种方式修改信息 printf(nn); /选择方式的界面 printf(tt*n); printf(tt* *n);

10、 printf(tt* 1.By name to modify *n); printf(tt* *n); printf(tt* 2.By number to modify *n); printf(tt* *n); printf(tt*n); printf(ninput your selection:); scanf(%d,&d); if(d!=1&d!=2) printf(ninput error! Press any key to continue.); getchar(); Modify(); /选择的数字错误,返回修改函数重新选择 else if(d=1) do printf(nPlea

11、se input the name:); /输入需要修改职工的姓名 scanf(%s,m); for(i=0;in;i+) if(strcmp(m,workeri.name)=0) j=i; if(j=-1) printf(nNot find!Please input again!n); /没有找到该职工,重新输入 while(j=-1); else do printf(nPlease input the num:); /输入需要修改职工的工号 scanf(%d,&k); for(i=0;in;i+) if(k=workeri.num) j=i; if(j=-1) printf(nNot fi

12、nd!Please again!n); /没有找到该职工,重新输入 while(j=-1); printf(nWhat do you want to modify?nn); /需要修改信息的界面 printf(tt*n); printf(tt* *n); printf(tt* 1.name 2.number *n); printf(tt* *n); printf(tt* 3.jibengongzi 4.zhiwugongzi *n); printf(tt* *n); printf(tt* 5.jintie 6.yiliaobaoxian *n); printf(tt* *n); printf(

13、tt* 7.gongjijin *n); printf(tt* *n); printf(tt*n); printf(nPlease input your selection:); /选择需要修改的信息 scanf(%d,&t); switch(t) /通过选择的数字,实现修改该信息 case 1:printf(nbefore modify:%s,workerj.name); printf(nchange to:); scanf(%s,workerj.name); printf(nafter modify:%s,workerj.name);break; case 2:printf(nbefore

14、 modify:%d,workerj.num); printf(nchange to:); scanf(%d,&workerj.num); printf(nafter modify:%d,workerj.num);break; case 3:printf(nbefore modify:%d,workerj.jibengongzi); printf(nchange to:); scanf(%d,&workerj.jibengongzi); printf(nafter modify:%d,workerj.jibengongzi);break; case 4:printf(nbefore modif

15、y:%d,workerj.zhiwugongzi); printf(nchange to:); scanf(%d,&workerj.zhiwugongzi); printf(nafter modify:%d,workerj.zhiwugongzi);break; case 5:printf(nbefore modify:%d,workerj.jintie); printf(nchange to:); scanf(%d,&workerj.jintie); printf(nafter modify:%d,workerj.jintie);break; case 6:printf(nbefore mo

16、dify:%d,workerj.yiliaobaoxian); printf(nchange to:); scanf(%d,&workerj.yiliaobaoxian); printf(nafter modify:%d,workerj.yiliaobaoxian);break; case 7:printf(nbefore modify:%d,workerj.gongjijin); printf(nchange to:); scanf(%d,&workerj.gongjijin); printf(nafter modify:%d,workerj.gongjijin);break; defaul

17、t:printf(Error!choice again!n);break; getchar(); printf(n); f2(); workerj.sum=workerj.jibengongzi+workerj.zhiwugongzi+workerj.jintie -workerj.yiliaobaoxian-workerj.gongjijin; /职工的总工资 output(j); printf(nSave it?nn1.Yes 2.Non); /询问是否保存修改后的信息 scanf(%d,&i); if(i=1) save(n); /保存修改后的信息 printf(nPress any k

18、ey to back!); /返回到菜单 getchar(); menu();void Search() /查找函数 int i,j=-1,k,d,n;char m20; n=P(); system(cls); /清屏 printf(Choose the way you want to search:n); /选择通过何种方式查找信息 printf(nn); /选择方式的界面 printf(tt*n); printf(tt* *n); printf(tt* 1.By name to search *n); printf(tt* *n); printf(tt* 2.By number to se

19、arch *n); printf(tt* *n); printf(tt*n); printf(nn); printf(Please input your selection:); /选择查找的方式 scanf(%d,&d); if(d=2) do printf(nPlease input the number:); /输入需要查找的职工工号 scanf(%d,&k); for(i=0;in;i+) if(k=workeri.num) j=i; if(j=-1) printf(Not find!Please input again!n); /没有找到该职工,重新输入 while(j=-1); p

20、rintf(n); f2(); output(j); /输出信息 else if(d=1) do printf(nPlease input the name:); /输入需要查找的职工姓名 scanf(%s,m); for(i=0;in;i+) if(strcmp(m,workeri.name)=0) j=i; if(j=-1) printf(Not find!Please input again!n); /没有找到该职工,重新输入 while(j=-1); printf(n); f2(); output(j); /输出信息 if(d!=1&d!=2) printf(nInput error!

21、 Press any key to continue.); /输入错误,按enter键继续 getchar(); Search(); /返回到查找函数 select(); /选择显示信息或返回到菜单void Add() /添加函数 int i,k,m,n; FILE *fp; /定义一个文件指针 system(cls); /清屏 n=P(); printf(nnHow many people do you want to add:); /输入需要添加的职工人数 scanf(%d,&m); k=m+n; if(k=100) printf(nnPlease input their informat

22、ion:nn); /输入添加的职工信息 f1(); for(i=n;ik;i+) input(i); workeri.sum=workeri.jibengongzi+workeri.zhiwugongzi+workeri.jintie -workeri.yiliaobaoxian-workeri.gongjijin; /职工的总工资 if(fp=fopen(D:zggz.txt,ab)=NULL) /如果文件为空,则不能打开文件 printf(nCan not open file.n); /不能打开文件 getchar(); menu(); /返回到菜单 for(i=n;ik;i+) if(fwrite(&workeri,sizeof(struct worker),1,fp)!=1) /判断是否写入了数 printf(file write error.n); /文件写入错误 fclose(fp); /关闭文件 select(); /选择显示信息或返回到菜单 else Add(); /返回到添加函数void Delete() /删除函数 int i,j=-1,d,k,t,n;char m20; FILE *fp; /定义一个文件指针 system(cls); /清屏 n=P(); fp=fopen(D:zggz.txt,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号