#include <stdio.h>
struct student {
int ID;
char name [20];
int score[3];
float aver;
}stu;
void input (struct student stu[],int n)
{
int i,j;
for (i=0;i<n;i++)
{
scanf ("%d",&stu[i].ID );
getchar();
scanf ("%s",stu[i].name );
for (j=0;j<3;j++)
scanf ("%d",&stu[i].score[j]);
}
}
void output (struct student stu[],int n)
{
int i,j;
for (i=0;i<n;i++)
{
printf("%3d",stu[i].ID );
printf ("%6s",stu[i].name );
for(j=0;j<3;j++)
printf("%5d ",stu[i].score [j] );
putchar ('\n');
}
}
void aver (struct student stu[],int n)
{
int i,j,m,k,h;
float max;
for (m=0;m<n;m++)
{
max=0.0;
for (k=0;k<3;k++)
{ max+=stu[m].score [k];
stu[m].aver=max/3.0;
}
}
for (i=0;i<n;i++)
{
printf("%3d",stu[i].ID );
printf ("%6s",stu[i].name );
for(j=0;j<3;j++)
printf("%5d ",stu[i].score [j]);
printf ("%5.2f",stu[i].aver );
putchar ('\n');
}
}
void sort (struct student stu[],int n)
{
int a[100]={0};
int i,j,m,k,h;
struct student temp;
int max;
for (m=0;m<n;m++)
{
max=0;
for (k=0;k<3;k++)
max+=stu[m].score [k];
a[m]=max;
}
for (i=0;i<n;i++)
{
for (j=i+1;j<n;j++)
{
if (a[i]<a[j])
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
for (i=0;i<n;i++)
{
printf("%3d",stu[i].ID );
printf ("%6s",stu[i].name );
for(j=0;j<3;j++)
printf("%5d ",stu[i].score [j]);
printf ("%5d",a[i] );
putchar ('\n');
}
}
int main ()
{
struct student stu[100];
int n;
printf("请输入学生个数:\n");
scanf ("%d",&n);
printf ("\n请输入学生信息:(按学号,姓名,数学成绩,语文成绩,英语成绩依次输入)\n");
input (stu,n);
printf ("学号 姓名 数学 语文 英语\n");
output (stu,n);
printf ("学号 姓名 数学 语文 英语 平均分\n");
aver (stu,n);
printf ("学号 姓名 数学 语文 英语 总分\n");
sort (stu,n);
return 0;
}
学生管理系统
最新推荐文章于 2019-11-13 15:02:43 发布