员工管理程序.docx

上传人:b****4 文档编号:5000929 上传时间:2022-12-12 格式:DOCX 页数:25 大小:19.86KB
下载 相关 举报
员工管理程序.docx_第1页
第1页 / 共25页
员工管理程序.docx_第2页
第2页 / 共25页
员工管理程序.docx_第3页
第3页 / 共25页
员工管理程序.docx_第4页
第4页 / 共25页
员工管理程序.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

员工管理程序.docx

《员工管理程序.docx》由会员分享,可在线阅读,更多相关《员工管理程序.docx(25页珍藏版)》请在冰豆网上搜索。

员工管理程序.docx

员工管理程序

 

/***************************************************

头文件

***************************************************/

 

#include

#include

#include

#defineN100

voidmenu_handle();/*函数处理菜单*/

intmenu_choose();/*函数选择菜单*/

voidinput_worker();/*创建文件并对工人信息输入函数*/

voidsave_file(intn);/*文件保存*/

intload();/*提取员工数*/

voidmessage_output();/*员工信息浏览函数*/

voidadd_worker();/*员工添加函数*/

voiddele_worker();/*员工信息删除函数*/

voidfine();/*员工信息查询函数*/

voidfine_num();/*员工号查询函数*/

voidfine_name();/*按姓名查询函数*/

voidsort_age();/*按年龄排序函数*/

voidsort_pay();/*按工资排序函数*/

voidsort();/*排序函数处理*/

voidchange(structworker*p,intn);/*交换元素*/

 

/***************************************************

主函数

***************************************************/

 

voidmain()

{

printf("\n\t\t\t∞∞∞∞计算机工程系∞∞∞∞\n");

printf("\n\t\t\t\t\t\t计Y111班");

printf("\n\t\t\t\t\t\t朱建国\n");

menu_handle();/*调用菜单函数*/

 

}

 

/***************************************************

菜单文件

***************************************************/

 

/***************************************************

菜单选择函数

***************************************************/

intmenu_chooose()

{

intshuzi;/*定义数字选择的变量s*/

chars[2];

//printf("\n");

printf("\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");

printf("\t*欢*1.员工信息输入*职*\n");

printf("\t**2.员工信息输出**\n");

printf("\t*迎*3.添加员工信息*工*\n");

printf("\t**4.删除员工信息**\n");

printf("\t*进*5.员工信息查询*档*\n");

printf("\t**6.员工信息排序**\n");

printf("\t*入*7.退出程序*案*\n");

printf("\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n\n");

printf("***********请选择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!

\n");

else

break;

}

return(shuzi);

}

 

/***************************************************

菜单处理函数

***************************************************/

voidmenu_handle()

{

 

for(;;)

{

switch(menu_chooose())/*调用菜单选择函数*/

{

case1:

printf("\t\t\t◆◆◆员工信息输出◆◆◆\n\n");

input_worker();

break;

case2:

system("cls");

printf("\t\t\t◆◆◆员工信息输出◆◆◆\n");

message_output();

break;

case3:

system("cls");

printf("\t\t\t◆◆◆添加员工信息◆◆◆\n\n");

add_worker();

break;

case4:

system("cls");

printf("\t\t\t◆◆◆删除员工信息◆◆◆\n\n");

dele_worker();

break;

case5:

system("cls");

printf("\t\t\t◆◆◆员工信息查询◆◆◆\n\n");

fine();

break;

case6:

system("cls");

printf("\t\t\t◆◆◆员工信息排序◆◆◆\n\n");

sort();

break;

case7:

system("cls");

printf("\n\n\n\n\n\n\n\n\n\n\n\\n\n");

printf("\t\t\t☆★☆★☆☆\n");

printf("\t\t\t☆★★★★☆\n");

printf("\t\t\t☆★★★☆\n");

printf("\t\t\t☆★谢谢使用★☆\n");

printf("\t\t\t☆★再见~★☆\n");

printf("\t\t\t☆★★☆\n");

printf("\t\t\t★★\n");

printf("\t\t\t★\n\n");

printf("\n\n\n\n\n\n\nn");

return;

}

}

}

 

structworker

{

intnum;/*--------员工号*/

charname[10];/*----姓名*/

charsex[10];/*-----性别*/

intage;/*--------年龄*/

charposition[10];/*----职位*/

intpay;/*---------工资*/

}work[N];

