C语言人事档案管理系统

  • 格式:docx
  • 大小:11.96 KB
  • 文档页数:14

#include

#include

#include

#define N 10

struct worker

{

char num[20]; //员工编号

char name[20]; //员工名称

char sex;//员工性别

int age;//员工年龄

char remark[20];//员工备注

} stu[10];

void input()//员工基本信息录入

{

int i=0;

FILE *fp; //文献指针

for(i=0;i

{

printf("\n请输入第%d个员工旳基本信息:\n",i+1);

printf("员工编号: ");

scanf("%s",stu[i].num);

printf("员工名称: ");

scanf("%s",stu[i].name);

fflush(stdin);

printf("员工性别: "); scanf("%c",&stu[i].sex);

printf("员工年龄:");

scanf("%d",&stu[i].age);

printf("备注: ");

scanf("%s",stu[i].remark);

}

if((fp=fopen("worker-massge","wb"))==NULL) //判断文献打开与否成功

{

printf("文献打开失败");

exit(0);

}

for(i=0;i

{

if(fwrite(&stu[i],sizeof(struct worker),1,fp)!=1)

printf("file writer error\n");

}

fclose(fp);

}

void show(int j)//显示员工信息

{

int i;

FILE *fp;

if((fp=fopen("worker-massge","rb"))==NULL)//判断文献打开与否成功 {

printf("文献打开失败");

exit(0);

}

for(i=0;i

fread(&stu[i],sizeof(struct worker),1,fp); /*读磁盘文献*/

printf("\n***********员工基本信息表*************\n"); //显示员工信息

printf("编号\t名称\t性别\t年龄\t备注\n");

for(i=0;stu[i].age!=-1&&i

{

printf("\n%s\t%s\t%c\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].remark);

}

}

void search()//按照员工名称进行查询

{

int a,i,g,e;

char d,r[20],c[20];

FILE *fp;

if((fp=fopen("worker-massge","rb"))==NULL)//判断文献打开与否成功

{

printf("文献打开失败");

return;

}

for(i=0;i

fread(&stu[i],sizeof(struct worker),1,fp); /*读磁盘文献*/ fclose(fp);

while(g)

{

printf("***********请选择查询方式***************\n");

printf(" 1,姓名 2,序号 3,性别 4,年龄\n ");

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

scanf("%d",&a);

switch(a)

{

case 1:printf("请输入姓名:");

scanf("%s",r);

printf("姓名 序号 性别 年龄 备注 \n ");

for(i=0;i

{

if(strcmp(stu[i].name,r)==0)

printf("\n%s\t%s\t%c\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].remark);

}

break;

case 2:printf("请输序号:");

scanf("%s",&c);

printf("姓名 序号 性别 年龄 备注 \n ");

for(i=0;i

{

if(strcmp(c,stu[i].num)==0)

printf("\n%s\t%s\t%c\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].remark);

}

break;

case 3:printf("请输性别:");

getchar();

scanf("%c",&d);

printf("姓名 序号 性别 年龄 备注 \n ");

for(i=0;i

{

if(stu[i].sex==d)

printf("\n%s\t%s\t%c\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].remark);

}

break;

case 4:printf("请输年龄:");

scanf("%d",&e);

printf("姓名 序号 性别 年龄 备注 \n ");

for(i=0;i<10;i++)

{

if(stu[i].age==e)

printf("\n%s\t%s\t%c\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].remark);

}

break; default :printf("错误");

break;

} printf("-----__与否继续查询(是按1/否按0):");

scanf("%d",&g);

}

}

void change(int k)//修改员工信息

{

int i;

FILE *fp;

char listname[20];

char password[10];

do{

printf("请输入修改密码\n");

scanf("%s",password);

if((strcmp(password,"0819")!=0))

{

printf("密码错误,不能修改\n");

continue;

}

break;

}

while(1);

printf("密码对旳,可以修改\n");

if((fp=fopen("worker-massge","rb"))==NULL)

{ printf("文献打开失败");

return ;

}

for(i=0;i

fread(&stu[i],sizeof(struct worker),1,fp); /*读磁盘文献*/

printf("\n\n-----------------员工信息表------------------\n\n");

printf("编号\t姓名\t性别\t年龄\t备注\n");

for(i=0;i

{

printf("%s\t%s\t%c\t%d\t%s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].remark);

}

printf("请输入要更改旳员工旳编号:");

scanf("%s",listname);

for(i=0;i

{

if(strcmp(listname,stu[i].num)==0)

break;

}

if(i

{ printf("\n请修改员工旳信息:\n");

printf("员工编号: ");

scanf("%s",stu[i].num);

printf("员工姓名: ");

scanf("%s",stu[i].name);

fflush(stdin);

printf("员工性别: ");

scanf("%c",&stu[i].sex);

printf("员工年龄: ");

scanf("%d",&stu[i].age);

printf("员工备注: ");

scanf("%s",&stu[i].remark);

}

else

{

printf("对不起,你请输入员工编号是错误旳或没有此编号");

return ;

}

//

if((fp=fopen("worker-massge","wb"))==NULL)

{

printf("文献打开失败");

exit(0);

}