#include<stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char k;
char time[3];
int jlzs;
short zchangdu;
short jlchangdu;
char empty[20];
}
E;
typedef struct{
char name[10];
char k1;
char lx;
int begin;
char kuandu;
char weishu;
char empty1[14];
}
F;
typedef struct{
char sname[15];
float math;
float english;
float computer;
float zongfen;
}
STU;
int main(){
FILE *p;
E e;
F f[5];
STU s[101]={
0}
;
int i,j,n,zds;
char flag,fen[10],s1name[15];
scanf("%d",&n);
if(n==1) {
if((p=fopen("aaa.dic","rb"))==NULL) exit(1);
}
if(n==2) {
if((p=fopen("bbb.dic","rb"))==NULL) exit(1);
}
if(n==3) {
if((p=fopen("ccc.dic","rb"))==NULL) exit(1);
}
fread(&e,32,1,p);
fseek(p,e.zchangdu,1);
zds=(e.zchangdu-33)/32;
for(i=0;i<zds;i++) {
fread(f,32,1,p);
if(strcmp(f[0].name,"name")==0) {
f[1]=f[0];
}
if(strcmp(f[0].name,"math")==0) {
f[2]=f[0];
}
if(strcmp(f[0].name,"english")==0) {
f[3]=f[0];
}
if(strcmp(f[0].name,"computer")==0) {
f[4]=f[0];
}
}
int m=0;
for(i=0;i<e.jlzs;i++) {
fread(&flag,1,1,p);
if(flag=='*') {
fseek(p,e.jlchangdu-1,1);
continue;
}
fseek(p,f[1].begin-1,1);
fread(s1name,f[1].kuandu,1,p);
s1name[f[1].kuandu]=0;
for(j=f[1].kuandu-1;j>-1;j--) {
if(s1name[j]==' ') s1name[j]==0;
else break;
}
strcpy(s[m].sname,s1name);
fseek(p,f[2].begin-f[1].begin-f[1].kuandu,1);
fread(fen,f[2].kuandu,1,p);
s[m].math=(float)atof(fen);
fseek(p,f[3].begin-f[2].begin-f[2].kuandu,1);
fread(fen,f[3].kuandu,1,p);
s[m].english=(float)atof(fen);
fseek(p,f[4].begin-f[3].begin-f[3].kuandu,1);
fread(fen,f[4].kuandu,1,p);
s[m].computer=(float)atof(fen);
s[m].zongfen=s[m].math+s[m].english+s[m].computer;
m++;
fseek(p,e.jlchangdu-f[4].begin-f[4].kuandu,1);
}
for(j=0;j<m;j++) for(i=0;
i<m;
i++) {
if(s[i].zongfen<s[i+1].zongfen) {
s[100]=s[i];
s[i]=s[i+1];
s[i+1]=s[100];
}
if(s[i].zongfen==s[i+1].zongfen) {
if(s[i].english<s[i+1].english) {
s[100]=s[i];
s[i]=s[i+1];
s[i+1]=s[100];
}
}
}
for(i=0;i<m;i++) {
printf("%-10s,%4.1f,%4.1f,%4.1f,%5.1f",s[i].sname,s[i].math,s[i].english,s[i].computer,s[i].zongfen);
}
fclose(p);
return 0;
}