C语言实现企业员工管理系统开发

本文实例为大家分享了C语言实现企业员工管理系统的具体代码,供大家参考,具体内容如下

程序介绍

系统介绍

企业员工信息管理系统主要是对企业员工的基本信息进行增、删、改、查的相关操作,以便用户可以快速地对这些信息进行管理。本系统对管理者的控制更加严格,只设置一个管理账号。

操作流程

用户在编译完成后会产生一个系统的可执行文件,用户只要双击可执行文件就可以进入系统,如果是第一次进入系统,首先要对系统进行初始化,如图所示,初始化完成后,再次双击系统执行文件,进入如图的界面。

用户在输入正确密码后,进入系统的功能选择界面如图所示。在这个界面用户可以选择相应的操作。

代码

//头文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//存储员工信息的结构体
typedef struct employee            
{
    int num;                       //员工号
    char duty[10];                 //员工职务
    char name[10];                 //员工姓名
    char sex[3];                   //员工性别
    unsigned char age;             //员工年龄
    char edu[10];                  //教育水平
    int salary;                    //员工工资
    char tel_office[13];           //办公电话
    char tel_home[13];             //家庭电话
    char mobile[13];               //手机
    char qq[11];                   //qq号码
    char address[31];              //家庭住址
    struct employee *next;
}EMP;

//全局变量
char password[9];                  //系统密码
EMP *emp_first,*emp_end;           //定义指向链表的头结点和尾节点的指针
char gsave,gfirst;                 //判断标示

//自定义函数声明
void addemp(void);                  //添加员工信息的函数
void findemp(void);                 //查找员工信息的函数
void listemp(void);                //显示员工信息列表的函数
void modifyemp(void);               //修改员工信息的函数
void summaryemp(void);              //统计员工信息的函数
void delemp(void);                  //删除员工信息的函数
void resetpwd(void);               //重置系统的函数
void readdata(void);               //读取文件数据的函数
void savedata(void);               //保存数据的函数
int modi_age(int s);               //修改员工年龄的函数
int modi_salary(int s);             //修改员工工资的函数
char *modi_field(char *field,char *s,int n);              //修改员工其他信息的函数
EMP *findname(char *name);                                //按员工姓名查找员工信息
EMP *findnum(int num);                                     //按员工工号查找员工信息
EMP *findtelephone(char *name);                           //按员工的通讯号码查找员工信息
EMP *findqq(char *name);                                   //按员工的QQ号查找员工信息
void displayemp(EMP *emp,char *field,char *name);         //显示员工信息
void checkfirst(void);                                    //初始化检测
void bound(char ch,int n);                                //画出分界线
void login();                                             //登录检测
void menu();                                              //主菜单列表

/**
*  员工信息添加
*/
void addemp()
{
    FILE *fp;               //声明一个文件型指针
    EMP *emp1;              //声明一个结构型指针
    int i=0;
    char choice='y';
    
    if((fp=fopen("employee.dat","ab"))==NULL)       //判断信息文件中是否有信息
    {
        printf("打开文件employee.dat出错!\n");
        getch();
        return;                                         
    }     
    
    do{
         i++;
         emp1=(EMP *)malloc(sizeof(EMP));           //申请一段内存
         if(emp1==NULL)                             //判断内存是否分配成功
         {
             printf("内存分配失败,按任意键退出!\n");
             getch();
             return;              
         }
         printf("请输入第%d个员工的信息,\n",i);
         bound('_',30);
         printf("工号:");
         scanf("%d",&emp1->num);
         
         printf("职务:");
         scanf("%s",&emp1->duty);
         
         printf("姓名:");
         scanf("%s",&emp1->name);
         
         printf("性别:");
         scanf("%s",&emp1->sex);
         
         printf("年龄:");
         scanf("%d",&emp1->age);
         
         printf("文化程度:");
         scanf("%s",&emp1->edu);
         
         printf("工资:");
         scanf("%d",&emp1->salary);
         
         printf("办公电话:");
         scanf("%s",&emp1->tel_office);
         
         printf("家庭电话:");
         scanf("%s",&emp1->tel_home);
         
         printf("移动电话:");
         scanf("%s",&emp1->mobile);
         
         printf("QQ:");
         scanf("%s",&emp1->qq);
         
         printf("地址:");
         scanf("%s",&emp1->address);
         
         emp1->next=NULL;
         if(emp_first==NULL)            //判断链表头指针是否为空
         {
             emp_first=emp1;
             emp_end=emp1;                   
         }else {
             emp_end->next=emp1;
             emp_end=emp1;      
         }
         
         fwrite(emp_end,sizeof(EMP),1,fp);  //对数据流添加数据项
         
         gfirst=0;
         printf("\n");
         bound('_',30);
         printf("\n是否继续输入?(y/n)");
         fflush(stdin);                     //清除缓冲区
         choice=getch();
         
         if(toupper(choice)!='Y')           //把小写字母转换成大写字母
         {
             fclose(fp);                    //关闭文件流
             printf("\n输入完毕,按任意键返回\n");
             getch();
             return;                        
         }
         system("cls");      
    }while(1);
}

