代码部分:
#include<iostream>
#include<string>
using namespace std;
class Score {
public:
Score()
{
StudentNumber = 2; //默认学生为2
}
Score(int StudentNumber1)
{
StudentNumber = StudentNumber1; //自定学生人数"
}
~Score()
{
cout << "~Score" << endl;
}
void InputStudentNameAndScore()
{
for (int i = 0; i < StudentNumber; i++)
{
cout << "输入学生姓名" << endl;
cin >> Name[i];
cout << "输入科目A成绩" << endl;
cin >> Grade[i][0];
cout << "输入科目B成绩" << endl;
cin >> Grade[i][1];
cout << "输入科目C成绩" << endl;
cin >> Grade[i][2];
} //输入每位学生的姓名和对应科目ABC成绩
}
void ShowStudentNameAndScore()
{
for (int i = 0; i < StudentNumber; i++)
{
cout << "学生姓名是" << Name[i] << endl;
cout << "科目A成绩是" << Grade[i][0] << endl;
cout << "科目B成绩是" << Grade[i][1] << endl;
cout << "科目C成绩是" << Grade[i][2] << endl;
//输出每位学生的姓名和对应科目ABC成绩
}
}
void ShowStudentAvgScore(int Student_Id)
{
int i = Student_Id;
cout << "姓名:" << Name[i];
float Avg = 0;
for (int j = 0; j <= 2; j++)
{
Avg = Avg + Grade[i][j];
}
Avg = Avg / 3.0;
cout << "平均成绩是:" << Avg << endl;
} //查询第(i+1)位学生的三科平均成绩
void showCourseAvgScore(string Course_Name)
{
cout << "课程名称:" << Course_Name;
int n;
if (Course_Name == "A")
n = 0;
if (Course_Name == "B")
n = 1;
if (Course_Name == "C")
n = 2;
float Avg = 0;
for (int i = 0; i < StudentNumber; i++)
{
Avg += Grade[i][n];
}
cout <<"平均成绩是:"<< Avg / StudentNumber <<endl;
} //查询某一科目的学生平均分
void OrderScoreByCouse(string Course_Name)
{
cout << "课程名称:" << Course_Name<<endl;
int n;
if (Course_Name == "A")
n = 0;
if (Course_Name == "B")
n = 1;
if (Course_Name == "C")
n = 2;
float temp1;
string temp2;
for (int i = 0; i < 2; i++)
{
for (int j = 1; j < StudentNumber; j++)
{
if (Grade[j][n] > Grade[j - 1][n])
{
temp1 = Grade[j][n];
Grade[j][n] = Grade[j - 1][n];
Grade[j - 1][n] = temp1;
temp2 = Name[j];
Name[j] = Name[j - 1];
Name[j - 1] = temp2;
}
}
} //冒泡法选择任一科成绩显示学生姓名/成绩,根据成绩由高到低排序
for (int k = 0; k < StudentNumber; k++)
{
cout << "姓名: " << Name[k] << "成绩: " << Grade[k][n] << endl;
}
} //输出任一科成绩显示学生姓名/成绩,根据成绩由高到低排序
private:
float Grade[100][3];
int StudentNumber;
string Name[100];
};
int main()
{
Score x;
x.InputStudentNameAndScore(); //输入默认值两位同学的姓名,三科成绩
x.ShowStudentNameAndScore(); //输入默认值两位同学的姓名,三科成绩
x.ShowStudentAvgScore(1); //第(1+1)名学生的平均分
x.showCourseAvgScore("A"); //科目A的平均分
x.OrderScoreByCouse("B"); //科目B的成绩排列
return 0;
结果如下: