Trang 1 / 4 Đề 1
TRƯỜNG ĐẠI HC CÔNG NGH THÔNG TIN
ĐỀ THI CUI HC K: II (2023-2024)
KHOA CÔNG NGH PHN MM
MÔN: LP TRÌNH HƯỚNG ĐỐI TƯỢNG
Đề 01
Thi gian: 90 phút
(Sinh viên không được s dng tài liu)
H VÀ TÊN SV: ……………………………………
MSSV: ……………………………………………….
STT: ………………………………………………….
PHÒNG THI:…..……………………………………
CÁN B COI THI
CÂU HI T LUN
Câu 1 (2 điểm) (G2.2, G6.1)
Sinh viên bt buc chn câu a hoc câu b để làm bài cho câu 1
a.
- Khi định nghĩa một lớp đối tượng trong ngôn ngữ C++, trình biên dịch tự tạo lập những
phương thức thiết lập hay còn gọi là phương thức khởi tạo (Constructor) nào? (1.0đ)
- Hãy trình bày đặc điểm của các loại phương thức thiết lập nêu trên (1.0đ).
b.
- Phân biệt Lớp thông thường (class) và Lớp cơ sở trừu tượng (abstract class)? (1.0đ)
- Lớp cơ sở trừu tượng được cài đặt trong C++ như thế nào? (1.0đ)
Câu 2 (3 đim) (G2.1, G6.1)
Cho đoạn chương trình nh toán với lớp đối tượng ngày tháng năm (cNgay) như sau. Sinh viên
định nghĩa lớp cNgay thích hợp để chương trình không bị li biên dch và chạy đúng. Lưu ý rằng
không được chnh sa hàm main.
void main()
{
cNgay ng1; // ng1 s có giá tr ngày 1 tháng 1 năm 1
cNgay ng2(2017, 1, 7); // ng2 s có giá tr ngày 7 tháng 1 năm 2017
cin>>ng1;
int kq = ng1.SoSanh(ng2);
if(kq == -1)
cout << "Ngay 1 truoc ngay 2" << endl;
else if (kq == 0)
cout << "Ngay 1 va ngay 2 la cung 1 ngay" << endl;
else
cout << "Ngay 1 sau ngay 2" << endl;
}
Trang 2 / 4 Đề 1
Câu 3 (5 đim) (G3.2, G6.1)
LƯU Ý: Các thông tin trong đ ch phng các thông tin y hc vi mục tiêu để sinh viên vn
dng kiến thc lập trình hướng đối tượng. Do vậy, các thông tin trong đề KHÔNG nht thiết phi
đúng với các thông tin y hc hin ti. Sinh viên cn bám sát các t trong đề thi đ làm bài,
không vn dng thêm bt k kiến thc y khoa, ph thông, thi s nào khác để làm bài.
rt nhiu chng virus sng trên các vt ch là các sinh vt sng khác k c loài người. Khi
nhim lên vt ch, mt loi virus th y hu qu t t vong, các triu chng nng, các triu
chng nh hoc không triu chng gì tùy thuc vào kh năng miễn dch ca vt ch.
Kh năng miễn dch ca vt ch đối vi các loi virus ba mc: thp, trung bình cao.
s ảnh hưởng đến xác sut gp các triu chng nng, nh, không triu chng hoc xác
sut t vong như bảng sau:
Không triu
chng
Triu chng
nh
T vong
Cao
50%
35%
50%
Trung Bình
10%
40%
70%
Thp
5%
15%
100%
Xác sut t vong bảng trên được hiu là xác sut da trên xác sut t vong trung bình ca
tng loi virus. Chng hn có mt virus có xác sut t vong trung bình là 50% và nhim lên
vt ch kh năng miễn dch trung bình thì xác sut t vong cui cùng s : 70% x 50%
= 35%
Trong những năm 2019 đến nay, dòng virus Corona mi - tên chính thc SARS-CoV-2 xut
hiện đã gây ra bao hậu qu tàn khc cho khp thế gii với hơn chục triệu người nhim bnh và
hơn nửa triệu người t vong. Triu chng nh ca Covid-19 ging như cảm cúm thông thưng
như sốt, ho, mt v giác trong vài ngày ri khi. Triu chng nng ca Covid-19 bao gm st
cao, ho khan, khó th đôi lúc kèm theo đau đu d di. Tuy nhiên, Covid-19 gây t vong vi
xác sut trung bình khá thp là 3-5%
Mt dòng virus chết chóc khác Ebola, kh năng gây t vong vi t l trung bình lên đến
50%. Triu chng nh ca Ebola trong vòng 2-3 tuần đầu bao gm sốt, đau họng, đau cơ và đau
đầu. Sau đó, nếu không may, người bnh th gp các triu chng nng như b nôn ma, tiêu
chy và nng nht là xut huyết c ngoài ln bên trong.
Virus HIV tn công h min dch của con người, làm suy yếu để các virus/bệnh khác
hi tri dy. HIV ch gây các triu chng nh ging cm st trong thi gian bnh (t 3 đến 5
năm). Nếu không may mắn được min dịch, đến giai đoạn AIDS, giai đoạn h min dịch đã bị
suy yếu đáng kể, người bnh s gp các triu chng nng như mệt mi cực độ không gii thích
được, sưng hạch kéo dài, l loét, viêm phi, tiêu chy nng sau đó kh năng t vong trung
bình cao đến 90%
Trang 3 / 4 Đề 1
Hu qu do virus gây ra (bao gm c t vong) khi b nhim có th được gim bt bng cách tiêm
vaccine phòng nga. Nếu tiêm vaccine s làm thay đổi xác sut gp triu chng nng/nh/không
triu chng/t vong như sau (theo chiều hướng có li)
Không triu
chng
Triu chng
nh
Triu chng nng
T vong
Cao
70%
25%
5%
40%
Trung Bình
20%
50%
30%
60%
Thp
10%
40%
50%
80%
1) Áp dng kiến thc Lập trình hướng đối tượng (kế thừa, đa hình), v sơ đồ chi tiết các lp
đối tượng được mô t trong đề bài (1.5đ)
Viết chương trình mô phỏng thc nghim dch t hc thc hin các yêu cu sau:
2) Nhp danh sách N vt ch (N<=10000). Mi vt ch được gn s (là mt chuỗi) để
nhn din theo dõi. Sau đó, cho tng vt ch trong danh sách nhim tt c 3 chng virus
k trên (Covid-19, Ebola, HIV). (1.5đ)
3) In ra các vt ch t các triu chng ca tng vt ch (nếu có), cũng như cho
biết vt ch có b t vong hay không. (1.0đ)
4) Nhp danh sách M vt ch mới (trong đó M = N trước đó). Tiêm vaccine cho c 3 loi
virus. Cho tng vt ch nhim c 3 loi virus. In ra s ng vt ch gp triu chng nng
(ca bt k virus nào b nhim), s ng vt ch t vong. (1.0đ)
LƯU Ý: Giả định đã hàm double RandomDouble() để phát sinh mt s double ngu nhiên
trong khong t 0 đến 1.0
Duyt đ Khoa/B Môn Giáo viên ra đ
Trang 4 / 4 Đề 1
-----------------------------------------------------------------------------------------------------------
----
Bng chun đu ra môn hc:
CĐRMH
Mô t CĐRMH
G2.1
Hiu s dng ngôn ng lập trình C++ đ gii quyết mt s vấn đề n bản
trong lp trình hướng đối tượng
G2.2
Nm vng các khái nimkiến thc tng quan v lập trình theo phương pháp
hướng đối tượng. Hiu rõ và vn dng tốt các đặc tính trừu tượng, đóng gói, kế
thừa, đa hình.
G3.2
Hiu thấu đáo các vấn đề th xây dng các ng dụng đáp ng tính tái s
dng cao, d dàng m rng. Có kh năng phân tích duy cho bài toán thc
tế theo phương pháp hướng đối tượng.
G6.1
kh năng hiểu giải thích được các thut ng tiếng Anh trong lp trình
hướng đối tượng.