void bound(char ch,int n)
{
   while(n--)
       putch(ch);
       
   printf("\n");
   return;     
}

/*首次使用,进行用户信息初始化*/
void checkfirst()
{
    FILE *fp,*fp1;                              //声明文件型指针
    char pwd[9],pwd1[9],pwd2[9],pwd3[9],ch;
    int i;
    char strt='8';    
    
    if((fp=fopen("config.bat","rb"))==NULL)     //判断系统密码文件是否为空
    {
        printf("\n新系统,请进行相应的初始化操作!\n");
        bound('_',50);
        getch();
        
        do{
            printf("\n设置密码,请不要超过8位:");
            for(i=0;i<8&&((pwd[i]=getch())!=13);i++)
                putch('*');
            printf("\n再确认一次密码:");
            for(i=0;i<8&&((pwd1[i]=getch())!=13);i++) 
                putch('*');    
                
            pwd[i]='\0';  
            pwd1[i]='\0';
            
            if(strcmp(pwd,pwd1)!=0)             //判断两次新密码是否一致
            {
                printf("\n两次密码输入不一致,请重新输入!\n\n");
            }
            else break;
            
        }while(1);
        
        if((fp1=fopen("config.bat","wb"))==NULL)
        {
            printf("\n系统创建失败,请按任意键退出!");
            getch();
            exit(1);                                        
        }
        
        i=0;
        while(pwd[i])
        {
                 
            pwd2[i]=(pwd[i]^ strt);        
            putw(pwd2[i],fp1);                  //将数组元素送入文件流中
            i++;             
        }
        
        fclose(fp1);                            //关闭文件流
        printf("\n\n系统初始化成功,按任意键退出后,再重新进入!\n");
        getch();
        exit(1);
        
    }else{
        i=0;
        while(!feof(fp)&&i<8)                   //判断是否读完密码文件
            pwd[i++]=(getw(fp)^strt);           //从文件流中读出字符赋给数组
            
            
        pwd[i]='\0';
        
        if(i>=8) i--;
        while(pwd[i]!=-1&&i>=0)
            i--;
        
        pwd[i]='\0';                            //将数组最后一位设定为字符串的结束符
        strcpy(password,pwd);                   //将数组pwd中的数据复制到数组password中
    } 
}

