C语言课程设计-某企业职工工资管理系.doc_第1页
C语言课程设计-某企业职工工资管理系.doc_第2页
C语言课程设计-某企业职工工资管理系.doc_第3页
C语言课程设计-某企业职工工资管理系.doc_第4页
C语言课程设计-某企业职工工资管理系.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

沈 阳 航 空 工 业 学 院 课程设计学 号 2008040301048 班 级 84030102 姓 名 指导教师 2010 年 3月 16日沈阳航空工业学院课程设计任务书院系:航空宇航工程学院 专业:飞行器制造工程 班级:84030102学号:2008040301048 题目:某企业职工工资管理系统(2)一、课程设计时间200910第2学期第1周,共计1周,20学时。二、课程设计内容用C语言编写软件完成以下任务:1 录入职工信息;2 能够按主要数据项查询某职工信息;3 对职工求平均工资并显示。三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。 用户界面中的菜单至少应包括“职工信息录入”、“按主要数据项查询某职工信息”、“计算企业平均工资并显示”、“退出”4项。 代码应适当缩进,并给出必要的注释,以增强程序的可读性。2. 课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和职工签字指导教师:_ 学生签名:_五、说明书成绩六、教师评语沈 阳 航 院 设 计 用 纸目 录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段4四、课设总结6五、参考文献7六、源程序812一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为四个模块,每一个模块对应一个函数。在这些函数当中,添加职工数据函数,职工信息查询函数,求平均工资函数的实现严格按照题目的要求,读取文件函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。1. 添加职工数据函数 主要实现程序最初运行时职工数据的录入以及其后的运行中职工数据的追加功能;2.职工信息查询函数 实现的功能是按照编号查询对应职工的信息;3职工平均工资函数 实现的功能是求所有职工工资的平均值;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一个职工记录都包含编号、姓名,以及工资,在程序当中,将职工记录类型定义为结构体类型,添加以及追加的职工信息直接写入E盘的worker.txt文件中,其它函数每次对职工记录的访问,其数据来源都是worker.txt文件,这样做不但可以保证职工数据的一致性,而且可以对职工数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图1. 程序总体结构图 当1真 输入值n=1? 假添加职工信息函数add( )真 n=2? 假职工信息查询函数query() n=3?真 假职工平均工资函数average()退出图1程序总体结构图2. 具体功能框图(1)添加职工数据函数add图1 添加职工数据函数(2)读取职工数据函数reads图2读取职工数据函数(3)求职工平均工资函数average 以读方式打开E盘worker.txt成功?真 假循环变量i=0 输出 当in时 文件 aver=aver+wori.wage 打开 失败 aver=aver/n i+ 返 输出平均工资aver 回 图3求职工平均工资函数三、核心技术的实现说明及相应程序段本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,添加职工数据函数、求职工平均工资数据函数是程序中较为核心的部分,下面分别进行说明。1. 添加数据函数添加数据分为两种情况,其一是在职工文件(worker.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的职工信息写入该文件当中;其二是在职工文件(worker.txt)已经存在的情况下,此时文件以追加的方式打开,这样才可以保证以前已经存在的数据不丢失。具体的程序段如下:if(fp=fopen(e:worker.txt,a)=NULL) /*如果文件已经存在,可以追加职工信息*/if(fp=fopen(e:worker.txt,w)=NULL) / 文件不存在时,创建新文件,输入职工信息 printf(文件打开失败!n); return; printf(请输入要添加的职工数量,按回车键确认:); scanf(%d,&n); for(i=1;i=n;i+) printf(n请输入第%d个职工的编号、姓名,用空格分开,并按回车键确认:n,i); scanf(%s%s,wor.num,); printf(n请输入第%d个职工的工资,并按回车键确认:n,i); scanf(%f ,&worker.wage); fprintf(fp,%s %s %fn,wor.num,,wor.wage);2. 求职工平均函数该函数的核心内容是求职工平均工资的算法。该函数执行时,首先调用reads函数将文件中的职工信息读入数组当中。对职工平均工资的具体算法是在for循环中实现的,首先对所有职工工资求总和,再通过除法运算求出职工的平均工资,并显示出来。具体程序段如下:struct worker worN;/求职工平均工资 int i=0; float aver=0,n; n=reads(wor);/ 将职工信息读入数组中 for(i=0;in;i+) aver=aver+wori.wage; aver=aver/n; printf(平均工资为:n%fn,aver);四、课设总结持续一周的课设终于结束,感觉就像一个重担卸了下来,得到的体会和感悟颇多。回想当初学习c语言的过程,自己没有太认真学过,真的是懊悔万分。经过了一个星期的上机实践,使我对c语言有了重新的认识,使我明白了只有通过不断实践才能学会运用,只有通过自己的努力和勤奋,才能够熟能生巧,如鱼得水。 从开始设计时,我不懂得如何调用子函数,通过理解老师给的模板,我感觉自己收获很大。当我编完了程序,编译总是出错,头疼了几天才发现变量没有赋初值,这才大功告成。整个设计完成了,还是有很多不足的地方,不过我还是很满足的。对此我希望自己以后做什么都应该深思熟虑,考虑事情要全面,利用团队的力量使自己事半功倍。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include#include#include#includeconio.h#define N 20struct workerchar number20; char name10; float wage;void menu();int reads(struct worker worN);void add();void query();void average();void main() int n; while(1) menu(); printf(n 请输入您要选择的操作序号,按回车键确认:); scanf(%d,&n); switch(n)case 1: add();break; case 2: query();break; case 3: average();break; case 4: exit(0); default: printf(输入错误,请输入列表中存在的序号!n );void menu()printf( *企业职工工资管理系统* ); printf(n 1 职工信息录入); printf(n 2 查询职工数据); printf(n 3 职工平均工资); printf(n 4 退出);int reads(struct worker worN) / 读取职工文件中的内容 FILE *fp; int i=0; if(fp=fopen(e:worker.txt,r)=NULL) printf(文件打开失败!n); return 0; else for(i=0;!feof(fp);i+) fscanf(fp,%s %s %fn,wori.number,,&wori.wage); fclose(fp); return i;void add()/*录入职工信息*/FILE *fp; int n,i; struct worker wor; if(fp=fopen(e:worker.txt,a)=NULL) /如果文件已经存在,可以追加职工信息 if(fp=fopen(e:worker.txt,w)=NULL) / 文件不存在时,创建新文件,输入职工信息 printf(文件打开失败!n); return; printf(请输入要录入的职工数量,按回车键确认:); scanf(%d,&n); for(i=1;i=n;i+) printf(n请输入第%d个职工的编号、姓名,用空格分开,并按回车键确认:n,i); scanf(%s %s,wor.number,); printf(n请输入第%d个职工的工资,并按回车键确认:n,i); scanf(%f,&wor.wage); fprintf(fp,n%s %s %fn,wor.number,,wor.wage); fclose(fp);void query() / 按编号对职工信息查询 struct worker worN; char number20; int i,n; n=reads(wor); printf(n请输入待查询的职工编号,按回车键确认:n); scanf(%s,number); for(i=0;i=n)printf(没有找到该职工信息!n)

温馨提示

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

评论

0/150

提交评论