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

📄 职工管理系统.cpp

📁 用vc写的一个职工管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
     if((p2->age)>(p1->age))
      {
BUG1(p1)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BUG1(p2)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       fseek(fp,-L,SEEK_CUR);
       fwrite(p1,L,1,fp);
       fseek(fp,-(L*2),SEEK_CUR);
       fwrite(p2,L,1,fp);
       fseek(fp,L,SEEK_CUR);
      } 
     break;
    case 5:
     if((p2->pay)<(p1->pay))
      {
BUG1(p1)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BUG1(p2)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       fseek(fp,-L,SEEK_CUR);
       fwrite(p1,L,1,fp);
       fseek(fp,-(L*2),SEEK_CUR);
       fwrite(p2,L,1,fp);
       fseek(fp,L,SEEK_CUR);
      } 
     break;
    case 6:
     if((p2->pay)>(p1->pay))
      {
BUG1(p1)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BUG1(p2)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
       fseek(fp,-L,SEEK_CUR);
       fwrite(p1,L,1,fp);
       fseek(fp,-(L*2),SEEK_CUR);
       fwrite(p2,L,1,fp);
       fseek(fp,L,SEEK_CUR);
      } 
     break;	 
   }
   free(p1);
   free(p2);
   fseek(fp,-L,SEEK_CUR);
   p1=(employee *)malloc(L);
   p2=(employee *)malloc(L);
   fread(p1,L,1,fp);
   fread(p2,L,1,fp);
BUG2(p1)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
BUG2(p2)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////      
  }
  free(p1);
  free(p2);  
 }
 system("cls");
 printf("排列完成!\n");
 printf("\n按任意键返回...\n");
 reopen();
 fflush(stdin);
 getch();
}
void compositor()
{
 int i; 
again10:  
 system("cls"); 
 printf("\n\n\n\n\n");
 printf("                          ╔════════════╗\n");
 printf("                          ║ 按 1 职工号小到大排序  ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 2 职工号大到小排序  ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 3 年龄小到大排序    ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 4 年龄大到小排序    ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 5 工资低到高排序    ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 6 工资高到低排序    ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 7 返回上一级        ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 8 退出程序          ║\n");
 printf("                          ╚════════════╝\n");
 fflush(stdin);
 i=getch();
 switch(i)
 {
  case 49:
   compositor_(1);
   goto again10;
  case 50:
   compositor_(2);
   goto again10;
  case 51:
   compositor_(3);
   goto again10;
  case 52:
   compositor_(4);
   goto again10;
  case 53:
   compositor_(5);
   goto again10;
  case 54:
   compositor_(6);
   goto again10; 
  case 55:
   return;
  case 56:
   fclose(fp);
   exit(0); 
  default:  
   goto again10;
 }  
}
void search()
{
 int i; 
again8:  
 system("cls"); 
 printf("\n\n\n\n\n\n\n\n"); 
 printf("                          ╔════════════╗\n");
 printf("                          ║ 按 1 搜索职工信息      ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 2 职工信息排序      ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 3 返回上一级        ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 4 退出程序          ║\n");
 printf("                          ╚════════════╝\n");
 fflush(stdin);
 i=getch();
 switch(i)
 {
  case 49:
   search_();
   goto again8;
  case 50:
   compositor();
   goto again8;
  case 51:
   return;
  case 52:
   fclose(fp);
   exit(0);
  default: 
   goto again8;
 } 
}
void add()
{
 employee *p;
 system("cls");
 printf("                       ╔══════════════════╗\n");
 printf("                       ║      请输入需要添加的职工信息      ║\n");
 printf("                       ╠══════════════════╣\n");
 printf("                       ║各项数据之间用空格或Tab(制表符)隔开 ║\n");
 printf("                       ╚══════════════════╝\n");
 printf("输入顺序:职工号-->>姓名-->>性别-->>年龄-->>学历-->>工资-->>地址-->>电话号码\n");
 fflush(stdin);
 p=(employee *)malloc(L);
 fseek(fp,0l,SEEK_END); 
 scanf("%d%s%s%d%s%d%s%s",&p->num,p->name,p->sex,&p->age,p->sclrec,&p->pay,p->address,p->phonenum);
BUG1(p)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 fwrite(p,L,1,fp);
 free(p);
 system("cls");
 printf("添加成功!\n\n按任意键返回...\n");
 fflush(stdin);
 getch();   
}

