c语言工资管理系统课程设计_第1页
c语言工资管理系统课程设计_第2页
c语言工资管理系统课程设计_第3页
免费预览已结束,剩余9页可下载查看

下载本文档

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

文档简介

1、程序设计课程设计报告院系:地质工程系班级:地质工程班组员:陈欣永胡世俊李积荣赵海俊马小成目录1 、设计目的1二、设计内容与要求2设2 计内容3设计要求4三、总流程图设计5四、程序详细功能设计6五、程序调试7六、设计小结8七、参考文献10附录、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。工资管理系统的设计与实现,此次程序设计主要利用C语言的基础知识开发一个简单的职工

2、工资管理系统。工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。:、设计内容与要求1.设计内容主要利用C语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工LI前的工资状况。有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。2.设计要求在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。、总体流程图设计交件中读电保存职工信息修改职

3、工信息IfUh.卜1I添加职工信,恩删除职信息查找职工f/;息显示职工信息输入职工恩息职工工资管理系统汗始选择操作从文件中读取退出四.程序详细功能设计1、设计一个能够记录公司职工工资的数据结构,每条记录包括:职工号,姓名,资,职务工资,津贴。2、应用文件保存工资管理数据。3、新增:能将所有输入的职工工资数据保存到文件中,并可选择继续输入或退出基本工4、查看:查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴定义U0输出职工信息5、查找:输入职工的职工号或姓名,并在文件中查找。若找到,则显示该职工的工资详情;否则提示未找到。无论查找成功否,应还可选择继续查找或退出。定义n=0输入n按工

4、号查找输入错误dd终止终止6、删除:输入职工的职工号,并在文件中查找。若找到,提示是否确定删除。若选择是,则删除文件中该职工信息;若选择否,则取消。若未找到则提示无此职工信息。无论查找成功否,应还可选择继续查找或退出。怎义n=0IIII7、修改:输入职工的职工号在文件中查找。若找到,显示该职工的所有信息,否则提示无此职工信息。无论查找成功否,应还可选择继续查找或退出。开始8、统计:9、退出:退出程序五、程序调试12TJ程序调试的任务是排除程序中的错误,使程序能顺利地运行并得到预期的效果。程序的调试阶段不仅要发现和消除语法上的错误,还要发现和消除逻辑错误和运行错误。要正确利用编辑时提示的错误信息

5、。调试阶段出现了很多的问题,主要如下:1、在定义和运用数据类型时出现问题,不清楚字符串的输出用S,而错用为Co2、忘记“;”或把“;”用错误的输入法输入,造成的错误。3、大括号混乱造成错误。4、用文件保存职工信息时,对printf不熟悉,造成使用格式错误,输出内容不符合,通过仔细核对书上的格式才改掉。5、在读取信息时,不会用scanf,是程序的运行结果混乱,造成职工信息错位,或是直接输出0.00等。六、设计小结通过这儿天的努力,职上工资管理系统的设计已基本完成。在本次课程设计中,我充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。职工工资管理系统是一个很实用并且使用广泛的操作系

6、统。此系统可以减少很多工作虽,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间内,查找出所需的职工工资资料,提高工作效率。该系统具有添加、显示、查询、修改、删除等基本功能,以方便对工资的各项管理操作。每一条记录包括一个职工的工号、姓名、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将职工信息保存在文件中,并从文件中读取出来。在本次课程设计中,我也发现了自己很多的不足,并学到了许多的知识。对以前课本中学到的知识有了更深刻的理解,和灵活的运用。不再像以前一样,知识浅显的明口,死板的套用。编写程序的过程,让我感觉到了无限的快乐,不仅仅是因为可以将以前学到的相关知识灵活运

7、用,还因为在这个过程中学到了太多以前所没有掌握的东西。最后我还掌握到了写复杂程序的技巧,在写大程序时应遵守“自顶向下,逐步细化,模块化”的方法进行设计;C语言提供了丰富的数据库和各种功能的函数,我们要善于使用,使我们的程序达到最简洁的这将对我以后的C程疗;学习产生重要的影响。通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科乂一次加深了认识,也意识到了其具有的强大功能和发展前景。这会对以后的学习有所帮助。1 七、参考文献谭浩强.C程序设计(第三版)北京:清华大学出版社

