基于c语言工资管理系统程序设计_第1页
基于c语言工资管理系统程序设计_第2页
基于c语言工资管理系统程序设计_第3页
基于c语言工资管理系统程序设计_第4页
基于c语言工资管理系统程序设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、xxxxxxxx学院高级语言程序课程设计基于c语言的工资管理系统程序设计 学生姓名x x学 号xxxxxxxxxx所在学院xxxxxx专业名称xxxxx班 级xxxx级x班指导教师xxx成 绩 xxxxxxxx学院二一四年十二月四川师范大学成都学院课程设计报告课程设计任务书学生姓名xx学生学号xxxxxxxxxxx学生专业通信工程学生班级xxxx指导教师xxx职 称xx发题日期 2014年10月21日完成日期 2014年12月10日设计题目基于c语言的工资管理系统程序设计设计目的:1、初步了解软件开发的一般方法和步骤;2、提高学生用C语言进行文件操作和绘图应用的编程技术水平3、提高撰写技术文档

2、的能力。具体任务及要求:任务:利用C语言的文件操作能力设计开发一个工资管理系统,实现对职工工资进行系统化的管理,首先可以对工资基本信息进行输入和存取,其次可以读取工资的相关信息,然后可以删除和插入工资的相关信息,还有就是可按职工号查询此职工号的职工的相关信息,并按照工资统计结果的高低进行排序。 要求:1、 必须有完整程序及必要的解释说明2、 必须有运行结果3、写出设计课程设计报告课程设计进度安排:序号内容安排时间1阅读设计题目、任务内容,规划设计进度2014.11.32014.11.52进行软件的相关功能模块设计2014.11.62014.11.83查找相关的资料2014.11.92014.1

3、1.104设计并完成程序2014.11.112014.11.275编写并完成课程设计报告2014.11.272014.12.9课程设计参考文献:1 谭浩强:C程序设计(第二版),清华大学出版社,1999.12,P38-P642 刘瑞挺:计算机二级教程,南开大学出版社,1996.10,P41-P463 姜仲秋:C语言程序设计,南开大学出版社,1998.1,P27-P294 裘宗燕:从问题到程序,北京大学出版社,1999.4,P32-P545 王明福:C语言程序设计教程,高等教育出版社,2004.3,P101-P105指导教师签字院长审核签字基于C语言的工资管理系统内容摘要:主要利用C语言的文件操

4、作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。根据题目的要求,应该把职工工资信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作。在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现。另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。关键词:C语言 工资管理 程

5、序The salary management system based on C languageAbstract:Its main use C language documents the development of a small management information system design and operation ability, at least has the following functions: the staff information input, modify or delete, search by name or number of employee

6、s, employee salary information and itemized believe, also can present salary check all the staff. The function of a text menu to call each function and a main menu to prompt the user how to operate.According to the requirements of the subject, should take the wages of staff and workers with the stru

7、cture form of information input, then define a global variable and the file pointer for operation of the entire process, and then the information of wages of staff and workers to file, so should provide a structure and file input and output operations. To achieve wage to browse, query, statistics an

8、d other functions in the program operation, it is necessary to build the corresponding functional module to achieve. In addition to providing keyboard selection menu function, achieve the purpose to at run time.Keywords:C language The salary management The program目 录前 言11 设计过程11.1 设计思路11.2 总体流程图12 功

9、能模块设计22.1添加功能22.2查找功能22.3删除功能22.4统计功能32.5修改功能32.6排序功能33 运行结果33.1主界面33.2添加职工信息43.3查找职工信息43.3.1按姓名查找53.3.2按工号查找53.4删除职工信息53.4.1按姓名查询53.4.2按工号删除53.5统计职工工资63.6修改职工信息63.6.1按姓名查找修改63.6.2按工号查找修改73.7工资排序74 结束语8附 录:C语言源程序9参考文献2323基于c语言的工资管理系统程序设计前 言C语言是Combined Language(组合语言)的中英混合简称。是一种计算机程序设计语言。它既具有高级语言的特点,