void delemp()
{
    int findok=0;
    EMP *emp1,*emp2;
    char name[10],choice;
    system("cls");              //对屏幕清屏
    printf("\n输入要删除的员工姓名:");
    scanf("%s",name);
    
    emp1=emp_first;
    emp2=emp1;
    while(emp1)
    {
        if(strcmp(emp1->name,name)==0)
        {
            findok=1;
            system("cls");
            
            printf("员工:%s的信息如下:\n",emp1->name);
            bound('_',40);
            printf("工号:%d\n",emp1->num);
            printf("职务:%s\n",emp1->duty);
            printf("姓名:%s\n",emp1->name);
            printf("性别:%s\n",emp1->sex);
            printf("年龄:%d\n",emp1->age);
            printf("文化程度:%s\n",emp1->edu);
            printf("工资:%d\n",emp1->salary);
            printf("办公电话:%s\n",emp1->tel_office);
            printf("家庭电话:%s\n",emp1->tel_home);
            printf("移动电话:%s\n",emp1->mobile);
            printf("QQ号码:%s\n",emp1->qq);
            printf("住址:%\n",emp1->address);
            bound('_',40);
            printf("您真的要删除该员工吗?(y/n)");
            
            fflush(stdin);          //清除缓冲区
            choice=getchar();
            
            if(choice!='y' && choice!='Y')
            {
                return;
            }
            if(emp1==emp_first)
            {
                emp_first=emp1->next;
            }
            else
            {
                emp2->next=emp1->next;
            }
            printf("员工%s已被删除",emp1->name);
            getch();
            free(emp1);
            gsave=1;
            savedata();             //保存数据
            return;                           
        }  else{        
            emp2=emp1;
            emp1=emp1->next;
        }
    }    
    if(!findok)
    {
        bound('_',40);
        printf("\n没有找到姓名是:%s的信息!\n",name);  //没找到信息后的提示
        getch();           
    } 
    return;
}

void displayemp(EMP *emp,char *field,char *name)
{
    if(emp)
    {
        printf("\n%s:%s信息如下:\n",field,name);
        bound('_',30); 
        printf("工号:%d\n",emp->num);
        printf("职务:%s\n",emp->duty);
        printf("姓名:%s\n",emp->name);
        printf("性别:%s\n",emp->sex);
        printf("年龄:%d\n",emp->age);
        printf("文化程度:%s\n",emp->edu);
        printf("工资:%d\n",emp->salary);
        printf("办公电话:%s\n",emp->tel_office);
        printf("家庭电话:%s\n",emp->tel_home);
        printf("移动电话:%s\n",emp->mobile);
        printf("QQ号码:%s\n",emp->qq);
        printf("住址:%s\n",emp->address);
        bound('_',30);      
    }else {
    bound('_',40);
    printf("资料库中没有%s为:%s的员工!请重新确认!",field,name);
    }
    return;
}

/**
* 按照姓名查找员工信息
*/
EMP *findname(char *name)
{
    EMP *emp1;
    emp1=emp_first;
    
    while(emp1)
    {
        if(strcmp(name,emp1->name)==0)      //比较输入的姓名和链表中的记载姓名是否相同
        {
            return emp1;
        }
        emp1=emp1->next;          
    }    
    return NULL;
}

/**
* 按照员工号查询
*/
EMP *findnum(int num)                   //声明一个结构体指针
{
   EMP *emp1;
   
   emp1=emp_first;
   while(emp1)
   {
       if(num==emp1->num)  return emp1;
       emp1=emp1->next;           
   }  
   return NULL;  
}
/**
* 按照通讯号码查询员工信息
*/
EMP *findtelephone(char *name)
{
     EMP *emp1;
     
     emp1=emp_first;
     while(emp1)
     {
         if((strcmp(name,emp1->tel_office)==0)||
         (strcmp(name,emp1->tel_home)==0)||
         (strcmp(name,emp1->mobile)==0))        //使用逻辑或判断通讯号码
         return emp1;
         emp1=emp1->next;
                 
     }  
      return NULL;       
}

/**
* 按照员工QQ号查询员工信息
*/
EMP *findqq(char *name)
{
    EMP *emp1;
    
    emp1=emp_first;
    while(emp1)
    {
        if(strcmp(name,emp1->qq)==0)  return emp1;
        emp1=emp1->next;           
    }  
    return NULL;  
}

