⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 renyuanguanli.txt

📁 人事管理系统
💻 TXT
字号:
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"conio.h"
#define  N  100
/*定义结构体变量*/
struct  guyuan 
{char no[6];/*编号*/
char name[10];/*姓名*/
char part[10];/*部门*/
int age;/*年龄*/
char sex[4];/*性别*/
float gz;/*工资*/
float jj;/*奖金*/
float kk;/*扣款*/
float income;/*实发工资*/
 }gy[N];
  FILE *fp;/*数据文件指针*/
 int load();/*统计文件总人数*/
 void guyuanguanli();/*雇员管理菜单*/
 void search();/*查询菜单*/
 void input();/*输入雇员及信息*/
 void add();/*追加雇员及信息*/
 void del();/*删除雇员*/
 void sort();/*按实发工资排序*/
 void list();/*综合查询*/
 void name();/*按姓名查询雇员*/
 /*主函数*/
 main()
 {
  int i;
   do
   {   clrscr();/*清屏*/
       printf("\n*********主菜单************\n");
       printf("\n\n1.雇员管理\n\n2.查询\n\n3.退出系统\n");
      printf("\nplease choose the number:");
      scanf("%d",&i);/*选择选项*/
     switch(i)
     {case 1:guyuanguanli(); break;/*雇员管理菜单*/
      case 2:search(); break;      /*查询菜单*/
      case 3:printf("\nexit!\n"); break;/*退出*/ 
      default:printf("\nnumber error!\n");/*提示选项错误*/
    }
   }
   while(i!=3);   /*当i=3时,退出循环*/
 }


 void guyuanguanli()
 {
   int j;
   do
   {   printf("\n***********子菜单***********\n");
     printf("\n1.输入雇员信息\n\n2.追加雇员\n\n3.删除雇员\n\n4.排序信息 \n\n5.退出菜单\n\n");
     printf("\nplease choose the number:");
     scanf("%d",&j);
     switch(j)
     {
      case 1:input(); break; /*输入雇员及信息*/
      case 2:add();  break;  /*追加雇员及信息*/  
      case 3:del(); break;   /*删除雇员*/
      case 4:sort(); break;  /*按实发工资排序*/
      case 5:printf("\nexit!\n"); break;/*退出*/
      default:printf("number error!\n");/*提示选项错误*/
     }
       }
  while(j!=5); /*当i=5时,退出循环*/
 }
/*统计文件总人数*/
int load()
{   int n=0;
    fp=fopen("D:infile.txt","rb");/*打开文件*/
   while(!feof(fp))    
      {    fseek(fp,n*sizeof(struct guyuan),0);
           fread(&gy[n],sizeof(struct guyuan),1,fp);/*读取数据*/
             n=n+1;
       }
    fclose(fp); /*关闭文件*/
 return(n-1);/*返回一个整数值*/
}
 /*输入雇员及信息*/
 void input()
 {  int i,n;
    if((fp=fopen("D:infile.txt","wb+"))==NULL)
    { printf("Can not open the file\n");return;}
   printf("\nhow many people you input(请输入数字):");/*提示输入雇员人数*/
   scanf("%d",&n);
   printf("\n编号  姓名  部门   年龄   性别   工资   奖金   扣款\n");
   for(i=0;i<n;i++)
   {scanf("%s%s%s%d%s%f%f%f",gy[i].no,gy[i].name,gy[i].part,&gy[i].age,gy[i].sex,&gy[i].gz,&gy[i].jj,&gy[i].kk);
    gy[i].income=(gy[i].gz+gy[i].jj)-gy[i].kk;}
   for(i=0;i<n;i++)
     {fwrite(&gy[i],sizeof(struct guyuan),1,fp); }/*将数据一个个写入文件中*/
      fclose(fp);/*关闭文件*/
    printf("\n*****finish*****\n");
   }
 /*追加雇员及信息*/  
 void add()
{  int i,j,n;
   clrscr();
    if((fp=fopen("D:infile.txt","ab"))==NULL)     n=0;
   else n=load();/*统计文件总人数*/
  fp=fopen("D:infile.txt","ab+");
   printf("\n输入要追加的人数(请输入数字):");/*提示信息*/
   scanf("%d",&j);
    printf("\n编号 姓名 部门 年龄 性别 工资 奖金 扣款\n");
  for(i=1;i<=j;i++)
    {scanf("%s%s%s%d%s%f%f%f",gy[n+i].no,gy[n+i].name,gy[n+i].part,&gy[n+i].age,gy[n+i].sex,&gy[n+i].gz,&gy[n+i].jj,&gy[n+i].kk);
    gy[n+i].income=(gy[n+i].gz+gy[n+i].jj)-gy[n+i].kk;}
   for(i=1;i<=j;i++)
   {  fseek(fp,(n+i)*sizeof(struct guyuan),0);
     fwrite(&gy[n+i],sizeof(struct guyuan),1,fp); /*将数据一个个写入文件中*/
    }
 fclose(fp);   
 printf("\n***********add success***********\n");
}
/*删除雇员*/
void del()
{int i,n,j,k;char s[10];int m;
   clrscr();
     n=load();/*统计文件总人数*/
    fp=fopen("D:infile.txt","wb+");/*打开文件*/
   printf("\n输入一个姓名:");
   scanf("%s",s);
   for(i=0;i<n;i++)/*找到第i个人后,就跳出循环,找不到就将数据写入文件中*/
   {  if(strcmp(gy[i].name,s)==0)     break;   fwrite(&gy[i],sizeof(struct guyuan),1,fp);}
    if(i<n-1)
      { for(m=i+1;m<n-1;m++)
          fwrite(&gy[m],sizeof(struct guyuan),1,fp);
       }
  
    fclose(fp); printf("\n************delete success***********\n");
  }