void del_(int n)
{
 int i;
 int num_;
 char name_[10];
 char address_[40];			
 char phonenum_[12];		
 employee *p;
 system("cls");
 fflush(stdin);
 switch(n)
 {
  case 1:
   printf("请输入你要删除的职工的职工号:"); 
   scanf("%d",&num_);
   break;
  case 2:
   printf("请输入你要删除的职工的姓名:");
   scanf("%s",name_);
   break;
  case 3:
   printf("请输入你要删除的职工的地址:");
   scanf("%s",address_);
   break; 
  case 4:
   printf("请输入你要删除的职工的电话号码:");
   scanf("%s",phonenum_);
   break;
 }
 p=(employee *)malloc(L);
 tempfp=tmpfile();//建立临时文件 
 rewind_(fp);
 for(i=0;fread(p,L,1,fp);)
  {
BUG2(p)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   switch(n)
   {
    case 1:	 	
     if(p->num==num_)
      {
 	   if(i==0)
        printf("\n职工号--姓名-----性别--年龄---学历---工资-----地址----------------电话号码------\n");
       printf("  %-3d   %-9s %-4s  %-3d   %-6s %-6d   %-20s %-12s\n\n",p->num,p->name,p->sex,p->age,p->sclrec,p->pay,p->address,p->phonenum);      	
	   i++;
      }
     else
     {
BUG1(p)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      fwrite(p,L,1,tempfp);
     }
     break;
   case 2:
     if(!strcmp(p->name,name_))
      {
 	   if(i==0)
        printf("\n职工号--姓名-----性别--年龄---学历---工资-----地址----------------电话号码------\n");
       printf("  %-3d   %-9s %-4s  %-3d   %-6s %-6d   %-20s %-12s\n\n",p->num,p->name,p->sex,p->age,p->sclrec,p->pay,p->address,p->phonenum);      	
	   i++;
      }
     else
     {
BUG1(p)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      fwrite(p,L,1,tempfp);
     }
     break;
   case 3:
     if(!strcmp(p->address,address_))
      {
 	   if(i==0)
        printf("\n职工号--姓名-----性别--年龄---学历---工资-----地址----------------电话号码------\n");
       printf("  %-3d   %-9s %-4s  %-3d   %-6s %-6d   %-20s %-12s\n\n",p->num,p->name,p->sex,p->age,p->sclrec,p->pay,p->address,p->phonenum);      	
	   i++;
      }
     else
     {
BUG1(p)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      fwrite(p,L,1,tempfp);
     }
     break; 
   case 4:
     if(!strcmp(p->phonenum,phonenum_))
      {
	if(i==0)
         printf("\n职工号--姓名-----性别--年龄---学历---工资-----地址----------------电话号码------\n");
        printf("  %-3d   %-9s %-4s  %-3d   %-6s %-6d   %-20s %-12s\n\n",p->num,p->name,p->sex,p->age,p->sclrec,p->pay,p->address,p->phonenum);      	
	i++;
      }
     else
     {
BUG1(p)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      fwrite(p,L,1,tempfp);
     }
     break;
   }
  }
 free(p);
again13: 
 if(i>0)
  {
   printf("共有%d条符合要求的信息!\n",i);
   printf("                              ╔════════╗\n");
   printf("                              ║ 按 1 确认删除  ║\n");
   printf("                              ╠════════╣\n");
   printf("                              ║ 按 2 返回      ║\n");
   printf("                              ╚════════╝\n"); 
   fflush(stdin);
   n=getch();
   switch(n)
   {
    case 49:
     system("cls");
     fclose(fp);
     fp=fopen(filename,"w+");
     p=(employee *)malloc(L);
     rewind_(tempfp);	 
     for(;fread(p,L,1,tempfp);)	 
      fwrite(p,L,1,fp);
     free(p);
     fclose(tempfp);     
     printf("删除成功!\n\n按任意键返回...\n");
     fflush(stdin);
     getch();  
     return;
    case 50:
     fclose(tempfp);
     return;
    default:
     system("cls");  
     goto again13;
   }   
  }
 else
  {
   system("cls");
   printf("\n没有你要删除的职工信息!\n");
   printf("\n按任意键返回..."); 
   fflush(stdin);
   getch();
  }
}
void del()
{ 
 int i; 
again12:  
 system("cls"); 
 printf("\n\n\n\n\n\n");
 printf("                          ╔════════════╗\n");
 printf("                          ║ 按 1 以职工号进行删除  ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 2 以姓名进行删除    ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 3 以地址进行删除    ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 4 以电话号码进行删除║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 5 返回上一级        ║\n");
 printf("                          ╠════════════╣\n"); 
 printf("                          ║ 按 6 退出程序          ║\n");
 printf("                          ╚════════════╝\n");
 fflush(stdin);
 i=getch();
 switch(i)
 {
  case 49:
   del_(1);   
   reopen();
   goto again12;
  case 50:
   del_(2);
   reopen();
   goto again12;
  case 51:
   del_(3);
   reopen();
   goto again12;
  case 52:
   del_(4);
   reopen();
   goto again12;
  case 53:
   return;
  case 54:
   exit(0); 
  default:  
   goto again12;
 } 
}