10、又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。设计一个程序的过程就是解决一个实际问题的过程。现代计算机技术的发展为人们的学习、生活、工作提供了很大的帮助,各行各业都需要特定计算机系统的运用,我们需要了解这些系统是怎用为我们服务以及他们是怎样编辑出来的。1 设计过程1.1 设计思路(1) 建立C程序,设计能实现多功能的主函数。(2) 定义一个结构体,其中包含职工的基本信息。(3) 分模块分别设计程序实现各个功能,包括录入、新增、查看、查找、删除、修改、统计、排序。1.2 总体流程图由以上设计思路根据功能可画出如图1

11、-1所示总体流程图图1-1 总体流程图2 功能模块设计2.1添加功能输入记录模块主要完成将数据存入数组1中的工作。在此学生信息管理系统中,记录可以从以文本形式存储的数据文件中读入,也可从键盘逐个输入记录。当从数据文件中读入记录时,它就是在以记录为单位存储的数据文件中,将记录逐条复制到结构体2类型的数组元素中。主要程序如下:for(i=0;i<numberTemp;i+)printf("输入第%d个职工信息n",i+1);printf("姓名:");scanf("%s",);printf("工号:&qu

12、ot;);scanf("%s",temp.ID);printf("基本工资:");scanf("%d",&temp.salary1);printf("职务工资:");scanf("%d",&temp.salary2);printf("津贴:");scanf("%d",&temp.salary3);woNumber+=temp; /写入到数组bc(&temp); /写入到文件2.2查找功能查找模块3主要实现在数组中按职工姓名或

13、工号查找满足条件的记录。在查找函数void search()中,通过调用void xmcz()函数和void ghcz()函数,将想要查找的职工信息显示出来。2.3删除功能删除模块有两种方式,第一种是按姓名删除,第二种是按工号删除。通过fp=fopen("C:/worker.dat","wb")将剩余数据写入文件4,删除以前的数据。2.4统计功能结构体中定义了职工的三种工资,分别为基本公职,职务工资和津贴。通过sumi将每个职工的总工资统计5出来。主要程序如下:for(i=0;i<Number;i+)sumi=woi.salary1+woi.sal

14、ary2+woi.salary3;printf("%s的总工资为:%fn",,sumi); 2.5修改功能首先通过查找功能定位到想要修改的内容,然后重新输入职工的信息,最后重新更新文件里面的数据,以保持数据一致性6。2.6排序功能排序7功能实现的是按职工工资从低到高的升序排列。这里主要应用到的是冒泡排序法8。主要程序如下:for(i=0;i<Number-1;i+)for(j=0;j<Number-1-i;j+)if(woj.sum>woj+1.sum)k=woj;woj=woj+1;woj+1=k;3 运行结果3.1主界面运行程序,直接弹

15、出主界面。如图3-1。图3-1 主界面3.2添加职工信息进入主界面后,选择1,点击Enter键。显示出如图3-2所示界面,根据提示就可以对职工的信息进行录入和添加。图3-2 添加职工信息界面3.3查找职工信息进入主界面,选择3,点击Enter键。显示出如图3-4所示内容。图3-3 查找职工信息界面3.3.1按姓名查找进入图3-3中的选择界面,选择1,点击Enter键。然后根据提示输入想要查找的职工的姓名,例如:张三。点击Enter键,显示出如图3-4所示内容。图3-4 按姓名查找界面3.3.2按工号查找进入图3-3中的选择界面,选择2,点击Enter键。然后根据提示输入想要查找的职工的工号,例

16、如:2。点击Enter键,显示出如图3-5所示内容。图3-5 按工号查找界面3.4删除职工信息进入主界面,选择4,点击Enter键。显示出如图3-6所示内容。图3-6 删除职工信息界面3.4.1按姓名查询进入图3-7中的选择界面,选择1,点击Enter键。然后根据提示输入想要删除的职工的姓名,例如:张三。点击Enter键,显示出如图3-7所示内容。图3-7 按姓名删除界面3.4.2按工号删除进入图3-6中的选择界面,选择2,点击Enter键。然后根据提示输入想要删除的职工的工号,例如:2。点击Enter键,显示出如图3-8所示内容。图3-8 按工号删除界面3.5统计职工工资进入主界面,选择5,

