Tải bản đầy đủ (.docx) (13 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (859.92 KB, 13 trang )

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:


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>
using namespace std;
class animal
{


public:
virtual void 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:
class Ngua :
public animal
// 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:


int main()
{
animal *ds;
ds = new Ngua;
ds->tocdo();
system("pause");
}


KẾT QUẢ:

// Sử dụng con trỏ
// Khởi tạo Lớp Ngựa
// Trỏ đến phương thức tốc độ của lớp Ngựa


TƯƠNG TỰ NHƯ VẬY: TA TẠO 5 LỚP CON CÒN LẠI. TA SẼ
ĐƯỢC:
#include<iostream>
using namespace std;
class animal
{
public:
virtual void tocdo() = 0;
};
class Bao :
public animal
{
public:
void tocdo()

// Kế thừa của lớp Báo từ lớp Animal
// Cài đặt cho phương thức tốc độ cho lớp Báo

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

public animal
// 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";
}
};
class SuTu :
public animal
// 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";
}
};
class Cho :
public animal
// 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";

}
};
class Nguoi :
public animal

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


{
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";
}
};
class Ngua :
public animal
// 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;

ds = new LinhDuong;
ds->tocdo();
system("pause");
}

// Sử dụng con trỏ
// Khởi tạo Lớp Linh Dương
// Trỏ đến phương thức tốc độ của lớp Linh Dương


Kết quả:


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] = new Bao;
break;
case 2:
ds[i] = new LinhDuong;
break;


case 3:
ds[i] = new SuTu;
break;
case 4:
ds[i] = new Cho;
break;
case 5:
ds[i] = new Nguoi;
break;
case 6:
ds[i] = new Ngua;
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");
}




KẾT QUẢ:



LINK FULL CODE:
/>


×