void amend_1(int n)
{
 int i,j;
 int num_;					//职工号 				
 employee *p;
 system("cls");
 fflush(stdin);
 printf("请输入你要修改的职工的职工号:"); 
 scanf("%d",&num_);    
 p=(employee *)malloc(L);
 rewind_(fp);
 for(i=0;fread(p,L,1,fp);)
 {
BUG2(p)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  if(p->num==num_)
   {
   	i++;
    break;
   }
 }
again15:
 if(i>0)
  {
   system("cls");
   printf("                          ╔════════════╗\n");
   printf("                          ║ 你要修改的职工信息如下 ║\n");
   printf("                          ╚════════════╝\n");
   printf("\n职工号--姓名-----性别--年龄---学历---工资-----地址----------------电话号码------\n");
   printf("  %-3d   %-9s %-4s  %-3d   %-6s %-6d   %-20s %-12s\n\n",p->num,p->name,p->sex,p->age,p->sclrec,p->pay,p->address,p->phonenum);      
   printf("                              ╔════════╗\n");
   printf("                              ║ 按 1 确认修改  ║\n");
   printf("                              ╠════════╣\n");
   printf("                              ║ 按 2 返回      ║\n");
   printf("                              ╚════════╝\n");
   fflush(stdin);    
   j=getch();
   switch(j)
   {
    case 49:
     {
      switch(n)
      {
       case 49:
        printf("请输入新的职工号:");
        fflush(stdin);
	scanf("%d",&p->num);
	break;	   
       case 50:
   	printf("请输入新的姓名:");
	fflush(stdin);
	scanf("%s",p->name);
	break;
       case 51:
   	printf("请输入新的性别:");
	fflush(stdin);
	scanf("%s",p->sex);
  	break;
       case 52:
   	printf("请输入新的年龄:");
	fflush(stdin);
	scanf("%d",&p->age);
   	break;
       case 53:
   	printf("请输入新的学历:");
	fflush(stdin);
	scanf("%s",p->sclrec);
   	break;
       case 54:
   	printf("请输入新的工资:");
	fflush(stdin);
	scanf("%d",&p->pay);
  	break;
       case 55:
        printf("请输入新的地址:");
	fflush(stdin);
	scanf("%s",p->address);
   	break;
       case 56:
   	printf("请输入新的电话号码:");
	fflush(stdin);
	scanf("%s",p->phonenum);
   	break;
       case 57:
        system("cls");
        printf("                       ╔══════════════════╗\n");
        printf("                       ║    请输入新的职工信息替换原来的    ║\n");
        printf("                       ╠══════════════════╣\n");
        printf("                       ║各项数据之间用空格或Tab(制表符)隔开 ║\n");
        printf("                       ╚══════════════════╝\n");
        printf("输入顺序:职工号-->>姓名-->>性别-->>年龄-->>学历-->>工资-->>地址-->>电话号码\n"); 	   
	fflush(stdin);
	scanf("%d%s%s%d%s%d%s%s",&p->num,p->name,p->sex,&p->age,p->sclrec,&p->pay,p->address,p->phonenum);
	break;
      }
      fflush(stdin);
      fseek(fp,-L,SEEK_CUR);
BUG1(p)/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      fwrite(p,L,1,fp);
      free(p);
      system("cls");
      printf("修改成功!\n");
      printf("\n按任意键返回...");
      fflush(stdin);

⌨️ 快捷键说明

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