17、点击Enter键。显示出如图3-9所示内容。图3-9 统计界面3.6修改职工信息进入主界面,选择6,点击Enter键。显示出如图3-10所示内容。图3-10 修改界面3.6.1按姓名查找修改进入图3-10中的选择界面,选择1,点击Enter键。然后根据提示输入想要修改的职工的姓名,例如:张三。点击Enter键,进入修改界面,根据提示重新输入该职工信息。如图3-11所示。图3-11 按姓名修改界面3.6.2按工号查找修改进入图3-10中的选择界面,选择2,点击Enter键。然后根据提示输入想要修改的职工的工号,例如:3。点击Enter键,进入修改界面,根据提示重新输入该职工信息。如图3-12所示

18、。图3-12 按工号修改界面3.7工资排序进入主界面,选择8,点击Enter键。显示出如图3-13所示内容。图3-13 排序界面4 结束语通过本次基于C语言的工资管理系统的设计,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。随着C语言系统的成功与报告的完成,有点微微的成就感使人难忘。伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖掘。通过结合实际系统运用C语言进行系统设计以及调试,加深对本课程的理解,提高学生综合应用知识的能力、分析问题、解决问题的能力和利用C语言进行综合系统设计的实践技能。 通过这几天的努力,职工工资管理系统的设计已基本完成。在本次课程设计中,我

19、充分领略了C语言功能的强大,包括函数、数组、指针、结构体、文件等。 职工工资管理系统是一个很实用并且使用广泛的操作系统。此系统可以减少很多工作量,做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间内,查找出所需的职工工资资料,提高工作效率。该系统具有添加、显示、查询、修改、删除等基本功能,以方便对工资的各项管理操作。每一条记录包括一个职工的工号、姓名、工资等信息,系统的各个功能模块都用函数的形式来实现,可以将职工信息保存在文件中,并从文件中读取出来。 在本次课程设计中,我也发现了自己很多的不足,并学到了许多的知识。对以前课本中学到的知识有了更深刻的理解,和灵活的运用。不再像以

20、前一样,知识浅显的明白,死板的套用。编写程序的过程,让我感觉到了无限的快乐,不仅仅是因为可以将以前学到的相关知识灵活运用,还因为在这个过程中学到了太多以前所没有掌握的东西。 最后我还掌握到了写复杂程序的技巧,在写大程序时应遵守“自顶向下,逐步细化,模块化”的方法进行设计;c语言提供了丰富的数据库和各种功能的函数,我们要善于使用,使我们的程序达到最简洁的这将对我以后的c程序学习产生重要的影响。通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了

21、其具有的强大功能和发展前景。这会对以后的学习有所帮助。附 录:C语言源程序#include <stdio.h>#include <stdlib.h>#include <string.h>struct workerchar name30;char ID10;int salary1,salary2,salary3,sum;int dq(struct worker wo);void show();void bc(struct worker wo);void add(); void see();void search();void ghcz();void xmcz(

22、);void del();void xmsc();void ghsc();void statistics();void modify();void ghxg(); void xmxg();void reserve();void back();void sort();struct worker wo100; /保存所有的职工信息int Number=0; /记录总的职工人数void main()int choose=0;while(true) show();printf("tt=>请选择:");scanf("%d",&choose);syst

23、em("cls");switch(choose)case 0: exit(0);/退出break; case 1: add();back();/添加职工信息break; case 2: see();back();/查看职工信息break; case 3: search();back();/ 查找职工信息 break;case 4: del(); back();/删除职工信息break;case 5: statistics();back();/统计职工工资break;case 6: modify();back();/修改职工信息break; case 7:reserve();