/**
* 查询员工信息
*/
void findemp()
{
     int choice,ret=0,num;
     char str[13];
     EMP *emp1;
     
     system("cls");
     
     do{
         printf("\t查询员工信息\n");
         bound('_',30);
         printf("\t1.按姓名查询\n");
         printf("\t2.按工号查询\n");
         printf("\t3.按电话查询\n");
         printf("\t4.按QQ号查询\n");
         printf("\t0.返回主菜单\n");
         bound('_',30);
         printf("\n请选择菜单:");
         
         do{
             fflush(stdin);
             choice=getchar();
             system("cls");
             
             switch(choice)
             {
                 case '1':
                      printf("\n输入要查询的员工姓名:");
                      scanf("%s",str);
                      
                      emp1=findname(str);
                      displayemp(emp1,"姓名",str);
                      getch();
                      break; 
                      
                 case '2':
                      printf("\n请输入要查询的员工的工号"); 
                      scanf("%d",&num); 
                      
                      emp1=findnum(num);
                      itoa(num,str,10);
                      displayemp(emp1,"工号",str);
                      getch();
                      break;
                      
                  case '3':
                       printf("\n输入要查询员工的电话:");
                       scanf("%s",str);
                       
                       emp1=findtelephone(str); 
                       displayemp(emp1,"电话",str);
                       getch();
                       break;
                       
                  case '4':
                       printf("\n输入要查询的员工的QQ号:");
                       scanf("%s",str);

                       emp1=findqq(str);
                       displayemp(emp1,"QQ号码",str);
                       getch();
                       break;
                       
                   case '0':
                        ret=1;
                        break;          
             }                         
         }while(choice<'0'||choice>'4');
         
         system("cls");
         if(ret) break;
     }while(1);         
}

void listemp()
{
    EMP *emp1;
    printf("\n资料库中的员工信息列表\n");
    bound('_',40);
    emp1=emp_first;
    while(emp1) 
    {
        printf("工号:%d\n",emp1->num);
        printf("职务:%s\n",emp1->duty);
        printf("姓名:%s\n",emp1->name);
        printf("性别:%s\n",emp1->sex);
        printf("年龄:%d\n",emp1->age);
        printf("文化程度:%s\n",emp1->edu);
        printf("工资:%d\n",emp1->salary);
        printf("办公电话:%s\n",emp1->tel_office);
        printf("家庭电话:%s\n",emp1->tel_home);
        printf("移动电话:%s\n",emp1->mobile);
        printf("QQ号码:%s\n",emp1->qq);
        printf("住址:%s\n",emp1->address);  
        bound('_',40);
        emp1=emp1->next;      
    }    
    printf("\n显示完毕,按任意键退出!\n");
    getch();
    return;
}

/*检测登录密码*/
void login()
{
    int i,n=3;
    char pwd[9];
    do{
        printf("请输入密码:");
        for(i=0;i<8 && ((pwd[i]=getch())!=13);i++)
            putch('*');
        pwd[i]='\0';

       if(!strcmp(pwd,password))
        {
            printf("\n密码错误,请重新输入!\n");
            getch();
            system("cls");
            n--;
        }
        else
         break;
    } while(n>0);                       //密码输入三次的控制
    if(!n)
    {
        printf("请退出,你已输入三次错误密码!");
        getch();
        exit(1);
    }
}

