01/10/2018, 08:37

Cần mọi người giúp về hướng đối tượng trong Tubo C++

em chạy code trên dev c thì chạy được mà trên tubo C nó không dịch được, báo lỗi ạ.mọi người giúp em với.

#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
struct date
{
	int ngay, thang, nam;
};
class sinhvien
{
private:
	string ten, gt, lop;
	date ns;
	float toan, ly, hoa, tbc;
public:
	void nhap();
	void in();
	void tinhtbc(sinhvien a[200], int);
	void sapxep(sinhvien a[200], int);
};
void sinhvien::nhap()
{
	cout << "Nhap ho ten:";
	cin.ignore();
	getline(cin, ten);
	cout << "Nhap ngay sinh:" << endl;
	cout << "Ngay:";
	cin >> ns.ngay;
	cout << "Thang:";
	cin >> ns.thang;
	cout << "Nam:";
	cin >> ns.nam;
	cout << "Nhap gioi tinh:";
	cin.ignore();
	getline(cin, gt);
	cout << "Nhap lop:";
	cin.ignore();
	getline(cin, lop);
	cout << "Nhap diem:
Toan:";
	do
	{
		cin >> toan;
		if (toan < 0 || toan>10)
			cout << "Diem khong hop le.Nhap lai:
";
	} while (toan < 0 || toan >10);
	do
	{
		cout << "Ly:";
		cin >> ly;
		if (ly < 0 || ly>10)
			cout << "Diem khong hop le.Nhap lai:
";
	} while (ly < 0 || ly>10);
	do
	{
		cout << "Hoa:";
		cin >> hoa;
		if (hoa < 0 || hoa>10)
		cout << "Diem khong hop le.Nhap lai:
";
	} while (hoa < 0 || hoa>10);
}


void sinhvien::in()
{
	cout << setw(20) << ten << setw(10)<<ns.ngay << "/" << ns.thang << "/" << ns.nam << setw(17) << gt << setw(10) << lop;
	cout << setw(10) << toan << setw(10) << ly << setw(10) << hoa << setw(10) << tbc << endl;
}
void sinhvien::tinhtbc(sinhvien a[200], int n)
{
	for (int i = 0; i < n; i++)
		a[i].tbc = (a[i].toan + a[i].ly + a[i].hoa) / 3;
}
void sinhvien::sapxep(sinhvien a[200], int n)
{
	sinhvien temp;
	for (int i = 0; i < n - 1; i++)
		for (int j = i + 1; j < n; j++)
			if (a[i].tbc < a[j].tbc)
			{
				temp = a[i];
				a[i] = a[j];
				a[j] = temp;
			}
}
main()
{
	sinhvien sv[200];
	int n, i;
	cout << "Nhap so sinh vien :";
	cin >> n;
	for (i = 0; i < n; i++)
	{
		cout << "sinh vien " << i + 1 << ":
";
		sv[i].nhap();
	}
	system("cls");
	sv[0].tinhtbc(sv, n);
	sv[0].sapxep(sv, n);
	cout << setw(20) << "Ten" << setw(18) << "Ngay Sinh" << setw(17) << "Gioi Tinh" << setw(10) << "Lop";
	cout << setw(10) << "Toan" << setw(10) << "Ly" << setw(10) << "Hoa" << setw(10) << "TBC" << endl;
	cout << "=========================================================================================================
";
	for (i = 0; i < n; i++)
		sv[i].in();
	system("pause");
}
rogp10 viết 10:49 ngày 01/10/2018

C làm gì có cin cout bạn =) Code này là C++ mà!

</thread>

Hà Văn Linh viết 10:45 ngày 01/10/2018

Tubo C++ chạy được c++ chứ nhỉ bạn?

Tao Không Ngu. viết 10:41 ngày 01/10/2018

Hi Hà Văn Linh.
Lỗi gì ?.

Hà Văn Linh viết 10:38 ngày 01/10/2018

lỗi Undefined-structure bạn a.
void tinhtbc(sinhvien a[200], int);
void sapxep(sinhvien a[200], int);

Tao Không Ngu. viết 10:39 ngày 01/10/2018

Hi Hà Văn Linh.
typedef.

Hà Văn Linh viết 10:51 ngày 01/10/2018

bạn nói rõ giúp mình được không a .

rogp10 viết 10:41 ngày 01/10/2018

sapxep không phải và không thể là phương thức của class đó chỉ có thể là hàm bạn thôi.
tinhtbc (theo ý bạn) cũng vậy.

Hà Văn Linh viết 10:47 ngày 01/10/2018

sửa giúp mình với, mình sửa vẫn báo lỗi.

Hà Văn Linh viết 10:53 ngày 01/10/2018

giúp em với mọi người.

Nguyễn Vũ Minh viết 10:41 ngày 01/10/2018

Bạn xem lại cách dùng của typedef struct và struct nhé. Cái của bạn khai báo struct date, nên khi khai báo biến ns thuộc struct date phải dùng cú pháp
Struct date ns;

nếu muốn dùng
date ns thì bạn tìm hiểu về typedef nhé

Nam Nguyễn Xuân viết 10:39 ngày 01/10/2018

bạn thử xóa lệnh system đi xem đc k

Bài liên quan
0