Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19269165
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-05-31 13:56:59

#include
    #include
    #include
    #include


    #define N 100


    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
    }em[N];


    struct communication//职工通讯录
    {
     char name[8];
     char officetel[13];
     char hometel[13];
     char handtel[13];
     char address[13];
    }empc[N];


    struct empsalary//职工工资与姓名的文件
    {
     char name[8];
     int salary;
    }emps[N];


    void manage();
    void query();
    void communicate();
    void input();
    void display();
    void change();
    void del();
    void add();
    void count();
    int changeposition();
    int changecult();
    int changesalary();
    int changestate();
    void querysalary();
    void creat();
    void inputcommunicate();
    void querycommunicate();
    void changecommunicate();
    void changetel1();
    void changetel2();
    void changetel3();

 

 

 

 

    char password[7]=\"123456\";


    void main()
    {
     int choice;
     char s[7];
     int flag=0;
     int n=3;
     do
     {
      printf(\"请你输入密码:\\n\");
      scanf(\"%s\",s);
      if(!strcmp(s,password))//若密码正确
      {
       printf(\"恭喜你成功登陆了");
       flag=1;

       break;
      }
      else
      {
       printf(\"输入有错误请重新输入:\\n\");
       n--;
      }
     }while(n>0);

     if(!flag)
     {
      printf(\"你的输入次数已到再见");
     }
     do
     {
      printf(\"~~~~~~~~~~\\t\\t\\t~~~~~~~~~~~~\\n\");
      printf(\"欢迎进入职工管理系统中文版");
      printf(\"制作人:李华诗班级:计034班学号:2003041150\\n\");
      printf(\"联系地址:广西工学院");
      printf(\"%%%%%%%%%%%%%%%%%%%%%%%%%%%\\n\");
      printf(\"请你选择操作类型:\\n\");
      printf(\"==============\\t\\t==============\\n\");
      printf(\"进入管理系统");
      printf(\"进入查询系统");
      printf(\"进入通讯录");
      printf(\"退出系统");
      printf(\"==============\\t\\t==============\\n\");
      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(\"输入有错误请重新输入:\\n\");
        return;
       }
      }
     }while(1);
    }

void manage()
    {
     int choicemanage;
     char choice=\'y\';
     while(choice==\'y\'||choice==\'Y\')
     {
      printf(\"欢迎进入管理系统");
      printf(\"===================\\n\");
      printf(\"请你选择操作类型:\\n\");
      printf(\"输入职工信息");
      printf(\"显示职工信息");
      printf(\"修改职工信息");
      printf(\"追加一个职工信息");
      printf(\"删除一个职工信息");
      printf(\"统计职工信息");
      printf(\"返回");
      printf(\"=====================\\n\");
      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 6:
       count();//统计职工信息
       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++;
      printf(\"第%d个职工);
      printf(\"");
      printf(\"请你输入工号:\\n\");//输入工号
      scanf(\"%d\",&em[i].num);
      printf(\"");
      printf(\"请你输入职位:\\n\");//输入职位
      printf(\"1为董事长2为总经理3为副总经理");
      printf(\"4为经理5为副经理6为秘书");
      printf(\"7为技术员8为领班9为员工");

      scanf(\"%d\",&em[i].position);
      printf(\"");
      printf(\"请你输入姓名:\\n\");//输入姓名
      scanf(\"%s\",em[i].name);
      printf(\"");
      printf(\"请你输入性别以m为男f为女:\\n\");//输入性别
      scanf(\"%s\",em[i].sex);
      printf(\"");
      printf(\"请你输入文化程度:\\n\");//输入文化程度
      printf(\"1为专家2为博士3为硕士4为学士5为其他");
      scanf(\"%d\",&em[i].cult);
      printf(\"");
      printf(\"请你输入工资:\\n\");//输入工资
      scanf(\"%d\",&em[i].salary);
      printf(\"");
      printf(\"请你输入身体情况:\\n\");//身体情况
      printf(\"1好2为一般3为差");
            scanf(\"%d\",&em[i].state);
      printf(\"");
      printf(\"是否继续输入?(y/n)\\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(\"输出结果:\\n\");
     printf(\"工号  职位  姓名  性别  文化程度  工资  身体情况");
     for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
     {
      printf(\"工号%d\\n\",em[i].num);
      printf(\"职位为%d\\n\",em[i].position);
      printf(\"1为董事长2为总经理3为副总经理");
      printf(\"4为经理5为副经理6为秘书");
      printf(\"7为技术员8为领班9为员工");
      printf(\"姓名为%s\\n\",em[i].name);
      printf(\"性别为%s\\n\",em[i].sex);
      printf(\"其中m为男f为女");
      printf(\"文化程度为%d\\n\",em[i].cult);
      printf(\"1为专家2为博士3为硕士4为学士5为其他");
      printf(\"工资为%d\\n\",em[i].salary);
      printf(\"身体情况为%d\\n\",em[i].state);
      printf(\"1好2为一般3为差");
     }
     printf(\"完毕按任意键返回");
     getch();
        fclose(fp);
        return;
    }


    void change()
    {
     FILE *fp;
     int i;
     char chname[8];
     int choicechange;
     printf(\"请你输入要修改的人的姓名:\\n\");
     scanf(\"%s\",&chname);
     if((fp=fopen(\"employee.txt\",\"w+\"))==NULL)
     {
      printf(\"不能够打开这个文件");
      return;
     }
     for(i=0;i     {
      if(strcmp(chname,em[i].name)==0)
      {
       printf(\"这是你要修改的人的信息");
       printf(\"工号为%d职位为%d姓名为%s性别为%s文化程度为%d工资为%d身体为%d\\n\",em[i].num,em[i].position,em[i].name,em[i].sex,em[i].cult,em[i].salary,em[i].state);
       printf(\"------------------------------------------------------------\\n\");
       printf(\"请你输入要修改的部分:\\n\");
       printf(\"======================\\n\");
       printf(\"1修改职位");
       printf(\"2修改文化程度");
       printf(\"3修改工资");
       printf(\"4修改身体情况");
       printf(\"0退出系统");
       printf(\"======================\\n\");
       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(\"输入有错误\");
       }
       fwrite(&em[i],sizeof(struct employee),1,fp);
      }
     }
     fclose(fp);
     printf(\"操作完成按任意键返回");
     getch();
     return;
    }

 

    int changeposition()
    {
     int newposition;
     printf(\"请你输入新职位:\\n\");
     printf(\"1为董事长2为总经理3为副总经理");
     printf(\"4为经理5为副经理6为秘书");
     printf(\"7为技术员8为领班9为员工");
     scanf(\"%d\",&newposition);
     return(newposition);
    }int changecult()
    {
     int newcult;
     printf(\"请你输入新的文凭:\\n\");
     printf(\"1为专家2为博士3为硕士4为学士5为其他");
     scanf(\"%d\",&newcult);
     return(newcult);
    }


    int changesalary()
    {
     int newsalary;
     printf(\"请你输入新的工资:\\n\");
     scanf(\"%d\",&newsalary);
     return(newsalary);
    }


    int changestate()
    {
     int newstate;
     printf(\"请你输入现在的身体情况:\\n\");
     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(\"请你输入新人的内容:\\n\");
     printf(\"请你输入工号:\\n\");//输入工号
     scanf(\"%d\",&emp.num);
     printf(\"请你输入职位:\\n\");//输入职位
     printf(\"1为董事长2为总经理3为副总经理");
     printf(\"4为经理5为副经理6为秘书");
     printf(\"7为技术员8为领班9为员工");
     scanf(\"%d\",&emp.position);
     printf(\"请你输入姓名:\\n\");//输入姓名
     scanf(\"%s\",emp.name);
     printf(\"请你输入性别以m为男f为女:\\n\");//输入性别
     scanf(\"%s\",emp.sex);
     printf(\"请你输入文化程度:\\n\");//输入文化程度
     printf(\"1为专家2为博士3为硕士4为学士5为其他");
     scanf(\"%d\",&emp.cult);
     printf(\"请你输入工资:\\n\");//输入工资
     scanf(\"%d\",&emp.salary);
     printf(\"请你输入身体情况:\\n\");//身体情况
     printf(\"1好2为一般3为差");
        scanf(\"%d\",&emp.state);
     fwrite(&emp,sizeof(struct employee),1,fp);
     rewind(fp);
     printf(\"插入完毕,按任意键返回");
     getch();
     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(\"请你输入要删除的人的姓名:\\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);
      if((fp=fopen(\"employee.txt\",\"r\"))==NULL)//显示新的职工的信息
       return;
      printf(\"新的职工的信息为:\\n\");
      for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++)
      {
       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[8]);
          printf(\"性别为%s\",em[i].sex[2]);
          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为差");
          fclose(fp);
      }
    }

阅读(309) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~