C++

C language staff information management system source code


This article shares the specific code of C language staff information management system for your reference, the specific content is as follows

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
struct worker
{
 char ID[20];// Work number
 char name[20];// The name
 char sex[5];// gender
 char born[20];// birthday
 char edu[20];// Record of formal schooling
 char position[20];// position
 char wage[10];// wage
 char address[100];// address
 char tel[15];// The phone
}work[1000];
int n ;

// File read-Write module
void read()// Read the data
{
 FILE *fp;
 int i = 0;
 if( (fp = fopen("d:\\date.txt","r")) == NULL )
 {
  printf(" please D New in the root directory 1 A text file named date\n\n\n");
  system("pause");
  system("cls");
  return ;
 }
 fscanf(fp,"%d\n",&n);
 while(i < n)
 {
  fscanf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].born,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
  i ++;
 }
 fclose(fp);
}
void write()// Write data
{
 FILE *fp;
 int i = 0;
 if( (fp = fopen("d:\\date.txt","w")) == NULL )
 {
  printf(" Unable to open file! \n");
  return ;
 }
 fprintf(fp,"%d\n",n);
 while(i < n)
 {
  fprintf(fp,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",work[i].ID,work[i].name,work[i].sex,work[i].born,work[i].edu,work[i].position,work[i].wage,work[i].address,work[i].tel);
  i ++;
 }
 fclose(fp);
}


// Input module
void input()//  Input from the keyboard
{
 int i;
 int flag;// Marks whether the job number already exists
 char c;// instruction Y?N
 read();// Read the original data in the file before entering the data
 do
 {
  flag = 0;
  printf("\t\t Please enter the employee's job number :        \n\t\t");
  scanf("%s",work[n].ID);
  for(i = 0 ; i < n ; i ++)
  {
   if(strcmp(work[i].ID,work[n].ID) == 0)
   {
    flag = 1;
    break;
   }
  }
  if(flag)
  {
   printf(" The number already exists! \n\n");
   printf("\t\t Whether to continue typing ?(Y/N): ");
   scanf("%*c%c",&c);
   if(c == 'N' || c == 'n') break;
   continue;
  }
  printf("\t\t Please enter the name of the employee :        \n\t\t");
  scanf("%s",work[n].name);
  printf("\t\t Please enter the gender of the employee :        \n\t\t");
  scanf("%s",work[n].sex);
  printf("\t\t Please enter the date of birth of the employee :       \n\t\t");
  scanf("%s",work[n].born);
  printf("\t\t Please enter the educational background of the employee :        \n\t\t");
  scanf("%s",work[n].edu);
  printf("\t\t Please enter the position of the employee :        \n\t\t");
  scanf("%s",work[n].position);
  printf("\t\t Please enter the salary of the staff :        \n\t\t");
  scanf("%s",work[n].wage);
  printf("\t\t Please enter the address of the employee :        \n\t\t");
  scanf("%s",work[n].address);
  printf("\t\t Please enter the employee's telephone number :        \n\t\t");
  scanf("%s",work[n].tel);
  printf("\t\t Whether to continue typing ?(Y/N): ");
  scanf("%*c%c",&c);
  n ++;
 }while( c != 'N' && c != 'n');
 write();
 printf("\n\n Data saved! \n\n");
}


// Display module
void output_inf(int id)
{
 printf("\t\t  Work number : %s\n",work[id].ID);
 printf("\t\t  The name : %s\n",work[id].name);
 printf("\t\t  gender : %s\n",work[id].sex);
 printf("\t\t Date of birth : %s\n",work[id].born);
 printf("\t\t  Record of formal schooling : %s\n",work[id].edu);
 printf("\t\t  position : %s\n",work[id].position);
 printf("\t\t  wage : %s\n",work[id].wage);
 printf("\t\t  address : %s\n",work[id].address);
 printf("\t\t  The phone : %s\n",work[id].tel);
 printf("\n\n\n");
}
void show()// Displays all employee information
{
 int i;
 read();
 if(n == 0) printf(" No record !\n\n");
 else
  for(i = 0 ; i < n ; i ++)
  {
   output_inf(i);
  }
}


// The query module
void que()// Query information
{
 char num;
 int flag,i;
 char q_id[20] ;// The query work number
 char q_name[20] ;// The query name
 char q_edu[20] ; // Query degree
 char q_position[20] ;// The query position
 char c;// instruction Y?N
 read();// After opening the program, to query the previous data, to read in first
 while(1)
 {
  system("cls");
  printf("\t\t****************** The query ********************\n");
  printf("\t\t*          *\n");
  printf("\t\t*    1. Press the number to inquire     *\n");
  printf("\t\t*          *\n");
  printf("\t\t*    2. Search by name     *\n");
  printf("\t\t*          *\n");
  printf("\t\t*    3. Enquiry by Education Background     *\n");
  printf("\t\t*          *\n");
  printf("\t\t*    4. Enquiry by Job     *\n");
  printf("\t\t*          *\n");
  printf("\t\t*   Enter any other key to exit this module    *\n");
  printf("\t\t******************************************\n");
  printf("\t\t Please enter the instruction (1-4):");
  scanf("%*c%c",&num);
  if(num < '1' || num > '4')
  {
   printf(" Wrong instruction! \n\n");
   system("pause");
   continue;
  }
  system("cls");
  flag = 0;// Used to mark the existence of employee information
  if(num == '1')// Press the number to inquire
  {
   printf("\t\t Please enter the number of the employee you want to check: ");
   scanf("%s",q_id);
   for(i = 0 ; i < n ;i ++)
   {
    if( strcmp(work[i].ID,q_id) == 0)
    {
     output_inf(i);
     flag = 1;// tag
     break;
    }
   }
  }
  else if(num == '2')// Search by name
  {
   printf("\t\t Please enter the name of the employee you want to check: ");
   scanf("%s",q_name);
   for(i = 0 ; i < n ;i ++)
   {
    if( strcmp(work[i].name,q_name) == 0)
    {
     output_inf(i);
     flag = 1;// tag
    }
   }
  }
  else if(num == '3')// Enquiry by Education Background
  {
   printf("\t\t Please enter the educational background of the employee you want to check: ");

   scanf("%s",q_edu);
   for(i = 0 ; i < n ;i ++)
   {
    if( strcmp(work[i].edu,q_edu) == 0)
    {
     output_inf(i);
     flag = 1;// tag
    }
   }
  }
  else if(num == '4')// Enquiry by Job
  {
   printf("\t\t Please enter the position of the employee you want to check: ");
   scanf("%s",q_position);
   for(i = 0 ; i < n ;i ++)
   {
    if( strcmp(work[i].position,q_position) == 0)
    {
     output_inf(i);
     flag = 1;// tag
    }
   }
  }
  if(!flag)// Determine if there is any information about the employee
  {
   printf("\n\n No information about the employee is available !\n\n");
  }
  printf("\n\n Whether to continue the query (Y/N):");

  scanf("%*c%c",&c);
  if(c == 'N' || c == 'n') break;
 }
}

// Modify information module
void mod()// Modify employee information
{
 char change_ID[20];// The number of the employee to be modified
 int number;// The location of employee information in the data
 char num;// instruction
 char message[100];// Modified information
 char c;// instruction Y?N
 int flag;
 int i;
 read();
 while(1)
 {
  flag = 0;
  system("cls");
  printf(" Please enter the number of the employee to be modified: ");
  scanf("%s",change_ID);
  for(i = 0 ; i < n ; i ++)
  {
   if( strcmp(work[i].ID,change_ID) == 0 )
   {
    number = i;
    flag = 1;
    break;
   }
  }
  if(!flag)
  {
   printf("\n\n No such employee information!! \n\n");
   printf("\n\n Whether to continue to modify (Y/N):");
   scanf("%*c%c",&c);
   if(c == 'N' || c == 'n') break;
   continue;
  }
  printf("\n\n\t\t****************** Modify the ********************\n");
  printf("\t\t*          *\n");
  printf("\t\t*    1. Modify the name      *\n");
  printf("\t\t*          *\n");
  printf("\t\t*    2. Modify the record of formal schooling      *\n");
  printf("\t\t*          *\n");
  printf("\t\t*    3. Modify the job      *\n");
  printf("\t\t*          *\n");
  printf("\t\t*    4. Modify the salary      *\n");
  printf("\t\t*          *\n");
  printf("\t\t*    5. Modify the address      *\n");
  printf("\t\t*          *\n");
  printf("\t\t*    6. Modify the phone      *\n");
  printf("\t\t*          *\n");
  printf("\t\t*   Enter any other key to exit this module    *\n");
  printf("\t\t******************************************\n");
  printf("\t\t Please enter the instruction (1-6):");
  scanf("%*c%c",&num);
  if(num < '1' || num > '6')
  {
   printf(" Wrong instruction! \n\n");
   system("pause");
   continue;
  }
  system("cls");
  printf(" Please enter the modified information: ");
  scanf("%s",message);
  switch(num)
  {
   case '1' : strcpy(work[number].name,message); break;
   case '2' : strcpy(work[number].edu,message); break;
   case '3' : strcpy(work[number].position,message); break;
   case '4' : strcpy(work[number].wage,message); break;
   case '5' : strcpy(work[number].address,message); break;
   case '6' : strcpy(work[number].tel,message); break;
  }
  system("cls");
  printf("\n\n Whether to continue to modify (Y/N):");
  scanf("%*c%c",&c);
  if(c == 'N' || c == 'n') break;
 }
 write();
}


// Delete information module
void del()// Delete employee information
{
 char delete_ID[20];// Delete employee number
 int i,j;
 int flag;// Mark if there is information about the employee
 char c;
 read();
 while(1)
 {
  system("cls");
  flag = 0;
  printf(" Please enter the number of the employee to be deleted: ");
  scanf("%s",delete_ID);
  for(i = 0 ; i < n ; i ++)
  {
   if( strcmp(work[i].ID,delete_ID) == 0)
   {
    n --;
    flag = 1;
    for(j = i ; j < n ; j ++)
    {
     work[j] =work[j + 1];
    }
    break;
   }
  }
  if(!flag) printf("\n\n No such employee information! \n\n");
  else printf("\n\n Delete successful! \n");
  printf("\n\n Whether to continue deletion (Y/N):");
  scanf("%*c%c",&c);
  if(c == 'N' || c == 'n') break;
 }
 write();
}

// Menu module
void menu()// The menu
{
 printf("\t\t************ Staff information management system menu **********\n");
 printf("\t\t*          *\n");
 printf("\t\t*    1. Input of employee information    *\n");
 printf("\t\t*          *\n");
 printf("\t\t*    2. Display employee information    *\n");
 printf("\t\t*          *\n");
 printf("\t\t*    3. Query employee information    *\n");
 printf("\t\t*          *\n");
 printf("\t\t*    4. Modify employee information    *\n");
 printf("\t\t*          *\n");
 printf("\t\t*    5. Delete employee information    *\n");
 printf("\t\t*          *\n");
 printf("\t\t*    0. exit      *\n");
 printf("\t\t*          *\n");
 printf("\t\t******************************************\n");
 printf("\t\t Please enter the instruction (0-5): ");
}


int main()
{
 int num;
 n = 0;
 system("color 0B");
 while(1)
 {
  menu();
  scanf("%d",&num);
  system("cls");
  switch(num)
  {
   case 1: input(); break;
   case 2: show(); break;
   case 3: que(); break;
   case 4: mod(); break;
   case 5: del(); break;
   case 0: printf(" Thanks for using! \n\n"); return 0;
   default :printf("\n---> Invalid instruction !\n\n\n");
  }
  system("pause");
  system("cls");
 }
}

For more information, please pay attention to the topic management System Development.