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

📄 rightzhuhhanshu.cpp

📁 非常简单的一个通讯录程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
           strcpy(stu1[j].name,stu1[j+1].name);
           stu1[j].sex=stu1[j+1].sex;
           stu1[j].age=stu1[j+1].age;
           strcpy(stu1[j].addre,stu1[j+1].addre);
          }
           flag=0;
        }
      }
     if(!flag)
       t=t-1;
         else
          printf("\n没有找到!\n");
      f=fopen("stu_list.txt","wb");
      for(i=0;i<t;i++)
        fwrite(&stu1[i],LEN,1,f);
      fclose(f);
      printf("\n你想继续删除学生信息吗?------------------(y/n)");
      getchar();
      c=getchar();
    }while(c=='y'||c=='Y');
     PRINT4;
     printf("          *******************删除后的(经过排序)学生信息****************\n");
     f=fopen("stu_list.txt","rb");
     PRINT1;
     PRINT2;
     for(i=0;i<t;i++)
      {  fread(&stu1[i],LEN,1,f);
         PRINT1;
         PRINT3;
      }
     PRINT1;
     fclose(f);
}
void add_extra()            /*******增加学生信息*******/
{

     FILE *fp;
     char c;
     int i,j=1,n,k,nadd;
     PRINT4;
     printf("请输入所要添加的学生的个数--------------------");
     scanf("%d",&nadd);
     for(n=0;n<nadd;n++)
       {
          printf("\n输入第%d个学生信息:\n",j++);
          PRINT1;   PRINT2;  PRINT1;
          scanf("%d %s %c %d %s",&stu1[n].num,stu1[n].name,&stu1[n].sex,&stu1[n].age,stu1[n].addre);
          PRINT1;
          PRINT4;PRINT4;
       }
    if((fp=fopen("stu_list.txt","ab"))==NULL)
         {
            printf("文件打开失败!");
            return;
         }
       for(k=0;k<nadd;k++)
       {
        if(fwrite(&stu1[k],LEN,1,fp)!=1)
         { printf("文件写入失败!");
           exit(0);
         }
       }
     fclose(fp);
     PRINT4;   PRINT4;
    if(nadd!=0)
    {
     printf("              ******************************************************\n");
     printf("                                处理后(经过排序)的全体学生信息\n");
     printf("              ******************************************************\n");
     printall_after();
     printf("你想得到原始的学生信息作比较吗?--------------(y/n)");
     if(((c=getchar())=='Y')||((c=getchar())=='y'))
      {
         PRINT4;
         printf("\t    *******************原始的学生信息是******************\n");
         PRINT4;
         print_ori();
      }
    }
}
 void find()                    /****查找学生信息***/
 {
    int t,i,k,m,flag=1,flag2=1,flag3=1;
    FILE *fp1;
    char c,d,name_find[20];
    do
    {
        if((fp1=fopen("stu_list.txt","rb"))==NULL)
             {printf("文件打开失败!"); return;}
         printf("\n\n请输入所查询的学生的学号:------------");
         scanf("%d",&t);
         for(i=0;fread(&stu1[i],LEN,1,fp1)!=0;i++)
         {
           if(t==stu1[i].num)
            {
             PRINT1;
             printf("第%d个同学的信息是:\n",i+1);
             PRINT1;   PRINT2;   PRINT1;
             PRINT3;   PRINT1;   PRINT4;
             break;
           }
           else if(t!=stu1[i].num) flag3=0;
         }
       if(flag3)
       printf("\t\n\n***********没有该学生!\n\n");
      fclose(fp1);
      printf("\n你想继续查找吗?------------------(y/n)");
      getchar();
      c=getchar();
     }while(c=='y'||c=='Y');
 }
void count()      /****************统计性别***********/
{
  FILE  *fp1;
  int n,sum=0;
  char c;
  void count_sum();
  void count_man();
  void count_femal();
  void count_age();
  do
    {
  printf("\n***********统计项目菜单:\n");
  printf("\n\t\t\t --------------------------------\n");
  printf("\t\t\t |*  输入 1:     统计全体学生  *|\n");
  printf("\n\t\t\t |*  输入 2:     统计男生资料  *|\n");
  printf("\n\t\t\t |*  输入 3:     统计女生资料  *|\n");
  printf("\n\t\t\t |*  输入 4:     统计年龄      *|\n");
  printf("\t\t\t ---------------------------------\n");
  printf("\n***********输入---- ");
  scanf("%d",&n);
  switch(n)
       {
         case 1: count_sum();      break;
         case 2: count_man();      break;
         case 3: count_femal();    break;
         case 4: count_age();      break;
       }
       printf("\n你想返回统计菜单继续查询吗?---------(y/n)");
       getchar();
       c=getchar();
    }while(c=='y'||c=='Y');
}
void count_sum()
 {
   FILE  *fp1;
   int i,n,sexf=0,sexm=0,sum=0;
   char c,d,e;
   if((fp1=fopen("stu_list.txt","rb"))==NULL)
   { printf("文件打开失败!"); return;}
   for(i=0;fread(&stu1[i],LEN,1,fp1)!=0;i++)
   sum+=1;
   printf("\n学生总人数:--------%d 个\n",sum);
   printf("\n你想得到全体学生的总资料吗?----------(y/n)");
   getchar();
   if((d=getchar())=='y'||(d=getchar())=='Y')
     {
       printf("\n          *********处理后(经过排序)全体学生的资料****************\n");
       printall_after();
     }
   printf("\n你想得到原始的学生信息作比较吗?--------------(y/n)");
   if(((e=getchar())=='Y')||((e=getchar())=='y'))
       {
         printf("\n        ********************原始的学生信息是******************\n");
         PRINT4;
         print_ori();
       }
 fclose(fp1);
}

