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 ^^
Bài liên quan
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
orlist
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
Có xem r mà k hiểu và k áp dụng vô bài tập được
Vậy bài trên k dùng cấp phát động được hả bạn?
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 đó
ThiSinh *a=new ThiSinh[n];
báo lỗi k xác định đc n bạn ơi
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