void menu()
{
    char choice;
    system("cls");
    do{
        printf("\n\t\t\t\t 企业员工管理系统\n\n");
        printf("\t\t\t-------------------------------------\n");
        printf("\t\t\t|\t\t\t\t    |\n");
        printf("\t\t\t|  \t1、输入员工信息\t\t    |\n");
        printf("\t\t\t|\t\t\t\t    |\n");
        printf("\t\t\t|  \t2、查询员工信息\t\t    |\n");
        printf("\t\t\t|\t\t\t\t    |\n");
        printf("\t\t\t|  \t3、显示员工信息\t\t    |\n");
        printf("\t\t\t|\t\t\t\t    |\n");
        printf("\t\t\t|  \t4、修改员工信息\t\t    |\n");
        printf("\t\t\t|\t\t\t\t    |\n");
        printf("\t\t\t|  \t5、删除员工信息\t\t    |\n");
        printf("\t\t\t|\t\t\t\t    |\n");
        printf("\t\t\t|  \t6、统计员工信息\t\t    |\n");
        printf("\t\t\t|\t\t\t\t    |\n");
        printf("\t\t\t|  \t7、重置系统密码\t\t    |\n");
        printf("\t\t\t|\t\t\t\t    |\n");
        printf("\t\t\t|  \t0、退出系统\t\t    |\n");
        printf("\t\t\t|\t\t\t\t    |\n");
        printf("\t\t\t-------------------------------------\n");
        printf("\n\t\t\t请选择您需要的操作:");
        
        do{
              fflush(stdin);
            choice=getchar();
            system("cls");
            switch(choice)
            {
                case '1':
                   addemp();        //调用员工信息添加函数
                   break;
                case '2':
                   if(gfirst)
                   {
                       printf("系统信息中无员工信息,请先添加员工信息!\n");
                       getch();
                       break;          
                   }  
                   findemp();       //调用员工信息查找函数
                   break;
                case '3':
                   if(gfirst)
                   {
                       printf("系统信息中无员工信息,请先添加员工信息!\n");
                       getch();
                       break;       
                   }
                   listemp();       //员工列表函数
                   break;
               case '4':
                   if(gfirst)
                   {
                       printf("系统信息中无员工信息,请先添加员工信息!\n");
                       getch();
                       break;       
                   }
                   modifyemp();     //员工信息修改函数
                   break;
               case '5':
                    if(gfirst)
                   {
                       printf("系统信息中无员工信息,请先添加员工信息!\n");
                       getch();
                       break;       
                   }
                   delemp();        //删除员工信息的函数
                   break;
               case '6':
                    if(gfirst)
                   {
                       printf("系统信息中无员工信息,请先添加员工信息!\n");
                       getch();
                       break;       
                   }
                   summaryemp();     //统计函数
                   break; 
               case '7':
                   resetpwd();      //重置系统的函数
                   break;
               case '0':
                   savedata();      //保存数据的函数
                   exit(0);
                default:
                    printf("请输入0~7之间的数字");
                    getch();
                    menu();
            }                             
        } while(choice<'0'||choice>'7');  
        system("cls");
    }while(1);    
}

int modi_salary(int salary)
{
    int newsalary;
    printf("原来的工资数为:%d",salary);
    printf("新的工资数:");
    scanf("%d",&newsalary);    
    return(newsalary);
}

int modi_age(int age)
{
    int newage;
    printf("原来的年龄为:%d",age);
    printf("新的年龄:");
    scanf("%d",&newage);    
    return(newage);
}

char *modi_field(char *field,char *content,int len)
{
     char *str;
     str=malloc(sizeof(char)*len);
     if(str==NULL)
     {
         printf("内存分配失败,按任意键退出!");
         getch();
         return NULL;             
     }
     printf("原来%s为:%s\n",field,content);
     printf("修改为(内容不要超过%d个字符!):",len);
     scanf("%s",str);     
     return str;
}

