ARRANGE.CPP:
#include <stdio.h>
#include <string.h>
struct Tmark
{
float pol;
float chn;
float eng;
float com;
float oral;
};
struct Tinform
{
char name[20];
char sex;
float age;
char schoolrecord;
float worklen;
char wordsite[100];
Tmark mark;
float Sage;
float Srecord;
float Swlen;
float total;
}t;
void ARRANGE(struct Tinform in[50])//用选择法排序
{
int I=0;
struct Tinform findnum;
FILE *num;
num=fopen("filelist.dat","rb");
while(!feof(num))
{fread(&findnum,sizeof(struct Tinform),1,num);
I++;
}
int i,j,k;
for (i=0;i<I-1;i++)
{
k=i;
for (j=i+1;j<I;j++)
if(in[j].total>in[k].total) k=j;
strcpy(t.name,in[i].name);
t.sex=in[i].sex;
t.age=in[i].age;
t.schoolrecord=in[i].schoolrecord;
t.worklen=in[i].worklen;
strcpy(t.wordsite,in[i].wordsite);
t.mark.pol=in[i].mark.pol;
t.mark.chn=in[i].mark.chn;
t.mark.eng=in[i].mark.eng;
t.mark.com=in[i].mark.com;
t.mark.oral=in[i].mark.oral;
t.Sage=in[i].Sage;
t.Srecord=in[i].Srecord;
t.Swlen=in[i].Swlen;
t.total=in[i].total;
strcpy(in[i].name,in[k].name);
in[i].sex=in[k].sex;
in[i].age=in[k].age;
in[i].schoolrecord=in[k].schoolrecord;
in[i].worklen=in[k].worklen;
strcpy(in[i].wordsite,in[k].wordsite);
in[i].mark.pol=in[k].mark.pol;
in[i].mark.chn=in[k].mark.chn;
in[i].mark.eng=in[k].mark.eng;
in[i].mark.com=in[k].mark.com;
in[i].mark.oral=in[k].mark.oral;
in[i].Sage=in[k].Sage;
in[i].Srecord=in[k].Srecord;
in[i].Swlen=in[k].Swlen;
in[i].total=in[k].total;
strcpy(in[k].name,t.name);
in[k].sex=t.sex;
in[k].age=t.age;
in[k].schoolrecord=t.schoolrecord;
in[k].worklen=t.worklen;
strcpy(in[k].wordsite,t.wordsite);
in[k].mark.pol=t.mark.pol;
in[k].mark.chn=t.mark.chn;
in[k].mark.eng=t.mark.eng;
in[k].mark.com=t.mark.com;
in[k].mark.oral=t.mark.oral;
in[k].Sage=t.Sage;
in[k].Srecord=t.Srecord;
in[k].Swlen=t.Swlen;
in[k].total=t.total;
}
}