Đề thi học kỳ 3 môn Phương pháp lập trình hướng đối tượng - Năm học 2017-2018

CHƯƠNG TRÌNH ĐÀO TẠO  
LIÊN KẾT QUỐC TẾ  
Học phần thi  
Kỳ thi  
: PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG  
: Học kì 3 / năm học 2017 – 2018  
Thời gian  
Ghi chú  
: 90 phút  
Ngày Thi : 27/07/2018  
: Không sử dụng tài liệu, Mobile phone hay PDA, Laptop…  
MSSV:  
Họ và tên:  
Lớp:  
ĐỀ THI:  
Câu 1: (5 điểm)  
#include <iostream>  
using namespace std;  
class A {  
private:  
char *m_s;  
public:  
A() { m_s = strdup("default"); }  
A(char *s) { m_s = s; }  
virtual void prepare() { cout << "A "; }  
void display() {  
prepare();  
cout << m_s << endl;  
}
};  
class B : public A {  
public:  
B(char *s) : A(s) { }  
B(const B &b) { }  
void prepare() { cout << "B "; }  
};  
void foo(A *obj1, A obj2) {  
obj1->display();  
obj2.display();  
}
void main() {  
B obj1("text");  
A *obj2 = new B(obj1);  
foo(&obj1, *obj2);  
}
Page 1/2  
Đề thi | Trung tâm Đào tạo Quốc tế ITEC – www.itec.hcmus.edu.vn  
CHƯƠNG TRÌNH ĐÀO TẠO  
LIÊN KẾT QUỐC TẾ  
a) Hãy cho biết chương trình trên in gì ra màn hình? Giải thích trình tự gọi hàm trong hàm main( ).  
b) Hãy cho biết chương trình trên gặp vấn đề gì về bộ nhớ? Sửa lại cho đúng.  
c) Hãy trang bị operator>> cho lớp A để nhập chuỗi từ bàn phím cho thuộc tính m_s.  
Câu 2: Trò chơi Hoàng tử cứu Công chúa (5 điểm)  
Công chúa bị Mụ phù thủy giam trong một tòa lâu đài kiên cố có N lớp cổng. Để vào lâu đài cứu Công chúa,  
Hoàng tử phải vượt qua được tất cả những lớp cổng này. Ở mỗi cổng đều có một người gác cổng. Có 3 loại  
cổng:  
-
-
Cổng giao thương (Business Gate): người gác cổng là một tên lái buôn, để qua cổng, Hoàng tử phải mua  
hàng của tên lái buôn với số tiền = đơn giá * số hàng.  
Cổng học thuật (Academic Gate): người gác cổng là một nhà hiền triết, để qua cổng, Hoàng tử phải trả  
lời được câu hỏi của nhà hiền triết. Câu hỏi có một chỉ số trí tuệ, Hoàng tử cần có chỉ số trí tuệ cao hơn  
hoặc bằng để trả lời được câu hỏi. Lưu ý: sau khi trả lời, chỉ số trí tuệ của hoàng tử không bị mất đi.  
Cổng sức mạnh (Power Gate): người gác cổng là một dũng sỹ, để qua cổng, Hoàng tử phải đánh thắng  
được dũng sỹ. Dũng sỹ có một chỉ số sức mạnh, Hoàng tử cần có chỉ số sức mạnh cao hơn hoặc bằng để  
đánh thắng được dũng sỹ. Sau khi chiến thắng, chỉ số sức mạnh của hoàng tử bị hao mòn đi đúng bằng  
chỉ số sức mạnh của dũng sỹ.  
-
Bảng tóm tắt thông tin các loại cổng:  
Điều kiện qua cổng  
Trí tuệ  
Loại cổng  
Giao thương  
Học thuật  
Người gác  
Tên lái buôn  
Nhà hiền triết  
Dũng sỹ  
Tiền  
Sức mạnh  
Mất tiền =  
Không  
Không  
đơn giá * số hàng  
Trí tuệ >=  
Không  
Không  
Không  
trí tuệ câu hỏi  
Mất sức =  
Sức mạnh  
Không  
sức dũng sỹ  
Áp dụng các tính chất đóng gói, kế thừa và đa hình để thực hiện những việc sau:  
1. Vẽ sơ đồ lớp mô tả trò chơi.  
2. Xây dựng trò chơi có có chức năng như sau:  
i)  
Nhập vào danh sách thông tin N cổng, của lâu đài.  
ii)  
Nhập vào ba thông số ban đầu của Hoàng tử là: số tiền, chỉ số trí tuệ, chỉ số sức mạnh.  
Chương trình sẽ cho biết với những thông số này, Hoàng tử có cứu được Công chúa không.  
Nếu cứu được thì chương trình tiếp tục cho biết ba thông số còn lại của Hoàng tử.  
--- HẾT ---  
Page 2/2  
Đề thi | Trung tâm Đào tạo Quốc tế ITEC – www.itec.hcmus.edu.vn  
pdf 2 trang myanh 9700 Free
Bạn đang xem tài liệu "Đề thi học kỳ 3 môn Phương pháp lập trình hướng đối tượng - Năm học 2017-2018", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfde_thi_hoc_ky_3_mon_phuong_phap_lap_trinh_huong_doi_tuong_na.pdf