C语言课设职工工资管理系统_第1页
C语言课设职工工资管理系统_第2页
C语言课设职工工资管理系统_第3页
C语言课设职工工资管理系统_第4页
C语言课设职工工资管理系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、一前言C语言是CombinedLanguage(组合语言)的中英混淆简称。是一种计算机程序设计语言。它既拥有高级语言的特色,又拥有汇编语言的特色。它能够作为工作系统设计语言,编写系统应用程序,也能够作为应用程序设计语言,编写不依靠计算机硬件的应用程序。设计一个程序的过程就是解决一个实质问题的过程,从解决实质问题的角度,我们能够这样来看:第一要认识这个问题的基本要求,即输入、输出、达成从输入到输出的要求是什么;在次我们一定捋清思路,逐个的解决问题的各个方面,即从输入开始下手,侧重考虑怎样从输入导出输出,在这个过程中,可确立所需的变量、数组、函数、结构体和文件等,而后确立办理过程。本课题中主要应用

2、了C语言中的数组、结构体、文件等重点技术。在C语言中,数组属于结构数据种类。一个数组能够分解为多个数组元素,这些数组元素能够是基本数据种类或是结构种类;结构体(struct)是由一系列拥有同样种类或不一样种类的数据组成的数据会合,也叫结构,在结构体中的变量,能够是同样、部分同样,或完整不一样的数据种类,结构体只好描绘一个对象的状态,不可以描绘一个对象的行为。文件是一种组织外面储存介质上的数据的数据种类。它拥有两个特色:一是对一个数据会合能够用一个名字命名;二是保留在外面储存介质上,能够长久保留。经过此次课设能够锻炼学生理论联系实质能力,提升学生适应实质、实践编程的能力,使对C语言系统编程有一个

3、大概的认识,并达到以下目的:1.熟习C语言程序的编写、编译链接和运转的过程。2.娴熟运用if语句和switch语句以及嵌套应用。3.学习并掌握C语言定义函数的基本方法、申明函数及调用函数的方法和过程。4.掌握文件的观点以及文件的定义方法,认识文件翻开、封闭、读、写等文件基本操作函数。5.掌握结构体种类变量、数组的定义和使用。6.掌握数组的定义、引用以及输入输出的方法、经过字符数组储存字符串,进一步使用字符串。员工薪资管理系统输显查删添修保文退入示找除加改存件出职职职职职职职中工工工工工工工读息信信信信信信取息息息息息息息开始主菜单选择操作选择1选择2选择3选择4选择5选择6选择7选择8选择0主

4、函数源代码:voidmain()intchoose=0;输入员工信息输出员工信息按姓名查找员工信息按工号按姓名增添员工信息按工号删除员工信息按姓名按薪资从高到低按工号保留数据从文件中读取退出结束图2程序流程图while(true)show();printf(tt=请选择:);scanf(%d,&choose);system(cls);switch(choose)case0:exit(0);/退出break;case1:add();back();/增添员工信息break;case2:see();back();/查察员工信息break;case3:search();back();/查找员工信息br

5、eak;case4:del();back();/删除员工信息break;case5:statistics();back();/统计员工薪资break;case6:modify();back();/改正员工信息break;case7:reserve();back();/保留数据break;case8:author();back();/作者信息break;default:break;fflush(stdin);getchar();system(cls);三程序详尽设计3.1增添员工信息函数的实现增添记录前如图3所示。图3增添记录前成效图输入一条记录信息:选择1,回车。输入记录如图4所示。图4输入记

6、录成效图增添后如图5所示。图5增添记录后成效图增添函数代码流程图,如图6所示。开始定义数据种类numberTemp,iinumberTemp输出员工信息i+增添成功结束图6增添函数流程图增添源代码:增添员工信息voidadd()intnumberTemp=0;inti=0;structworkertemp;printf(请输入要增添员工个数:);scanf(%d,&numberTemp);for(i=0;inumberTemp;i+)printf(输入第%d个员工信息n,i+1);printf(姓名:);scanf(%s,);printf(工号:);scanf(%s,temp

7、.ID);printf(基本薪资:);scanf(%d,&temp.salary1);printf(职务薪资:);scanf(%d,&temp.salary2);printf(津贴:);scanf(%d,&temp.salary3);woNumber+=temp;/写入到数组bc(&temp);/写入到文件printf(增添成功n);3.2查察员工信息函数的实现查察记录前如图7所示。图7查察记录前成效图输入一条记录信息:如图8所示:图8输入记录成效图查察记录后如图9所示。图9查察记录后成效图查察函数代码流程图,如图10所示。开始定义i=0iNumber输出员工信息结束图10查察函数流程图查察源

