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

📄 zg.c

📁 职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统
💻 C
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>

#define N 100


struct 
{
  int year;
  int month;
}day;
struct employee
{
 int num;
 char name[8];
 char sex[2];
 struct 
 {
	 int year;
	 int month;
 }day;
 int cult;
 int position;
 int salary;
 char tel[13];
 char addr[13];
}em[N];


void input();
void display();
void del();
void change();
void query();
int changeposition();
int changecult();
int changesalary();


main()
{
while(1)
{
  char ch;
  clrscr();                    
   gotoxy(1,1);             
   textcolor(YELLOW);   
   textbackground(BLUE);   
   window(1,1,99,99);       
    clrscr();
  printf("     *************welcome to use employee manage******************\n");
  printf("     *************************menu********************************\n");
  printf("     * ========================================================= *   \n");
  printf("     *               1>input        2>display                    *   \n");
  printf("     *               3>del          4>change                     *   \n");
  printf("     *               5>query        6>add                        *   \n");
  printf("     *               7>exit                                      *   \n");
  printf("     *                                                           *   \n");
  printf("     * --------------------------------------------------------- *   \n");
    printf("               Please input which you want(1-7):");
    ch=getch();
    switch(ch)
    {
    case '1':input();break;
    case '2':display(); break;
    case '3':del();  break;
    case '4':change(); break;
    case '5':query();   break;
    case '6':add();   break;
    case '7':exit(0);
    default: continue;
    }
}
} 


/*...............................................................................*/

void input()
{
 FILE *fp;
 int i=0;
 char choiceinput='y';
 if((fp=fopen("employee.txt","w"))==NULL)
  return;
 while(choiceinput=='y'||choiceinput=='Y')
 {
  i++;
  printf("The %d:\n",i);
  printf("\n");
  printf("please input num:\n");
  scanf("%d",&em[i].num);
  printf("\n");
  printf("please input name:\n");
  scanf("%s",em[i].name);
  printf("\n");
  printf("please input birthday:\n");
  scanf("%4d%2d",em[i].day.year,em[i].day.month);
  printf("\n");
  printf("please input sex: m:nan f:nv \n");
  scanf("%s",em[i].sex);
  printf("\n");
  printf("please input position:\n");
  printf("1:dongshizhang 2:zongjingli 3:fuzongjingli \n");
  printf("4:jingli 5:fujingli 6:mishu \n");
  printf("7:jishuyuan 8:lingban 9:yuangong \n");
  scanf("%d",&em[i].position);
  printf("\n");
  printf("please input clut:\n");
  printf("1:zhuanjia 2:boshi 3:shuoshi 4:xueshi 5:qita \n");
  scanf("%d",&em[i].cult);
  printf("\n");
  printf("please input salary:\n");
  scanf("%d",&em[i].salary);
  printf("\n");
  printf("please input tel:");
  scanf("%s",&em[i].tel);
  printf("\n");
  printf("please input addr:");
  scanf("%s",&em[i].addr);
  printf("\n\n");
  printf("go on?(y/n)\n");
  scanf("%s",&choiceinput);
  fwrite(&em[i],sizeof(struct employee),1,fp);
 }
 if(toupper(choiceinput)=='N')
       {
  fclose(fp);
  printf("Press any key.\n");
  getch();
  return;
       }
}


/*....................................................................................*/


void display()
{
 FILE *fp;
 int i;
 if((fp=fopen("employee.txt","r"))==NULL)
  return;
 printf("......................................\n");
 printf("num  name  sex  birthday  clut  position   salary   tel    addr  \n");
 for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
 {
  printf("num:%d\n",em[i].num);

  printf("name:%s\n",em[i].name);

  printf("sex:%s\n",em[i].sex);
  printf("m:nan f:nv \n");

  printf("birthday:%d%d\n",em[i].day.year,em[i].day.month);

  printf("position:%d\n",em[i].position);
  printf("1:dongshizhang 2:zongjingli 3:fuzongjingli \n");
  printf("4:jingli 5:fujingli 6:mishu \n");
  printf("7:jishuyuan 8:lingban 9:yuangong \n");
 
  printf("clut:%d\n",em[i].cult);
  printf("1:zhuanjia 2:boshi 3:shuoshi 4:xueshi 5:qita \n");

  printf("salary:%d\n",em[i].salary);
 }
 printf("Press any key.\n");
 getch();
    fclose(fp);
    return;
}


/*.....................................................................................*/


void del()
{
 int i=0;
 char delname[8];
 FILE *fp;
 if((fp=fopen("employee.txt","w"))==NULL)             
 {
  printf("unable to open\n");
  printf("Press any key.\n");                              
  getch();
  return;
 }
 printf("please input the delname:\n");
 scanf("%s",delname);
 for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
 {
  if(strcmp(em[i].name,delname)!=0)
   fwrite(&em[i],sizeof(struct employee),1,fp);
 }
  fclose(fp);
}


/*........................................................................................*/

