c
math,s.yingyu,s.zhengzhi,s.ywen,s.aver,s.sum)。
}
fclose(fp)。
printf("\n 按任意键返回主菜单 ")。
getch()。
}
//统计
void tongji()
{
int i=0,j=0,k=0,l=0,m=0,n,p,q,r,t,u。
FILE *fp。
student s[N], *p1[N],*p2[N],*p3[N],*p4[N]。/*用指针数组*/
system("cls")。
if((fp=fopen("student.dat","rb"))==NULL) {printf("cant't open file!\n")。exit(0)。}
while(!feof(fp))
{
fread(&s[i++],sizeof(stu),1,fp)。/*读入数据*/
if(feof(fp)) break。
}
t=i。i=0。
for(u=0。u<t。u++)/*以下每个指针数组用于指向各分数段的学生信息*/
{
if(s[i].aver<60) {p1[j++]=&s[i++]。continue。}/*每个学生信息只能位于一个分数段*/ if(s[i].aver>=60&&s[i].aver<80) {p2[k++]=&s[i++]。continue。}
if(s[i].aver>=80&&s[i].aver<90) {p3[l++]=&s[i++]。continue。}
if(s[i].aver>=90) {p4[m++]=&s[i++]。continue。}
}
printf(" 学生成绩单 ")。
printf("\n 90以上的人有:姓名学号平均分\n")。
for(r=0。r<m。r++)
{
printf("\n %10s %6d %6.2f\n",p4[r]->name,p4[r]->num,p4[r]->aver)。
}
printf("\n 80-89分的人有:姓名学号平均分\n")。
for(q=0。q<l。q++)
{
printf("\n %10s %6d %6.2f\n",p3[q]->name,p3[q]->num,p3[q]->aver)。
}
printf("\n 60-79分的人有:姓名学号平均分\n")。
for(p=0。p<k。p++)
{
printf("\n %10s %6d %6.2f\n",p2[p]->name,p2[p]->num,p2[p]->aver)。
}
printf("\n 不及格的人有:姓名学号平均分\n")。