简单的题 帮忙看下

来源:百度知道 编辑:UC知道 时间:2024/05/09 16:27:01
假设有一个班级学生n人,期末考试老师要对成绩从高到低列出,并对各科的考试成绩求出其最高分、最低分和平均成绩。试设计一个成绩管理程序,按要求显示输出学生的记录和相关的成绩。
(1)学生成绩的数据来源于程序的结构数组,定义若干个(不少于10)学生的记录,学生记录包括:学号、姓名、三至五门科目的考试成绩;
(2)使用一种排序算法对上述某门科目的成绩进行排序;
(3)将排序后的成绩,以每个学生记录的形式显示输出;
(4)求出每门科目的最高分、最低分和平均分的信息;
(5)输出的数据要清晰,排列整齐。

#include <iostream.h>
#include <iomanip.h>
#define SN 10 // 学生人数
#define CN 3 // 课程数目
int course; // 要排序的那门课程
struct student
{ int num;
char name[10];
int score[CN];
};
void bubble(struct student *pstu) //冒泡排序(从大到小)
{ struct student tmp;
for (int i = 0; i < SN; i++) // 要排SN个数,则应排SN遍:
{
for(int j = 0; j < SN - i - 1; j++)
{
if(pstu[j+1].score[course] > pstu[j].score[course]) //比较相邻的两个数:
{ tmp = pstu[j+1];
pstu[j+1]= pstu[j];
pstu[j]= tmp;
} //对调两个数,需要有"第三者"参以
}
}
}
void output(struct student *pstu)
{
cout<<setw(8)<<"学号";
cout<<setw(10)<<"姓名";
cout<<setw(8)<<"语文";
cout<<setw(8)<<"数学";
cout<<setw(8)<<"外语"<<endl;
for(int i=0;i<SN;i++)
{ cout<<se