void change()
{
 FILE *fp;
 int i;
 char chname[8];
 int choicechange;
 printf("the name you want change :\n");
 scanf("%s",&chname);
 if((fp=fopen("employee.txt","w+"))==NULL)
 {
  printf("unable to open \n");
  return;
 }
 for(i=0;i<N;i++)
 {
  if(strcmp(chname,em[i].name)==0)
  {
   printf("information of the em\n");
   printf("num:%d name:%d sex:%s birthday:%d%d clut:%d position:%d salary:%d tel:%s addr:%s\n",em[i].num,em[i].position,em[i].name,em[i].sex,em[i].cult,em[i].salary);
   printf("------------------------------------------------------------\n");
   printf("The part that you want change:\n");
   printf("======================\n");
   printf("1:position\n");
   printf("2:clut\n");
   printf("3:salary\n");
   printf("4:tel\n");
   printf("5:addr\n");
   printf("0:exit\n");
   printf("======================\n");
   printf("please choose\n");
   scanf("%d",&choicechange);
   switch(choicechange)
   {
   case 1:
    em[i].position=changeposition();
    break;
   case 2:
    em[i].cult=changecult();
    break;
   case 3:
    em[i].salary=changesalary();
    break;
   case 0:
    return;
   default :
    printf("input wrong");
   }
   fwrite(&em[i],sizeof(struct employee),1,fp);
  }
 } 
 fclose(fp);
 printf("Press any key.\n");
 getch();
 return;
}

int changeposition()
{
  int newposition;
  printf("the new position:\n");
  printf("1:dongshizhang 2:zongjingli 3:fuzongjingli \n");
  printf("4:jingli 5:fujingli 6:mishu \n");
  printf("7:jishuyuan 8:lingban 9:yuangong \n");
  scanf("%d",&newposition);
  return(newposition);
}

int changecult()
{
 int newcult;
 printf("the new cult:\n");
 printf("1:zhuanjia 2:boshi 3:shuoshi 4:xueshi 5:qita \n");
 scanf("%d",&newcult);
 return(newcult);
}

int changesalary()
{
 int newsalary;
 printf("the new salary:\n");
 scanf("%d",&newsalary);
 return(newsalary);
}


/*........................................................................................*/

 
void query()
{
  FILE *fp;
  int i=0;
  char quesalary[13];
  if((fp=fopen("employee.txt","r"))==NULL)
  {
   printf("unable to open.Press any key.\n");
   getch();
   return;
  }
    printf("please input the salary you want query:\n");
    scanf("%d",quesalary);
    for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
    {
      if(strcmp(em[i].salary,quesalary)==0)  
   {
     printf("\t\t\nthe information you need:\n");
     printf("num%d",em[i].num);
     printf("name:%s",em[i].name);
     printf("sex:%s",em[i].sex);
     printf("\t m:nan f:nv");
     printf("birthday:%d%d",em[i].day.year,em[i].day.month);
     printf("position:%d",em[i].position);
     printf("1:dongshizhang 2:zongjingli 3:fuzongjingli \n");
     printf("4:jingli 5:fujingli 6:mishu \n");
     printf("7:jishuyuan 8:lingban 9:yuangong \n");
     printf("clut:%d",em[i].cult);
     printf("1:zhuanjia 2:boshi 3:shuoshi 4:xueshi 5:qita \n");
     printf("tel:%s",em[i].tel);
     printf("addr:%s",em[i].addr);
     printf("\n");
     printf("Press any key.\n");
     getch();
          fclose(fp);
     return;
   }
 }
     printf("not found.Press any key.\n");
     getch();
     fclose(fp);
     return;
}


/*...................................................................................*/


add()
{
  struct employee emp;
  FILE *fp;
  if((fp=fopen("employee.txt","ab+"))==NULL)
 {
  printf("unable to open\n");
  getch();
  return;
 }
  printf("the new information:\n");
  printf("please input num:\n");
  scanf("%d",&emp.num);
  printf("please input name:\n");
  scanf("%s",&emp.name);
  printf("please input sex:m:nan f:nv \n");
  scanf("%s",&emp.sex);
  printf("please input birthday");
  scanf("%d%d",&emp.day.year,&emp.day.month);
  printf("please ionput cult:\n");
  printf("1:zhuanjia 2:boshi 3:shuoshi 4:xueshi 5:qita \n");
  scanf("%d",&emp.cult);
  printf("please input position:\n");
  printf("1:dongshizhang 2:zongjingli 3:fuzongjingli \n");
  printf("4:jingli 5:fujingli 6:mishu \n");
  printf("7:jishuyuan 8:lingban 9:yuangong \n");
  scanf("%d",&emp.position);
  printf("please input salary:\n");
  scanf("%d",&emp.salary);
  printf("please input tel");
  scanf("%s",&emp.tel);
  printf("please input addr");
  scanf("%s",&emp.addr);
  fwrite(&emp,sizeof(struct employee),1,fp);
  rewind(fp);
  printf("Press any key.\n");
  getch();
  fclose(fp);
  return;
}

⌨️ 快捷键说明

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