58 lines
1.3 KiB
C++
Raw Normal View History

2025-03-29 23:02:48 +08:00
#include <iostream>
#include <vector>
#include <algorithm>
#include "Student_info.h"
#include "grade.h"
using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;
// <20><><EFBFBD><EFBFBD><E5B3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
const double PASS_GRADE = 60.0;
int main() {
vector<Student_info> students;
Student_info record;
// <20><>ȡѧ<C8A1><D1A7><EFBFBD><EFBFBD>Ϣ
cout << "<EFBFBD><EFBFBD><EFBFBD>гɼ<EFBFBD>ռ<EFBFBD><EFBFBD>20%<25><><EFBFBD><EFBFBD>ĩ<EFBFBD>ɼ<EFBFBD>ռ<EFBFBD><D5BC>40%<25><>ƽʱ<C6BD>ɼ<EFBFBD>ռ<EFBFBD><D5BC>40%<25><>:" << endl;
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>гɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĩ<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>ƽʱ<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>:" << endl;
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ctrl+z<><7A><EFBFBD>س<EFBFBD><D8B3>˳<EFBFBD><CBB3><EFBFBD>" << endl;
while (read(cin, record)) {
students.push_back(record);
}
// <20><>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
vector<Student_info> pass, fail;
for (const auto& student : students) {
if (grade(student) >= PASS_GRADE) {
pass.push_back(student);
}
else {
fail.push_back(student);
}
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
std::sort(pass.begin(), pass.end(), compare);
std::sort(fail.begin(), fail.end(), compare);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϣ
cout << "<EFBFBD>ϸ<EFBFBD>ѧ<EFBFBD><EFBFBD>:" << endl;
for (const auto& student : pass) {
cout << student.name << ": <20>ܳɼ<DCB3> = " << grade(student) << endl;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϣ
cout << "<EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>ѧ<EFBFBD><EFBFBD>:" << endl;
for (const auto& student : fail) {
cout << student.name << ": <20>ܳɼ<DCB3> = " << grade(student) << endl;
}
return 0;
}