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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言职工信息管理系统设计精选.docx

1、C语言职工信息管理系统设计精选湖北医药学院信息管理与信息系统专业C程序设计-设计报告题目:职工信息管理系统班级:学号:姓名:成绩:前言在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机解决实际问题的基本方法,熟悉C程序开发的全过程。本任务是根据给定的数据和程序,应用单向链表处理一个小班学生的信息。通过整个程序开发的过程,提高综合应用C语言的能力编程和调试能力,为学习软件专业创建较扎实的理论基础和实践基础。一系统功能和原始数据1系统功能A.建立学生信息表,录入10名学生的信息,并将结果保存在文件student1.txt中B.显示所有学生信息C.给定某学生的学号,删除该学生的信息D.

2、添加一名学生的信息,将其插入到相应位置,使整个学生信息表按学号有序E.给定某学生的学号,修改该学生的信息F.按姓名查询学生信息G.按入学成绩对学生的信息进行排序H.计算并显示学生入学平均成绩,显示入学成绩最高分和最低分的学生信息I.将最后的学生信息存入文件student2.txt中说明:1.学生信息数据项:学号姓名性别年龄院系入学成绩2.录入学生信息时按学号由小到大的顺序录入3.系统功能使用结构数组和单向链表两种方法实现工资管理系统功能模块图 2.原始数据工号姓名性别部门职位工资100米砂女公管学院学生500101米砾男公管学院学生500102罗斯女公管学院学生500103张满男公管学院学生5

3、00104林磊男公管学院学生500105胡水女公管学院学生500106王源女公管学院学生500107李君男公管学院学生500108张清女公管学院学生500109万羽女公管学院学生5003数据结构 本程序定义了结构体emplyee,用于存放职工的基本信息和工资信息。typedef struct employee /*标记为employee*/char num10;char name15;char sex;char charint gz;ZGGZ其各字段的值的含义如下。num10: 保存职工编号name 15:保存职工姓名sex:保存职工性别 :保存职工部门 :保存职工职称gz :保存职工工资二程

4、序设计1建立职工信息结构体(1)函数原型功能和形参说明1)printheader()函数原型:void printheader()printheader()函数用于在以表格形式显示记录时,打印输出表头信息。2)printdata()函数原型:void printdata(ZGGZ pp)printdata()函数用于以表格显示的方式,打印输出单个数组元素pp中的记录信息。3)Disp()函数原型:void Disp(ZGGZ tp,int n)Disp()函数用于显示tp数组中存储的n条记录,内容为emplyee结构中定义的内容。4)numberinput()函数原型:float number

5、input(char *notice)numberinput()函数用于输入数值型数据,notice用于保存printf()中输出的提示信息。该函数返回用户输入的浮点类型数据值。5)Stringinput()函数原型:void Stringinput(char *t,int lens,char *notice)Stringinput()函数用于输入字符串,并进行字符串长度验证(长度lens),t用于保存输入的字符串,因为是以指针形式传递的,所以t相当于该函数的返回值。notice用于保存printf()中输出的信息。6)Locate()函数原型:int Locate(ZGGZ tp,int n

6、,char findmess,char nameornum)Locate()函数用于定位数组中符合要求的元素,并返回该数组元素的下标值。参数findmess保存要查找的具体内容,nameornum保存按什么字段在数组tp中查找。7)Add()函数原型:int Add(ZGGZ tp,int n)Add()函数用于在数组tp中增加工资记录元素,并返回数组中的当前记录数。8)Qur()函数原型:void Qur(ZGGZ tp,int n)Qur()函数用于在数组tp中按职工编号或姓名查找满足条件的记录,并显示出来。9)Del()函数原型:int Del(ZGGZ tp,int n)Del()函数

7、用于先在数组tp中找到满足条件的记录,然后删除该记录。10)Modify()函数原型:void Modify(ZGGZ tp,int n)Modify()函数用于在数组tp中修改记录元素。11)Insert()函数原型:int Insert(ZGGZ tp,int n)Insert()函数用于在数组tp中插入记录,并返回数组中的当前记录数。12)Tongji()函数原型:void Tongji(ZGGZ tp,int n)Tongji()函数用于在数组tp中完成记录的统计工作,统计该公司职工工资的整体分布情况。13)Sort()函数原型:void Sort(ZGGZ tp,int n)Sort

