01/10/2018, 12:13

Tổ chức nhập liệu cho class trong lập trình hướng đối tượng

Chào cả nhà! Mình gặp khó khăn trong việc nhập dữ liệu cho một bài toán.

Đề bài: Viết chương trình quản lý điểm của sinh viên
Một sinh viên có nhiều môn học.

Mình đã tạo

class MonHoc
{
private:
	string TenMon;
public:
	void nhap(){
		cin >> TenMon;
	}
};

class SinhVien
{
private:
	string TenSV;
	MonHoc m[20];
	int SLMH; //So luong mon hoc
public:
	void nhap(/*MonHoc m[]*/){
		cin >> TenSV;
		cin >> SLMH;
		MonHoc m[20]; // Khai bao o day?
		for (i = 0; i < SLMH; i++)
		{
			m[i].nhap();
		}
	}
};

void nhapDSSV(SinhVien a[], int n /*, MonHoc m[]*/)
{
	int i;
	for (i = 0; i < n; i++)
	{
		a[i].nhap(/*m*/);
	}
}

int main()
{
	int n = 2;
	SinhVien a[4];
	// MonHoc m[20];
	nhapDSSV(a, n /*,m[]*/);
}

Vấn đề là không biết cho mảng MonHoc vào đâu, danh sách tham số hay là trong nội hàm. Bởi vì nếu đưa vào tham số, khi xuất kết quả sẽ hiện tên môn của tất cả các sinh viên là giống nhau tuy số lượng có khác; Còn nếu đưa vào nội hàm, kết quả tệ hơn: Xuất ra giá trị rác.

Rất mong mọi người giúp đỡ.
Xin cảm ơn!

Dark.Hades viết 14:17 ngày 01/10/2018

Mon[i].nhap();

Thằng Mon kia bạn lấy từ đâu vậy?[quote=“congdantoancau, post:1, topic:57274”]
MonHoc m[20]; // Khai bao o day?
[/quote]
Xoá cái này đi là được rồi, bạn tạo object này đồng nghĩa nó sẽ bị mất hết dữ liệu khi ra khỏi scope, và thuộc tính vốn dĩ của SinhVien thì lại không có dữ liệu

Bài liên quan
0