用C语言编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。
要求建立一个4个学生的信息登记表,每个学生的信息包括:学号、姓名和3门课程的成绩(math、c、english)
程序运行时显示一个简单的菜单。例如:a) 信息输入(input)b) 总分统计(count)c) 总分排序(sort)d) 查询(query)
其中:对四个学生的信息进行输入对每个学生的3门课程统计总分对四个学生的总分按降序排列并显示出来查询输入一个学号后,显示出该学生的有关信息。
用C语言编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。
要求建立一个4个学生的信息登记表,每个学生的信息包括:学号、姓名和3门课程的成绩(math、c、english)
程序运行时显示一个简单的菜单。例如:a) 信息输入(input)b) 总分统计(count)c) 总分排序(sort)d) 查询(query)
其中:对四个学生的信息进行输入对每个学生的3门课程统计总分对四个学生的总分按降序排列并显示出来查询输入一个学号后,显示出该学生的有关信息。
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
struct Student
{
int nmb;
char name[20];
int score[3];
};
//录入数据
void input(struct Student a[])
{
int i;
printf("输入4个学生的学号,姓名,math、C、english三门课的成绩:\n");
for (i = 0;i< 4;i++)
{
scanf("%d %s %d %d %d",&a[i].nmb,a[i].name,&a[i].score[0],&a[i].score[1],&a[i].score[2]);
}
}
//统计总成绩
void Count(struct Student a[])
{
int i,j;
int sum = 0;
printf("总成绩分别为:\n");
for (i = 0;i< 4;i++)
{
sum = 0;
for(j =0;j<3;j++)
sum += a[i].score[j];
printf("%d\t%s\t%d\n",a[i].nmb,a[i].name,sum);
}
}
//按总分从高到低排序
void Sort(struct Student a[])
{
int i,j;
int avg1,avg2;
struct Student tmp;
for (i = 0;i< 9;i++)
{
for (j = 0;j< 9-i;j++)
{
avg1 = a[j].score[0] + a[j].score[1]+a[j].score[2];
avg2 = a[j+1].score[0] + a[j+1].score[1]+a[j+1].score[2];
if(avg1 < avg2)
{
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
}
printf("number name math C English average\n");
for (i = 0;i<10;i++)
{
avg1 = a[i].score[0] + a[i].score[1]+a[i].score[2];
printf("%d\t%s\t%d\t%d\t%d\t%.2f\n",a[i].nmb,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2],avg1);
}
}
//query
void Query(struct Student a[])
{
int id;
int i,j;
printf("请输入学号进行查询:");
scanf("%d",&id);
for (i=0;i<4;i++)
{
if(a[i].nmb == id)
{
printf("%d\t%s\t");
for(j =0;j<3;j++)
printf("%d\t",a[i].score[j]);
printf("\n");
break;
}
}
}
int main()
{
struct Student a[4];
input(a); //(1)
Count(a); //(2)
Sort(a); //(3)
Query(a); //(4)
return 0;
}