员工管理程序Word文件下载.docx
《员工管理程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《员工管理程序Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
voidchange(structworker*p,intn);
/*交换元素*/
主函数
voidmain()
{
printf("
\n\t\t\t∞∞∞∞计算机工程系∞∞∞∞\n"
);
\n\t\t\t\t\t\t计Y111班"
\n\t\t\t\t\t\t朱建国\n"
menu_handle();
/*调用菜单函数*/
}
菜单文件
菜单选择函数
intmenu_chooose()
intshuzi;
/*定义数字选择的变量s*/
chars[2];
//printf("
\n"
printf("
\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n"
\t*欢*1.员工信息输入*职*\n"
\t**2.员工信息输出**\n"
\t*迎*3.添加员工信息*工*\n"
\t**4.删除员工信息**\n"
\t*进*5.员工信息查询*档*\n"
\t**6.员工信息排序**\n"
\t*入*7.退出程序*案*\n"
\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n\n"
***********请选择1-7*********\n"
/*选择菜单*/
for(;
;
)
{
scanf("
%s"
s);
/*输入数字*/
shuzi=atoi(s);
/*字符转换*/
if(shuzi>
7||shuzi<
1)
printf("
\t\t\t输入错误\n\n\t\t\t请重新输入1-7!
\n\n\t\t\t退出请按7!
else
break;
}
return(shuzi);
菜单处理函数
voidmenu_handle()
switch(menu_chooose())/*调用菜单选择函数*/
{
case1:
printf("
\t\t\t◆◆◆员工信息输出◆◆◆\n\n"
input_worker();
break;
case2:
system("
cls"
\t\t\t◆◆◆员工信息输出◆◆◆\n"
message_output();
case3:
\t\t\t◆◆◆添加员工信息◆◆◆\n\n"
add_worker();
case4:
\t\t\t◆◆◆删除员工信息◆◆◆\n\n"
dele_worker();
case5:
\t\t\t◆◆◆员工信息查询◆◆◆\n\n"
fine();
case6:
\t\t\t◆◆◆员工信息排序◆◆◆\n\n"
sort();
case7:
\n\n\n\n\n\n\n\n\n\n\n\\n\n"
\t\t\t☆★☆★☆☆\n"
\t\t\t☆★★★★☆\n"
\t\t\t☆★★★☆\n"
\t\t\t☆★谢谢使用★☆\n"
\t\t\t☆★再见~★☆\n"
\t\t\t☆★★☆\n"
\t\t\t★★\n"
\t\t\t★\n\n"
\n\n\n\n\n\n\nn"
return;
}
structworker
intnum;
/*--------员工号*/
charname[10];
/*----姓名*/
charsex[10];
/*-----性别*/
intage;
/*--------年龄*/
charposition[10];
/*----职位*/
intpay;
/*---------工资*/
}work[N];
员工信息输入函数
voidinput_worker()/*定义一个员工信息输入的函数*/
intn,i;
输入员工数:
"
scanf("
%d"
&
n);
FILE*fp;
/*定义一个指向员工信息数组的指针文件*/
structworker*p;
/*定义员工数组及指向员工的指针*/
if((fp=fopen("
workermessage"
"
wb"
))==NULL)/*创建一个存储员工信息的文件*/
不能打开该文件"
exit(0);
for(p=work,i=1;
p<
work+n;
p++,i++)/*输入员工信息*/
{
\t\t\t【输入第%d名员工】\n\n"
i);
输入员工号:
p->
num);
输入姓名:
p->
name);
输入性别:
sex);
输入年龄:
age);
输入职位:
position);
输入工资:
pay);
\n\n\n"
fwrite(p,sizeof(structworker),1,fp);
fclose(fp);
输入完成\n\n\n\n\n"
提取员工数
intload()/*定义一个能获取员工数的函数*/
/*定义指针文件*/
inti;
structworker*p=work;
/*定义一个指向结构体数组的指针*/
rb"
))==NULL)
for(i=0;
feof(fp)==0;
i++)
fread(p,sizeof(structworker),1,fp);
return(i-1);
/*以返还的形式找到员工数*/
文件存储函数
voidsave_file(intn)/*定义一个文件储存函数*/
i<
n;
fwrite(&
work[i],sizeof(structworker),1,fp);
员工信息浏览函数
voidmessage_output()/*员工信息输出函数*/
{
intn;
/*定义一个员工数变量*/
n=load();
/*将员工数赋值给n*/
/*定义员工数组及指向员工的指针*/
))==NULL)/*打开存储员工信息的文件*/
\n\t\t员工号\t姓名\t性别\t年龄\t职位\t工资\n"
for(p=work;
p++)
fread(p,sizeof(structworker),1,fp);
/*读文件*/
\n\t\t%d\t%s\t%s\t%d\t%s\t%d\n"
num,p->
name,p->
sex,p->
age,p->
position,p->
/*输出员工信息*/
员工信息添加函数
voidadd_worker()/*定义一个员工信息添加函数*/
intn,m,i,j=1;
/*定义添加的员员工数*/
m=load();
输入添加多少名员工:
/*输入员工数*/
ab"
for(p=work+m,i=m;
n+m;
i++,p++,j++)/*输入员工信息*/
j);
员工信息删除函数
voiddele_worker()/*定义员工信息删除函数*/
intn,m,i,j,flag,x;
/*定义员工数变量、选择数字、标志*/
charwk[10];
/*定义一个数组用于提醒输入错误*/
/*定义结构体指针*/
/*调用提取员工数的函数*/
message_output();
/*调用员工信息输出函数*/
p=work;
/*指针p指向结构体数组*/
loop:
输入要删除的姓名"
wk);
if(strcmp((p+i)->
name,wk)==0)
{
找到此人\n此人原本信息:
flag=1;
(p+i)->
num,(p+i)->
name,(p+i)->
sex,(p+i)->
age,(p+i)->
position,(p+i)->
\n是否删除?
\n是请按1\n否请按0\n"
scanf("
m);
if(m==1)
{
for(j=i;
j<
n-1;
j++)
{
/*(p+j)->
num=(p+j+1)->
num;
strcpy((p+j)->
name,(p+(j+1))->
sex,(p+j+1)->
(p+j)->
age,(p+j+1)->
age;
position,(p+j+1)->
pay,(p+j+1)->
pay;
n=load();
*/
work[j].num=work[j+1].num;
strcpy(work[j].name,work[j+1].name);
strcpy(work[j].sex,work[j+1].sex);
work[j].age=work[j+1].age;
strcpy(work[j].position,work[j+1].position);
work[j].pay=work[j+1].pay;
}
}
if(flag!
=1)
\t\t\t\t查无此人!
if(flag==1)
n=n-1;
save_file(n);
/*保存文件*/
/*刷新数组*/
继续删除请按
(1)\n退出请按
(2)\n"
x);
switch(x)
gotoloop;
case2:
谢谢使用!
员工信息查询函数
voidfine()
intm;
/*定义变量提示输入*/
chars[10];
/*定义一个数组用于提醒输入*/
按员工号查询请按1:
\n\n按姓名查询请按2:
\n\n退出查询请按3:
\n"
)/*防止输入错误*/
m=atoi(s);
if(m<
1||m>
3)
\t\t\t输入错误!
请重新输入1-3\n"
switch(m)/*选择查询方式*/
fine_num();
/*调用按员工号查询函数*/
fine_name();
/*调用按姓名查询函数*/
case3:
}
按员工号查询函数
voidfine_num()
intm,n,q,x,flag;
/*定义m存储员工号,n表示员工数,q提醒输入*/
/*用于提醒输入*/
/*结构体指针*/
/*调用提取数组地址函数*/
/*调用信息输出函数*/
system("
/*清屏*/
loop:
输入要查询的员工号:
"
/*返回输入*/
p++)/*一个一个查询*/
{if(m==p->
num)/*如果查到的数组与输入的数组相同*/
此员工信息如下:
\n\n"
查询下一个请按
(1)\n返回上一级请按
(2)\n退出请按(3)\n"
system("
switch(x)/*用于选择是否继续查询*/
{
case1:
gotoloop;
break;
case2:
fine();
case3:
printf("
}
if(flag!
查无此人!
for(;
)/*用于防止输入错误*/
重新输