C语言课程设计职工信息管理系统结构体数组实现程序源代码Word格式.docx

上传人:b****6 文档编号:20516728 上传时间:2023-01-23 格式:DOCX 页数:13 大小:16.92KB
下载 相关 举报
C语言课程设计职工信息管理系统结构体数组实现程序源代码Word格式.docx_第1页
第1页 / 共13页
C语言课程设计职工信息管理系统结构体数组实现程序源代码Word格式.docx_第2页
第2页 / 共13页
C语言课程设计职工信息管理系统结构体数组实现程序源代码Word格式.docx_第3页
第3页 / 共13页
C语言课程设计职工信息管理系统结构体数组实现程序源代码Word格式.docx_第4页
第4页 / 共13页
C语言课程设计职工信息管理系统结构体数组实现程序源代码Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言课程设计职工信息管理系统结构体数组实现程序源代码Word格式.docx

《C语言课程设计职工信息管理系统结构体数组实现程序源代码Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计职工信息管理系统结构体数组实现程序源代码Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

C语言课程设计职工信息管理系统结构体数组实现程序源代码Word格式.docx

//排序

voidnum_modify();

//按工号修改职工信息

voidsave();

//保存信息

voiddisp();

//显示职工信息

voidfh();

//返回主菜单

structemployeeem[300];

//这个数组用来保存所有的职工信息和文件里面的一致

intNumber=0;

//记录总的职工人数也就是数组/文件里面的职工人数

voidmenu()

printf("

\t***********************************************************************\n"

);

\t**\n"

\t*职工信息管理系统_结构体数组实现*\n"

\t*[1]增加职工信息[2]查看职工信息*\n"

\t*[3]查找职工信息[4]删除职工信息*\n"

\t*[5]统计[6]职工工资排列*\n"

\t*[7]修改职工信息[8]保存职工信息*\n"

\t*[9]显示职工信息[0]退出系统*\n"

}

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();

\t\t====>

请选择:

"

%d"

choose);

switch(choose)

case0:

exit(0);

//退出

break;

case1:

add();

fh();

//增加职工信息

break;

case2:

select();

//查看职工信息

case3:

zc_query();

//查找

case4:

num_del();

//删除

case5:

tongji();

//统计

case6:

sort();

//排序

case7:

num_modify();

//修改后返回

case8:

save();

//保存

case9:

disp();

//显示

default:

}

fflush(stdin);

getchar();

voidsave()

\t=====程序在运行时已自动保存.....\n"

voidfh()

\t===>

按Enter键返回主菜单\n"

voidnum_modify()//修改职工信息

chargh[60];

inti=0;

intchangeIndex=0;

//changeIndex改变标记

intindex=0;

请输入要修改的职工工号:

%s"

gh);

for(i=0;

i<

Number;

i++)

if(strcmp(gh,em[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"

em[changeIndex].num,em[changeIndex].name,em[changeIndex].sex,em[changeIndex].bm,em[changeIndex].zc,em[changeIndex].gz);

请重新输入该职工信息"

工号:

em[changeIndex].num);

姓名:

em[changeIndex].name);

性别:

em[changeIndex].sex);

部门:

em[changeIndex].bm);

职称:

em[changeIndex].zc);

工资:

em[changeIndex].gz);

//信息修改后重新更新文件里面的数据以保持数据一致性

fp=fopen("

fwrite(&

em[i],sizeof(structemployee),1,fp);

//把ptr所指向n*size个字节输入到fp所指向的文件中

fclose(fp);

\t=======>

修改成功\n"

voiddisp()//输出所有职工信息

printf("

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;

wantNUmber;

}

voidtongji()//统计

inti,m,k,max,min;

doublesum=0.0;

sum=sum+em[i].gz;

全体职工的总工资为:

%f\n"

sum);

平均工资为:

sum/Number);

i=0;

m=0;

max=0;

max=em[m].gz;

for(i=1;

if(em[i].gz>

max)

m=i;

max=em[m].gz;

最高工资为:

%d\n"

max);

em[m].num,em[m].name,em[m].sex,em[m].bm,em[m].zc,em[m].gz);

k=0;

min=0;

min=em[0].gz;

if(em[i].gz<

min)

k=i;

min=em[k].gz;

最低工资:

min);

em[k].num,em[k].name,em[k].sex,em[k].bm,em[k].zc,em[k].gz);

voidnum_del()//按工号删除

请输入要删除的职工工号:

if(strcmp(gh,em[i].num)==0)//如果查找到就删除

for(j=i;

em[j]=em[j+1];

Number--;

//将剩余数据写入文件重新一写的方式打开文件把以前的数据擦除了

employee1.dat"

wb"

删除成功;

\n"

voidzc_query()//按职称查找

{

请输入要查找职工职称:

zc);

if(strcmp(zc,em[i].zc)==0)

printf("

voidselect()//查看职工

以下是全部职工信息\n"

voidadd()//增加职工

intnumberTemp=0;

structemployeetemp;

//临时保存信息

请输入要增加职工信息的个数:

numberTemp);

numberTemp;

输入第%d个职工信息\n"

i+1);

scanf("

temp.num);

temp.name);

temp.sex);

temp.bm);

temp.zc);

temp.gz);

em[Number++]=temp;

//将刚添加的写入到数组

write_file(&

temp);

//将刚添加的写入到文件

添加成功\n"

voidwrite_file(structemployee*em)

fwrite(em,sizeof(structemployee),1,fp);

intread_file(structemployeeem[])

rb"

while(fread(&

em[i],sizeof(structemployee),1,fp))

i++;

returni;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

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

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