void modifyemp()
{
     EMP *emp1;
     char name[10],*newcontent;
     int choice;
     
     printf("\n请输入您要修改的员工的姓名:");
     scanf("%s",&name);
     
     emp1=findname(name);
     displayemp(emp1,"姓名",name);
     
     if(emp1)
     {
          printf("\n 请输入你要修改的内容选项!\n");
         bound('_',40);
         printf("1.修改职务                2.修改年龄\n");
         printf("3.修改文化程度            4.修改工资\n");
         printf("5.修改办公室电话          6.修改家庭电话\n");
         printf("7.修改移动电话            8.修改QQ号码 \n");
         printf("9.修改住址                0.返回\n  ");
         bound('_',40);
         
         do{
             fflush(stdin);         //清除缓冲区
             choice=getchar();
             switch(choice)         //操作选择函数
             {
                 case '1':
                      newcontent=modi_field("职务",emp1->duty,10);  //调用修改函数修改基本信息
                      if(newcontent!=NULL)
                      {
                          strcpy(emp1->duty,newcontent);
                          free(newcontent);                    
                      } 
                      break;
                 case '2':
                      emp1->age=modi_age(emp1->age);
                      break;
                  case '3':
                      newcontent=modi_field("文化程度",emp1->edu,10);
                      if(newcontent!=NULL)
                      {
                          strcpy(emp1->edu,newcontent);         //获取新信息内容
                          free(newcontent);                    
                      } 
                      break;
                  case '4':
                      emp1->salary=modi_salary(emp1->salary);
                      break;
                 case '5':
                      newcontent=modi_field("办公室电话",emp1->tel_office,13);
                      if(newcontent!=NULL)
                      {
                          strcpy(emp1->tel_office,newcontent);
                          free(newcontent);                    
                      } 
                      break;
                 case '6':
                      newcontent=modi_field("家庭电话",emp1->tel_home,13);
                      if(newcontent!=NULL)
                      {
                          strcpy(emp1->tel_home,newcontent);
                          free(newcontent);                    
                      } 
                      break;
                  case '7':
                      newcontent=modi_field("移动电话",emp1->mobile,12);
                      if(newcontent!=NULL)
                      {
                          strcpy(emp1->mobile,newcontent);
                          free(newcontent);                    
                      } 
                      break;
                  case '8':
                      newcontent=modi_field("QQ号码",emp1->qq,10);
                      if(newcontent==NULL)
                      {
                          strcpy(emp1->qq,newcontent);
                          free(newcontent);                    
                      } 
                      break;  
                  case '9':
                      newcontent=modi_field("住址",emp1->address,30);
                      if(newcontent!=NULL)
                      {
                          strcpy(emp1->address,newcontent);
                          free(newcontent);                 //释放内存空间
                      } 
                      break;     
                  case '0':
                      return;             
             }             
         }while(choice<'0' || choice>'9');
         
         gsave=1;
         savedata();                                    //保存修改的数据信息
         printf("\n修改完毕,按任意键退出!\n");
         getch();
     }  
     return;   
}

/*读取数据*/ 
void readdata(void)
{
    FILE *fp;
    EMP *emp1;
    
    if((fp=fopen("employee.dat","rb"))==NULL)
    {
        gfirst=1;
        return;                                        
    }     
    
    while(!feof(fp))
    {
        emp1=(EMP *)malloc(sizeof(EMP));
        if(emp1==NULL)
        {
            printf("内存分配失败!\n");
            getch();
            return;              
        }          
        
        fread(emp1,sizeof(EMP),1,fp);
        if(feof(fp))  break;
        
        if(emp_first==NULL)
        {
           emp_first=emp1;
           emp_end=emp1;                   
        }else{
            emp_end->next=emp1;
            emp_end=emp1;   
        }
        emp_end->next=NULL;
    }
    gfirst=0;
    fclose(fp);
}

void resetpwd()
{
    char pwd[9],pwd1[9],ch;
    int i;
    FILE *fp1;
    
    system("cls");
    
    printf("\n请输入旧密码:\n");
     for(i=0;i<8 && ((pwd[i]=getch())!=13);i++)
            putch('*');
            
        pwd[i]='\0';
        if(strcmp(password,pwd))
        {
            printf("\n密码错误,请按任意键退出!\n");       //比较旧密码,判断用户权限
            getch();
            return;             
        }   
     do{
             printf("\n设置新密码,请不要超过8位:");
            for(i=0;i<8&&((pwd[i]=getch())!=13);i++)
                putch('*');
            printf("\n再确认一次密码:");
            for(i=0;i<8&&((pwd1[i]=getch())!=13);i++) 
                putch('*');                             //屏幕中输出提示字符
                
            pwd[i]='\0';  
            pwd1[i]='\0';
            
            if(strcmp(pwd,pwd1)!=0)
                printf("\n两次密码输入不一致,请重新输入!\n\n");
            else break;
            
    }while(1);
        
    if((fp1=fopen("config.bat","wb"))==NULL)        //打开密码文件
    {
        printf("\n系统创建失败,请按任意键退出!");
        getch();
        exit(1);
    }
        
    i=0;
    while(pwd[i])
    {
        putw(pwd[i],fp1);
        i++;
    }
        
    fclose(fp1);                                    //关闭文件流
    printf("\n密码修改成功,按任意键退出!\n");
    getch();
    return;
}

