C语言课程设计报告职工信息管理系统结构体数组实现程序源代码Word文档格式.docx
- 文档编号:14994698
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:12
- 大小:74.28KB
C语言课程设计报告职工信息管理系统结构体数组实现程序源代码Word文档格式.docx
《C语言课程设计报告职工信息管理系统结构体数组实现程序源代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告职工信息管理系统结构体数组实现程序源代码Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
//记录总的职工人数也就是数组/文件里面的职工人数
voidmenu()
******************************************************
职工信息管理系统_结构体数组实现
增加职工信息[2]
printf("
\t**\n"
);
\t*
*\n"
\t*[1]
看职工信息*\n"
[3]
查找职工信息
[4]
删
除职工信息
[5]
统计
[6]
职
工工资排列
[7]
修改职工信息
[8]
保
存职工信息
[9]
显示职工信息
[0]
退
出系统
}
voidmain()
intchoose=0;
FILE*fp=NULL;
charyesorno;
if((fp=fopen("
employee1.txt"
"
rb+"
))==NULL)
\n=========>
提示:
文件不存在,是否要创建一个?
(y/n)\n"
scanf("
%c"
&
yesorno);
if(yesorno=='
y'
||yesorno=='
Y'
)
//这里仅为了建立文件
fp=fopen("
wb+"
fclose(fp);
//关闭fp所指的文件,释放文件缓冲区
else
exit(0);
Number=read_file(em);
//要是文件已经有数据将数据初始化到数组
中
system("
cls"
while
(1)
menu();
printf("
\t\t====>
请选择:
"
%d"
&
choose);
switch(choose)
case0:
//退出break;
case1:
add();
fh();
〃增加职工信息
break;
case2:
select();
〃查看职工信息
case3:
zc_query();
〃查找
case4:
num_del();
//删除break;
case5:
tongji();
//统计
case6:
sort();
//排序
case7:
num_modify();
//修改后返回
case8:
save();
//保存break;
case9:
disp();
//显示default:
fflush(stdin);
getchar();
system("
voidsave()
\t=====程序在运行时已自动保存.....\n"
voidfh()
\t===>
按Enter键返回主菜单\n"
changelndex=i;
//保存要修改的人的下标
\t工号\t姓名\t性别\t部门\t职称\t工资\n"
\t%s\t%s\t%s\t%s\t%s\t%d\n\n"
em[changelndex].num,em[chan
gelndex].name,em[changelndex].sex,em[changelndex].bm,em[changelndex].zc,em[changelndex].gz);
请重新输入该职工信息"
);
工号:
scanf("
%s"
em[changelndex].num);
姓名:
em[changelndex].name);
性别:
em[changelndex].sex);
部门:
seanf("
em[changelndex].bm);
printf("
职称:
em[changelndex].zc);
工资:
em[changelndex].gz);
//信息修改后重新更新文件里面的数据以保持数据一致性
fp=fopen("
for(i=O;
i<
Number;
i++)
fwrite(&
em[i],sizeof(structemployee),1,fp);
//把ptr所指向
n*size个字节输入到fp所指向的文件中
\t=======>
修改成功\n"
}voiddisp()//输出所有职工信息
inti=0;
for(i=0;
em[i].num,em[i].name,em[i].sex,em[i].bm,em[i].zc,em[i].gz);
voidsort()//排序
structemployeet;
intwantNUmber=0;
intj=0;
intk=0;
for(i=0;
Number-1;
{k=i;
for(j=i+1;
j<
j++)
if(em[j].gz>
em[k].gz)k=j;
if(k!
=i)
{t=em[i];
em[i]=em[k];
em[k]=t;
你想输出前几名职工的信息:
,&
wantNUmber);
if(wantNUmber>
Number)
wantNUmber=Number;
for(i=0;
wantNUmber;
em[i].num,em[i].name,em[i].sex,em[i].bm,em[i].zc,em[i].gz);
voidtongji()〃统计
inti,m,k,max,min;
doublesum=0.0;
sum=sum+em[i].gz;
全体职工的总工资为:
%f\n"
sum);
平均工资为:
%f\n"
sum/Number);
i=O;
m=O;
max=O;
max=em[m].gz;
for(i=1;
if(em[i].gz>
max)
m=i;
最高工资为:
%d\n"
max);
em[m].num,em[m].name,em[m].sex,em[m].bm,em[m].zc,em[m].gz);
i=0;
k=0;
min=0;
min=em[0].gz;
if(em[i].gz<
min)
k=i;
min=em[k].gz;
最低工资:
%d\n"
min);
em[k].num,em[k].name,em[k].
sex,em[k].bm,em[k].zc,em[k].gz);
voidnum_del()〃按工号删除
{_
chargh[60];
如果查找到就删除
请输入要删除的职工工号:
scanf("
gh);
if(strcmp(gh,em[i].num)==0)//{
for(j=i;
{em[j]=em[j+1];
Number--;
//将剩余数据写入文件重新一写的方式打开文件把以前的数据擦除了
employee1.dat"
wb"
删除成功;
\n"
}voidzc_query()//按职称查找
charzc[20];
请输入要查找职工职称:
zc);
if(strcmp(zc,em[i].zc)==O)
}voidselect()//查
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 职工 信息管理 系统 结构 数组 实现 程序 源代码