Cách khắc phục compile error ở main()

File Main1.cpp mình bị lỗi mong mọi người giúp em với ạ cảm ơn nhiều.

SinhVien.h

#include<iostream>
#include<string>

using namespace std;

class SinhVien
{
private:
	string HoTen;
	string MSSV;
	float DiemTB;
public:
	void NhapThongTinSinhVien(SinhVien sv[], int n);
	void XuatThongTinSinhVien(SinhVien sv[], int n);
	void SapXep(SinhVien sv[], int n);
};

Main1.cpp

#include "SinhVien.h"
int main()
{
	SinhVien sv[100];
	int n;
	cout << "\nNhap So Luong Sinh Vien : ";
	cin >> n;

	NhapThongTinSinhVien(sv, n);/*Phần này em bị lỗi gạch chân màu đỏ*/
	SapXep(sv, n);/*Phần này em bị lỗi gạch chân màu đỏ*/
	XuatThongTinSinhVien(sv, n);/*Phần này em bị lỗi gạch chân màu đỏ*/

	system("pause");
	return 0;
}

SinhVien.cpp

#include "SinhVien.h"

void SinhVien::NhapThongTinSinhVien(SinhVien sv[], int n)
{
	for (int i = 0; i < n; i++)
	{
		fflush(stdin);
		cout << "Nhap Ho Ten Sinh Vien : ";
		getline(cin, sv[i].HoTen);

		fflush(stdin);
		cout << "Nhap MSSV : ";
		getline(cin, sv[i].MSSV);

		cout << "Nhap Diem Trung Binh Sinh Vien : ";
		cin >> sv->DiemTB;
	}
}

void SinhVien::XuatThongTinSinhVien(SinhVien sv[], int n)
{
	for (int i = 0; i < n; i++)
	{
		cout << "Xuat Ho Ten Sinh Vien : " << sv->HoTen << endl;
		cout << "Xuat MSSV : " << sv->MSSV << endl;
		cout << "Xuat Diem Trung Binh Sinh Vien : " << sv->DiemTB << endl;
		if (sv->DiemTB >= 9)
		{
			cout << "\n Sinh Vien Xep Loai Xuat Sac";
			cout << endl;
		}
		else if (sv->DiemTB < 3)
		{
			cout << "\n Kem";
		}
		else
		{
			cout << "Yeu";
		}
	}
	cout << endl;
}
void SinhVien::SapXep(SinhVien sv[], int n)
{
	for (int i = 0; i < n - 1; i++)
		for (int j = i + 1; j < n; j++)
			if (sv[i].DiemTB < sv[j].DiemTB)
			{
				float t = sv[i].DiemTB;
				sv[i].DiemTB = sv[j].DiemTB;
				sv[j].DiemTB = sv[i].DiemTB;
			}
}

ba hàm đó thuộc về đối tượng, tức là bạn phải khởi tạo 1 đối tượng SinhVien thì mới dùng hàm được

bạn có thể sử dụng hàm static để thay thế

2 Likes

Chắc quen với lập trình chức năng lâu rồi nên khai báo dạng đối tượng mà vẫn gọi dạng chức năng.

1 Like

Hướng thủ tục chứ nhỉ :slight_smile:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?