| 導購 | 订阅 | 在线投稿
分享
 
 
 

改编 的 C版 职工管理系统

2008-06-01 02:10:43  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
  /*八、简单的职工治理系统

  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("请你输入密码: ");

   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);

  }
 
 
 
/*八、简单的职工治理系统 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("请你输入密码: "); 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); }
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号 wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味著赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有