ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:131.40KB ,
资源ID:4475684      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4475684.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课设职工工资管理系统 ln.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课设职工工资管理系统 ln.docx

1、C语言课设职工工资管理系统 lnC语言课设职工工资管理系统山西大学软件学院 程序设计基础 课程设计报告书题目: 职工工资管理系统 指导教师: 亢临生 班 级: 软件工程1611 姓 名: 李国栋 学 号: 2016028* 课设时间: 2017.6.20 成 绩 二一七年六月课 程 设 计 任 务 书题 目职工工资管理系统一、设计内容及要求一个职工的工资信息包含姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金。编写程序实现对职工工资的录入、显示、修改、查询、保存等功能。参考数据ID号 姓名 基本工资 职务工资 津贴 医疗保险- 公积金- 总工资 01 张望 1286 794 198

2、 109 135 2034 02 李明 1185 628 135 94 114 1740 03 王小民 895 438 98 64 73 1294 04 张效章 1350 868 210 116 150 2162 二、设计原始资料 无三、设计完成后提交的成果及其相关资料。 1.完整的源程序 2.课程设计报告书电子版一份 3.课程设计报告书纸质版一份四、主要参考资料1.人民邮电出版社 2.清华大学出版社五、进程安排1.2017年6月13日:下达任务,指导老师做出必要讲解2.2017年6月13日-2017年6月22日,指导老师在机房定时辅导学生完成课程设计项目 第1章 课程设计的目的与要求1.1

3、课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完程序设计语言(C)课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力1.2 课程设计的实验环境硬件要求能运行Windows 2000/XP操作系统的微机系统。C语言程序设计及相应的开发环境。1.3 课程设计的预备知识熟悉C语言及C语言开发工具。1.4 课程设计要求1. 分析课程设计题目的要求2. 写出详细

4、设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告第2章 课程设计内容2.1程序功能介绍每一个职工的工资信息包含姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金。编写程序实现对职工工资的录入、显示、修改、查询、保存等功能。参考数据ID号 姓名 基本工资 职务工资 津贴 医疗保险- 公积金- 总工资 01 张望 1286 794 198 109 135 2034 02 李明 1185 628 135 94 114 1740 03 王小民 895 438 98 64 73 1294 04 张效章 1350 868 21

5、0 116 150 2162 05 彭山 745 398 84 61 68 1098 2.2程序整体设计说明根据题目要求,应该把职工工资信息用结构体形式输入,再定义一个变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作。在程序中需实现职工工资浏览、查询、修改等功能的操作,所以要建立相应的功能模块来实现。在头文件中将所需包含的函数进行输入,再进行变量的定义,如:定义数据结构,有关职工工资管理需要输入的基本信息再用指针的方法将这些有关变量进行地址存储。再定义出工资管理整个程序中所需要的函数原型;然后进行主函数的书写,并显示所有数据。主函数无

6、限循环,数据的录入、修改、查询等均是对内存中的链表进行操作,每次操作后将数据保存到文件。2.2.1设计思路首先利用while(1)对提示页面无限调用,帮助用户输入对应的正确数字编码,在输入职工信息时,运用void import()调用函数对文件的使用,首先定义一个指针文件,又以写的方式打开此文件,在打开的文件中输入要管理的职工人数,用一个for循环按照姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金的格式循环获取职工的记录,使用fwrite()将职工记录写入文件“word”中,并fclose关闭文件。在查询职工信息时,按职工号查询,首先是以只读(二进制)的方式打开文件“word”,

7、 然后输入要查询的职工号,用一个for循环来控制查询的人数,之后在显示器上显示某一个职工信息,然后关闭文件。在修改职工信息时,按职工号修改,首先是以读写的方式打开文件“word”。输入要修改的职工号,用一个for循环来控制输入的数量。然后对职工的信息进行修改,就可获得新的职工记录。之后文件指针指向该修改的记录开头,此时用fwrite覆盖当前记录,修改完成时系统会显示修改后的文件数据:姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金然后关闭文件。在显示职工信息时,运用void browse()调用函数对文件的使用。首先以只读的方式打开一个文本文件”word”。操作无误则用for循环输

