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

📄 yuangongguanli.cpp

📁 (2)员工管理系统 问题描述:每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。 基本要求:排序:按不同关键字
💻 CPP
字号:
/*(2)员工管理系统
问题描述:每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
基本要求:排序:按不同关键字,对所有员工的信息进行排序;查询:按特定条件查找员工;更新,按编号对某个员工的某项信息进行修改;插入,加入新员工的信息;删除,按编号删除已离职的员工的信息。
选作内容:实现图形用户界面。  */
 
  #include "stdlib.h" 
  #include "stdio.h"
  #include <string>
  
  
//员工结构体定义
  typedef struct node
   {  
      int  number;       //编号 
      char name[20];     //姓名 
      long wage ;        //工资 
      int  age ;         //年龄 
      struct node *next; 
   }link,*linkedlist;
   
   
//建立一个新的员工信息表
   linkedlist listcreat()
     {  //建立一个带头结点的空链表 
         link *l;
           l=(link*)malloc(sizeof(link));
           l->next=NULL;
         return l;  
     }   
     
       
//信息的录入
  linkedlist listinput(link *l)
    {  
       link *p; int numflag=-1;
           printf("请输入员工的信息\n");
       p=(link*)malloc(sizeof(link));
           printf("请输入员工编号\n");
            scanf("%d",&p->number);
           printf("请输入员工姓名\n");
            scanf("%s",&p->name);
           printf("请输入员工年龄\n");
            scanf("%d",&p->age);
           printf("请输入员工工资\n");
            scanf("%d",&p->wage);   
         while(p->number!=numflag)
         {
           p->next=l->next;
           l->next=p; 
             printf("请输入下一位员工的信息 -1代表退出\n");
               p=(link*)malloc(sizeof(link));
             printf("请输入员工编号\n");
               scanf("%d",&p->number);
              if(p->number==numflag) break; 
              else   
                printf("请输入员工姓名\n");
                   scanf("%s",&p->name);
                printf("请输入员工年龄\n");
                    scanf("%d",&p->age);
                printf("请输入员工工资\n");
                    scanf("%d",&p->wage);   
         }   
       return l; 
    } 
    
    
//信息的查寻
  int listsearch(link *l)
   {  
      int i,n; link *p; char a[20];
         printf("请选择要查询的模式 1:按编号查寻 2:按姓名查询 3:全部输出\n");
         scanf("%d",&i);
      switch (i)
       {
         case 1:
             {
               printf("您选择了按编号查询 请输入要查询的编号\n");
               scanf("%d",&n);
                 p=l->next;                                                                                            
                 while(p!=NULL&&p->number!=n)
                   {
                       p=p->next;  
                   }
                if(p!=NULL)
                  printf("编号:%d 姓名:%s 工资:%ld 年龄:%d\n",p->number,p->name,p->wage,p->age);
                else
                  printf("对不起输入有误查找失败\n");    
             }  break;
        case 2:
            {
               printf("您选择了按姓名查询 请输入要查询的姓名\n");
               scanf("%s",a);
                 p=l->next;
                  while(p!=NULL&&(strcmp(p->name,a)!=0))
                   {
                       p=p->next;  
                   }
                if(p!=NULL)
                  printf("编号:%d 姓名:%s 工资:%ld 年龄:%d\n",p->number,p->name,p->wage,p->age);
                else
                  printf("对不起输入有误查找失败\n");   
            }
        case 3:    
                      p=l->next;
                    while(p!=NULL)
                   { 
                      printf("编号:%d 姓名:%s 工资:%ld 年龄:%d\n",p->number,p->name,p->wage,p->age);
                      p=p->next;
                   }                
       } 
	  return 0;
   } 