8、()函数用于在数组tp中完成利用冒泡排序算法实现数组的按实发工资字段的降序排序。14)save()函数原型:void Save(ZGGZ tp,int n)Save()函数用于将保存职工工资的数组tp中的n个元素写入磁盘的数据文件中。15)主函数main()Main()是整个工资管理系统控制部分(2)程序清单#inclu #include #include #include struct employeechar num10;char name15;char sex5;char department30;char function32;int wage;int read employee st

9、);void menu();void write employee st);void add(); void select(); /查看职工所有信息void namequery(); /按姓名查询void numdel(); /按工号删除void tongji(); /统计void sort(); /排序void nummodify(); /按工号修改职工信息void save(); /保存信息void fh(); /返回主菜单struct employee st300; /这个数组用来保存所有的职工信息 和文件里面的一致int Number=0; /记录总的职工人数 也就是数组/文件里面的职

10、工人数void main() int choose=0; FILE *fp=NULL; char yesorno; if(fp=fopen(student1.txt,rb+)=NULL) printf(n=提示:文件不存在,是否要创建一个?(y/n)n); scanf(%c,&yesorno); if(yesorno=y|yesorno=Y) /这里仅为了建立文件 fp=fopen(student1.txt,wb+);fclose(fp); /关闭fp所指的文件,释放文件缓冲区 else exit(0); else Number=read); /要是文件已经有数据 将数据初始化到数组中 sys

11、tem(cls); while(true) menu(); printf(tt=请选择:);scanf(%d,&choose);system(cls);switch(choose) case 0: exit(0); /退出 break; case 1: add();fh();/增加职工信息break;case 2:select();fh();/查看职工信息break;case 3:namequery();fh();/ 查找break;case 4: numdel();fh();/删除break;case 5: tongji();fh();/统计break;case 6: sort();fh()

12、;/排序break;case 7:nummodify();fh();/修改后返回break;case 8:save();fh();/保存break;default:break;fflush(stdin);getchar();system(cls);void save()printf(t=程序在运行时已自动保存.n);void fh()printf(t=按Enter键返回主菜单n);void nummodify() /修改职工信息FILE *fp=NULL;char xh60;int i=0;int changeIndex=0; /changeIndex 改变标记int index=0;prin

13、tf(请输入要修改的职工编号:);scanf(%s,xh);for (i=0;iNumber;i+)if (strcmp(xh,sti.num)=0) /比较输入工号和数组中已有工号changeIndex=i; /保存要修改的人的下标break;printf(t工号t姓名t性别t部门t职能t工资n);printf(t%st%st%st%st%st%dnn,stchangeIndex.num,stchangeIndex.name,stchangeIndex.sex,stchangeIndex.department,stchangeIndex.function,stchangeIndex.wage

14、);printf(请重新输入该职工信息);printf(工号:);scanf(%s,stchangeIndex.num);printf(姓名:);scanf(%s,stchangeIndex.name);printf(性别:);scanf(%s,stchangeIndex.sex);printf(部门:);scanf(%s,stchangeIndex.department);printf(职能:);scanf(%s,stchangeIndex.function);printf(工资:);scanf(%d,&stchangeIndex.wage);/信息修改后重新更新文件里面的数据 以保持数据一

15、致性fp=fopen(student1.txt,wb+);for (i=0;i修改成功n);void sort()/排序 struct student t;int wantNUmber=0;int i=0;int j=0;int k=0;for(i=0;iNumber1;i+)k=i;for(j=i+1;jstk.wage)k=j;if(k!=i)t=sti;sti=stk;stk=t;printf(你想输出前几名的成绩:);scanf(%d,&wantNUmber);if (wantNUmberNumber)wantNUmber=Number;printf(t工号t姓名t性别t部门t职能t工

16、资n);for(i=0;iwantNUmber;i+)printf(t%st%st%st%st%st%dnn,sti.num,sti.name,sti.sex,sti.department,sti.function,sti.wage); void tongji()/统计 int i,m,k,max,min;double sum=0.0;for(i=0;iNumber;i+)sum+=sti.wage;printf(总工资为:%fn,sum);printf(平均工资为:%fn,sum/Number);i=0;m=0;max=0;max=stm.wage;for(i=1;imax)m=i;max=

