《最新C语言职工工资管理系统.doc》由会员分享,可在线阅读,更多相关《最新C语言职工工资管理系统.doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言职工工资管理系统昆明理工大学昆明理工大学 程序设计基础课程综合设计实践教学课题报告课程名称: c语言程序设计 课题名称: 职工工资管理程序设计 组 长: 学号 1姓名李双江组 员: 学号 6姓名王洪雨学 院: 电力工程学院 专业班级: 水文与水资源工程 指导教师: 张启富 昆明理工大学计算中心2006 年 6 月 12 日昆明理工大学计算中心程序设计基础课程综合
2、设计实践教学课题考核表课题名称:职工工资管理程序设计 学院:电力工程学院 专业班级:水文051 学号姓名小组编号题号承担及完成的内容成绩备注小组自评教师评定1李双江1. 选项菜单集成各功能函数模块2 . 职工工资进行排序并存入文件80926王洪雨1 录入职工工资信息2. 将排序后的文件输出并显示在屏幕上7575设计说明与功能描述(基本思路及关键语句说明)该程序首先是对程序中要产生的一些函数的定义,再在主函数中对它们进行调用。从而形成一套有条理的程序设计,并且能够很好的达到程序设计的目的。程序中,我们运用了语句,极其指针、文件等,方便的执行了对数据的操作。职工信息管理系统提供以下几个功能:1录入
3、职工基本信息:录入要管理统计的职工信息。2汇总职工信息:计算职工的总工资。3排序并将数据存入文件:按总工资降序排列并将数据存入D盘空间。4输出数据表:将录入的职工数据输出。 组长签名: 200 6 年 6 月 12 日教师评语:按要求完成综合设计课题,符合教学要求,应用能力与实践能力有明显提高 教师签名:张启富 2006 年 6 月 16 日 第一部分 系统概述一、程序功能: 随着社会的发展,中小型企业在我国得到迅速发展,工资管理系统对企业的资金管理,起着越来越重要的作用。本程序就是为了更好更快的管理职建立的工工资而。它从标准输入设备(键盘)上输入一批职工工资信息,计算总工资,并按工资降序排序
4、,最后输出到文件中,并将其显示到显示器上。二、程序算法:从主菜单中选择相对应的数字,使程序进入不同的程序模块,用switch实现其功能,程序共分为五个模块,分别为:主函数、Input( )函数(输入函数)、Paixu_fout(rs)函数(计算职工工资信息并输入文件)、Output(rs)输出函数(从文件中读入信息并将其输出到显示器)。各函数主要算法见个流程图第二部分 数据结构设计三、定义结构体: 定义一个包括职工信息极其工资基本信息,包括基本工资、奖金及其津贴,以及总工资的结构体。如下面所所示:structXSchar gh10;char name10;int salary;intrewar
5、d;intjintie;intsum;cjRS,jd;四、数组设计: 程序中定义是两个字符型数组结构和一个结构体数组: 字符数组gh10在结构体中用于保存职工工号,name10用于保存职工姓名,结构体数组cjRS保存学生的所有信息。五、函数定义: 程序中定义了3个功能函数,它们是输入职工信息输入函数Input();排序并将职工信息输入文件函数Paixu_fout(rs);输出学生信息函数Output(int rs)。最后是主函数main()来调用以上3个函数。主函数流程图程序结束输入数据排序并存档输出数据退出系统出错判断客户选择主函数入口第三部分 使用程序说明八、调试:错误:原因:main()
6、函数当中循环次数多了一个getchar(),导致必须输入两次数字才可以返回case 1:rs=Input();js(rs);break;case 2:Paixu_fout(rs);printf(t排序后的职工信息已存入D盘中的tlj.txt中n); getchar();printf(t按任意键返回!n);getchar();break;for(i=0;i=0)break;/检验输入值合法性 else printf(t输入错误,请重试:); printf(t%s职工的奖金:,jd.name);/输入职工的奖金while(1)scanf(%d,&jd.reward); if(jd.reward=0
7、)break;/检验输入值合法性 else printf(t输入错误,请重试:);printf(t%s职工的津贴:,jd.name);/职工的津贴while(1) scanf(%d,&jd.jintie); if(jd.jintie=0)break;/检验输入值合法性 else printf(t输入错误,请重输:);cji=jd;i+;getchar();/计算职工工资基本信息函数js(int rs) int i;FILE *pk;if(pk=fopen(D:tj.txt,w)=NULL)/打开文件printf(文件打开失败!);exit(0);for(i=0;irs-1;i+)/计算总和 c
8、ji.sum=cji.salary+cji.reward+cji.jintie;fprintf(pk,%-10s%-10s%4d%4d%4d%4dtn,cji.gh,cji.name,cji.salary,cji.reward,cji.jintie,cji.sum);fclose(pk);/排序并将人员信息输入文件Paixu_fout(int rs)FILE *pk;int i,j;if(pk=fopen(G:tlj.txt,w)=NULL)printf(文件打开失败!);exit(0);for(i=0;irs;i+)for(j=0;jrs-i;j+)if(cjj.sum=cjj+1.sum)
9、jd=cjj+1;cjj+1=cjj;cjj=jd;fprintf(pk,%-10s%-20s%4d%4d%4d%4dn,cji.gh,cji.name,cji.salary,cji.reward,cji.jintie,cji.sum);fclose(pk);Output(int rs)int i;FILE *pk;if(pk=fopen(D:tlj.txt,r)=NULL)printf(文件打开失败!);exit(0);printf(ntt职工工资排名如下:nn); printf(t编号 t 姓名t 基本工资 t 奖金 津贴 总和 n);for(i=0;irs;i+)fscanf(pk,%-
10、10s%-20s%4c%4d%4d%4dt%4dn,cji.gh,cji.name,&cji.salary,&cji.reward,&cji.jintie,&cji.sum);fprintf(stdout,%-10s%-8st%-10d%-10d%-10d%-10dtn,cji.gh,cji.name,cji.salary,cji.reward,cji.jintie,cji.sum);fclose(pk);main() int rs,c,t=1;while(t) printf(t*本系统为职工工资管理系统* n); printf(t*欢迎使用本系统* n); printf(tt 1.录入员工及
11、工资信息 n);printf(tt 2.职工工资进行排序并存入文件 n);printf(tt 3.将排序后的文件输出并显示在屏幕上 n);printf(tt 4.退出程序。 n);printf(t* n); printf(tt请选择对应编号(1,2,3, 4));scanf(%d,&c);getchar();if(c1|4c)printf(t输入错误!请重输:n);continue;switch(c)case 1:rs=Input();js(rs);break;case 2:Paixu_fout(rs);printf(t排序后的职工信息已存入D盘中的tlj.txt中n); getchar();printf(t按任意键返回!n);getchar();break;case 3:Output(rs);printf(t按任意键返回!n);break;case 4:t=0;printf(t*!谢谢使用!*n);printf(ttt按任意键返回!n);break; -