Em có một bài tập: Nhập danh sách sinh viên, tìm điểm trung bình lớn nhất.
Em làm code tới đây, nhưng ko biết cách lấy Điểm trung bình như thế nào để so sánh ạ.
//Tìm Điểm trung bình lớn nhất trong danh sách sinh viên.
//File SinhVien.h
#pragma once
//Khai báo thư viện
#include <iostream>
#include <string>
class SinhVien
{
private:
std::string HoTen;
int Tuoi;
float DTB;
public:
void Input(); //Nhập 1 sinh viên
void Output(); //Xuất 1 sinh viên
SinhVien(void);
~SinhVien(void);
};
//File SinhVien.cpp
#include "SinhVien.h"
//Định nghĩa phương thức Input()
void SinhVien::Input()
{
fflush(stdin);
std::cout << "\nNhap vao ho ten: ";
getline(std::cin, HoTen);
do
{
std::cout << "\nNhap vao tuoi: ";
std::cin >> Tuoi;
if (Tuoi < 18 || Tuoi > 50)
{
std::cout << "\nNhap sai tuoi. Nhap lai";
}
} while (Tuoi < 18 || Tuoi > 50);
do
{
std::cout << "\nNhap vao diem trung binh: ";
std::cin >> DTB;
if (DTB < 0 || DTB > 10)
{
std::cout << "\nNhap sai DTB. DTB tu 0 -> 10";
}
} while (DTB < 0 || DTB > 10);
}
//Định nghĩa phương thức Output()
void SinhVien::Output()
{
std::cout << "\nHo ten: " << HoTen;
std::cout << "\nTuoi: " << Tuoi;
std::cout << "\nDiem trung binh: " << DTB;
}
SinhVien::SinhVien(void)
{
}
SinhVien::~SinhVien(void)
{
}
//File DanhSachSinhVien.h
#pragma once
#include "SinhVien.h"
#include <vector>
class DanhSachSinhVien
{
private:
std::vector<SinhVien *> List;
public:
void Input(); // Khai báo phương thức nhập danh sách sinh viên.
void Output(); // Khai báo phương thức xuất danh sách sinh viên.
void Tim_DTB_Max();
DanhSachSinhVien(void);
~DanhSachSinhVien(void);
};
//File DanhSachSinhVien.cpp
#include "DanhSachSinhVien.h"
void DanhSachSinhVien::Input()
{
int n;
std::cout << "\nNhap vao so sinh vien: ";
std::cin >> n;
for (int i = 0; i < n; i++)
{
std::cout << "\n\n\t\t* Nhap Thong Tin Ho So Thu " << i + 1 << " *\n";
SinhVien *x = new SinhVien;
x ->Input(); //Nhập dữ liệu cho Sinh Viên.
List.push_back(x); //Đưa Sinh Viên vào trong List.
}
}
void DanhSachSinhVien::Output()
{
for (int i = 0; i < List.size(); i++)
{
std::cout << "\n\n\t\t* Thong tin ho so thu " << i + 1 << " *\n";
List[i] ->Output();
}
}
(
//Code tìm Điểm trung bình lớn nhất (Sai ở đây)
void DanhSachSinhVien::Tim_DTB_Max()
{
float DTB_Max = List[0].DTB;
for (int i = 1; i < List.size(); i++)
{
if (List[i].DTB > DTB_Max)
{
DTB_Max = List[i].DTB;
}
}
std::cout << "\nDiem trung binh lon nhat: " << DTB_Max;
}
)
DanhSachSinhVien::DanhSachSinhVien(void)
{
}
DanhSachSinhVien::~DanhSachSinhVien(void)
{
}
//File Main.cpp
#include "DanhSachSinhVien.h"
int main()
{
DanhSachSinhVien *x = new DanhSachSinhVien;
x ->Input();
x ->Output();
x ->Tim_DTB_Max();
delete x;
system("pause");
return 0;
}