//更新即插入、删除和修改
 linkedlist listrenew(link *l)
     {
        link *p,*q; int i,j,n; long m;
          printf("请选择要执行的操作 1.插入 2.删除 3.修改\n");
          scanf("%d",&i);
        if(i==1)
		 {
            p=l->next; q=(link*)malloc(sizeof(link));
			  printf("请输入员工的编号 0代表退出\n");
              scanf("%d",&j); 
            while(j!=0)
			 {   
                 q->number=j; 
                 q->next=p->next;
				 p->next=q;
				   printf("请输入该员工的姓名\n");
				        scanf("%s",&q->name);
                   printf("请输入员工年龄\n");
                        scanf("%d",&n); q->age=n;
                   printf("请输入员工工资\n");
                         scanf("%ld",&m);  q->wage=m; 
                  printf("请输入下一位员工的信息\n");
                    printf("请输入员工的编号 0代表退出\n");
                    scanf("%d",&j); 
			 }     
		 }
     else if(i==2)
             {
                p=l->next; 
                  printf("请输入要删除员工的编号 0代表退出\n");
                  scanf("%d",&j);
                 q=l;
                 while(p!=NULL&&p->number!=j)
                   {
                       p=p->next;
                       q=q->next;  
                   }
                if(p!=NULL)
                   {
                      q->next=p->next; free(p);
                   }
                else
                  printf("对不起输入有误删除失败\n");     
             }
	else if(i==3)
            {
              p=l->next; 
                  printf("请输入要修改员工的编号 0代表退出\n");
                  scanf("%d",&j);
                 while(p!=NULL&&p->number!=j)
                   {
                       p=p->next; 
                   }
                if(p!=NULL)
                   {
                      printf("您想修改什么信息 1.修改编号 2.修改姓名 3.\n");
                      scanf("%d",&i);
                        if(i==1)
                          {
                             printf("请输入新的编号\n");
                             scanf("%d",&j);
                             p->number=j; 
                          }
                        else if(i==2)
                            {
                               printf("请输入新的姓名\n");
                                       scanf("%s",&p->name);
                               printf("请输入员工年龄\n");
                                       scanf("%d",&p->age);
                               printf("请输入员工工资\n");
                                       scanf("%ld",&p->wage); 
                            }    
                   }
                else
                  printf("对不起输入有误修改失败\n");     
            }	
        return l;
      }
      
      
      
//排序
   linkedlist listorder(link *l)
      {    
           int i; link *h,*p,*q;
               p=l->next;
               q=p->next;
            
             while(p->next!=NULL)
                 {   
                       while(q!=NULL)
                          {  
                            if(p->number>q->number)
                                {
                                  h=(link*)malloc(sizeof(link));
                            
                                  h->number=p->number;
                                   strcpy(h->name,p->name);
                                  h->age=p->age; 
                                  h->wage=p->wage; 
                                   
                                  
                                  p->number=q->number;
                                   strcpy(p->name,q->name);
                                  p->age=q->age; 
                                  p->wage=q->wage; 
                                   
                                   
                                   
                                  q->number=h->number;
                                   strcpy(q->name,h->name);
                                  q->age=h->age; 
                                  q->wage=h->wage; 
                                   
                                                
                                }
                             q=q->next;          
                          }
                       
                     p=p->next; 
                     q=p->next;    
                 } 
                   p=l->next;
                    while(p!=NULL)
                   { 
                      printf("编号:%d 姓名:%s 工资:%ld 年龄:%d\n",p->number,p->name,p->wage,p->age);
                      p=p->next;
                   }          
          return l;    
      }

//主程序
    int main()
         {  
           int i;  link *x;
           while(true)
           { 
           
            system("cls") ;
            printf("******************************************************************\n");
            printf("------------------------------------------------------------------\n");
            printf("欢迎来到员工管理系统 作者古瑞东o(∩_∩)o...\n");
            printf("请选择你要执行的功能:\n");
            printf("1.建立一个新的员工信息表并录入信息\n");
            printf("2.查询\n");
            printf("3.排序\n");
            printf("4.更新 包括插入、删除和修改\n");
            printf("5.退出该程序\n");
            printf("------------------------------------------------------------------\n");
            scanf("%d",&i);
           
             switch (i)
              {  case 1:                    
                     x=listcreat();
                     x=listinput(x); 
                     break;      
               case 2:   
                   listsearch(x); 
                     break;
               case 3:
                   x=listorder(x); 
                     break;    
               case 4:
				     x=listrenew(x);
					 break;
               case 5:
                     return 0;
             }
         system("pause");
         }               
         return 0;          
         } 



















 
 

⌨️ 快捷键说明

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