Preview text:

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐỀ THI CUỐI HỌC KỲ: II (2023-2024)
KHOA CÔNG NGHỆ PHẦN MỀM
MÔN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Đề 01 Thời gian: 90 phút
(Sinh viên không được sử dụng tài liệu)
HỌ VÀ TÊN SV: …………………………………… CÁN BỘ COI THI
MSSV: ……………………………………………….
STT: ………………………………………………….
PHÒNG THI:…..…………………………………… CÂU HỎI TỰ LUẬN
Câu 1 (2 điểm) (G2.2, G6.1)
Sinh viên bắt buộc chọn câu a hoặc câu b để làm bài cho câu 1 a.
- Khi định nghĩa một lớp đối tượng trong ngôn ngữ C++, trình biên dịch tự tạo lập những
phương thức thiết lập hay còn gọi là phương thức khởi tạo (Constructor) nào? (1.0đ)
- Hãy trình bày đặc điểm của các loại phương thức thiết lập nêu trên (1.0đ). b.
- Phân biệt Lớp thông thường (class) và Lớp cơ sở trừu tượng (abstract class)? (1.0đ)
- Lớp cơ sở trừu tượng được cài đặt trong C++ như thế nào? (1.0đ)
Câu 2 (3 điểm) (G2.1, G6.1)
Cho đoạn chương trình tính toán với lớp đối tượng ngày tháng năm (cNgay) như sau. Sinh viên
định nghĩa lớp cNgay thích hợp để chương trình không bị lỗi biên dịch và chạy đúng. Lưu ý rằng
không được chỉnh sửa hàm main. void main() {
cNgay ng1; // ng1 sẽ có giá trị ngày 1 tháng 1 năm 1
cNgay ng2(2017, 1, 7); // ng2 sẽ có giá trị ngày 7 tháng 1 năm 2017 cin>>ng1; int kq = ng1.SoSanh(ng2); if(kq == -1)
cout << "Ngay 1 truoc ngay 2" << endl; else if (kq == 0)
cout << "Ngay 1 va ngay 2 la cung 1 ngay" << endl; else
cout << "Ngay 1 sau ngay 2" << endl; }
Trang 1 / 4 – Đề 1
Câu 3 (5 điểm) (G3.2, G6.1)
LƯU Ý: Các thông tin trong đề chỉ mô phỏng các thông tin y học với mục tiêu để sinh viên vận
dụng kiến thức lập trình hướng đối tượng. Do vậy, các thông tin trong đề KHÔNG nhất thiết phải
đúng với các thông tin y học hiện tại. Sinh viên cần bám sát các mô tả trong đề thi để làm bài,
không vận dụng thêm bất kỳ kiến thức y khoa, phổ thông, thời sự nào khác để làm bài.
Có rất nhiều chủng virus sống trên các vật chủ là các sinh vật sống khác kể cả loài người. Khi
nhiễm lên vật chủ, một loại virus có thể gây hậu quả từ tử vong, các triệu chứng nặng, các triệu
chứng nhẹ hoặc không triệu chứng gì tùy thuộc vào khả năng miễn dịch của vật chủ.
Khả năng miễn dịch của vật chủ đối với các loại virus ở ba mức: thấp, trung bình và cao.
Nó sẽ ảnh hưởng đến xác suất gặp các triệu chứng nặng, nhẹ, không có triệu chứng hoặc xác
suất tử vong như bảng sau: Không triệu Triệu chứng Triệu chứng Tử vong chứng nhẹ nặng Cao 50% 35% 15% 50% Trung Bình 10% 40% 50% 70% Thấp 5% 15% 80% 100%
 Xác suất tử vong ở bảng trên được hiểu là xác suất dựa trên xác suất tử vong trung bình của
