# include & ltstdlib.h & gt
# include < lt string.h > structure record
{
Char Sherwood [10]; //Student number
char name[20]; //Name
char sex[3]; //Gender
int ke 1; //Mathematics
Int ke2// language
Int ke3// English
Int pin;
} stu[50];
int k= 1,n,m; void readfile();
void seek();
void insert();
void del();
void save();
void menu();
void seek()
{int i,j,item,flag& ltbr & gtchar s 1[20]; & ltbr & gtprintf("-\ n "); & ltbr & gtPrintf(" 1。 Query by student number \ n "); & ltbr & gtPrintf("2。 Exit this menu \ n "); & ltbr & gtprintf("-\ n "); & ltbr & gtwhile( 1)& lt; Br & gt{printf ("Please select submenu number:"); & ltbr & gtscan ("%d", & item); & ltbr & gtflag = 0; & ltbr & gt switch (project) & ltbr & gt{ & ltbr & gt case1:< Br & gtPrintf ("Please enter the student ID of the student to be queried: \ n"); & ltbr & gtscanf("%s ",s 1); & ltbr & gtfor(I = 0; I & ltn;; i++)& lt; Br & gtif(strcmp(stu[i]. Scheffer, s1) = = 0) < br & gt{ flag = 1; & ltbr & gtPrintf ("Student ID, name, gender, mathematics, Chinese and English: \ n"); & ltbr & gtprintf(" %s %s %s %d %d %d ",stu[i]。 Sherwood, Stu [me]. Name, & ltbr & gt Stu [me]. sex,stu[i].ke 1,stu[i].ke2,stu[I]. ke3); & ltbr & gt}
If (flag ==0)
Printf ("This student number does not exist! \ n "); Break;
Case 2: Return goods;
Default: printf ("Please choose between 1-2 \n");
}
}
}
Hollow insert ()
{ int i=n,j,flag
Printf ("Please enter the number of students to add: \ n");
scanf("%d ",& ampm);
do
{ flag = 1;
While (sign)
{ flag = 0;
Printf ("Please enter the student ID of %d: \n", I+1);
Scanf("%s ",stu[i]. Sherwood);
for(j = 0; J< me; j++)
If(strcmp(stu[i]. Xue Hao, Stu [j]. Xue Hao) ==0)
{printf ("This student number already exists, please check and re-enter! \ n ");
flag = 1;
Break;
}
}
Printf ("Please enter the name of %d student:", I+1);
Scanf("%s ",stu[i]. Name);
Printf ("\ nPlease enter the gender of %d students:", I+1);
Scanf("%s ",stu[i]. Sex);
Printf ("\ nPlease enter the math scores of %d students:", I+1);
scanf("%d ",& ampstu[I]. ke 1);
Printf ("\ nPlease enter the Chinese scores of %d students:", I+1);
scanf("%d ",& ampstu[I]. ke2);
Printf ("\ nPlease enter the English scores of %d students:", I+1);
scanf("%d ",& ampstu[I]. ke3); If (flag ==0)
{ i = i
i++;
}
} while(I & lt; n+m);
n+= m;
Printf ("Input complete! \ n \ n ");
}void del()
{ int i,j,flag = 0;
char s 1[20];
Printf ("Please enter the student ID of the student to be deleted: \ n");
scanf("%s ",s 1);
for(I = 0; I & ltn;; i++)
If(strcmp(stu[i]. Scheffer, s 1)==0)
{ flag = 1;
for(j = I; j & ltn- 1; j++)
stu[j]= stu[j+ 1];
}
If (flag ==0)
Printf ("This student number does not exist! \ n ");
if(flag== 1)
{printf ("Delete succeeded, please select menu 6\n" to display the result);
n-;
}
}
void readfile()
{
char buf[80],* p = " student.dat
FILE * fp
int I = 0;
if ((fp=fopen("student.dat "," r ")= = NULL)
{printf ("Error opening file %s! Press any key to exit! ”,p);
System ("suspended");
Exit (0);
}
while(fscanf(fp," %s%s%s%d%d ",stu[i]。 Sherwood, Stu [me]. Name,
Stu [me]. Sex & ampstu[i].ke 1, & ampstu[i].ke2, & ampstu[i].ke3)==6)
{ i++;
i = i
}
fclose(FP);
n = I;
Printf ("Input complete! \ n ");
} void and save ()
{ int i,j,k,flag = 0;
FILE * fp
fp=fopen("student.dat "," w ");
for(I = 0; I & ltm;; i++)
{
fprintf(fp," %s%s%d%d%d ",stu[i]。 Sherwood, Stu [me]. Name, Stu [me]. Sex & ampstu[i].ke 1,
& ampstu[i].ke2,& ampstu[I]. ke3);
fclose(FP);
printf(" saved ");
}
}
void paixu()
{
int i,j,k,t;
for(I = 0; I & ltm;; i++)
{
Stu [me]. pin =(stu[I]. ke 1+stu[I]. ke2+stu[I]. ke3)/3;
}
for(I = 0; I < = m-2; i++)
{
k = I;
for(j = I+ 1; j & lt= m- 1; j++)
If(stu[j].pin & lt stu [k]. pin)
k = j;
If (k! =i)
{
t=stu[k]。 pin
Stu [k]. pin=stu[i]。 pin
Stu [me]. pin = t;
}
}
for(I = 0; I & ltm;; i++)
{printf ("name of student %d %s:", i+ 1, stu[i]. Name); & ltbr & gt printf ("x:% s for% d students", i+ 1, stu[i]. Sex); & ltbr & gtprintf(" \ n %d students' math scores:% d ",i+ 1, stu [I]. ke1); & ltbr & gtprintf(" \ n %d students' Chinese score:% d ",i+ 1, stu [I] .ke2); & ltbr & gtprintf(" \ n %d students' English score:% d ",i+ 1, stu [I] .ke3); & ltbr & gtprintf(" \ n %d Average grade of students:% d ",i+ 1, stu[i]. pin); & ltbr & gt}
}
Invalid menu ()
{ int nub
Printf ("\ n \ n \ nStudent achievement management system \ n \ n");
Printf ("* * * * System Function Menu * * * \ n ");
printf("-\ n ");
Printf(" 1。 Enter student information \ n ");
Printf("2。 Query student information \ n ");
Printf("3。 Delete information by student number \ n ");
Printf("4。 Read in student information \ n ");
Printf("5。 Save information (this must be done before exiting the program in order to save changes to a file) \ n ");
Printf("6。 Query the average grade information of students \ n ");
Printf("0。 Exit the system \ n ");
printf("-\ n ");
Printf ("Please select menu number:");
scanf("%d ",& ampnub);
Switch (small block)
{
Case1:insert (); Break;
Case 2: seek (); Break;
Case 3: del (); Break;
Case 4: Readfile (); Break;
Case 5: save (); Break;
Case 6: Paixu (); Break;
Case 0: k = 0; Break;
Default value: printf ("Please choose between 0 and 6 \ n");
}}
void main()
{
When (k)
menu();
}
//Output the average value after sorting. If you don't want to input directly, then don't choose to sort each student.