30/09/2018, 20:07

Giúp em phần cấp phát động với ạ!

Thầy có giao bài tập về nhà, e đã code xong. Nhưng thầy yêu cầu dùng cấp phát động thay vì dùng cấp phát tĩnh như e. Em có xem video hướng dẫn cấp phát động nhưng vẫn k hiểu lắm! Và k code đc, mấy a/c giúp e phần cấp phát động với giải thích cho em hiểu thêm với!

Hàm main:

#include "ThiSinh.h"
#include <iostream>
using namespace std;
void main()
{
	int n;
	ThiSinh	a[100];
	cout << "Nhap So sinh vien : ";
	cin >> n;

	for (int i = 0; i < n; i++)
	{
		a[i].Nhap();
	}
	cout << "Danh sach sinh vien diem > 15 la: " << endl;
	for (int i = 0; i < n; i++)
	{
		float kq = a[i].Tong();
		if (kq > 15)
			a[i].Xuat();

	}
}

Phần class:

#include <iostream>
#include <string.h>
using namespace std;
#pragma once
class ThiSinh
{
private:
	char Ma[20];
	string HoTen;
	int Ngay;
	int Thang;
	int Nam;
	float Toan;
	float Van;
	float Anh;
public:
	void Nhap();
	float Tong();
	void Xuat();
};

Khai báo hàm:

#include <iostream>
#include <string>
#include "ThiSinh.h"
using namespace std;
void ThiSinh::Nhap()
{
	cout << "Nhap ma thi sinh: " << endl;
	cin >> Ma;
	cout << "Nhap ho ten thi sinh: " << endl;
	//cin.ignore(100, '
');
	fflush(stdin);
	getline(cin, HoTen);
	cout << "Nhap ngay Thang nam sinh: " << endl;
	cin >> Ngay >> Thang >> Nam;
	cout << "Nhap diem toan, van, anh: " << endl;
	cin >> Toan >> Van >> Anh;
}

float ThiSinh::Tong()
{
	return Toan + Van + Anh;
}

void ThiSinh::Xuat()
{
	cout << "Ho Ten thi sinh: " << HoTen << endl;
	cout << "MSSV: " << Ma << endl;
}

Đoạn code này đợt e có hỏi về phần nhập chuỗi ^^

X viết 22:16 ngày 30/09/2018


Ngô Doãn Tuấn viết 22:23 ngày 30/09/2018

Cấp phát động là không cần phải khai báo hằng số số lượng phần tử mà bạn muốn khởi tạo.
Vì vậy phải sử dụng con trỏ
Hoặc bạn có thể sử dụng vector or list trong thư viện #include<vector>, #include<list>
Còn phần cấp phát động thì như trong video anh Huy trích dẫn bên trên

Minh Tú viết 22:09 ngày 30/09/2018

Có xem r mà k hiểu và k áp dụng vô bài tập được

Minh Tú viết 22:13 ngày 30/09/2018

Vậy bài trên k dùng cấp phát động được hả bạn?

Ngô Doãn Tuấn viết 22:14 ngày 30/09/2018

Có chứ bài trên là mẫu để áp dụng cấp phát động đó bạn.
Cấp phát động là việc tạo con trỏ cấp phát bạn để ý chỗ đó là được đó

Khôi Trần viết 22:15 ngày 30/09/2018

ThiSinh *a=new ThiSinh[n];

Minh Tú viết 22:17 ngày 30/09/2018

báo lỗi k xác định đc n bạn ơi

Gió viết 22:13 ngày 30/09/2018

Thêm vào 1 câu hỏi cần nhập bao nhiêu thí sinh trước phần cấp phát động

puts("nhap n: "); scanf("%d",&n);
Bài liên quan
0