#include
#include
using namespace std;
class Student
{
private:
char number[10];
char name[10];
int DailyScore; //平时成绩
int FinalScore; //期末成绩
float GeneralScore; //总评成绩
int place; //名次
public:
void ReadData(); //输入学生的学号,姓名,平时成绩及期末成绩
void CalcuScore(); //计算当前学生的总评成绩
void PrintOut(); //输出当前学生的完整信息
friend void SortScore(Student stu[],int n); //根据总评成绩排除学生的名次
};
void Student::ReadData() {
char buf[32];
cout << "number: ";
cin >> number;
cout << "name: ";
cin >> name;
cout << "DailyScore: ";
cin >> buf;
DailyScore = atoi(buf);
cout << "FinalScore: ";
cin >> buf;
FinalScore = atoi(buf);
}
void Student::CalcuScore() {
GeneralScore = FinalScore * 0.6 + DailyScore * 0.4;
}
void Student::PrintOut() {
cout << "number " << number << endl;
cout << "name " << name << endl;
cout << "DailyScore " << DailyScore << endl;
cout << "FinalScore " << FinalScore << endl;
cout << "GeneralScore " << GeneralScore << endl;
cout << "place " << place << endl;
}
void SortScore(Student stu[],int n) {
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++)
if (stu[i].GeneralScore < stu[j].GeneralScore) {
Student t = stu[i];
stu[i] = stu[j];
stu[j] = t;
}
stu[i].place = i + 1;
}
}
int main()
{
Student stu[20];
int i, n = 5;
for(i = 0;i < n;i++)
stu[i].ReadData();
for(i = 0;i < n;i++)
stu[i].CalcuScore();
SortScore(stu,5);
for(i = 0;i stu[i].PrintOut();
return 0;
}