C语言职工信息管理系统设计

上传人:枫** 文档编号:488071020 上传时间:2022-12-03 格式:DOC 页数:67 大小:422.50KB
返回 下载 相关 举报
C语言职工信息管理系统设计_第1页
第1页 / 共67页
C语言职工信息管理系统设计_第2页
第2页 / 共67页
C语言职工信息管理系统设计_第3页
第3页 / 共67页
C语言职工信息管理系统设计_第4页
第4页 / 共67页
C语言职工信息管理系统设计_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《C语言职工信息管理系统设计》由会员分享,可在线阅读,更多相关《C语言职工信息管理系统设计(67页珍藏版)》请在金锄头文库上搜索。

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

2、生的信息,将其插入到相应位置,使整个学生信息表按学号有序E. 给定某学生的学号,修改该学生的信息F. 按姓名查询学生信息G. 按入学成绩对学生的信息进行排序H. 计算并显示学生入学平均成绩,显示入学成绩最高分和最低分的学生信息I. 将最后的学生信息存入文件student2.txt中说明:1. 学生信息数据项:学号、姓名、性别、年龄、院系、入学成绩2. 录入学生信息时按学号由小到大的顺序录入3. 系统功能使用结构数组和单向链表两种方法实现工资管理系统功能模块图 开始以可读写的方式打开一个数据文件将此文件的内容读出,并存入一个新的结构体类型的数组中调用menu()菜单函数进入while(1)主循环

3、输入09中的一数值,选择相应操作输入是否为0判断键值,调用相应函数,完成相应功能是否已对修改进行了存盘调用save()函数,进行写数据文件操作结束2.原始数据工号姓名性别部门职位工资100米砂女公管学院学生500101米砾男公管学院学生500102罗斯女公管学院学生500103张满男公管学院学生500104林磊男公管学院学生500105胡水女公管学院学生500106王源女公管学院学生500107李君男公管学院学生500108张清女公管学院学生500109万羽女公管学院学生5003数据结构 本程序定义了结构体emplyee,用于存放职工的基本信息和工资信息。typedef struct empl

4、oyee /*标记为employee*/char num10;char name15;char sex;char charint gz;ZGGZ其各字段的值的含义如下。num10: 保存职工编号name 15:保存职工姓名sex:保存职工性别 :保存职工部门 :保存职工职称gz :保存职工工资 二、程序设计1、建立职工信息结构体(1)函数原型、功能和形参说明1)、printheader()函数原型:void printheader()printheader()函数用于在以表格形式显示记录时,打印输出表头信息。2)、printdata()函数原型:void printdata(ZGGZ pp)p

5、rintdata()函数用于以表格显示的方式,打印输出单个数组元素pp中的记录信息。3)、Disp()函数原型:void Disp(ZGGZ tp,int n)Disp()函数用于显示tp数组中存储的n条记录,内容为emplyee结构中定义的内容。4)、numberinput()函数原型:float numberinput(char *notice)numberinput()函数用于输入数值型数据,notice用于保存printf()中输出的提示信息。该函数返回用户输入的浮点类型数据值。5)、Stringinput()函数原型:void Stringinput(char *t,int lens

6、,char *notice)Stringinput()函数用于输入字符串,并进行字符串长度验证(长度lens),t用于保存输入的字符串,因为是以指针形式传递的,所以t相当于该函数的返回值。notice用于保存printf()中输出的信息。6)、Locate()函数原型:int Locate(ZGGZ tp,int n,char findmess,char nameornum)Locate()函数用于定位数组中符合要求的元素,并返回该数组元素的下标值。参数findmess保存要查找的具体内容,nameornum保存按什么字段在数组tp中查找。7)、Add()函数原型:int Add(ZGGZ t

7、p,int n)Add()函数用于在数组tp中增加工资记录元素,并返回数组中的当前记录数。8)、Qur()函数原型:void Qur(ZGGZ tp,int n)Qur()函数用于在数组tp中按职工编号或姓名查找满足条件的记录,并显示出来。9)、Del()函数原型:int Del(ZGGZ tp,int n)Del()函数用于先在数组tp中找到满足条件的记录,然后删除该记录。10)、Modify()函数原型:void Modify(ZGGZ tp,int n)Modify()函数用于在数组tp中修改记录元素。11)、Insert()函数原型:int Insert(ZGGZ tp,int n)I

8、nsert()函数用于在数组tp中插入记录,并返回数组中的当前记录数。12)、Tongji()函数原型:void Tongji(ZGGZ tp,int n)Tongji()函数用于在数组tp中完成记录的统计工作,统计该公司职工工资的整体分布情况。13)、Sort()函数原型:void Sort(ZGGZ tp,int n)Sort()函数用于在数组tp中完成利用冒泡排序算法实现数组的按实发工资字段的降序排序。14)、save()函数原型:void Save(ZGGZ tp,int n)Save()函数用于将保存职工工资的数组tp中的n个元素写入磁盘的数据文件中。15)、主函数main()Mai

9、n()是整个工资管理系统控制部分(2)、程序清单#inclu #include #include #include struct employeechar num10;char name15;char sex5;char department30;char function32;int wage;int read_ employee st);void menu();void write_ employee st);void add(); void select(); /查看职工所有信息void name_query(); /按姓名查询void num_del(); /按工号删除void ton

10、gji(); /统计void sort(); /排序void num_modify(); /按工号修改职工信息void save(); /保存信息void fh(); /返回主菜单struct employee st300; /这个数组用来保存所有的职工信息 和文件里面的一致int Number=0; /记录总的职工人数 也就是数组/文件里面的职工人数void main() int choose=0; FILE *fp=NULL; char yesorno; if(fp=fopen(student1.txt,rb+)=NULL) printf(n=提示:文件不存在,是否要创建一个?(y/n)n

11、); scanf(%c,&yesorno); if(yesorno=y|yesorno=Y) /这里仅为了建立文件 fp=fopen(student1.txt,wb+);fclose(fp); /关闭fp所指的文件,释放文件缓冲区 else exit(0); else Number=read_); /要是文件已经有数据 将数据初始化到数组中 system(cls); while(true) menu(); printf(tt=请选择:);scanf(%d,&choose);system(cls);switch(choose) case 0: exit(0); /退出 break; case 1

12、: add();fh();/增加职工信息break;case 2:select();fh();/查看职工信息break;case 3:name_query();fh();/ 查找break;case 4: num_del();fh();/删除break;case 5: tongji();fh();/统计break;case 6: sort();fh();/排序break;case 7:num_modify();fh();/修改后返回break;case 8:save();fh();/保存break;default:break;fflush(stdin);getchar();system(cls

13、);void save()printf(t=程序在运行时已自动保存.n);void fh()printf(t=按Enter键返回主菜单n);void num_modify() /修改职工信息FILE *fp=NULL;char xh60;int i=0;int changeIndex=0; /changeIndex 改变标记int index=0;printf(请输入要修改的职工编号:);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);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号