/***************************************************

员工信息输入函数

***************************************************/

 

voidinput_worker()/*定义一个员工信息输入的函数*/

{

intn,i;

printf("输入员工数:

");

scanf("%d",&n);

FILE*fp;/*定义一个指向员工信息数组的指针文件*/

structworker*p;/*定义员工数组及指向员工的指针*/

 

if((fp=fopen("workermessage","wb"))==NULL)/*创建一个存储员工信息的文件*/

{

printf("不能打开该文件");

exit(0);

}

 

for(p=work,i=1;p

{

printf("\t\t\t【输入第%d名员工】\n\n",i);

printf("输入员工号:

");

scanf("%d",&p->num);

printf("\n");

printf("输入姓名:

");

scanf("%s",p->name);

printf("\n");

printf("输入性别:

");

scanf("%s",p->sex);

printf("\n");

printf("输入年龄:

");

scanf("%d",&p->age);

printf("\n");

printf("输入职位:

");

scanf("%s",p->position);

printf("\n");

printf("输入工资:

");

scanf("%d",&p->pay);

printf("\n\n\n");

fwrite(p,sizeof(structworker),1,fp);

}

fclose(fp);

printf("输入完成\n\n\n\n\n");

 

}

 

/***************************************************

提取员工数

***************************************************/

intload()/*定义一个能获取员工数的函数*/

{

FILE*fp;/*定义指针文件*/

inti;

structworker*p=work;/*定义一个指向结构体数组的指针*/

if((fp=fopen("workermessage","rb"))==NULL)

{

printf("不能打开该文件");

exit(0);

}

for(i=0;feof(fp)==0;i++)

fread(p,sizeof(structworker),1,fp);

fclose(fp);

return(i-1);/*以返还的形式找到员工数*/

}

 

/***************************************************

文件存储函数

***************************************************/

voidsave_file(intn)/*定义一个文件储存函数*/

{

inti;

FILE*fp;

 

if((fp=fopen("workermessage","wb"))==NULL)/*创建一个存储员工信息的文件*/

{

printf("不能打开该文件");

exit(0);

}

for(i=0;i

{

fwrite(&work[i],sizeof(structworker),1,fp);

}

fclose(fp);

 

}

 

/***************************************************

员工信息浏览函数

***************************************************/

 

voidmessage_output()/*员工信息输出函数*/

{

intn;/*定义一个员工数变量*/

n=load();/*将员工数赋值给n*/

 

structworker*p;/*定义员工数组及指向员工的指针*/

FILE*fp;

if((fp=fopen("workermessage","rb"))==NULL)/*打开存储员工信息的文件*/

{

printf("不能打开该文件");

exit(0);

}

printf("\n\t\t员工号\t姓名\t性别\t年龄\t职位\t工资\n");

for(p=work;p

{

fread(p,sizeof(structworker),1,fp);/*读文件*/

printf("\n\t\t%d\t%s\t%s\t%d\t%s\t%d\n",p->num,p->name,p->sex,p->age,p->position,p->pay);/*输出员工信息*/

}

fclose(fp);

}

 

/***************************************************

员工信息添加函数

***************************************************/

voidadd_worker()/*定义一个员工信息添加函数*/

{

intn,m,i,j=1;/*定义添加的员员工数*/

m=load();

printf("输入添加多少名员工:

");

scanf("%d",&n);/*输入员工数*/

FILE*fp;/*定义一个指向员工信息数组的指针文件*/

structworker*p;/*定义员工数组及指向员工的指针*/

 

if((fp=fopen("workermessage","ab"))==NULL)/*创建一个存储员工信息的文件*/

{

printf("不能打开该文件");

exit(0);

}

 

for(p=work+m,i=m;i

{

printf("\t\t\t【输入第%d名员工】\n\n",j);

printf("输入员工号:

");

scanf("%d",&p->num);

printf("\n");

printf("输入姓名:

");

scanf("%s",p->name);

printf("\n");

printf("输入性别:

");

scanf("%s",p->sex);

printf("\n");

printf("输入年龄:

");

scanf("%d",&p->age);

printf("\n");

printf("输入职位:

");

scanf("%s",p->position);

printf("\n");

printf("输入工资:

");

scanf("%d",&p->pay);

printf("\n");

fwrite(p,sizeof(structworker),1,fp);

}

fclose(fp);

printf("输入完成\n\n\n\n\n");

}

 

/***************************************************

员工信息删除函数

***************************************************/

voiddele_worker()/*定义员工信息删除函数*/

{

intn,m,i,j,flag,x;/*定义员工数变量、选择数字、标志*/

charwk[10];/*定义一个数组用于提醒输入错误*/

structworker*p;/*定义结构体指针*/

n=load();/*调用提取员工数的函数*/

message_output();/*调用员工信息输出函数*/

p=work;/*指针p指向结构体数组*/

loop:

printf("输入要删除的姓名");

scanf("%s",wk);

for(i=0;i

{

if(strcmp((p+i)->name,wk)==0)

{

printf("找到此人\n此人原本信息:

\n");

flag=1;

printf("\n\t\t员工号\t姓名\t性别\t年龄\t职位\t工资\n");

printf("\n\t\t%d\t%s\t%s\t%d\t%s\t%d\n",(p+i)->num,(p+i)->name,(p+i)->sex,(p+i)->age,(p+i)->position,(p+i)->pay);

printf("\n是否删除?

\n是请按1\n否请按0\n");

scanf("%d",&m);

if(m==1)

{

for(j=i;j

{

/*(p+j)->num=(p+j+1)->num;

strcpy((p+j)->name,(p+(j+1))->name);

strcpy((p+j)->sex,(p+j+1)->sex);

(p+j)->age,(p+j+1)->age;

strcpy((p+j)->position,(p+j+1)->position);

(p+j)->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)

{

printf("\t\t\t\t查无此人!

\n");

}

if(flag==1)

n=n-1;

save_file(n);/*保存文件*/

message_output();/*刷新数组*/

printf("继续删除请按

(1)\n退出请按

(2)\n");/*选择菜单*/

scanf("%d",&x);

switch(x)

{

case1:

gotoloop;

break;

case2:

printf("谢谢使用!

\n");

break;

}

}

/***************************************************

员工信息查询函数

***************************************************/

 

voidfine()

{

intm;/*定义变量提示输入*/

chars[10];/*定义一个数组用于提醒输入*/

printf("按员工号查询请按1:

\n\n按姓名查询请按2:

\n\n退出查询请按3:

\n");

for(;;)/*防止输入错误*/

{

scanf("%s",s);/*输入数字*/

m=atoi(s);/*字符转换*/

if(m<1||m>3)

printf("\t\t\t输入错误!

请重新输入1-3\n");

else

break;

}

switch(m)/*选择查询方式*/

{

case1:

fine_num();/*调用按员工号查询函数*/

break;

case2:

fine_name();/*调用按姓名查询函数*/

break;

case3:

printf("谢谢使用!

\n");

break;

}

}

 

/***************************************************

按员工号查询函数

***************************************************/

voidfine_num()

{

intm,n,q,x,flag;/*定义m存储员工号,n表示员工数,q提醒输入*/

chars[10];/*用于提醒输入*/

structworker*p;/*结构体指针*/

n=load();/*调用提取数组地址函数*/

message_output();/*调用信息输出函数*/

system("cls");/*清屏*/

loop:

printf("输入要查询的员工号:

");/*返回输入*/

scanf("%d",&m);

for(p=work;p

{if(m==p->num)/*如果查到的数组与输入的数组相同*/

{

printf("此员工信息如下:

\n\n");

printf("\n\t\t员工号\t姓名\t性别\t年龄\t职位\t工资\n");

printf("\n\t\t%d\t%s\t%s\t%d\t%s\t%d\n",p->num,p->name,p->sex,p->age,p->position,p->pay);

flag=1;

printf("查询下一个请按

(1)\n返回上一级请按

(2)\n退出请按(3)\n");

scanf("%d",&x);

system("cls");

switch(x)/*用于选择是否继续查询*/

{

case1:

gotoloop;

break;

case2:

fine();

break;

case3:

printf("谢谢使用!

\n");

break;

}

}

 

}

if(flag!

=1)

{

printf("查无此人!

\n");

for(;;)/*用于防止输入错误*/

{

printf("重新输

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

当前位置:首页 > 工程科技 > 信息与通信

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

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