• 当前位置:首页>>C语言>>C语言编程实例>>改编的C版职工管理系统
  • 改编的C版职工管理系统

  • /*八、简单的职工管理系统
    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 100

    typedef 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
      {
            printf("请你输入密码:\n");
            scanf("%s",s);
            if(!strcmp(s,password))//若密码正确
      {
                printf("恭喜你成功登陆了\n\n\n");
                flag=1;
                break;
      }
            else
      {
                printf("输入有错误请重新输入:\n");
                n--;
      }
      }while(n>0);
         if(!flag)
      {
            printf("你的输入次数已到再见\n");
      }
         do
      {
            printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
            printf("\t\t欢迎进入职工管理系统中文版\n");
            printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
            printf("\t\t请你选择操作类型:\n");
            printf("======================================================\n");
            printf("   \t\t1进入管理系统\n");
            printf("   \t\t2进入查询系统\n");
            printf("   \t\t3进入通讯录\n");
            printf("   \t\t0退出系统\n");
            printf("======================================================\n");
            scanf("%d",&choice);
            switch(choice)
      {
               case 1:manage();
               break;
               case 2:query();
               break;
               case 3:communicate();
               break;
               case 0:
          {
                        printf("谢谢使用再见\n");
                        exit(0);
          }
               default:
          {
                        printf("输入有错误请重新输入:\n");
                        return;
          }
      }
      }while(1);
    }

    [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页