17、stm.wage;printf(最高工资为:%dn,max);printf(t%st%st%st%st%st%dnn,stm.num,stm.name,stm.sex,stm.department,stm.function,stm.wage);i=0;k=0;min=0;min=st0.wage;for(i=1;iNumber;i+)if (sti.wagemin)k=i;min=stk.wage;printf(最底工资分:%dn,min);printf(t%st%st%st%st%st%dnn,stk.num,stk.name,stk.sex,stk.department,stk.funct

18、ion,stk.wage);void numdel()/按工号删除 FILE *fp=NULL;char xh60;int i=0;int j=0;printf(请输入要删除的职工工号:);scanf(%s,xh);for(i=0;iNumber;i+)if (strcmp(xh,sti.num)=0) /如果查找到就删除for (j=i;jNumber1;j+)stj=stj+1;Number;/将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了fp=fopen(student1.dat,wb);for (i=0;iNumber;i+)fwrite(&sti,sizeof(str

19、uct student),1,fp);fclose(fp);printf(删除成功;n);void namequery()/按姓名查找char name20;int i=0;printf(请输入要查找职工姓名:);scanf(%s,name);system(cls);printf(t工号t姓名t性别t部门t职能t工资n);for (i=0;iNumber;i+)if (strcmp(name,sti.name)=0)printf(t%st%st%st%st%st%dnn,sti.num,sti.name,sti.sex,sti.department,sti.function,sti.wage)

20、;void select()/查看职工 int i=0;printf(以下是全部职工信息n);printf(t工号t姓名t性别t部门t职能t工资n);for(i=0;iNumber;i+)printf(t%st%st%st%st%st%dnn,sti.num,sti.name,sti.sex,sti.department,sti.function,sti.wage);void add()/增加职工int numberTemp=0;int i=0;struct student temp; /临时保存信息printf(请输入要增加职工个数:);scanf(%d,&numberTemp);for(i

21、=0;inumberTemp;i+)printf(输入%d个职工信息n,i+1);printf(工号:);scanf(%s,temp.num);printf(姓名:);scanf(%s,temp.name);printf(性别:);scanf(%s,temp.sex);printf(部门:);scanf(%s,temp.department);printf(职能:);scanf(%s,temp.function);printf(工资:);scanf(%d,&temp.wage);stNumber+=temp; /将刚添加的写入到数组write); /将刚添加的写入到文件printf(添加成功n

22、);void write student *st)FILE *fp=NULL;fp=fopen(student1.txt,rb+);fwrite(st,sizeof(struct student),1,fp);fclose(fp);int read student st)FILE *fp=NULL;int i=0;fp=fopen(student1.txt,rb);while(fread(&sti,sizeof(struct student),1,fp)i+;fclose(fp);return i;void menu()printf(t*n);printf(t* *n);printf(t* 职

23、工信息管理系统结构体数组实现 *n);printf(t* *n);printf(t* 1 增加职工信息 2 查看职工信息 *n);printf(t* 3 查找职工信息 4 删除职工信息 *n);printf(t* 5 平均工资,最高工资,最底工资 6 工资排列 *n);printf(t* 7 修改职工信息 8 保存数据 *n);printf(t* 0 退出系统 *n);printf(t* *n);printf(t*n);(3)运行结果 (3主界面增加职工信息查看职工信息查找职工信息删除职工信息平均工资修改职工信息保存数据2)建立职工信息单链表(1)函数原型功能和形参说明(2)程序清单#incl

24、ude stdio.h #include stdlib.h #include string.h int saveflag=0; /*是否需要存盘的标志变量*/struct employee char name15; /* 职工姓名 */char num10;/* 职工工号 */char xb4; /* 职工性别 */char bm10; /* 部门 */char zc10; /* 工号职称 */float gz; /* 工资 */int mingci;/* 名次*/;typedef struct node struct employee data; struct node *next; Nod

25、e,*Link; /Link l (注意是:字母l不是数字1)void add(Link l); void disp(Link l); /查看职工所有信息void del(Link l); /删除功能Node* Locate(Link l,char findmess,char nameornum);void Qur(Link l); /查询功能void Tongji(Link l); /统计void Sort(Link l); /排序void Modify(Link l); /修改功能void Save(Link l); /保存功能void printe(Node *p); /本函数用于打印链表中某个节点的数据内容 */ /以下4个函数用于输出中文标题void printstart(); void Wrong(); void Nofind(); void printc();void menu() printf(t*n);printf(t* *n);printf(t* 职工信息管理系统单链表实现 *n);printf(t* *n); printf(t* 1 增加职工信息 2 删除职工信息 *n);printf(t* 3 查询职工信息 4 修改

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

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