void savedata()
{
    FILE *fp;
    EMP *emp1;
      
    if(gsave==0) return;
      
    if((fp=fopen("employee.dat","wb"))==NULL)
    {
        printf("打开文件employee.dat出错!\n");
        getch();
        return;
    }
      
    emp1=emp_first;
    while(emp1)
    {
        fwrite(emp1,sizeof(EMP),1,fp);
        emp1=emp1->next;
    }
      
    gsave=0;
     fclose(fp);
}

void summaryemp()
{
       EMP *emp1;
       int sum=0,num=0,man=0,woman=0;
   
       emp1=emp_first;
       while(emp1)
       {
           num++;
           sum+=emp1->salary;
           char strw[2];
           strncpy(strw,emp1->sex,2);
           if((strcmp(strw,"ma")==0)||(strcmp(emp1->sex,"男")==0)) man++;
           else woman++;
           emp1=emp1->next;
       }
   
      printf("\n下面是相关员工的统计信息!\n");
       bound('_',40);
       printf("员工总数是:%d\n",num);
      printf("员工的工资总数是:%d\n",sum);
      printf("男员工数为:%d\n",man);
       printf("女员工数为:%d\n",woman);
       bound('_',40);
       printf("按任意键退出!\n");
       getch();
       return;
}

int main(void)
{
    system("color f0\n");        //白底黑字
      emp_first=emp_end=NULL;
      gsave=gfirst=0;
  
      checkfirst();
      login();
      readdata();
      menu();
      system("PAUSE");
      return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言实现简单员工工资管理系统

    本文实例为大家分享了C语言实现简单员工工资管理系统的具体代码,供大家参考,具体内容如下 (一)公司现状分析 1.公司主要有经理.技术员.销售员.销售经理4类岗位人员,他们都有基本信息:职工号.姓名.性别.部门.岗位.工龄.当月工资等.一个部门最多只能有一个销售经理,一个部门可以有多个销售员,一个部门可以有若干个经理和若干技术员. 2.员工数据包括基本资料数据和工资数据两部分,员工基本资料数据包括职工号.姓名.性别.部门.岗位.工龄:员工工资数据包括工作时间.小时工资.销售额.底薪.当月工资. 3

  • C语言员工信息管理系统源代码

    今天分享: C语言员工信息管理系统源代码,供大家参考,具体内容如下 /******************************************************************************* * 文件名:UI.Cpp * * * * 文件功能: 该文件主要是定义(实现)和用户操作有关的一些函数,之所以把和用户 * * 操作有关的函数单独放到ui.c中,是为了使程序结构更加清晰,源代码更 * * 容易管理,这也是遵循结构化程序设计的要求(模块化.层次化) *

  • C语言实现员工工资管理系统

    本文实例为大家分享了C语言实现员工工资管理系统的具体代码,供大家参考,具体内容如下 看点: 1. 枚举类型的使用(录入与输出) 2. 文件的使用:用文件来存储员工信息,开始运行程序时从文件中读取员工信息到链表退出程序时将员工信息保存到文件中. 2_1. 存储结构体这样的数据块所使用的文件操作函数: 2_2. feof()函数作为循环条件的正确使用方法: 3. 链表的相关操作 3_1. 结构体中char类型的数据写入方式 4. while循环下实现的菜单与子菜单 注:部分功能还没有实现,涉及到单链

  • C语言实现企业员工管理系统开发

    本文实例为大家分享了C语言实现企业员工管理系统的具体代码,供大家参考,具体内容如下 程序介绍 系统介绍 企业员工信息管理系统主要是对企业员工的基本信息进行增.删.改.查的相关操作,以便用户可以快速地对这些信息进行管理.本系统对管理者的控制更加严格,只设置一个管理账号. 操作流程 用户在编译完成后会产生一个系统的可执行文件,用户只要双击可执行文件就可以进入系统,如果是第一次进入系统,首先要对系统进行初始化,如图所示,初始化完成后,再次双击系统执行文件,进入如图的界面. 用户在输入正确密码后,进入系

  • Java实现企业员工管理系统

    基于Java的简单的企业员工管理系统,供大家参考,具体内容如下 首先创建了一个员工类 定义员工应有的属性:工号.姓名.性别.职位.年龄.工资.部门 /** 员工属性 */     private int sno;//工号 private String name;//姓名 private String sex;//性别 private String job;//职位 private int age;//年龄 private int money;//工资 private String section

  • C语言实现学生信息管理系统开发

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 程序介绍 运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分.其运行效果如图所示.在主界面上输入0——8内的数字,实现相应的功能. 主界面输入1时,进入录入学生信息的界面,当没有存储记录时,根据提示对学生的信息进行输入,运行效果如图所示. 在存在学生信息的情况下继续添加学生信息时,会首先显示存在的学生信息,运行效果如图所示. 主界面输入2时,进入查询学生信息模块,根据学生学号,对学生信息进行查询

  • C语言实现职工工资管理系统

    本文实例为大家分享了C语言实现职工工资管理系统的具体代码,供大家参考,具体内容如下 设计要求: 模拟并设计一个企业的职工工资管理系统,职工信息包括工号.姓名.基本工资.津贴,设职工人数不超过500人,以菜单选项的方式完成相应的功能,主要功能需求如下: 1.建立工资表: 2.职工扣税和实发工资: 3.按实发工资从高到低的顺序显示工资明细表: 4.修改职工的工资信息: 5.按工号查询职工工资信息: 6.职工工资统计分析: 7.退出系统. 基本思路: 将职工工资管理系统的职工信息录入功能.数据处理并存

  • C语言实现职工工资管理系统的示例代码

    目录 一.需求分析 二.项目环境 2.1.项目创建过程 2.2.向项目添加头文件与源文件 三.职工工资管理系统模块功能 3.1.系统总体设计框图 3.2.系统模块总体设计 3.3.设计系统菜单功能 3.4.设计系统输入模块 3.5.设计系统查询模块 3.6.设计系统修改模块 3.7.设计系统删除模块 3.8.设计系统统计模块 3.9.设计系统输出模块 3.10.设计系统追加模块 3.11.设计系统退出模块 总结 一.需求分析 1.随着计算机的飞速发展,它的应用已经十分广泛,它在人们的生产.生活.

  • php小型企业库存管理系统的设计与实现代码

    双专业毕业论文做了一个小型企业库存管理系统,使用PHP&mysql组合进行开发.头一次开发稍微大一点的东西,php也是自学的.这里想跟大家一起分享一下 check_login 模块 复制代码 代码如下: <!--用户登陆检验模块--> <?php session_start(); $workid=$_GET['wid'];//获取工作号 if($workid!=$_SESSION['$workid']||$workid==''){ echo "<script la

  • Java实现员工管理系统

    本文实例为大家分享了Java实现员工管理系统的具体代码,供大家参考,具体内容如下 本系统主要练习到的相关内容: 1. 流程控制语句 2. 类.对象 3. 封装.继承.多态 4. 方法的重载.重写 5. 访问修饰符 6. static 需求说明: 员工信息的基本情况 ---------普通员工---------– 属性:员工编号.员工姓名.员工职务.请假天数.基本工资 普通员工工资: 在基本工资的基础上增加10%的工作餐,50%的岗位补助,200元住房补助 基本工资+基本工资*0.1+基本工资*0

  • C语言实现学生成绩管理系统

    设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能. 功能要求 1.每一条记录包括一个学生的学号.姓名.3门课成绩.平均成绩. 2.输入功能:可以一次完成若干条记录的输入. 3.显示功能:完成全部学生记录的显示. 4.查找功能:完成按姓名查找学生记录,并显示. 5.排序功能:按学生平均成绩进行排序. 6.插入功能:按平均成绩高低插入一条学生记录 7.删除功能:如果输入错误,可以删除学生记录: 8.退出. 代码: #i

  • 基于C语言实现学生成绩管理系统

    本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 这里只贴代码,具体介绍省略. #include <stdio.h> #include <io.h> #include <conio.h> #include <stdlib.h> #include <string.h> #define MAX 200 struct student { char no[10]; // 学号 char name[50]; // 姓名 f

随机推荐