




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 引言1.1 如何解决职工工资的分发问题 现如今我们进入了二十一世纪,信息技术越趋变为人们生活中不可缺少的抽象资源!大公司人员众多,工资分发问题艰难,而编程人员专为其设计的职工工资管理系统解决了这一难题!网络化就是通过网络将人们联系在一起,一起解决问题,一起分享资源!将复杂的问题分解开,然后组合在一起!1.2国内外研究的现状国外在发展网络的时间比我们早,也比我们快!而我们作为发展迅速的发展中国家,我们的人力资源丰富,而且出现不少的优秀人才,为我国的网络事业做出了巨大的贡献!因而我们有信心且有实力追上他们且赶过他们!1.3任务与分析本次课程的主要任务是编出一个程序来解决日常生活中一些问题!我们将要编的程序是一个关于如何解决一些大公司中职工工资分发系统!在大公司中人员多,资金数量大,需要一个简单,容易的方法来处理工资分发问题,现在是信息时代,不在像以前了体力劳动为主,现在要用脑解决问题!我们将用我大一学的知识来解决问题!如:链表,结构数组,以及函数!根据其不通的功能一起来解决问题!2. 程序的主要功能2.1职工工资信息录入功能添加职工的基本信息:如其编号,姓名,每月固定工资,其它浮动工资,应该扣除的杂费!2.2职工工资信息浏览 进入职工工资管理系统中按照菜单上的提示可以浏览职工信息及输出。2.3职工工资信息删除 在职工工资管理系统可以对职工信息删除!2.4查询和排序功能通过查找输入编号可以查询任意职工的 全部信息,还可以进行排序功能!3. 系统设计 主 函 数输入信息入加信息输出信息信息删除信息信息保存信息息查找信息信息排序信息信息系统总体框架图如图4. 模块分析及说明4.1主程序模块这是主控制模块它调用,修改职工工资信息模块.其原代码如下:void main() char ch;while(1)menu();/ 显示菜单ch=getchar();/选择菜单if(ch=0) break;switch(ch)/判断功能项case 1: input();break;case 2:print();break;case 3:clean( );break;case 4:save();break;case 5:search( );break;case 6:order();break;case 0:break;printf(n欢迎使用!n);4.2 菜单模块 包括对职工工资及本人信息的编辑,并调用其它功能模块:其原代码如下:void menu() system(cls);printf(nnnnnnn); printf(tttt *主菜单选项*nn); printf(tttt1:创建工资档案n); printf(tttt2:输出工资信息n); printf(tttt3:删除工资信息n); printf(tttt4:保 存 信 息n); printf(tttt5:查找工资信息n); printf(tttt6:信息列表排序n); printf(tttt0:退 出n);printf(nnnnnnnn); 4.3输入模块输入职工的基本信息!包括工资,编号姓名等!void input() int i; FILE *fp; if(fp=fopen(sta_dat,wb)=NULL) printf(cant open file!n);exit(0); printf(NO name bu_m gu_d fu_d bu_t shui_f bao_x dai_jn ); for(i=0;iN;i+) scanf(%d,&stafi.num);scanf(%s,); scanf(%s,stafi.bu_m); scanf(%d%d%d,&stafi.gu_d,&stafi.fu_d,&stafi.bu_t);scanf(%d%d%d,&stafi.shui_f,&stafi.bao_x,&stafi.dai_j); fwrite(&stafi,sizeof(struct staff ),1,fp); /将成绩信息写入文件 4.4输出模块输出职工的基本信息!包括工资,编号姓名等!/职工信息输出: void print() int i; printf(职工信息输出:n); FILE *fp; if(fp=fopen(sta_dat,rb)=NULL) printf(cannot open file n); return; for(i=0;iN;i+) fread(&stafi,sizeof(struct staff),1,fp); fclose(fp); printf(NO name bu_m gu_d fu_d bu_t ying_f shui_f bao_x dai_j kou_k shi_fn ); for(i=0;iN;i+) printf(%d %s %s %d %d %d %d %d %d %d %d %dn, stafi.num ,, stafi.bu_m,stafi.gu_d,stafi.fu_d,stafi.bu_t, stafi.gu_d+stafi.fu_d+stafi.bu_t, stafi.shui_f,stafi.bao_x,stafi.dai_j, stafi.shui_f+stafi.bao_x+stafi.dai_j, stafi.gu_d+stafi.fu_d+stafi.bu_t- stafi.shui_f-stafi.bao_x-stafi.dai_j); getch(); 4.5删除文件将信息删除 输入mm=stafi.numn=0n=1n=1i=1i3输出职工信息结束开始NOYESNOYESNOYES 其源码如下:/职工信息删除:void clean() FILE *fp; int i,j,m,n=0; printf(职工信息删除:n); printf(删除的数m=:n); scanf(%d,&m); if(fp=fopen(sta_dat,rb)=NULL) printf(cannot open file n); return; for(i=0;iN;i+) fread(&stafi,sizeof(struct staff),1,fp); fclose(fp); for(i=0;iN;i+) if(m!=stafi.num) n=1;elsen=0;break; if(n=0) for(j=i;jN;j+) stafj=stafj+1; printf(NO name bu_m gu_d fu_d bu_t ying_f shui_f bao_x dai_j kou_k shi_fn ); for(i=0;iN-1;i+) printf(%d %s %s %d %d %d %d %d %d %d %d %dn, stafi.num ,, stafi.bu_m,stafi.gu_d,stafi.fu_d,stafi.bu_t, stafi.gu_d+stafi.fu_d+stafi.bu_t, stafi.shui_f,stafi.bao_x,stafi.dai_j, stafi.shui_f+stafi.bao_x+stafi.dai_j, stafi.gu_d+stafi.fu_d+stafi.bu_t- stafi.shui_f-stafi.bao_x-stafi.dai_j); else printf(connot found!);getch(); 4.6保存文件将文件保存。/职工信息存盘: void save() FILE *fp; int i; if(fp=fopen(sta.dat,wb)=NULL) printf(cannot open file n); return; for(i=1;iN;i+) if(fwrite(&stafi,sizeof(struct staff),1,fp)!=1) printf(file write errorn); fclose(fp); 4.7查找模块 流程图如下: 输入mm=stafi.numn=0n=1n=1i=1i2输出职工信息结束开始NOYESNOYESNOYES源码如下:/职工信息查找: void search() printf(职工信息查找:n); FILE *fp; int i ,m,n=0; printf(查找的数m=:n); scanf(%d,&m); if(fp=fopen(sta_dat,rb)=NULL) printf(cannot open file n); return; for(i=1;iN;i+) fread(&stafi,sizeof(struct staff),1,fp); fclose(fp); for(i=1;iN;i+) if(m!=stafi.num) n=1; elsen=0;break; if(n=0) printf(NO name bu_m gu_d fu_d bu_t ying_f shui_f bao_x dai_j kou_k shi_fn ); printf(%d %s %s %d %d %d %d %d %d %d %d %dn, stafi.num ,, stafi.bu_m,stafi.gu_d,stafi.fu_d,stafi.bu_t, stafi.gu_d+stafi.fu_d+stafi.bu_t, stafi.shui_f,stafi.bao_x,stafi.dai_j, stafi.shui_f+stafi.bao_x+stafi.dai_j, stafi.gu_d+stafi.fu_d+stafi.bu_t-stafi.shui_f-stafi.bao_x-stafi.dai_j); else printf(cannot found!);getch(); 4.8查找模块4.9排序模块源码如下:/职工信息排序: void order() printf(职工信息排序:n); int i,j,k; FILE *fp; struct staff sta; if(fp=fopen(sta.dat,rb)=NULL) printf(cannot open file n); return; for(i=1;iN;i+) fread(&stafi,sizeof(struct staff),1,fp); stafi.shi_f=stafi.gu_d+stafi.fu_d+stafi.bu_t- stafi.shui_f-stafi.bao_x-stafi.dai_j; fclose(fp); for(i=1;iN-2;i+) k=i;for(j=i+1;jstafj.shi_f) k=j; if(k!=i) sta=stafi; stafi=stafk;stafk=sta; printf(NO name bu_m gu_d fu_d bu_t ying_f shui_f bao_x dai_j kou_k shi_fn ); for(i=1;iN;i+) printf(%d %s %s %d %d %d %d %d %d %d %d %dn, stafi.num ,, stafi.bu_m,stafi.gu_d,stafi.fu_d,stafi.bu_t, stafi.gu_d+stafi.fu_d+stafi.bu_t, stafi.shui_f,stafi.bao_x,stafi.dai_j, stafi.shui_f+stafi.bao_x+stafi.dai_j, stafi.gu_d+stafi.fu_d+stafi.bu_t- stafi.shui_f-stafi.bao_x-stafi.dai_j);getch(); 5. 比较有特色的函数1、define宏观定义函数,让复杂而多的说明性东西简单化!2、对结构体函数也得到很好的应用,使较大的程规模集中放到一个头文件中,这样便于装配,便于修改,便于使用。3、文件的使用程序更加清晰,能够提高程序的运行。6. 程序测试如下图所展示:图6-1主界面图6-2输入信息图6-3输出信息 图6-4删除信息图6-5查找信息图6-6排序信息图6-7 退出结论该程序能进行职工信息的输入和输出,删除,查找,排序等功能,使职工信息明确,便于查看。通过这次课程设计,我了解了很多实用的东西,并进一步掌握了C语言进行软件设计的过程,为以后用各种语言编辑软
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 延边自治州中石油2025秋招笔试模拟题含答案油品分析质检岗
- 国家能源伊春市2025秋招面试专业追问及参考计算机与自动化岗位
- 国家能源鹤壁市2025秋招电气工程类面试追问及参考回答
- 中国移动枣庄市2025秋招笔试行测题库及答案通信技术类
- 赣州市中储粮2025秋招面试专业追问题库信息技术岗
- 白城市中石化2025秋招笔试提升练习题含答案
- 2025年材料成型考试题及答案
- 2025年厨房消毒考试试题及答案
- 2025年公文办理考试题及答案
- 采购内勤考试试题及答案
- 2025至2030中国淀粉粘合剂行业现状调查与前景竞争对手分析报告
- 产能管理课件
- 2025至2030PCR扩增仪市场前景分析及发展趋势分析与未来投资战略咨询研究报告
- 探索宇宙奥秘:天文现象教学课件
- 签订茶叶收购协议书
- 房建工程总承包EPC项目技术标(投标方案)(技术标)
- 杉树林管理制度
- 农光互补光伏发电项目前景分析与可行性评估
- 学前儿童情绪管理与性格塑造研究
- 脑外伤的中医护理
- 2025年小学体育的考试题及答案
评论
0/150
提交评论