#include
#include
#include
#include
using namespace std;
const int max_n = 34;
struct STUDENT {
double course1;
double course2;
double course3;
double average;
string name;
string id;
} stu[max_n];
bool Cmpare(const STUDENT &a, const STUDENT &b)
{
return a.average > b.average ;
}
int main() {
string st;
int n,i,j;
cout << "请输入学生人数:" << endl;
cin >> n;
cout<<"请输入学生信息:"< for ( i = 1; i <= n; i++) {//成绩输入
cin >>stu[i].id >> stu[i].name >> stu[i].course1 >> stu[i].course2 >> stu[i].course3;
stu[i].average = (stu[i].course1 + stu[i].course2 + stu[i].course3) / 3.0;//计算一个人三门课平均成绩 ;
}
sort(stu + 1, stu + 1 + n,Cmpare);//排序;
double avr1=0, avr2=0, avr3=0;//分别计算三门课的平均成绩;
int flag1=1, flag2=1, flag3=1;//分别标记三门课成绩最高的人的位置;
for (i = 1; i <= n; i++) {
avr1 = avr1 + stu[i].course1 / n;
avr2 = avr2 + stu[i].course2 / n;
avr3 = avr3 + stu[i].course3 / n;
if (stu[i].course1 > stu[flag1].course1 ) flag1 = i;
if (stu[i].course2 > stu[flag2].course2 ) flag2 = i;
if (stu[i].course3 > stu[flag3].course3 ) flag3 = i;
}
//output
cout << "学生的成绩排序如下:" << endl;
cout < for (i = 1; i <= n; i++) {
cout << setw(10) << i << setw(20) << stu[i].name << setw(20) << stu[i].id << setw(20) << stu[i].average << endl;
}
cout << "三门课各门平均成绩为:" << endl;
cout << setw(20) << avr1 << setw(20) << avr2 << setw(20) << avr3 << endl;
cout << "第一门成绩最高的人为:" << endl;
cout << setw(20) << stu[flag1].name << setw(20) << stu[flag1].id << setw(20) << stu[flag1].course1;
cout << setw(20) << stu[flag1].course2 << setw(20) << stu[flag1].course3 << endl;
cout << "第二门成绩最高的人为:" << endl;
cout << setw(20) << stu[flag2].name << setw(20) << stu[flag2].id << setw(20) << stu[flag2].course1;
cout << setw(20) << stu[flag2].course2 << setw(20) << stu[flag2].course3 << endl;
cout << "第三门成绩最高的人为:" << endl;
cout << setw(20) << stu[flag3].name << setw(20) << stu[flag3].id << setw(20) << stu[flag3].course1;
cout << setw(20) << stu[flag3].course2 << setw(20) << stu[flag3].course3 << endl;
//查询;
cout << "请输入学生姓名或学号进行查询(输入quit结束程序):" << endl;
string qu = "quit";
string s;
while (cin >> s) {
int flag = 0;
if (s == qu) break;
for (i = 1; i <= n; i++) {
if (s == stu[i].name || s == stu[i].id) {
flag = i;
break;
}
}
if (flag == 0) cout << "输入有误,请重新输入" << endl;
else {
cout << setw(10) << "排名" << setw(20) << "姓名 " << setw(20) << " 学号 " ;
cout << setw(10) << "course1" << setw(10) << "course2" << setw(10) << "course3" << endl;
cout << setw(10) << flag << setw(20) << stu[flag].name << setw(20) << stu[flag].id ;
cout << setw(10) << stu[flag].course1 << setw(10) << stu[flag].course2 << setw(10) << stu[flag].course3 << endl;
}
cout << "请输入学生姓名或学号进行查询(输入quit结束程序):" << endl;
}
return 0;
}//如果有其他需求,call me,然后麻烦采纳!