void count_man()             /****************统计男生资料***********/
 {
   FILE  *fp1;
   int i,j,sexf=0,sexm=0;
   char d;
   if((fp1=fopen("stu_list.txt","rb"))==NULL)
   { printf("文件打开失败!"); return;}
   for(i=0;fread(&stu1[i],LEN,1,fp1)!=0;i++)
    {
        if(stu1[i].sex=='m')
        sexm+=1;
     }
      fclose(fp1);
       if((fp1=fopen("stu_list.txt","rb"))==NULL)
   { printf("文件打开失败!"); return;}
   printf("\n男生的数目:--------%d 个\n",sexm);
   printf("\n你想得到男生的资料吗?----------(y/n)");
   getchar();
   if((d=getchar())=='y'||(d=getchar())=='Y')
    {
        printf("\n              *************男生资料****************\n");
        PRINT1; PRINT2;  PRINT1;
        for(i=0;fread(&stu1[i],sizeof(struct student_type),1,fp1)!=0;i++)
        {
          if(stu1[i].sex=='m')
          {
            PRINT1;  PRINT3; PRINT1;
          }
        }
    }
   fclose(fp1);
}
void count_femal()       /****************统计女生资料***********/
 {
   FILE  *fp1;
   int i,n,sexf=0,sexm=0,sum=0;
   char c,d,e;
   if((fp1=fopen("stu_list.txt","rb"))==NULL)
     { printf("文件打开失败!"); return;}
   for(i=0;fread(&stu1[i],LEN,1,fp1)!=0;i++)
    {
        if(stu1[i].sex=='f')
        sexf+=1;
    }
    fclose(fp1);
    if((fp1=fopen("stu_list.txt","rb"))==NULL)
     { printf("文件打开失败!"); return;}
   printf("\n女生的数目:--------%d 个\n",sexf);
   printf("\n你想得到女生的资料吗?----------(y/n)");
   getchar();
   if((d=getchar())=='y'||(d=getchar())=='Y')
     {
        printf("\n                *********女生资料****************\n");
        PRINT1;    PRINT2;   PRINT1;
        for(i=0;fread(&stu1[i],sizeof(struct student_type),1,fp1)!=0;i++)
          {
            if(stu1[i].sex=='f')
            {
              PRINT1; PRINT3; PRINT1;
            }
          }
     }
fclose(fp1);
}
void count_age()              /****************按年龄统计资料***********/
 {
   FILE  *fp1;
   int i,nage,s,flag=1;
   char c,d;
   do
    {
    s=0;
    if((fp1=fopen("stu_list.txt","rb"))==NULL)
     { printf("文件打开失败!"); return;}
     printf("\n请输入要查询的年龄------------(17--22)");
     scanf("%d",&nage);
   for(i=0;fread(&stu1[i],LEN,1,fp1)!=0;i++)
    {
         if(stu1[i].age==nage)
         s+=1;
    }
    fclose(fp1);
    printf("\n此年龄的人数是: -------------%d\n",s);
    if((fp1=fopen("stu_list.txt","rb"))==NULL)
     { printf("文件打开失败!"); return;}
    for(i=0;fread(&stu1[i],sizeof(struct student_type),1,fp1)!=0;i++)
     {
        if(stu1[i].age==nage)
         {
            flag=0;
            printf("\n你想得到此年龄的学生资料吗?-------(y/n)\n");
            getchar();
            if((d=getchar())=='y'||(d=getchar())=='Y')
            {
             PRINT1;PRINT2; PRINT1 ;
             printf("\n                *********此年龄的学生资料****************\n");
             PRINT1;     PRINT3;    PRINT1;
            }
         }
     }
   if(flag)  { printf("\n没有此年龄的学生!!\n"); }
   fclose(fp1);
   printf("\n你想继续按年龄查询吗?-----------(y/n)");
   getchar();
   c=getchar();
  }while(c=='y'||c=='Y');
}





⌨️ 快捷键说明

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