stu[i].total+=stu[i].score[j];
stu[i].average=stu[i].total/M;
}
}
voidsavescore(void)
{
inti,flag=1;FILE*fp;charm;
puts("\t你想要保存这些数据么?
(Y/N)");
while
(1)
{
fflush(stdin);
scanf("%c",&m);
if(m=='Y')
{
if((fp=fopen("D:
\score.txt","w"))==NULL)
{
printf("\t对不起哦,无法打开这个表单....\n");
exit(0);
}
for(i=0;i<=S;i++)
if(fwrite(&stu[i],sizeof(structstudents),1,fp)!
=1)
{
puts("\t对不起,表单书写错误了!
");
flag=0;
}
if(flag==1)
for(i=0;i<=S;i++)
printf("\t好了,第N.%d个学生的数据已经被保存了哦!
!
!
\n",i+1);
fclose(fp);
break;
}
elseif(m!
='N'&&m!
='Y')
puts("\t对不起,你输入错误,请重新输入一次吧!
");
else
break;
}
}
voidloadscore(void)
{
FILE*fp;charn;MESSArestu[20];inti,j,flag=0;
charread[5][10]={"学号","姓名","语文","数学","英语"};
puts("\t你想要立刻读取这些数据么?
(Y/N)");
while
(1)
{
fflush(stdin);
scanf("%c",&n);
if(n=='Y')
{
if((fp=fopen("D:
\score.txt","r"))==NULL)
{
fprintf(stderr,"\tOpen%serror!
!
!
\n","score.txt");
exit(0);
}
for(i=0;i<=S;i++)
fread(&restu[i],sizeof(structstudents),1,fp);
system("CLS");
puts("\t成绩信息读取中.................");
printf("\n");
printf("\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n");
printf("\t$**$$**$\n\t");
printf("$**$");
for(i=0;i<5;i++)
printf("%-10s",read[i]);
printf("$**$");
printf("\n");
for(i=0;i<=S;i++)
{printf("\t$**$");
printf("%-10s%-10s",restu[i].num,restu[i].name);
for(j=0;j<3;j++)
printf("%-10.2f",restu[i].score[j]);
printf("$**$\n");
}
printf("\t$**$$**$");
printf("\n\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n");
fclose(fp);
break;
}
elseif(n=='N')
break;
else
printf("\t对不起,出现错误了,再来一次吧,相信你会成功的!
\n");
}
puts("\t输入任意键回到主菜单..............\n");
getchar();
getchar();
}
voidchoosec(void)
{
intbiao,i,flag=0;FILE*fp;
if((fp=fopen("D:
\\score.txt","r"))==NULL)
{
printf("\t对不起,你无法输入任何成绩信息!
无法打开这个表单!
\n\n\n");
printf("\t输入任意键回到主菜单!
!
\n");
getchar();
getchar();
menu();
choose();
}
for(i=0;i<=S;i++)
fread(&stu[i],sizeof(structstudents),1,fp);
fclose(fp);
system("CLS");
printf("\t以下是第二个菜单:
\n");
printf("\n");
printf("\t%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$\n");
printf("\t%%$按平均分由高到低.............请按...1%%$\n");
printf("\t%%$按总分由高到低...............请按...2%%$\n");
printf("\t%%$按学号降序...................请按...3%%$\n");
printf("\t%%$按姓名降序...................请按...4%%$\n");
printf("\t%%$回到主菜单...................请按...5%%$\n");
printf("\t%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$\n");
printf("\n\t请选择输入方式:
\n");
while(flag==0)
{
fflush(stdin);
scanf("%d",&biao);
getchar();
switch(biao)
{case1:
flag=1;average();show();break;
case2:
flag=1;total();show();break;
case3:
flag=1;number();show();break;
case4:
flag=1;name();show();break;
case5:
flag=1;menu();choose();break;
default:
printf("\t对不起,你的操作无法进行!
请重新做出正确操作!
\n");
}
}
}
voidshow(void)
{
inti,j,n,flag=0;
charhead[7][10]={"学号","姓名","语文","数学","英语","总分","平均分"};
system("CLS");
puts("\t读取信息中.................");
printf("\n");
printf("\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n\n\t");
for(i=0;i<7;i++)
printf("%-10s",head[i]);
printf("\n\t");
for(i=0;i<=S;i++)
{
printf("%-10s%-10s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%-10.2f",stu[i].score[j]);
printf("%-10.2f",stu[i].total);
printf("%-10.2f",stu[i].average);
printf("\n\t");
}
printf("\n\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n");
printf("\nYouwant:
(1or2)\n");
puts("\t1.回到第二个菜单!
\n");
puts("\t2.回到主菜单!
\n");
while(flag==0)
{
fflush(stdin);
scanf("%d",&n);
getchar();
switch(n)
{case1:
flag=1;choosec();break;
case2:
flag=1;menu();choose();break;
default:
printf("\t出错了,请再次输入!
\n");
}
}
}
voidaverage(void)
{
inti,j,k;MESSAt;
for(i=0;i
{
k=i;
for(j=i+1;j<=S;j++)
if(stu[k].averagek=j;
if(k!
=i)
{
t=stu[k];
stu[k]=stu[i];
stu[i]=t;
}
}
}
voidtotal(void)
{
inti,j,k;MESSAt;
for(i=0;i
{
k=i;
for(j=i+1;j<=S;j++)
if(stu[k].totalk=j;
if(k!
=i)
{
t=stu[k];
stu[k]=stu[i];
stu[i]=t;
}
}
}
voidnumber(void)
{
inti,j,k;MESSAt;
for(i=0;i
{
k=i;
for(j=i+1;j<=S;j++)
if(strcmp(stu[k].num,stu[j].num)<0)
k=j;
if(k!
=i)
{
t=stu[k];
stu[k]=stu[i];
stu[i]=t;
}
}
}
voidname(void)
{
inti,j,k;MESSAt;
for(i=0;i
{
k=i;
for(j=i+1;j<=S;j++)
if(strcmp(stu[k].name,stu[j].name)<0)
k=j;
if(k!
=i)
{
t=stu[k];
stu[k]=stu[i];
stu[i]=t;
}
}
}
voidexcellent(void)
{
inti,j,k,w,flag=0;floatm;FILE*fp;
charhead2[3][10]={"数学","语文","英语"};
if((fp=fopen("D:
\\score.txt","r"))==NULL)
{
printf("\t对不起,你无法输入任何信息!
找不到该表单!
\n\n\n");
printf("\t输入任意键回到主菜单!
!
\n");
getchar();
getchar();
menu();
choose();
}
for(i=0;i<=S;i++)
fread(&stu[i],sizeof(structstudents),1,fp);
fclose(fp);
system("CLS");
for(i=0;i{
printf("\tTheexcellentstudentsin%sisfollowing:
\n",head2[i]);
for(j=0,k=0;j<=S;j++)
if(stu[j].score[i]>=85.00)
{k++;
printf("\t%s\t%s",stu[j].num,stu[j].name);
printf("\t%.2f\n",stu[j].score[i]);
}
m=(k*1.0/(S+1))*100;
printf("\tTheexcellentrateis%.2f%%\n",m);
}
printf("\n\n");
puts("\t你想要继续操作么?
\n");
printf("\t1.离开系统!
\n");
printf("\t2.回到主菜单!
\n");
printf("\t3.回到第二个菜单!
\n");
puts("\t请选择:
\n");
while(flag==0)
{
fflush(stdin);
scanf("%d",&w);
getchar();
switch(w)
{case1:
Exit();flag=1;
case2:
menu();choose();flag=1;break;
case3:
choosec();flag=1;break;
default:
printf("\t对不起,操作无法进行!
请重新选择!
\n");
}
}
}
voidpassing(void)
{
inti,j,k,w,flag=0;floatm;FILE*fp;
charhead2[3][10]={"数学","语文","英语"};
if((fp=fopen("D:
\\score.txt","r"))==NULL)
{
printf("\t对不起,你不能输入任何信息!
无法找到该表单!
\n\n\n");
printf("\t输入任意键回到主菜单!
!
\n");
getchar();
getchar();
menu();
choose();
}
for(i=0;i<=S;i++)
fread(&stu[i],sizeof(structstudents),1,fp);
fclose(fp);
system("CLS");
for(i=0;i{
printf("\tThepassingstudentsin%sisfollowing:
\n",head2[i]);
for(j=0,k=0;j<=S;j++)
if(stu[j].score[i]>=60.0)
{k++;
printf("\t%s\t%s",stu[j].num,stu[j].name);
printf("\t%.2f\n",stu[j].score[i]);
}
m=(k*1.0/(S+1))*100;
printf("\tThepassingrateis%.2f%%\n",m);
}
printf("\n\n");
puts("\t是否继续操作?
\n");
printf("\t1.离开系统!
\n");
printf("\t2.回到主菜单!
\n");
printf("\t3.回到第二个菜单!
\n");
puts("\t请选择:
\n");
while(flag==0)
{
fflush(stdin);
scanf("%d",&w);
getchar();
switch(w)
{case1:
Exit();flag=1;
case2:
menu();choose();flag=1;break;
case3:
choosec();flag=1;break;
default:
printf("\t对不起,你的操作无法进行!
请重新选择!
\n");
}
}
}
voidpersonal(void)
{
inti,j,f,w,flag=0;charb[10],a;FILE*fp;
charhead3[7][10]={"学号","姓名","语文","数学","英语","总分","平均分"};
if((fp=fopen("D:
\\score.txt","r"))==NULL)
{
printf("\t对不起,无法输入任何信息!
无法找到该表单!
\n\n\n");
printf("\t输入任意键回到主菜单!
!
\n");
getchar();
getchar();
menu();
choose();
}
for(i=0;i<=S;i++)
fread(&stu[i],sizeof(structstudents),1,fp);
fclose(fp);
puts("\t请输入你想要搜索的学生成绩信息:
\n");
puts("\t学生成绩信息如下.........\n");
for(i=0;i<=S;i++)
printf("\t%s",stu[i].name);
puts("\t\nYourchooseis