8、出正在查询职工的:记录号 职工号 姓名 性别 年龄 工资。这些完成后用fclose(fp)函数关闭文件。2.2.2数据结构设计及用法说明 数据结构:定义结构体people,用于存放职工的基本信息和工资信息.使用struct结构体编辑主菜单,定义全局变量,用于存放结构体数组。使用一维数组。用for语句编辑输入模块,用switch、for语句编辑查找职工数据,用if,for语句编辑修改职工信息。用法说明:启动后屏幕上会显示下面菜单:1 录入信息2 修改信息3 显示所有4 查询信息5 退出执行者若要执行某一功能,就按下该功能所对应的数字即可。输入职工信息:在主菜单中输入1则系统会进入新界面并自动提示

9、你输入职工号,输入完成后按回车键系统会逐一提示输入姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金,输入完成后会继续提示输入下一个职工的职工号。修改职工信息:在主菜单中输2,系统会自动提示你输入要修改的职工号,然后进行修改。修改成功显示已修改后的文件数据;输入错职工号显示查无此人。显示职工信息:在主菜单中输入3系统界面是输出菜单界面,按照输入格式:姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金,逐个的输出职工的信息,输出所有职工信息后系统自动退出。查询职工信息:主菜单中输入4 则进入查询子菜单界面,输入职工号后会出现该职工的信息。输入错误职工号,显示查无此人。 退出:

10、在主菜单中输入5则退出系统。并显示 “ 退出成功 请关闭 ”。2.2.3各模块的功能及程序说明首先是定义了一个输入输出头文件,接着是一个宏定义,下面是函数声明部分,用结构体存储和录入该程序的所有数据,主函数部分包括设计的全部信息,之后是输出主菜单和调用函数,退出程序。此程序中包括:输入模块、查询模块、修改模块、显示模块。输入模块:该模块先是对姓名、ID号、基本工资、职务工资、岗位津贴、医 疗保险、公积金的录入并保存到文件“word ”中。查询模块:实现按职工号查询每个职工的信息,查询显示姓名、ID号、基本 工资、职务工资、岗位津贴、医疗保险、公积金修改模块:该模块实现按职工号对职工所有信息的修

11、改。显示模块: 该模块实现按职工号输出职工的所有信息。退出模块:保存并且关闭,用来退出while(1)的死循环2.2.4程序结果展示录入模块:修改模块:查询模块:显示模块:退出模块:2.3程序源代码及注释/*每一个职工的工资信息包含姓名、ID号、基本工资、职务工资、岗位津贴、医疗保险、公积金。编写程序实现对职工工资的录入、显示、修改、查询、保存等功能。参考数据ID号 姓名 基本工资 职务工资 津贴 医疗保险- 公积金- 总工资 01 张望 1286 794 198 109 135 2034 02 李明 1185 628 135 94 114 1740 03 王小民 895 438 98 64

12、73 1294 04 张效章 1350 868 210 116 150 2162 05 彭山 745 398 84 61 68 1098 */ 源码: #include #include #include #define max 30 /定义 void menu();/菜单 void import(); void browse();/显示所有 void search_num();/查询信息 void revise();/修改信息 struct people /定义个人信息结构体 char no5; /编号 char namemax; /名字 int basepay;/基本工资 int wage

13、; /职务工资 int subsidy;/津贴 int surance;/医疗保险 int fund; /公积金 int total; /z总和 ; struct people nummax; /定义人员信息数组 void main()/主函数 menu(); void menu() /菜单 int a; int i=0; while(1) printf(n*n) ; printf(1.录入信息n) ; printf(2.修改信息n) ; printf(3.显示所有n) ; printf(4.查询信息n) ; printf(5.退出n) ; printf(n*n) ; printf (请输入数

14、字编码); scanf(%d,&a); switch (a) case 1: /录入数据 import(); break; case 2: /修改信息 revise(); break; case 3: /显示信息 browse(); break; case 4: /查询信息 search_num(); break; case 5: /退出 printf(退出成功 请关闭) ; exit(0); defaul: /输入错误 printtf(请重新输入); break; void import() /录入信息 FILE *fp; int n,i; /n用来存储职工数 i用来存储第几个员工 if (

15、fp=fopen(word,wb)=NULL) / / printf(不能建立word文件n); / 这四行用来判断是否可以正确打开 exit(1); / printf(输入职工人数:); scanf (%d,&n); for(i=0;in;i+) printf(请输入第%d个职工的编号,i+1); scanf(%s,&numi.no); /职工号 printf(请输入第%d姓名信息,i+1); scanf(%s,&numi.name); /姓名 printf(请输入第%d基本工资,i+1) ; scanf(%d,&numi.basepay) ; /基本工资 printf(请输入职务工资) ;