từng loại virus. Chẳng hạn có một virus có xác suất tử vong trung bình là 50% và nhiễm lên
vật chủ có khả năng miễn dịch trung bình thì xác suất tử vong cuối cùng sẽ là : 70% x 50% = 35%
Trong những năm 2019 đến nay, dòng virus Corona mới - tên chính thức là SARS-CoV-2 xuất
hiện đã gây ra bao hậu quả tàn khốc cho khắp thế giới với hơn chục triệu người nhiễm bệnh và
hơn nửa triệu người tử vong. Triệu chứng nhẹ của Covid-19 giống như cảm cúm thông thường
như sốt, ho, mất vị giác trong vài ngày rồi khỏi. Triệu chứng nặng của Covid-19 bao gồm sốt
cao, ho khan, khó thở và đôi lúc kèm theo đau đầu dữ dội. Tuy nhiên, Covid-19 gây tử vong với
xác suất trung bình khá thấp là 3-5%
Một dòng virus chết chóc khác là Ebola, có khả năng gây tử vong với tỷ lệ trung bình lên đến
50%. Triệu chứng nhẹ của Ebola trong vòng 2-3 tuần đầu bao gồm sốt, đau họng, đau cơ và đau
đầu. Sau đó, nếu không may, người bệnh có thể gặp các triệu chứng nặng như bị nôn mửa, tiêu
chảy và nặng nhất là xuất huyết cả ngoài lẫn bên trong.
Virus HIV tấn công hệ miễn dịch của con người, làm suy yếu nó để các virus/bệnh khác có cơ
hội trỗi dậy. HIV chỉ gây các triệu chứng nhẹ giống cảm sốt trong thời gian ủ bệnh (từ 3 đến 5
năm). Nếu không may mắn được miễn dịch, đến giai đoạn AIDS, giai đoạn hệ miễn dịch đã bị
suy yếu đáng kể, người bệnh sẽ gặp các triệu chứng nặng như mệt mỏi cực độ không giải thích
được, sưng hạch kéo dài, lở loét, viêm phổi, tiêu chảy nặng và sau đó là khả năng tử vong trung bình cao đến 90%
Trang 2 / 4 – Đề 1
Hậu quả do virus gây ra (bao gồm cả tử vong) khi bị nhiễm có thể được giảm bớt bằng cách tiêm
vaccine phòng ngừa. Nếu tiêm vaccine sẽ làm thay đổi xác suất gặp triệu chứng nặng/nhẹ/không
triệu chứng/tử vong như sau (theo chiều hướng có lợi) Không triệu Triệu chứng Triệu chứng nặng Tử vong chứng nhẹ Cao 70% 25% 5% 40% Trung Bình 20% 50% 30% 60% Thấp 10% 40% 50% 80%
1) Áp dụng kiến thức Lập trình hướng đối tượng (kế thừa, đa hình), vẽ sơ đồ chi tiết các lớp
đối tượng được mô tả trong đề bài (1.5đ)
Viết chương trình mô phỏng thực nghiệm dịch tể học thực hiện các yêu cầu sau:
2) Nhập danh sách N vật chủ (N<=10000). Mỗi vật chủ được gắn mã số (là một chuỗi) để
nhận diện theo dõi. Sau đó, cho từng vật chủ trong danh sách nhiễm tất cả 3 chủng virus
kể trên (Covid-19, Ebola, HIV). (1.5đ)
3) In ra mã các vật chủ và mô tả các triệu chứng của từng vật chủ (nếu có), cũng như cho
biết vật chủ có bị tử vong hay không. (1.0đ)
4) Nhập danh sách M vật chủ mới (trong đó M = N trước đó). Tiêm vaccine cho cả 3 loại
virus. Cho từng vật chủ nhiễm cả 3 loại virus. In ra số lượng vật chủ gặp triệu chứng nặng
(của bất kỳ virus nào bị nhiễm), số lượng vật chủ tử vong. (1.0đ)
LƯU Ý: Giả định đã có hàm double RandomDouble() để phát sinh một số double ngẫu nhiên
trong khoảng từ 0 đến 1.0
Duyệt đề Khoa/Bộ Môn Giáo viên ra đề
Trang 3 / 4 – Đề 1
----------------------------------------------------------------------------------------------------------- ----
Bảng chuẩn đầu ra môn học: CĐRMH Mô tả CĐRMH
Hiểu và sử dụng ngôn ngữ lập trình C++ để giải quyết một số vấn đề căn bản G2.1
trong lập trình hướng đối tượng
Nắm vững các khái niệm và kiến thức tổng quan về lập trình theo phương pháp G2.2
hướng đối tượng. Hiểu rõ và vận dụng tốt các đặc tính trừu tượng, đóng gói, kế thừa, đa hình.
Hiểu thấu đáo các vấn đề và có thể xây dựng các ứng dụng đáp ứng tính tái sử G3.2
dụng cao, dễ dàng mở rộng. Có khả năng phân tích và tư duy cho bài toán thực
tế theo phương pháp hướng đối tượng.
Có khả năng hiểu và giải thích được các thuật ngữ tiếng Anh trong lập trình G6.1 hướng đối tượng.
Trang 4 / 4 – Đề 1