/*按实发工资排序*/
 void sort()
  {int i,j,k,n;struct guyuan temp; 
    n=load();/*统计文件总人数*/
    for(i=0;i<n;i++)
     { k=i;
        for(j=i+1;j<n;j++)   /*按实发工资排序*/
          {  if(gy[i].income<gy[j].income)   k=j;
             if(k!=i)  temp=gy[i];gy[i]=gy[k];gy[k]=temp;
           } 
      }
    if((fp=fopen("D:infile.txt","wb+"))==NULL)/*打开文件*/
    { printf("\nCan not open the file\n");return;}
      for(i=0;i<n;i++)
     fwrite(&gy[i],sizeof(struct guyuan),1,fp); /*将数据写入文件中*/
      fclose(fp);/*关闭文件*/
 printf("\n***********sort success***********\n");
  }
/*查询菜单*/
void search()
  {int i;
   do
   {printf("\n*************查询菜单**********\n");
    printf("\n1.综合查询\n\n2.按姓名查询\n\n3.退出菜单\n");
    printf("\nplease choose the number:");/*提示信息*/
    scanf("%d",&i);
    switch(i)
    {case 1:list(); break;
     case 2:name(); break;
     case 3:printf("\nexit!\n"); break;
     default:printf("\nnumber error!\n");
    }
   }
   while(i!=3);
  }
/*综合查询*/
 void list()
  { int i,n;n=load();/*统计文件总人数*/
    clrscr();/*清屏*/
    if((fp=fopen("D:infile.txt","rb"))==NULL)
     { printf("\ncan not open fine press any key exit\n");
      getch();exit(1);}
    printf("\n编号 姓名  部门   年龄   性别  工资   奖金   扣款   总收入\n");
     for(i=0;i<n;i++)
          {  fread(&gy[i],sizeof(struct guyuan),1,fp); 
	      printf("\n%s%6s%6s%6d%6s%8.1f%8.1f%8.1f%8.1f\n",gy[i].no,gy[i].name,gy[i].part,gy[i].age,gy[i].sex,gy[i].gz,gy[i].jj,gy[i].kk,gy[i].income);
           }
    fclose(fp);  
    printf("\n***********all message!************\n");
  }
/*按姓名查询雇员*/
void name()
 {  int i;int n;char s[10];
      clrscr();
n=load();/*统计文件总人数*/
      fp=fopen("D:infile.txt","rb");
     printf("\n输入一个姓名:");/*提示信息*/
     scanf("%s",s);
   printf("\n编号 姓名  部门   年龄   性别  工资   奖金   扣款   总收入\n");
   for(i=0;i<n;i++)
     {  fread(&gy[i],sizeof(struct guyuan),1,fp);
        if(strcmp(gy[i].name,s)==0)   break;     /*找到第i个人后,就跳出循环*/
	}
   printf("\n%s%6s%6s%6d%6s%8.1f%8.1f%8.1f%8.1f\n",gy[i].no,gy[i].name,gy[i].part,gy[i].age,gy[i].sex,gy[i].gz,gy[i].jj,gy[i].kk,gy[i].income);
        
     fclose(fp);
     printf("\n*******over**********\n");
   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -