مرتب سازی اطلاعات دانشجو
سوال
اطلاعات ۱۵ دانشجو را بگیرد(اسم و فامیل و معدل)اسامی به صورت صعودی مرتب شود(به ترتیب فامیل و اسم و معدل در یک خط) و مینگین کل کلاس رو چاپ کند و سپس یک اسم از ورودی دریافت کند و اگر در در لیست بود اطلاعاتش رو چاپ کند و اگر نبود هم چاپ کند نیست
در حال بررسی
0
انجمن برنامه نویسان ++C
1 سال
1 پاسخ
209 دیده شده
0
پاسخ ( ۱ )
#include
#include
#include
#include
using namespace std;
struct Student {
string first_name;
string last_name;
double gpa;
};
bool compare_students(const Student& s1, const Student& s2) {
if (s1.last_name != s2.last_name) {
return s1.last_name < s2.last_name;
} else if (s1.first_name != s2.first_name) {
return s1.first_name < s2.first_name;
} else {
return s1.gpa < s2.gpa;
}
}
int main() {
// Get information for 15 students
vector students;
for (int i = 0; i < 15; i++) {
Student student;
cout << "Enter first name for student " << i + 1 <> student.first_name;
cout << "Enter last name for student " << i + 1 <> student.last_name;
cout << "Enter GPA for student " << i + 1 <> student.gpa;
students.push_back(student);
}
// Sort the students by last name, then first name, then GPA
sort(students.begin(), students.end(), compare_students);
// Print the sorted list of students
cout << "Sorted list of students:n";
for (const auto& student : students) {
cout << student.last_name << ", " << student.first_name << " – GPA: " << student.gpa << endl;
}
// Calculate the class average GPA
double total_gpa = 0.0;
for (const auto& student : students) {
total_gpa += student.gpa;
}
double class_average_gpa = total_gpa / students.size();
cout << "Class average GPA: " << class_average_gpa << endl;
// Get a name from the user and search for the student in the list
string search_name;
cout <> search_name;
auto it = find_if(students.begin(), students.end(), [&](const Student& s) {
return s.first_name == search_name || s.last_name == search_name;
});
if (it != students.end()) {
cout << "Found student: " <last_name << ", " <first_name << " – GPA: " <gpa << endl;
} else {
cout << "Student not found.n";
}
return 0;
}