24、back();/保存数据 break;case 8:sort();break;default:break;fflush(stdin);getchar();system("cls");int dq(struct worker wo)FILE *fp=NULL;int i=0;fp=fopen("C:/worker.dat","rb");while(fread(&woi,sizeof(struct worker),1,fp)i+;fclose(fp);return i;void show() printf("n"

25、;);printf("t*职工工资管理系统*nn");printf("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 工 资

26、排 序n");printf("t0 退 出 系 统nn");printf("t*n");void bc(struct worker *wo)FILE *fp=NULL;fp=fopen("C:/worker.dat","ab+");fwrite(wo,sizeof(struct worker),1,fp);fclose(fp);/添加职工信息void add() int numberTemp=0;int i=0;struct worker temp; printf("请输入要添加职工个数:&qu

27、ot;);scanf("%d",&numberTemp);for(i=0;i<numberTemp;i+)printf("输入第%d个职工信息n",i+1);printf("姓名:");scanf("%s",);printf("工号:");scanf("%s",temp.ID);printf("基本工资:");scanf("%d",&temp.salary1);printf("职务工资:

28、");scanf("%d",&temp.salary2);printf("津贴:");scanf("%d",&temp.salary3);woNumber+=temp; /写入到数组bc(&temp); /写入到文件printf("添加成功n");/查看职工信息void see() int i=0;printf("以下是全部职工n");printf("t姓名t工号t基本工资t职务工资t津贴n");while(i<Number)print

29、f("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.salary3);i+;/查找职工信息void search() int n=0;printf("1 按姓名查找n");printf("2 按工号查找n"); scanf("%d",&n);switch(n)case 1: xmcz();break;case 2: ghcz();break;default: printf("输入错误!n");break;

30、void xmcz()/按姓名查找 char name30;int i=0;printf("请输入要查找职工姓名:");scanf("%s",name);system("cls");printf("t姓名t工号t基本工资t职务工资t津贴n");for (i=0;i<Number;i+)if (strcmp(name,)=0)printf("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.sala

31、ry3);void ghcz()/按工号查找 char id10;int i=0;printf("请输入要查找职工工号:");scanf("%s",id);system("cls");printf("t姓名t工号t基本工资t职务工资t津贴n");for (i=0;i<Number;i+)if (strcmp(id,woi.ID)=0)printf("t%st%st%dtt%dtt%dn",,woi.ID,woi.salary1,woi.salary2,woi.salary3

32、);/删除职工信息void del() int n=0;printf("1 按姓名删除n");printf("2 按工号删除n");scanf("%d",&n);switch(n)case 1: xmsc();break;case 2: ghsc();break;void xmsc()/按姓名删除 FILE *fp=NULL;char name30;int i=0;int j=0;printf("请输入要删除的职工姓名:");scanf("%s",name);for(i=0;i<N

33、umber;i+)if (strcmp(name,)=0)for (j=i;j<Number-1;j+)woj=woj+1;Number-;/将剩余数据写入文件 擦除以前的数据fp=fopen("C:/worker.dat","wb");for (i=0;i<Number;i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);printf("删除成功;n");void ghsc()/按工号删除 FILE *fp=NULL;char id60;in

34、t i=0;int j=0;printf("请输入要删除的职工工号:");scanf("%s",id);for(i=0;i<Number;i+)if (strcmp(id,woi.ID)=0) for (j=i;j<Number-1;j+)woj=woj+1;Number-;/将剩余数据写入文件 擦除以前的数据fp=fopen("C:/worker.dat","wb");for (i=0;i<Number;i+)fwrite(&woi,sizeof(struct worker),1,fp)

35、;fclose(fp);printf("删除成功;n");/统计职工工资void statistics() int i=0;double s=0.0;double sum100;for(i=0;i<Number;i+)sumi=woi.salary1+woi.salary2+woi.salary3;printf("%s的总工资为:%fn",,sumi); /修改职工信息void modify() int mode=0;printf("请选择修改查找方式n");printf("1 按姓名查找修改n&quo

36、t;); printf("2 按工号查找修改n"); scanf("%d",&mode);switch(mode)case 1: xmxg();break;case 2: ghxg();break;default: printf("输入错误!n");break; void xmxg()/按姓名修改 FILE *fp=NULL;char name30;int i=0;printf("请输入要修改的职工姓名:");scanf("%s",name);for (i=0;i<Number;i

37、+)if (strcmp(name,);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("姓名:");scanf("%s",);printf("工号:");scanf("%s"

38、,woi.ID);printf("基本工资:");scanf("%d",&woi.salary1);printf("职务工资:");scanf("%d",&woi.salary2);printf("津贴:");scanf("%d",&woi.salary3);/信息修改后重新更新文件里面的数据 以保持数据一致性fp=fopen("C:/worker.dat","wb");for (i=0;i<Number;

39、i+)fwrite(&woi,sizeof(struct worker),1,fp);fclose(fp);void ghxg()/按工号修改 FILE *fp=NULL;char id30;int i=0;printf("请输入要修改的职工工号:");scanf("%s",id);for (i=0;i<Number;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("姓名:");printf("姓名:");scanf("%s",);printf("工号:");scanf("%s",woi.ID);printf("基本工资:");scanf("%d"

温馨提示

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

评论

0/150

提交评论