📄 rightzhuhhanshu.cpp
字号:
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 + -