8、2006.3.2 王为青等.C语言高级编程及实例剖析北京:人民邮电出版社2007.3.3 黄明等.C语言课程设计北京:电子工业出版社2006.3.附录源程序include<stdio.h>八include<stdlib.h>include<string.h>structworkercharnamc30J;charID10;intsalaryLsalary2,salarv3;intdq(stnictworkerwo);voidshow();voidbc(structworkerwoJ);voidadd();voidsee();voidsearch();void

9、ghcz();voidxmcz();voiddel();voidxmsc();voidghsc();voidstatistics();voidmodifyO;voidghxg();voidxmxg();voidreserve();voidback();voidauthor();structworkerwo100;/保存所有的职工信息intNumber=0;记录总的职工人数voidmain()intchoose=0:while(true)show();printf(ntt=>iH选择:°);scanf(n%d,&choose);system(Hclsn);switch(c

10、hoose)case0:cxit(O);/退出break:case1:add();back();添加职工信息break;case2:sec();back();/查着职工信息break:case3:search();back();/查找职工信息break;case4:dcl();back();/删除职工信息break;case5:statistics();back();/统计职工工资break:case6:modifyO;back();/修改职工信息break:case7:reserve;back();保存数据break:case8:author();back();/作者酒息break:defa

11、ult:break;fflush(stdin);getcharO;systeni(nclsH);intdq(stmctworkerwo)(FILE*fp=NULL;inti=0;fp=fopen(MC:/worker.datH;,rbn);while(fread(&woi,sizcof(struc(worker),1?fp)i+;fclose(fp);returni;voidshow()printf(V);printf(Mt*职匚工资管理系统*nrT):printf(ytAAAAAAAA人人添加职工信息AAAAAAAAAAAAAAAAAAH).查看职T信AAAAAAAAAAAAA人八八

12、八山”),查找职工信息AAAAAAAAAAAAAAAAAHJ.删除职工信息aaaaaaaaaaaaaaaaAhj.统?职I丁igAAAAAAAAAAAA人人八人八山“)?修改职工信息AAAAAAAAAAAAAAAAAHJ.保存数AAAAAAAAAAAAAAAAAAA'*)-作者AAAAA1printf(MtAAAAAAAA人人人aaaA7printf(MtAAAAAAAAAAAAAAA3printf(HtAAAAAAAAAAAAAAA4printf(MtAAAAAAAAAAAAA5printf(HtAAAAAAAAAAAAAAA6printf(MtAAAAAAAAAAAAA7)prin

13、tf(HtAAAAAAAAAAAAAAA8printf(MtAAAAAAAAAAAAAoprintf(Mt*Avoidbc(structworker*wo)(FILE*fp=NULL;fp=fopen(MC:/worker.dat,ab+H);fwrite(wo,sizeof(structworker).1,fp);fclose(fp);/添加职工信息voidadd()(intnumbcrTemp=O:inti=0;structworkertemp:primf(”请输入要添加职工个数:”);scanf(%cT;&niimbciTcmp);for(i=0:i<numberTemp;

14、i+)(printf(M输入第d个职工信息iri+l);printf(勺生需:”);scanf(,%s,);printf(H工号:”);scanf(N%sM,temp.ID);printf(H基本工资:scanf(,%d,&temp.salaryl);print职务工资:scanf(”cT;&icmp?salary2);printf(M津贴:”);scanf(%d:&icmp.salary3);woNumber+=temp;写入到数组bc(&temp);写入到文件printf(M添加成功n”;)/查看职工信息voidsee()(inti=0;p

15、rintf(M以下是全部职工n”)printf(Mt姓名t工号基本工资乂职务工资t津贴W);while(i<Number)(printf(Ht%st%st%dtt%dtt%dn,,woi.ID,woi.saIaryl,woi.salary2,woi.salary3);i+/查找职工信息voidsearch()(intn=0;printf(Hl按姓名查找n”;)printf(h2按工号查找n”;)scanf(H%d,&n);switch(n)(case1:xmcz();break;case2:ghcz();break:default:printf(M输入错误!n”)

16、break;voidxmcz()/按姓名查找(charname30;inti=0;printf(H请输入要查找职工姓名门;scanf(N%sM,nanie);system(HclsH);printf(Mt姓名t工号l基本工资t职务工资t津贴n”,for(i=O:ivNumbcr:i+)(if(strcmp()=0)(printf(”t%st%st%dtt%dtt%dn,)woi.ID.woi.salaryhwoi.salary2,woi.salary3);voidghcz()按工号查找(charid10;inti=0;primf(”请输入要查找职工工号

17、L);scanf(N%sH,id);SYSteni(”clsn)iprintf("t姓切山工号t基本工资t职务工资t津贴n”)for(i=O:ivNumbcr:i+)(if(strcmpfid.woi.ID)=0)Hprintf(Ht%st%st%dtt%dtt%dn,,woi.ID,woi.salaryhwoi.salary2,woi.salary3);/删除职工信息voiddel()intn=0;printf(Hl按姓名删除n”;)printf(h2按工号删除i门;scanf(n%d*&n);switch(n)case1:xmsc();break;case

18、2:ghsc();break:voidxmsc()按姓名删除FILE*fp=NULL;charname30J;inti=0;intj=0:printfC*请输入要删除的职工姓需:");scanf(,%s,name);for(i=0;i<Number;i+)(if(strcmp()=0)(for(j=i;j<Number-l;j+)(woj=woj+l;Number-;/将剩余数据写入文件擦除以前的数据fp=fopen(MC:/worker.datH/,wbH);for(i=O:i<Number;i+)(fwrite(&woi,siz

19、cof(s(ruc(worker)J.fp);fclose(fp);printf(M删除成功;n”;)voidghsc()按工号删除(FILE*fp=NULL;charid60;inti=0;intj=0;printf(H请输入要删除的职工工号:J;scanf(N%sM,id);for(i=0;i<Number:i+)(if(strcmpfid.woi.ID)=0)(for(j=i;j<Number-l;j+)(woj=woj+l;Number-;/将剩余数据写入文件擦除以前的数据fp=fopen(MC:/worker.datH;wbu);for(i=O;i<Number;i

20、+)(fwrite(&woi,sizcof(stniciworker),1?fp);fclose(fp);printf(H删除成功;n”,/统计职工工资voidstatistics()(inti=0;doubles=0.0;doublesum100;for(i=0;i<Number;i+)(sumi=woi.salaryl+woi.salary2+woi.salary3;printf(H%s白6总工资岛:%fn,wo(,sumi);for(i=0;i<Number;i+)(s+=sumi;printf(H平均工资为:%fAi,s/Number);/修改职工信息v

21、oidmodifyO(intmodc=0;prim"请选择修改查找方式nJ;printf(MI按姓名查找修改nj;printf(H2按工号查找修改n“;)scanf(”cT,&modc);switch(mode)(case1:xmxg();break:case2:ghxg();break;default:printf(M输入错误!n”)break:voidxmxg()按姓名修改(FILE*fp=NULL;charname30J;inti=0;primf(”请输入要修改的职工姓。);scanf(%s”.namc);for(i=O;i<Number;i+)(if(strcm

22、p(name,);elsebreak;printf(Mt姓名t工号l基本工资t职务工资t津贴n”,printf(nt%st%st%dtt%dtt%dn,,woi.ID.woi.salaryhwoi.salary2,woi.salary3);printfC请重新输入该职工彳息J;printf(H姓名:”);scanf(,%s,wofi.nanie);printf(H工号:H);scanf(N%s,woi.ID);printf(M基本工资);scanf(,%d,&woi.salaryl);print"职务工资:)scanf(,%d,&woi

23、.salary2);print"津贴:”);scanf(,%d,&woi.salary3);信息修改后重新更新文件里面的数据以保持数据一致性fp=fopen(MC:/worker.datH;wbM);for(i=O:ivNumbcr:i+)(fwritef&woi,sizeof(structworker)JJp);fclose(fp);voidghxg()/按工号修改(FILE*fp=NULL;charid30;inti=0;printf(M请输入要修改的职工工号:°);scanf(N%sM,id);for(i=O:ivNumbcr:i+)(if(strcmp(id.woi.ID);el

温馨提示

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

评论

0/150

提交评论