8、代码:查察员工信息voidsee()inti=0;printf(以下是所有员工n);printf(t姓名t工号t基本薪资t职务薪资t津贴n);while(iNumber)printf(t%st%st%dtt%dtt%dn,,woi.ID,woi.salary1,woi.salary2,woi.salary3);i+;3.3查找员工信息函数的实现查找记录前如图11所示。图11查找记录前成效图输入一条记录信息:选择3,回车如图12所示。图12输入记录成效图查找记录后如图13所示。图13查找记录后成效图查找函数代码流程图,如图14所示。开始定义n=0输入n假如n=1按姓名查找假如n=

9、2停止按工号查找输入错误停止停止结束图14查找函数流程图查找源代码:查找员工信息voidsearch()intn=0;printf(1按姓名查找n);printf(2按工号查找n);scanf(%d,&n);switch(n)case1:xmcz();break;case2:ghcz();break;default:printf(输入错误!n);break;voidxmcz()/按姓名查找charname30;inti=0;printf(请输入要查找员工姓名:);scanf(%s,name);system(cls);printf(t姓名t工号t基本薪资t职务薪资t津贴n);for(i=0;iN

10、umber;i+)if(strcmp(name,)=0)printf(t%st%st%dtt%dtt%dn,,woi.ID,woi.salary1,woi.salary2,woi.salary3);voidghcz()/按工号查找charid10;inti=0;printf(请输入要查找员工工号:);scanf(%s,id);system(cls);printf(t姓名t工号t基本薪资t职务薪资t津贴n);for(i=0;iNumber;i+)if(strcmp(id,woi.ID)=0)printf(t%st%st%dtt%dtt%dn,,wo

11、i.ID,woi.salary1,woi.salary2,woi.salary3);3.4删除员工信息函数的实现删除记录前如图15所示。图15删除记录前成效图输入一条记录信息:选择4,回车后,如图16所示:图16输入记录成效图删除记录后如图17所示。图17删除记录后成效图删除函数代码流程图,如图18所示。开始定义n=0输入n假如n=1按姓名删除假如n=2停止按工号删除停止结束图18删除函数流程图删除源代码:删除员工信息voiddel()intn=0;printf(1按姓名删除n);printf(2按工号删除n);scanf(%d,&n);switch(n)case1:xmsc();break;

12、case2:ghsc();break;voidxmsc()/按姓名删除FILE*fp=NULL;charname30;inti=0;intj=0;printf(请输入要删除的员工姓名:);scanf(%s,name);for(i=0;iNumber;i+)if(strcmp(name,)=0)for(j=i;jNumber-1;j+)woj=woj+1;Number-;/将节余数据写入文件擦除从前的数据for(i=0;iNumber;i+)fwrite(&woi,sizeof(structworker),1,fp);fclose(fp);printf(删除成功;n);voidg

13、hsc()/按工号删除FILE*fp=NULL;charid60;inti=0;intj=0;printf(请输入要删除的员工工号:);scanf(%s,id);for(i=0;iNumber;i+)if(strcmp(id,woi.ID)=0)for(j=i;jNumber-1;j+)woj=woj+1;Number-;/将节余数据写入文件擦除从前的数据for(i=0;iNumber;i+)fwrite(&woi,sizeof(structworker),1,fp);fclose(fp);printf(删除成功;n);3.5统计员工薪资函数的实现统计记录前如图19所示。图19统计记录前成效图

14、输入一条记录信息:如图20所示:图20输入记录成效图统计记录后如图21所示。图21统计后前成效图统计函数代码流程图,如图22所示。开始定义i=0For函数初始值i=0iNumber循环体输出员工总薪资i+For函数初始值i=0iNumber循环体i+输出员工均匀薪资结束图22统计函数流程图统计源代码:统计员工薪资voidstatistics()inti=0;doubles=0.0;doublesum100;for(i=0;iNumber;i+)sumi=woi.salary1+woi.salary2+woi.salary3;printf(%s的总薪资为:%fn,,sumi);f

