C语言职工信息管理系统课程设计Word文档下载推荐.docx
- 文档编号:15890655
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:47
- 大小:324.40KB
C语言职工信息管理系统课程设计Word文档下载推荐.docx
《C语言职工信息管理系统课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言职工信息管理系统课程设计Word文档下载推荐.docx(47页珍藏版)》请在冰豆网上搜索。
学号、姓名、性别、年龄、院系、入学成绩
2.录入学生信息时按学号由小到大的顺序录入
3.系统功能使用结构数组和单向链表两种方法实现
工资管理系统功能模块图
2.原始数据
工号
姓名
性别
部门
职位
工资
100
米砂
女
公管学院
学生
500
101
米砾
男
102
罗斯
103
张满
104
林磊
105
胡水
106
王源
107
李君
108
张清
109
万羽
3.数据结构
本程序定义了结构体emplyee,用于存放职工的基本信息和工资信息。
typedefstructemployee/*标记为employee*/
{
charnum[10];
charname[15];
charsex;
char
char
intgz;
}ZGGZ
其各字段的值的含义如下。
num[10]:
保存职工编号
name[15]:
保存职工姓名
sex:
保存职工性别
:
保存职工部门
保存职工职称
gz:
保存职工工资
二、程序设计
1、建立职工信息结构体
(1)函数原型、功能和形参说明
1)、printheader()
函数原型:
voidprintheader()
printheader()函数用于在以表格形式显示记录时,打印输出表头信息。
2)、printdata()
函数原型:
voidprintdata(ZGGZpp)
printdata()函数用于以表格显示的方式,打印输出单个数组元素pp中的记录信息。
3)、Disp()
voidDisp(ZGGZtp[],intn)
Disp()函数用于显示tp数组中存储的n条记录,内容为emplyee结构中定义的内容。
4)、numberinput()
floatnumberinput(char*notice)
numberinput()函数用于输入数值型数据,notice用于保存printf()中输出的提示信息。
该函数返回用户输入的浮点类型数据值。
5)、Stringinput()
voidStringinput(char*t,intlens,char*notice)
Stringinput()函数用于输入字符串,并进行字符串长度验证(长度<
lens),t用于保存输入的字符串,因为是以指针形式传递的,所以t相当于该函数的返回值。
notice用于保存printf()中输出的信息。
6)、Locate()
intLocate(ZGGZtp[],intn,charfindmess[],charnameornum[])
Locate()函数用于定位数组中符合要求的元素,并返回该数组元素的下标值。
参数findmess[]保存要查找的具体内容,nameornum[]保存按什么字段在数组tp中查找。
7)、Add()
intAdd(ZGGZtp[],intn)
Add()函数用于在数组tp中增加工资记录元素,并返回数组中的当前记录数。
8)、Qur()
voidQur(ZGGZtp[],intn)
Qur()函数用于在数组tp中按职工编号或姓名查找满足条件的记录,并显示出来。
9)、Del()
intDel(ZGGZtp[],intn)
Del()函数用于先在数组tp中找到满足条件的记录,然后删除该记录。
10)、Modify()
voidModify(ZGGZtp[],intn)
Modify()函数用于在数组tp中修改记录元素。
11)、Insert()
intInsert(ZGGZtp[],intn)
Insert()函数用于在数组tp中插入记录,并返回数组中的当前记录数。
12)、Tongji()
voidTongji(ZGGZtp[],intn)
Tongji()函数用于在数组tp中完成记录的统计工作,统计该公司职工工资的整体分布情况。
13)、Sort()
voidSort(ZGGZtp[],intn)
Sort()函数用于在数组tp中完成利用冒泡排序算法实现数组的按实发工资字段的降序排序。
14)、save()
voidSave(ZGGZtp[],intn)
Save()函数用于将保存职工工资的数组tp中的n个元素写入磁盘的数据文件中。
15)、主函数main()
Main()是整个工资管理系统控制部分
(2)、程序清单
#inclu#include<
stdio.h>
#include<
stdlib.h>
string.h>
structemployee
charsex[5];
chardepartment[30];
charfunction[32];
intwage;
};
intread_file(structemployeest[]);
voidmenu();
voidwrite_file(structemployeest[]);
voidadd();
voidselect();
//查看职工所有信息
voidname_query();
//按姓名查询
voidnum_del();
//按工号删除
voidtongji();
//统计
voidsort();
//排序
voidnum_modify();
//按工号修改职工信息
voidsave();
//保存信息
voidfh();
//返回主菜单
structemployeest[300];
//这个数组用来保存所有的职工信息和文件里面的一致
intNumber=0;
//记录总的职工人数也就是数组/文件里面的职工人数
voidmain()
intchoose=0;
FILE*fp=NULL;
charyesorno;
if((fp=fopen("
student1.txt"
"
rb+"
))==NULL)
{
printf("
\n=========>
提示:
文件不存在,是否要创建一个?
(y/n)\n"
);
scanf("
%c"
&
yesorno);
if(yesorno=='
y'
||yesorno=='
Y'
)
{
//这里仅为了建立文件
fp=fopen("
wb+"
fclose(fp);
//关闭fp所指的文件,释放文件缓冲区
}
else
exit(0);
Number=read_file(st);
//要是文件已经有数据将数据初始化到数组中
system("
cls"
while(true)
menu();
printf("
\t\t====>
请选择:
"
scanf("
%d"
choose);
system("
switch(choose)
case0:
exit(0);
//退出
break;
case1:
add();
fh();
//增加职工信息
case2:
select();
//查看职工信息
case3:
name_query();
//查找
case4:
num_del();
//删除
case5:
tongji();
//统计
case6:
sort();
//排序
case7:
num_modify();
//修改后返回
case8:
save();
//保存
default:
}
fflush(stdin);
getchar();
voidsave()
\t=====程序在运行时已自动保存.....\n"
voidfh()
\t===>
按Enter键返回主菜单\n"
voidnum_modify()//修改职工信息
FILE*fp=NULL;
charxh[60];
inti=0;
intchangeIndex=0;
//changeIndex改变标记
intindex=0;
请输入要修改的职工编号:
%s"
xh);
for(i=0;
i<
Number;
i++)
if(strcmp(xh,st[i].num)==0)//比较输入工号和数组中已有工号
changeIndex=i;
//保存要修改的人的下标
\t工号\t姓名\t性别\t部门\t职能\t工资\n"
\t%s\t%s\t%s\t%s\t%s\t%d\n\n"
st[changeIndex].num,st[changeIndex].name,st[changeIndex].sex,st[changeIndex].department,st[changeIndex].function,st[changeIndex].wage);
请重新输入该职工信息"
工号:
st[changeIndex].num);
st[changeIndex].name);
性别:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 职工 信息管理 系统 课程设计