1. Trang chủ
  2. » Công Nghệ Thông Tin

HƯỚNG dẫn GIẢI bài tập TRÊN VISUAL STUDIO số 3

13 173 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 1,16 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu hướng dẫn giải bài tập siêu dễ hiểu trong lập trình hướng đối tượng OOP Đây là một trong bộ tài liệu giải bài tập của ACE Joker lập trình viên thuộc dạng newbie giải với cách dễ hiểu nhất cho người mới bắt đầu bước chân vào lĩnh vực hướng đối tượng dạng bào tập số 2 trong series giải bài tập hướng đối tượng c++

Trang 1

HƯỚNG DẪN GIẢI BÀI TẬP TRÊN VISUAL

STUDIO SỐ 3 (ĐA XẠ)

PHÂN TÍCH ĐỀ:

CHÚ THÍCH:

+ Hình Vuông (Màu Đỏ): Thuộc Tính

+ Hình Tròn (Màu Đỏ): Yêu Cầu

+ Hình Vuông (Màu Đen): Ocject cần thêm

TA CÓ SƠ ĐỒ CLASS DIAGRAM:

Trang 2

Theo đề, ta có thể nhận thấy được: Các loài động vật ở đây có tổng cộng là 6 và Tất cả đều thuộc

về bảng động vật Vậy, ta có:

+ Lớp cha: Động vật (Animal)

+ Lớp con: Có 6 lớp con (Bao gồm: Báo, Linh dương, Sư tử, Chó, Người)

Đặc Biệt: Ta sẽ sử dụng phương thức THUẦN ẢO cho bài toàn này: Vì ở lớp cha không có thông tin để tính toán

KHAI BÁO PHƯƠNG THỨC THUẦN ẢO TRONG LỚP CHA (ANIMAL):

#include<iostream>

usingnamespace std;

classanimal

{

Trang 3

virtualvoid tocdo() = 0; // Khai báo phương thức thuần ảo ở Lớp Animal

};

TẠO LỚP NGỰA KẾ THỪA TỪ LỚP CHA:

classNgua :

publicanimal // Kế thừa của lớp Ngựa từ lớp Animal

{

public:

void tocdo() // Cài đặt cho phương thức tốc độ

{

cout <<"Toc do cua Bao la: 100km/h.\n"; // Xuất ra màn hình

}

};

Hàm main:

Trang 4

int main()

{

animal *ds; // Sử dụng con trỏ

ds = newNgua; // Khởi tạo Lớp Ngựa

ds->tocdo(); // Trỏ đến phương thức tốc độ của lớp Ngựa

system("pause");

}

KẾT QUẢ:

Trang 5

TƯƠNG TỰ NHƯ VẬY: TA TẠO 5 LỚP CON CÒN LẠI TA SẼ ĐƯỢC:

#include<iostream>

usingnamespace std;

classanimal

{

public:

virtualvoid tocdo() = 0;

};

classBao :

publicanimal // Kế thừa của lớp Báo từ lớp Animal

{

public:

void tocdo() // Cài đặt cho phương thức tốc độ cho lớp Báo

{

cout <<"Toc do cua Bao la: 100km/h.\n"; }

};

classLinhDuong :

publicanimal // Kế thừa của lớp Linh Dương từ lớp Animal

{

public:

void tocdo() // Cài đặt cho phương thức tốc độ cho lớp Linh Dương

{

cout <<"Toc do cua Linh Duong la: 80km/h.\n"; }

};

classSuTu :

publicanimal // Kế thừa của lớp Sư tử từ lớp Animal

{

public:

void tocdo() // Cài đặt cho phương thức tốc độ cho lớp Sư tử

{

cout <<"Toc do cua Su Tu la: 70km/h.\n"; }

};

classCho :

publicanimal // Kế thừa của lớp Chó từ lớp Animal

{

public:

void tocdo() // Cài đặt cho phương thức tốc độ cho lớp Chó

{

cout <<"Toc do cua Cho la: 60km/h.\n"; }

};

classNguoi :

publicanimal // Kế thừa của lớp Người từ lớp Animal

Trang 6

public:

void tocdo() // Cài đặt cho phương thức tốc độ cho lớp Người

{

cout <<"Toc do cua Nguoi la: 30km/h.\n"; }

};

classNgua :

publicanimal // Kế thừa của lớp Ngựa từ lớp Animal

{

public:

void tocdo() // Cài đặt cho phương thức tốc độ cho lớp Ngựa

{

cout <<"Toc do cua Ngua la: 60km/h.\n"; }

};

int main()

{

animal *ds; // Sử dụng con trỏ

ds = newLinhDuong; // Khởi tạo Lớp Linh Dương

ds->tocdo(); // Trỏ đến phương thức tốc độ của lớp Linh Dương

system("pause");

}

Trang 7

Kết quả:

Trang 8

Và Cuối cùng: Để có thể Hiển thị nhiều kết quả của nhiều lớp con khác nhau thì ta thay đổi ở Hàm Main như sau:

int main()

{

int i = 0, chon;

int n = 0;

animal *ds[1000];

cout <<"Nhap so luong dong vat trong danh sach"<< endl;

cin >> n;

cout <<"1 Bao"<< endl;

cout <<"2 Linh Duong"<< endl;

cout <<"3 Su Tu"<< endl;

cout <<"4 Cho"<< endl;

cout <<"5 Nguoi"<< endl;

cout <<"6 Ngua"<< endl;

cout <<"7 Xuat"<< endl;

cout <<"8 Thoat"<< endl;

cout <<"Vui Long Chon:"<< endl;

while (1)

{

cout <<"Lua chon thu "<< i + 1 <<":"<< endl;

cin >> chon;

switch (chon) {

case 1:

ds[i] = newBao;

break;

case 2:

ds[i] = newLinhDuong;

break;

Trang 9

case 3:

ds[i] = newSuTu;

break;

case 4:

ds[i] = newCho;

break;

case 5:

ds[i] = newNguoi;

break;

case 6:

ds[i] = newNgua;

break;

case 7:

for (i = 0; i < t; i++) {

cout <<"Ket qua lua chon thu "<< i + 1 <<": "<< endl; ds[i]->tocdo();

}

break;

case 8:

break; }

if (chon < 8) {

i++;

}

if (i == n) {

for (i = 0; i < n; i++) {

cout <<"Ket qua lua chon thu "<< i + 1 <<": "<< endl; ds[i]->tocdo();

}

break; }

if (chon == 7 || chon == 8)

break; }

system("pause");

}

Trang 12

KẾT QUẢ:

Trang 13

LINK FULL CODE:

https://drive.google.com/open?id=1xD2t0VV3Lgw56n4eUEFXxJeTxnE-XBRs

Ngày đăng: 12/07/2018, 19:51

TỪ KHÓA LIÊN QUAN

w