16、 scanf(%d,&numi.wage) ; /职务工资 printf(请输入津贴) ; scanf(%d,&numi.subsidy) ; /津贴 printf(请输入医疗保险) ; scanf(%d,&numi.surance) ; /保险 printf(请输入公积金) ; scanf(%d,&numi.fund) ; /公积金 numi.total= numi.basepay+numi.wage+numi.subsidy+numi.surance+numi.fund; /计算总和 fwrite(&numi,sizeof(struct people),1,fp); /写入到文件中 fcl

17、ose(fp); /关闭文件 void revise() /修改信息 FILE *fp; int i; char number5; if(fp=fopen(word,rb+)=NULL) /二进制读的方式打开 printf(不能打开word文件n); exit(1); printf(输入要修改的的职工号:); scanf(%s,number); for(i=0;fread(&numi,sizeof(struct people),1,fp);i+) if(!strcmp(numi.no,number) break; /对比职工号 如果没有这个职工号 就退出 if(feof(fp) /如果fp文件

18、指针到达文件尾 printf(t查无此人n); exit(2); /fseek(fp,i*sizeof(struct people),SEEK_SET); printf(请输入职工新的编号); scanf(%s,&numi.no); printf(请输入姓名信息); scanf(%s,&numi.name); printf(请输入基本工资) ; scanf(%d,&numi.basepay) ; printf(请输入职务工资) ; scanf(%d,&numi.wage) ; printf(请输入津贴) ; scanf(%d,&numi.subsidy) ; printf(请输入医疗保险) ;

19、 scanf(%d,&numi.surance) ; printf(请输入公积金) ; scanf(%d,&numi.fund) ; numi.total= numi.basepay+numi.wage+numi.subsidy+numi.surance+numi.fund; fseek(fp,-(long)sizeof(struct people),SEEK_CUR); /移动指针到所在数组的第一个地址上 fwrite(&numi,sizeof(struct people),1,fp); /写入数据 fclose(fp); void browse() /显示信息 int i; FILE *f

20、p; if(fp=fopen(word,r)=NULL) printf(不能打开word文件n); exit(0); printf(职工号t 姓名t 基本工资t 职务工资t 津贴t 医疗保险t 公积金t t总工资 n); for(i=0;fread(&numi,sizeof(struct people),1,fp)!=0;i+) printf(%st %st %dtt %dtt %dt %dtt %dtt %dtn,numi.no,numi.name,numi.basepay,numi.wage,numi.subsidy,numi.surance,numi.fund,numi.total);

21、fclose(fp);void search_num()/查询信息 FILE *fp; int i; char number5; if(fp=fopen(word,rb)=NULL) printf(不能打开word文件n); exit(1); printf(要查询的职工号:); scanf(%s,number); for(i=0;fread(&numi,sizeof(struct people),1,fp);i+) if(!strcmp(numi.no,number) break; if(feof(fp) printf(t查无此人n); printf(职工号t 姓名t 基本工资t 职务工资t

22、津贴t 医疗保险t 公积金t 总工资 n); printf(%st %st %dt %dt %dt %dt %dt %dtn,numi.no,numi.name,numi.basepay,numi.wage,numi.subsidy,numi.surance,numi.fund,numi.total); fclose(fp); 第3章 课程设计总结经过一学期的C语言学习,我们掌握了C语言的基础知识,我对课程设计有了一定的了解,并且通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的。在编写课程设计的时候,发现我对文件这一块知识还不是很清楚,所以通过查找资料的方式,进一

23、步了解了fopen(),fwriter()以及fseek()函数的用法,参考的书籍是人民邮电出版社的,很庆幸自己野逐渐熟悉了这几个常用的函数,也发现自己在学习生活中好高骛远,动手次数相对较少的问题,在以后的学习生活中一定会努力改变这个情况。通过这几天的努力,职工工资管理系统的设计已基本完成。在本次课程设计中,我充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。而且我学会了最基本的替换,然后扩展到循环、嵌套,条理很清楚。总的来说,通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。这会对以后的学习有所帮助。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1