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!
Bài liên quan
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