麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

改編 的 C版 職工管理系統

2019-11-17 05:00:08
字體:
來源:轉載
供稿:網友

/*八、簡單的職工治理系統
1.問題描述
  對單位的職工進行治理,包括插入、刪除、查找、排序等功能。
2.要求
  職工對象包括姓名、性別、出生年月、工作年月、學歷、職務、住址、電話等信息。
(1)新增一名職工:將新增職工對象按姓名以字典方式職工治理文件中。
(2)刪除一名職工:從職工治理文件中刪除一名職工對象。
(3)查詢:從職工治理文件中查詢符合某些條件的職工。
(4)修改:檢索某個職工對象,對其某些屬性進行修改。
(5)排序:按某種需要對職工對象文件進行排序。
3.實現提示
  職工對象數不必很多,便于一次讀入內存,所有操作不經過內外存交換。
(1)由鍵盤輸入職工對象,以文件方式保存。程序執行時先將文件讀入內存。
(2)對職工對象中的"姓名"按字典順序進行排序。
(3)對排序后的職工對象進行增、刪、查詢、修改、排序等操作。
4.選做內容
  將職工對象按散列法存儲,并設計解決沖突的方法。在此基礎上實現增、刪、查詢、修改、排序等操作。
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#define N 100typedef strUCt employee//職工基本情況
{
 int num;//工號
 int position;//職位1為董事長2為總經理3為副總經理等
 char name[8];//姓名
 char sex[2];//性別f為女m為男
 int age;//年齡
 int cult;//文化程度1為專家2為博士3為碩士4為學士5為其他
 int salary;//工資
 int state;//健康情況分為good,general,bad
 char day[10];//工作年月
}ro;
ro em[N];
typedef struct communication//職工通訊錄
{
 char name[8];
 char Officetel[13];
 char hometel[13];
 char handtel[13];
 char address[13];
 char time[13];
}el;
el empc[N];void manage();
void query();
void communicate();
void input();
void display();
void change();
void del();
void add();
int changeposition();
int changecult();
int changesalary();
int changestate();
void inputcommunicate();
void querycommunicate();
void changecommunicate();
char *changetel1();
char *changetel2();
char *changetel3();int total;
int p;char passWord[10]="talentxch";void main()
{
     int choice;
     char s[10];
     int flag=0;
     int n=3;
     do
  {
                scanf("%s",s);
        if(!strcmp(s,password))//若密碼正確
  {
            printf("恭喜你成功登陸了 ");
            flag=1;
            break;

  }
        else
  {
            printf("輸入有錯誤請重新輸入: ");
            n--;
  }
  }while(n>0);
     if(!flag)
  {
        printf("你的輸入次數已到再見 ");
  }
     do
  {
        printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ");
        printf(" 歡迎進入職工治理系統中文版 ");
        printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ");
        printf(" 請你選擇操作類型: ");
        printf("====================================================== ");
        printf("   1進入治理系統 ");
        printf("   2進入查詢系統 ");
        printf("   3進入通訊錄 ");
        printf("   0退出系統 ");
        printf("====================================================== ");
        scanf("%d",&choice);
        switch(choice)
  {
           case 1:manage();
           break;
           case 2:query();
           break;
           case 3:communicate();
           break;
           case 0:
      {
                    printf("謝謝使用再見 ");
                    exit(0);
      }
           default:
      {
                    printf("輸入有錯誤請重新輸入: ");
                    return;
      }
  }
  }while(1);
}void manage()
{
     int choicemanage;
     char choice='y';
     while(choice=='y'choice=='Y')

  {
         printf(" 歡迎進入治理系統 ");
         printf("====================================================== ");
         printf(" 請你選擇操作類型: ");
         printf(" 1輸入職工信息 ");
         printf(" 2顯示職工信息 ");
         printf(" 3修改職工信息 ");
         printf(" 4追加一個職工信息 ");
         printf(" 5刪除一個職工信息 ");
         printf(" 0返回 ");
         printf("====================================================== ");
         scanf("%d",&choicemanage);
         switch(choicemanage)
   {
             case 1: input();//輸入職工信息
             break;
             case 2:display();//顯示職工信息
             break;
             case 3:change();//修改職工信息
             break;
             case 4:add();//追加一個職工信息
             break;
             case 5:del();//刪除一個職工信息
             break;
             case 0:
             printf("謝謝你的使用再見 ");
             return;
            default:printf("你的輸入有錯請重新輸入 ");
   }
         printf("是否繼續治理?(y/n)");
         scanf("%s",&choice);
  }
     if(toupper(choice)=='N'(choice)=='n')
  {
         printf("輸入完畢,任意鍵返回 ");
         getch();
         return;
  }
}
void input()
{
    FILE *fp;
    int i=0;
    char choiceinput='y';
    if((fp=fopen("employee.txt","w"))==NULL)
    return;
    while(choiceinput=='y'choiceinput=='Y')

 {
      i++;
   total++;
      printf("第%d個職工 ",i);
      printf(" ");
      printf("請你輸入工號: ");//輸入工號
      scanf("%d",&em[i].num);
      printf(" ");
      printf("請你輸入職位: ");//輸入職位
      printf("1董事長     2總經理    3副總經理 ");
      printf("4部門經理   5工程師    6秘書 ");
      printf("7技術員     8領班      9員工 ");
      scanf("%d",&em[i].position);
      printf(" ");
      printf("請你輸入姓名: ");//輸入姓名
      scanf("%s",em[i].name);
      printf(" ");
      printf("請你輸入性別以(m男f女): ");//輸入性別
      scanf("%s",em[i].sex);
      printf(" ");
      printf("請你輸入文化程度: ");//輸入文化程度
      printf("1專家  2博士  3碩士  4學士  5其他 ");
      scanf("%d",&em[i].cult);
      printf(" ");
      printf("請你輸入工資: ");//輸入工資
      scanf("%d",&em[i].salary);
      printf(" ");
      printf("請你輸入身體情況: ");//身體情況
      printf("1好  2一般  3差 ");
      scanf("%d",&em[i].state);
   printf("請你輸入工作年月: ");
   scanf("%s",em[i].day);
      printf(" ");
      printf("是否繼續輸入?(y/n) ");
        scanf("%s",&choiceinput);
      fwrite(&em[i],sizeof(struct employee),1,fp);
 }
    if(toupper(choiceinput)=='N')  //字符大小寫轉換
       {
          fclose(fp);
          printf("輸入完畢,任意鍵返回 ");
          getch();
          return;
       }
}
void display()//顯示職工信息
{
   FILE *fp;
   int i;
   if((fp=fopen("employee.txt","r"))==NULL)
     return;
   printf("輸出結果: ");
   printf("工號  職位  姓名  性別  文化程度  工資  身體情況 ");
   printf(" ");
   for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
   { 

      printf(" ");
      printf("工號: %d ",em[i].num);
      printf("職位: %d ",em[i].position);
      printf("1董事長     2總經理    3副總經理 ");
      printf("4部門經理   5工程師    6秘書 ");
      printf("7技術員     8領班      9員工 ");
      printf("姓名: %s ",em[i].name);
      printf("性別: %s ",em[i].sex);
      printf("其中(m男f女) ");
      printf("文化程度: %d ",em[i].cult);
      printf("1專家  2博士  3碩士  4學士  5其他 ");
      printf("工資: %d ",em[i].salary);
      printf("身體情況: %d ",em[i].state);
      printf("1好  2一般  3差 ");
   printf("工作年月: %s",em[i].day);
      printf(" ");
   }
   printf(" ");
   printf("完畢按任意鍵返回 ");
   getch();                                         //文件里用
   fclose(fp);
    return;
}
void change()
{
 FILE *fp;
 int i;
 char chname[8];
 int choicechange;
 ro a[N];
 printf("請你輸入要修改的人的姓名: ");
 scanf("%s",&chname);
 if((fp=fopen("employee.txt","w+"))==NULL)
 {
  printf("不能夠打開這個文件 ");
  return;
 }
 for(i=0;i<N;i++)
 {
  if(strcmp(chname,em[i].name)==0)
  {
   printf("這是你要修改的人的信息 ");
   printf("工號:%d 職位:%d 姓名:%s 性別:%s 文化程度:%d 工資:%d 身體:%d ",em[i].num,em[i].position,em[i].name,em[i].sex,em[i].cult,em[i].salary,em[i].state);
   printf("-------------------------------------------------------- ");
   printf("請你輸入要修改的部分: ");
   printf("======================================================== ");
   printf("1修改職位 ");
   printf("2修改文化程度 ");
   printf("3修改工資 ");
   printf("4修改身體情況 ");
   printf("0退出系統 ");
   printf("======================================================== ");
   printf("請選擇 ");
   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 4:
    em[i].state=changestate();
    break;
   case 0:
    return;
   default :
    printf("輸入有錯誤");
   }
   a[i]=em[i];
  }
  else
  {
   a[i]=em[i];
  }
 }
 for(i=0;i<total;i++)
 {
  em[i]=a[i];
 }
 i=0;
 fwrite(&em[i],sizeof(struct employee),total,fp);
 fclose(fp);
 printf("操作完成按任意鍵返回 ");
 getch();
 return;
}
int changeposition()
{
 int newposition;
 printf("請你輸入新職位: ");
 printf("1董事長     2總經理    3副總經理 ");
 printf("4部門經理   5工程師    6秘書 ");
 printf("7技術員     8領班      9員工 ");
 scanf("%d",&newposition);
 return(newposition);
}
int changecult()
{
 int newcult;
 printf("請你輸入新的文憑: ");
 printf("1專家  2博士  3碩士  4學士  5其他 ");
 scanf("%d",&newcult);
 return(newcult);
}
int changesalary()
{
 int newsalary;
 printf("請你輸入新的工資: ");
 scanf("%d",&newsalary);
 return(newsalary);
}
int changestate()
{
 int newstate;
 printf("請你輸入現在的身體情況: ");
 printf("1好  2一般  3差 ");
 scanf("%d",&newstate);
 return(newstate);
}
void add()//追加一個職工信息
{
 struct employee emp;
 FILE *fp;
 int i=0;
 if((fp=fopen("employee.txt","ab+"))==NULL)
 {
  printf("不能夠打開這個文件 ");
  getch();
  return;
 }
 printf("請你輸入新人的內容: ");
 printf("請你輸入工號: ");//輸入工號
 scanf("%d",&emp.num);
 printf("請你輸入職位: ");//輸入職位
 printf("1董事長     2總經理    3副總經理 ");
 printf("4部門經理   5工程師    6秘書 ");
 printf("7技術員     8領班      9員工 ");
 scanf("%d",&emp.position);
 printf("請你輸入姓名: ");//輸入姓名
 scanf("%s",emp.name);
 printf("請你輸入性別以(m男f女): ");//輸入性別
 scanf("%s",emp.sex);
 printf("請你輸入文化程度: ");//輸入文化程度
 printf("1專家   2博士  3碩士  4學士  5其他 ");
 scanf("%d",&emp.cult);
 printf("請你輸入工資: ");//輸入工資
 scanf("%d",&emp.salary);
 printf("請你輸入身體情況: ");//身體情況
 printf("1好  2一般  3差 ");
 scanf("%d",&emp.state);
 printf("請你輸入工作年月: ");
 scanf("%s",emp.day);
 fwrite(&emp,sizeof(struct employee),1,fp);
 rewind(fp);
 printf("插入完畢,按任意鍵返回 ");
 getch();
 total=total+1;
 fclose(fp);
 return;
}

void del()//刪除一個職工信息
{
 int i=0;
 char delname[8];
 FILE *fp;
 if((fp=fopen("employee.txt","w"))==NULL)
 {
  printf("文件為空,不能夠打開 ");
  printf("按任意鍵返回 ");
  getch();
  return;
 }
 printf("請你輸入要刪除的人的姓名: ");//刪除的職工的信息
 scanf("%s",delname);
 for(i=0;i<N;i++)
 {
  if(strcmp(em[i].name,delname)==0) 
  {
   total--;
   for(;i<N;i++)
   {
    em[i]=em[i+1];
   }
  }
 }
  i=0;
  fwrite(&em[i],sizeof(struct employee),total,fp);
  fclose(fp);
}void query()
{
 FILE *fp;
 int i=0;
 char quename[8];
 if((fp=fopen("employee.txt","r"))==NULL)
 {
  printf("不能夠打開文件,按任意鍵返回 ");
  getch();
  return;
 }
 printf("請你輸入要查詢的人的姓名 ");
 scanf("%s",quename);
 for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
 {
      if(strcmp(em[i].name,quename)==0)  /*找到,并顯示該職工記錄*/
   {
          printf(" 查詢到的職工號或姓名為的信息如下: ");
          printf("以下是你要查詢的人的信息 ");
          printf("工號: %d ",em[i].num);
          printf("職位: %d ",em[i].position);
          printf("1董事長      2總經理    3副總經理 ");
          printf("4部門經理    5工程師    6秘書 ");
          printf("7技術員      8領班      9員工 ");
          printf("姓名: %s ",em[i].name);
          printf("性別: %s ",em[i].sex);
          printf("其中(m男f女) ");
          printf("文化程度: %d ",em[i].cult);
          printf("1專家   2博士   3碩士   4學士   5其他 ");
          printf("工資: %d ",em[i].salary);
          printf("身體情況: %d ",em[i].state);
          printf("1好   2一般   3差 ");
          printf("工作年月: %s ",em[i].day);
          printf(" ");
             printf("查詢完畢,按任意鍵返回 ");
          getch();

          fclose(fp);
          return;
   }
 }
    printf("沒有這樣的人,按任意鍵返回 ");
    getch();
    fclose(fp);
    return;
}void communicate()
{
    int choicecommunicate;
    printf("歡迎進入通訊錄系統 "); 
    printf("請你選擇操作類型: ");
    printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ");
    printf("1為輸入通訊錄信息 ");
    printf("2為查詢通訊錄信息 ");
    printf("3為修改通訊錄信息 ");
    printf("0為退出通訊錄系統 ");
    printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ");
    scanf("%d",&choicecommunicate);
    switch(choicecommunicate)
    {
       case 1:inputcommunicate();
       break;
       case 2:querycommunicate();
       break;
       case 3:changecommunicate();
       break;
       case 0:
  {
            printf("謝謝使用再見 ");
            printf("按任意鍵返回 ");
            getch();
            return;
  }
       default:
       printf("輸入有錯 ");
 }      
}      
void inputcommunicate()
{
        FILE *fp;
        int choiceincom='y';
        int i=0;
        if((fp=fopen("empcom.txt","w"))==NULL)
  {
                  printf("不能夠打開文件 ");
                  printf("任意鍵返回 ");
                  getch();
                  return;
  }
        printf("請你輸入通訊錄的信息: ");
        while(choiceincom=='y'choiceincom=='Y')
        {
               p++;
               i++;

               printf("第%d個職工 ",i);
               printf("請你輸入姓名: ");
               scanf("%s",empc[i].name);
               printf("請你輸入生日: ");
               scanf("%s",empc[i].time);
               printf("請你輸入辦公室電話號碼: ");
               scanf("%s",empc[i].officetel);
               printf("請你輸入家庭電話號碼: ");
               scanf("%s",empc[i].hometel);
               printf("請你輸入手機號碼: ");
               scanf("%s",empc[i].handtel);
               printf("請你輸入地址: ");
               scanf("%s",empc[i].address);
               printf("是否繼續輸入?(y/n) ");
               choiceincom=getch();
               fwrite(&empc[i],sizeof(struct communication),1,fp);
          }
        if(toupper(choiceincom)=='N')
        {
             fclose(fp);
             printf("輸入完畢,任意鍵返回 ");
             return;
  }         
}
void querycommunicate()
{
       FILE *fp;
       int i=0;
       char qcname[8];
       if((fp=fopen("empcom.txt","r"))==NULL)
       {
          printf("不能夠打開文件,按任意鍵返回 ");
          getch();

          return;
       }
       printf("請你輸入要查詢的人的姓名: ");
          scanf("%s",qcname);
       for(i=0;fread(&empc[i],sizeof(struct communication),1,fp)!=0;i++)
    {
           if(strcmp(empc[i].name,qcname)==0)
           {
               printf("以下為您所要求的信息: ");
               printf("姓名: %s ",empc[i].name);
               printf("生日: %s ",empc[i].time);
               printf("辦公室電話號碼: %s ",empc[i].officetel);
               printf("家庭電話號碼: %s ",empc[i].hometel);
               printf("手機號碼: %s ",empc[i].handtel);
               printf("家庭地址: %s ",empc[i].address);
               printf("查詢完畢,按任意鍵返回 ");
               getch();
               fclose(fp);
               return;
     }
    }
       printf("沒有這樣的人,按任意鍵返回 ");
       getch();
       fclose(fp);
       return;
}
void changecommunicate()
{
      FILE *fp;
      int i=0;
      char chcname[8];
      int choicecom;
   el b[N];
      if((fp=fopen("empcom.txt","w+"))==NULL)
      {
          printf("打不開文件按任意鍵返回 ");
          getch();
          return;
   }
      printf("請你輸入你要修改的人的姓名: ");
        scanf("%s",chcname);
        for(i=0;i<p;i++)
        {
            if(strcmp(empc[i].name,chcname)==0)

            {
                printf("以下為您所要修改的人的信息: ");
                printf("姓名:%s ",empc[i].name);
                printf("生日: %s ",empc[i].time);
                printf("辦公室電話號碼: %s ",empc[i].officetel);
                printf("家庭電話號碼: %s ",empc[i].hometel);
                printf("手機號碼: %s ",empc[i].handtel);
                printf("家庭地址: %s ",empc[i].address);
                printf("請你選擇要修改的東西: ");
                printf("$$$$$$$$$$$$$$$$$$$$$$ ");
                printf("1修改辦公室電話號碼 ");
                printf("2修改家庭電話號碼 ");
                printf("3修改手機電話號碼 ");
                printf("0退出系統 ");
                printf("$$$$$$$$$$$$$$$$$$$$$$ ");
                scanf("%d",&choicecom);
                switch(choicecom)
    {
                    case 1:strcpy(empc[i].officetel,changetel1());
                    break;
                    case 2:strcpy(empc[i].hometel,changetel2());   
                    break;
                    case 3:strcpy(empc[i].handtel,changetel3());   
                    break;
                    case 0:

                    return;
                    default:
                    printf("輸入有錯 ");
    }
    b[i]=empc[i];
   }
   else
   
  }
  for(i=0;i<p;i++)
  
  i=0;
  fwrite(&empc[i],sizeof(struct communication),p,fp);
  fclose(fp);
        printf("操作完成按任意鍵返回 ");
        getch();
  return;
}
char *changetel1()
{
 char newofficetel[13];
 printf("請你輸入新辦公室電話號碼: ");
 scanf("%s",newofficetel);
 return(newofficetel);
}char *changetel2()
{
 char newhometel[13];
 printf("請你輸入新家庭電話號碼: ");
 scanf("%s",newhometel);
 return(newhometel);
}char *changetel3()
{
 char newhandtel[13];
 printf("請你輸入新手機電話號碼: ");
 scanf("%s",newhandtel);
 return(newhandtel);
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久丝袜脚交足黄网站免费 | 亚洲国产精品久久久久久久久久久 | 毛片一区二区三区四区 | 激情欧美在线 | 毛片免费视频 | 久久久久久久一区 | 欧美亚洲国产成人 | 国产精品久久久久久久久久大牛 | 一区二区三区欧美在线 | 国产一区二区免费在线观看视频 | 欧美亚洲国产一区二区三区 | 久久精品亚洲成在人线av网址 | 国产精彩视频在线 | 国产精选电影免费在线观看网站 | 亚洲网站一区 | 国产精品视频一区二区三区四区五区 | 精品99在线视频 | 九一免费版在线观看 | 深夜福利久久久 | 国产精品久久久久久久久久久久午夜 | 国产精品久久99精品毛片三a | 91午夜视频 | chinese中国真实乱对白 | 国产一区视频在线免费观看 | 日韩黄色片免费看 | 妇女毛片 | 国产女王女m视频vk 中文日韩 | 青青草国产在线视频 | 精品久久久久久久久久久久包黑料 | 国产毛片aaa一区二区三区视频 | 欧美一级免费在线观看 | 久久精品欧美一区二区三区不卡 | 精品一区二区电影 | 久久sp | 精品久久久久久亚洲精品 | 草莓福利社区在线 | 宅男视频在线观看免费 | 国产精品免费小视频 | 国产一区二区三区四区波多野结衣 | sesee99| 亚州精品在线视频 |