Chào mọi người, ở bài trước thì mình đã đưa ra định nghĩa và giải thích về lớp (class), các thành phần của lớp (class). Trong bài này thì chúng ta sẽ cùng đi làm một số thực hành bằng cách tạo các lớp (class) đơn giản nhé.
Tạo class đơn giản
Đề bài:
Viết một lớp sinhvien gồm các thuộc tính: ten, tuoi, masinhvien. Và các phương thức nhập xuất.
#include <bits/stdc++.h> using namespace std; class sinhvien { private: string ten, masinhvien; int tuoi; public: void set() { cin.ignore(); cout << "Nhap Ma Sinh Vien"; getline(cin, this->masinhvien); cout << "Nhap Ten: "; getline(cin, this->ten); cout << "Nhap Tuoi: "; cin >> this->tuoi; } void get() { cout << "Ma Sinh Vien: " << this->masinhvien << endl; cout << "Ten: " << this->ten << endl; cout << "Tuoi: " << this->tuoi << endl; } }; int main() { sinhvien obj; obj.set(); obj.get(); }
Nhập Input:
MSV1 Lap Trinh Khong Kho 18
Sau khi chạy chương trình ta sẽ có kết quả:
Ma Sinh Vien: MSV1 Ten: Lap Trinh Khong Kho Tuoi: 18
Tạo class có hàm khởi tạo và hàm huỷ
Trong phần này, thay vì tạo class chỉ có 2 phương thức nhập xuất là set và get. Mình sẽ tạo class sinhvien với hàm khởi tạo không tham số, hàm huỷ, và phương thức nhập xuất
#include <bits/stdc++.h> using namespace std; class sinhvien { private: string ten, masinhvien; int tuoi; public: sinhvien() { this->masinhvien = ""; this->ten = ""; this->tuoi = 0; } ~sinhvien() { this->masinhvien = ""; this->ten = ""; this->tuoi = 0; } void set() { cout << "Nhap Ma Sinh Vien"; getline(cin, this->masinhvien); cout << "Nhap Ten: "; getline(cin, this->ten); cout << "Nhap Tuoi: "; cin >> this->tuoi; } void get() { cout << "Ma Sinh Vien: " << this->masinhvien << endl; cout << "Ten: " << this->ten << endl; cout << "Tuoi: " << this->tuoi << endl; } }; int main() { sinhvien obj; cout << "Before Set" << endl; obj.get(); // Tại đây mình sẽ không set giá trị vào cho obj nhé. // Để mọi người có thể thấy khi có hàm khởi tạo, các giá trị sẽ được set giá trị ngay khi được tạo ra obj.set(); cout << "After Set" << endl; obj.get(); }
Vẫn với Input cũ
MSV1 Lap Trinh Khong Kho 18
Sau khi chạy ta có kết quả
Before Set Ma Sinh Vien: Ten: Tuoi: 0 After Set Ma Sinh Vien: MSV1 Ten: Lap Trinh Khong Kho Tuoi: 18
Như các bạn đã thấy, nếu khi khởi tạo obj
mà ta không set
giá trị cho chúng thì chúng sẽ nhận giá trị mặc định, là giá trị ta cài đặt tạo hàm khởi tạo.
Tạo class với hàm tính toán
Nâng cao thêm một chút nhé, tại lớp sinhvien mình sẽ cho thêm 3 thuộc tính là: diemtoan diemvan
và diemanh
. Thêm một yêu cầu là tính điểm trung bình của sinhvien đó.
#include <bits/stdc++.h> using namespace std; class sinhvien { private: string ten, masinhvien; int tuoi; float diemtoan, diemvan, diemanh; public: sinhvien() { this->masinhvien = ""; this->ten = ""; this->tuoi = 0; this->diemtoan = this->diemvan = this->diemanh = 0; } ~sinhvien() { this->masinhvien = ""; this->ten = ""; this->tuoi = 0; this->diemtoan = this->diemvan = this->diemanh = 0; } void set() { cout << "Nhap Ma Sinh Vien"; getline(cin, this->masinhvien); cout << "Nhap Ten: "; getline(cin, this->ten); cout << "Nhap Tuoi: "; cin >> this->tuoi; cout << "Nhap Diem Toan - Van - Anh"; cin >> this->diemtoan >> this->diemvan >> this->diemanh; } void get() { cout << "Ma Sinh Vien: " << this->masinhvien << endl; cout << "Ten: " << this->ten << endl; cout << "Tuoi: " << this->tuoi << endl; cout << "Diem Trung Bình: " << TB() << endl; } float TB() { return (this->diemtoan + this->diemvan + this->diemanh)/3; } }; int main() { sinhvien obj; obj.set(); obj.get(); }
Input là:
MSV1 Lap Trinh Khong Kho 18 8 9 10
Sau khi chạy ta có Output:
Ma Sinh Vien: MSV1 Ten: Lap Trinh Khong Kho Tuoi: 18 Diem Trung Bình: 9
Bài viết của mình xin kêt thúc tại đây. Rất mong nhận được sự ủng hộ và những ý kiến, đóng góp của mọi người để những bài viết của mình ngày càng tốt hơn. Cảm ơn mọi người rất nhiều.
Giới thiệu Khoá Học Lập trình C cơ bản hoàn toàn miễn phí “Học C Bá Đạo”: Xem Ngay
Để lại một bình luận