15、or(i=0;iNumber;i+)s+=sumi;printf(均匀薪资为:%fn,s/Number);3.6改正函数的实现改正记录前如图23所示。图23改正记录前成效图输入一条记录信息:如图24所示:图24输入记录成效图改正记录后如图25所示。图25改正记录后成效图改正函数代码流程图,如图26所示。开始定义mode=0输入mode假如mode=1按姓名改正假如mode=2停止按工号改正输入错误停止停止结束图26改正函数流程图改正源代码:改正员工信息voidmodify()intmode=0;printf(请选择改正查找方式n);printf(1按姓名查找改正n);printf(2按工号查找

16、改正n);scanf(%d,&mode);switch(mode)case1:xmxg();break;case2:ghxg();break;default:printf(输入错误!n);break;voidxmxg()/按姓名改正FILE*fp=NULL;charname30;inti=0;printf(请输入要改正的员工姓名:);scanf(%s,name);for(i=0;iNumber;i+)if(strcmp(name,);elsebreak;printf(t姓名t工号t基本薪资t职务薪资t津贴n);printf(t%st%st%dtt%dtt%dn,

17、,woi.ID,woi.salary1,woi.salary2,woi.salary3);printf(请从头输入该员工信息);printf(姓名:);scanf(%s,);printf(工号:);scanf(%s,woi.ID);printf(基本薪资:);scanf(%d,&woi.salary1);printf(职务薪资:);scanf(%d,&woi.salary2);printf(津贴:);scanf(%d,&woi.salary3);/信息改正后从头更新文件里面的数据以保持数据一致性for(i=0;iNumber;i+)fwrite(&woi,sizeof(stru

18、ctworker),1,fp);fclose(fp);voidghxg()/按工号改正FILE*fp=NULL;charid30;inti=0;printf(请输入要改正的员工工号:);scanf(%s,id);for(i=0;iNumber;i+)if(strcmp(id,woi.ID);elsebreak;printf(t姓名t工号t基本薪资t职务薪资t津贴n);printf(t%st%st%dtt%dtt%dn,,woi.ID,woi.salary1,woi.salary2,woi.salary3);printf(请从头输入该员工信息);printf(姓名:);print

19、f(姓名:);scanf(%s,);printf(工号:);scanf(%s,woi.ID);printf(基本薪资:);scanf(%d,&woi.salary1);printf(职务薪资:);scanf(%d,&woi.salary2);printf(津贴:);scanf(%d,&woi.salary3);/信息改正后从头更新文件里面的数据以保持数据一致性for(i=0;i改正成功n);3.7保留数据函数的实现保留记录前如图27所示。图27保留记录前成效图输入一条记录信息:图28输入记录成效图保留记录后如图29所示。图29保留记录后成效图保留源代码:保留数据voidrese

20、rve()printf(t=程序在运转时已自动保留.n);voidback()printf(t=按Enter键返回主菜单n);3.8作者信息函数的实现作者记录前如图30所示。图30作者记录前成效图输入一条记录信息:如图31所示:图31输入记录成效图作者记录后如图32所示。图32作者记录后成效图作者源代码:作者信息voidauthor()printf(t*nn);printf(t某学校nn);printf(t通讯工程nn);printf(t*制作nn);printf(t*nn);3.9退出程序操作前如图33所示。图33作者记录前成效图输入一条记录信息:如图34所示:图34输入记录成效图回车后:如

21、图35所示按随意键即可退出。图35输入记录后成效图四总结经过这几日的努力,员工薪资管理系统的设计已基本达成。在本次课程设计中,我充分领会了C语言功能的强盛,包含函数、数组、指针、结构体、文件等。员工薪资管理系统是一个很适用并且使用宽泛的操作系统。此系统能够减少好多工作量,做到设计合理,便于使用,易于操作;界面友善,容错性高,可在很短的时间内,查找出所需的员工薪资资料,提升工作效率。该系统拥有增添、显示、查问、改正、删除等基本功能,以方便对薪资的各项管理操作。每一条记录包含一个员工的工号、姓名、工资等信息,系统的各个功能模块都用函数的形式来实现,能够将员工信息保留在文件中,并从文件中读拿出来。总

22、的来说,经过此次程序设计,使我加深了对C语言的认识,进一步熟习了对C语言功能的灵巧运用,并且加深了我对程序的理解和编写能力,经过文件资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其拥有的强盛功能和发展远景。这会对此后的学习有所帮助。参照文件谭浩强,张基温.C语言程序设计教程M.第3版.高等教育第一版社,2006杨涛C程序设计语言北京:机械工业第一版社,2004全国计算机等级考试二级教程:C语言程序设计(2009年版).高等教育第一版社附录#include#include#includestructworkercharname30;charID10;intsa

23、lary1,salary2,salary3;intdq(structworkerwo);voidshow();voidbc(structworkerwo);voidadd();voidsee();voidsearch();voidghcz();voidxmcz();voiddel();voidxmsc();voidghsc();voidstatistics();voidmodify();voidghxg();voidxmxg();voidreserve();voidback();voidauthor();structworkerwo100;/保留所有的员工信息intNumber=0;/记录总的

24、员工人数voidmain()intchoose=0;while(true)show();printf(tt=请选择:);scanf(%d,&choose);system(cls);switch(choose)case0:exit(0);/退出break;case1:add();back();/增添员工信息break;case2:see();back();/查察员工信息break;case3:search();back();/查找员工信息break;case4:del();back();/删除员工信息break;case5:statistics();back();/统计员工薪资break;cas

25、e6:modify();back();/改正员工信息break;case7:reserve();back();/保留数据break;case8:author();back();/作者信息break;default:break;fflush(stdin);getchar();system(cls);intdq(structworkerwo)FILE*fp=NULL;inti=0;while(fread(&woi,sizeof(structworker),1,fp)i+;fclose(fp);returni;voidshow()printf(n);printf(t*员工薪资管理系统*nn);pri

26、ntf(t*nn);printf(t1增添员工信息n);printf(t2查察员工信息n);printf(t3查找员工信息n);printf(t4删除员工信息n);printf(t5统计员工薪资n);printf(t6改正员工信息n);printf(t7保留数据n);printf(t8作者信息n);printf(t0退出系统nn);printf(t*n);voidbc(structworker*wo)FILE*fp=NULL;fwrite(wo,sizeof(structworker),1,fp);fclose(fp);增添员工信息voidadd()intnumberTemp=0;inti=0

27、;structworkertemp;printf(请输入要增添员工个数:);scanf(%d,&numberTemp);for(i=0;inumberTemp;i+)printf(输入第%d个员工信息n,i+1);printf(姓名:);scanf(%s,);printf(工号:);scanf(%s,temp.ID);printf(基本薪资:);scanf(%d,&temp.salary1);printf(职务薪资:);scanf(%d,&temp.salary2);printf(津贴:);scanf(%d,&temp.salary3);woNumber+=temp;/写入到

28、数组bc(&temp);/写入到文件printf(增添成功n);查察员工信息voidsee()inti=0;printf(以下是所有员工n);printf(t姓名t工号t基本薪资t职务薪资t津贴n);while(iNumber)printf(t%st%st%dtt%dtt%dn,,woi.ID,woi.salary1,woi.salary2,woi.salary3);i+;查找员工信息voidsearch()intn=0;printf(1按姓名查找n);printf(2按工号查找n);scanf(%d,&n);switch(n)case1:xmcz();break;case2:

29、ghcz();break;default:printf(输入错误!n);break;voidxmcz()/按姓名查找charname30;inti=0;printf(请输入要查找员工姓名:);scanf(%s,name);system(cls);printf(t姓名t工号t基本薪资t职务薪资t津贴n);for(i=0;iNumber;i+)if(strcmp(name,)=0)printf(t%st%st%dtt%dtt%dn,,woi.ID,woi.salary1,woi.salary2,woi.salary3);voidghcz()/按工号查找charid1

30、0;inti=0;printf(请输入要查找员工工号:);scanf(%s,id);system(cls);printf(t姓名t工号t基本薪资t职务薪资t津贴n);for(i=0;iNumber;i+)if(strcmp(id,woi.ID)=0)printf(t%st%st%dtt%dtt%dn,,woi.ID,woi.salary1,woi.salary2,woi.salary3);删除员工信息voiddel()intn=0;printf(1按姓名删除n);printf(2按工号删除n);scanf(%d,&n);switch(n)case1:xmsc();break;c

31、ase2:ghsc();break;voidxmsc()/按姓名删除FILE*fp=NULL;charname30;inti=0;intj=0;printf(请输入要删除的员工姓名:);scanf(%s,name);for(i=0;iNumber;i+)if(strcmp(name,)=0)for(j=i;jNumber-1;j+)woj=woj+1;Number-;/将节余数据写入文件擦除从前的数据for(i=0;iNumber;i+)fwrite(&woi,sizeof(structworker),1,fp);fclose(fp);printf(删除成功;n);voidgh

32、sc()/按工号删除FILE*fp=NULL;charid60;inti=0;intj=0;printf(请输入要删除的员工工号:);scanf(%s,id);for(i=0;iNumber;i+)if(strcmp(id,woi.ID)=0)for(j=i;jNumber-1;j+)woj=woj+1;Number-;/将节余数据写入文件擦除从前的数据for(i=0;iNumber;i+)fwrite(&woi,sizeof(structworker),1,fp);fclose(fp);printf(删除成功;n);统计员工薪资voidstatistics()inti=0;doubles=0

33、.0;doublesum100;for(i=0;iNumber;i+)sumi=woi.salary1+woi.salary2+woi.salary3;printf(%s的总薪资为:%fn,,sumi);for(i=0;iNumber;i+)s+=sumi;printf(均匀薪资为:%fn,s/Number);改正员工信息voidmodify()intmode=0;printf(请选择改正查找方式n);printf(1按姓名查找改正n);printf(2按工号查找改正n);scanf(%d,&mode);switch(mode)case1:xmxg();break;case2:ghxg();break;default:printf(输入错误!n);break;voidxmxg()/按姓名改正FILE*fp=NULL;charname30;inti=0;printf(请输入要改

温馨提示

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

评论

0/150

提交评论