chương trình C++ sử dụng các lớp để mô phỏng một hệ thống quản lý sinh viên, bao gồm các thuộc tính như tên, tuổi, điểm trung bình và các phương thức để thêm, hiển thị thông tin sinh viên cũng như tính toán điểm trung bình.
### Chương trình C++
```cpp
#include <iostream>
#include <vector>
#include <string>
using namespace std;
// Lớp Student để lưu trữ thông tin sinh viên
class Student {
private:
string name;
int age;
double gpa;
public:
// Constructor
Student(string n, int a, double g) : name(n), age(a), gpa(g) {}
// Hàm để hiển thị thông tin sinh viên
void displayInfo() const {
cout << "Tên: " << name << ", Tuổi: " << age << ", Điểm trung bình: " << gpa << endl;
}
// Hàm để lấy điểm trung bình
double getGPA() const {
return gpa;
}
};
// Lớp StudentManager để quản lý danh sách sinh viên
class StudentManager {
private:
vector<Student> students; // Danh sách sinh viên
public:
// Hàm thêm sinh viên vào danh sách
void addStudent(const Student& student) {
students.push_back(student);
}
// Hàm hiển thị tất cả sinh viên
void displayAllStudents() const {
if (students.empty()) {
cout << "Danh sách sinh viên rỗng." << endl;
return;
}
for (const auto& student : students) {
student.displayInfo();
}
}
// Hàm tính điểm trung bình của lớp
double calculateAverageGPA() const {
if (students.empty()) return 0.0;
double totalGPA = 0.0;
for (const auto& student : students) {
totalGPA += student.getGPA();
}
return totalGPA / students.size();
}
};
int main() {
StudentManager manager;
// Thêm sinh viên vào danh sách
manager.addStudent(Student("Nguyen Van A", 20, 8.5));
manager.addStudent(Student("Tran Thi B", 19, 9.0));
cout << "Danh sách sinh viên:" << endl;
manager.displayAllStudents(); // Hiển thị danh sách sinh viên
// Tính điểm trung bình của lớp
double averageGPA = manager.calculateAverageGPA();
cout << "Điểm trung bình của lớp là: " << averageGPA << endl;
return 0;
}
```