//读文件成绩单数据
int aaa(int xh[],char xm[][10],int x[][3])
{FILE *fp; //stdlib.h
int k=0,t; //人数n
fp=fopen("成绩单.txt","r");
if(fp==NULL)
{printf("打开成绩单.txt文件失败。\n");
return -1;
}
while(1)
{
t=fscanf(fp,"%d%s%d%d%d",&xh[k],xm[k],&x[k][0],&x[k][1],&x[k][2]);
if(t==EOF)break; //EOF为文件结束标志(-1)
if(t!=5)
printf("成绩单.txt数据文件中有错误!!!\n");
else
k++;
}
fclose(fp);
return k;
}
//查询学号位置
int bbb(int no[],int s,int xh)
{
int k;
for(k=0;kxmax[j])
xmax[j]=x[i][j];
}
printf("第一科最高分=%d\n第二科最高分=%d\n第三科最高分=%d\n",xmax[0],xmax[1],xmax[2]);
}
//统计各科平均分
void ddd()
{FILE *fp; //stdlib.h
int no,x1,x2,x3,n=0,t; //学号、三门成绩、人数
char xm[10]; //姓名
double s1=0,s2=0,s3=0;
fp=fopen("成绩单.txt","r");
if(fp==NULL)
{printf("打开成绩单.txt文件失败。\n");
return;
}
while(1)
{
t=fscanf(fp,"%d %s %d %d %d",&no,xm,&x1,&x2,&x3);
if(t==EOF)break; //EOF为文件结束标志(-1)
if(t!=5)printf("成绩单.txt数据文件中有错误!!!\n");
s1=s1+x1;s2=s2+x2;s3=s3+x3;
n=n+1;
}
printf("第一科平均分=%f\n第二科平均分=%f\n第三科平均分=%f\n",s1/n,s2/n,s3/n);
fclose(fp);
}
//主函数模块
void main()
{int xz,n,xh,f;
int no[100],x[100][3];
char xm[100][10];
while(1)
{
system("cls"); //stdlib.h
printf(" 学生成绩查询统计 \n");
printf(" 0―按学号查询个人成绩单 \n");
printf(" 1―查询各科最高分 \n");
printf(" 2―统计各科平均分 \n");
printf(" 3―结束 \n");
printf("输入选择(0-3):");
scanf("%d",&xz);getchar();
n=aaa(no,xm,x);
switch(xz)
{
case 0:
printf("输入学号:");
scanf("%d",&xh);
f=bbb(no,n,xh);
if(f==-1)
printf("无此人\n");
else
printf("查询结果:学号=%d 姓名=%s 成绩1=%d 成绩2=%d 成绩3=%d\n",no[f],xm[f],x[f][0],x[f][1],x[f][2]);
printf("按任意键返回\n");
getch(); // conio.h
break;
case 1:
ccc(x,n);
printf("按任意键返回\n");
getch();
break;
case 2:
ddd();
printf("按任意键返回\n");
getch();
break;
case 3:
break;
default:
printf("输入错误,请重新选择\n");
getch();
}
if(xz==0)break;
}
printf("结束\n");
}