C语言课设职工工资管理系统IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】一引言C语言是CombinedLanguage(组合语言)的中英混合简称。
是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
设计一个程序的过程就是解决一个实际问题的过程,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;在次我们必须捋清思路,逐一的解决问题的各个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数、结构体和文件等,然后确定处理过程。
本课题中主要应用了C语言中的数组、结构体、文件等关键技术。
在C语言中,数组属于构造数据类型。
一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型;结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构,在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型,结构体只能描述一个对象的状态,不能描述一个对象的行为。
文件是一种组织外部存储介质上的数据的数据类型。
它具有两个特征:一是对一个数据集合可以用一个名字命名;二是保存在外部存储介质上,可以长期保存。
通过此次课设可以锻炼学生理论联系实际能力,提高学生适应实际、实践编程的能力,使对C语言系统编程有一个大致的了解,并达到如下目的:1.熟悉C语言程序的编辑、编译链接和运行的过程。
2.熟练运用if语句和switch语句以及嵌套应用。
3.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。
4.掌握文件的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。
5.掌握结构体类型变量、数组的定义和使用。
6.掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串。
2程序流程图主函数源代码:voidmain(){intchoose=0;while(true){show();printf("\t\t====>请选择:"); scanf("%d",&choose); system("cls");switch(choose){case0:exit(0);ame,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i].salary3); i++; } }查找职工信息函数的实现查找记录前如图11所示。
图11查找记录前效果图定义i=0 i<Number输出职工信息开始结定义数据类型i<numberTem pi++添加成功 输出职工信息开始结输入一条记录信息:选择3,回车如图12所示。
图12输入记录效果图查找记录后如图13所示。
图13查找记录后效果图查找函数代码流程图,如图14所示。
图14查找函数流程图查找源代码:ame)==0){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[ i].salary3);}}}voidghcz()D)==0){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[ i].salary3);}}}删除职工信息函数的实现删除记录前如图15所示。
图15删除记录前效果图输入一条记录信息:选择4,回车后,如图16所示:图16输入记录效果图删除记录后如图17所示。
图17删除记录后效果图删除函数代码流程图,如图18所示。
图18删除函数流程图删除源代码:ame)==0){for(j=i;j<Number-1;j++) {wo[j]=wo[j+1];}Number--;}}D)==0){for(j=i;j<Number-1;j++) {wo[j]=wo[j+1];}Number--;}}alary1+wo[i].salary2+wo[i].salary3;printf("%s 的总工资为:%f\n",wo[i].name,sum[i]); }for(i=0;i<Number;i++) {s+=sum[i]; }定义i=0 For 函数初始值i=0i<Numberi++For 函数初始值i=0i<Numberi++输出员工平均工资循环体 循环体 开结输出员工总工资printf("平均工资为:%f\n",s/Number);}修改函数的实现修改记录前如图23所示。
图23修改记录前效果图输入一条记录信息:如图24所示:图24输入记录效果图修改记录后如图25所示。
图25修改记录后效果图修改函数代码流程图,如图26所示。
图26修改函数流程图修改源代码:ame));elsebreak;}printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[ i].salary3);printf("请重新输入该职工信息");printf("姓名:");scanf("%s",wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("基本工资:");scanf("%d",&wo[i].salary1);printf("职务工资:");scanf("%d",&wo[i].salary2);printf("津贴:");scanf("%d",&wo[i].salary3);D));elsebreak;}printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[ i].salary3);printf("请重新输入该职工信息");printf("姓名:");printf("姓名:");scanf("%s",wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("基本工资:");scanf("%d",&wo[i].salary1);printf("职务工资:");scanf("%d",&wo[i].salary2);printf("津贴:");scanf("%d",&wo[i].salary3);...\n");}voidback(){printf("\t===>按Enter键返回主菜单\n");}作者信息函数的实现作者记录前如图30所示。
图30作者记录前效果图输入一条记录信息:如图31所示:图31输入记录效果图作者记录后如图32所示。
图32作者记录后效果图作者源代码:语言程序设计教程[M].第3版.高等教育出版社,2006[2]杨涛.C程序设计语言.北京:机械工业出版社,2004[3]全国计算机等级考试二级教程:C语言程序设计(2009年版).高等教育出版社附录#include<>#include<>#include<>structworker{charname[30];charID[10];intsalary1,salary2,salary3;};intdq(structworkerwo[]);voidshow();voidbc(structworkerwo[]);voidadd();voidsee();voidsearch();voidghcz();voidxmcz();voiddel();voidxmsc();voidghsc();voidstatistics();voidmodify();voidghxg();voidxmxg();voidreserve();voidback();voidauthor();structworkerwo[100];ame,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i].salary3);i++;}}ame)==0){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[ i].salary3);}}}voidghcz()D)==0){printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[ i].salary3);}}}ame)==0){for(j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}D)==0){for(j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}alary1+wo[i].salary2+wo[i].salary3;printf("%s的总工资为:%f\n",wo[i].name,sum[i]);}for(i=0;i<Number;i++){s+=sum[i];}printf("平均工资为:%f\n",s/Number);}ame));elsebreak;}printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[ i].salary3);printf("请重新输入该职工信息");printf("姓名:");scanf("%s",wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("基本工资:");scanf("%d",&wo[i].salary1);printf("职务工资:");scanf("%d",&wo[i].salary2);printf("津贴:");scanf("%d",&wo[i].salary3);D));elsebreak;}printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n");printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[ i].salary3);printf("请重新输入该职工信息");printf("姓名:");printf("姓名:");scanf("%s",wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("基本工资:");scanf("%d",&wo[i].salary1);printf("职务工资:");scanf("%d",&wo[i].salary2);printf("津贴:");scanf("%d",&wo[i].salary3);...\n");}voidback(){printf("\t===>按Enter键返回主菜单\n");}//作者信息voidauthor(){printf("\t***☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆***\n\n");printf("\t^^^^^^^^^^^^^^^某学校^^^^^^^^^^^^^^^\n\n");printf("\t^^^^^^^^^^^^^^^通信工程^^^^^^^^^^^^^^^\n\n"); printf("\t^^^^^^^^^^^^^^***制作^^^^^^^^^^^^^^\n\n"); printf("\t***★★★★★★★★★★★★★★★★***\n\n"); }。