. . . .
int i,j,max,courseNo,n,k=0; double q[N]={0},t; int stu[N],num;
char name[N][20],stuName[20];
file.open(\for(i=0;i<3;i++)
file.read((char *) &p[i],sizeof(StuGraInfo));
file.close();
file.open(\for(i=0;i file.read((char *) &d[i],sizeof(StuInfo)); file.close(); cout< \按某课卷面成绩查询\退出\ cout< cin>>n; switch(n) { case 1: for(i=0;i<3;i++) for(j=0;j 资料整理 . . . . { q[j]=q[j]+p[i].score_talbe[j].totalGrade; //计算学生各自三门 成绩总分和 资料整理 stu[j]=p[i].score_talbe[j].stuNo; //同时记录学生学号 strcpy(name[j],d[j].name); } for(i=0;i max=i; for(j=i+1;j max=j; if(max!=i) //分数排序的同时,学号随着分数动 { t=q[max];num=stu[max]; strcpy(stuName,name[max]); q[max]=q[i];stu[max]=stu[i]; strcpy(name[max],name[i]); q[i]=t; stu[i]=num; strcpy(name[i],stuName); } } cout<<\按总分排序结果为:\ cout<<\学号\姓名\分数\ for(i=0;i . . . . cout< cout< break; case 2: 资料整理 cout<<\如按某课排序,请输入要排序课程的课程号\ cin>>courseNo; for(i=0;i k=1; break; } if(k==0) //容错处理 { cout<<\找不到该课程!\ return; } for(j=0;j q[j]=p[i].score_talbe[j].totalGrade; stu[j]=p[i].score_talbe[j].stuNo; . . . . } for(i=0;i { max=i; 资料整理 for(j=i+1;j max=j; if(max!=i) { t=q[max];num=stu[max]; q[max]=q[i];stu[max]=stu[i]; q[i]=t;stu[i]=num; } } cout<<\按该课程排序结果为:\ cout<<\学号\分数\