Đề thi kết thúc học kỳ I môn Phương pháp lập trình hướng đối tượng - Năm học 2017-2018 - Đại học Khoa học Tự nhiên thành phố Hồ Chí Minh
MÃ LƯU TRỮ
(do phòng KT-ĐBCL ghi)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN, ĐHQG-HCM
ĐỀ THI KẾT THÚC HỌC PHẦN
Học kỳ I – Năm học 2017-2018
Tên học phần:
Phương pháp Lập trình Hướng đối tượng
Mã HP:
Thời gian làm bài: 100 phút
Ngày thi:
Ghi chú: Sinh viên [¨được phép / þ không được phép] sử dụng tài liệu khi làm bài.
Lớp:
MSSV:
Họ tên:
Câu 1 (5.0 điểm):
Cho đoạn mã nguồn C++ cài đặt lớp đối tượng biểu diễn số thực MyFloat như sau:
#include <iostream>
using namespace std;
class MyFloat {
protected:
char* mData;
public:
MyFloat(float v) {
mData = new char[10];
snprintf(mData, sizeof(mData), "%f", v);
}
operator char *() const {
return mData;
}
static MyFloat ValueOf(float value) {
MyFloat temp(value);
return temp;
}
};
a) Cài đặt của lớp MyFloat đã an toàn để sử dụng chưa? Hãy giải thích lý do.
Nếu chưa an toàn, hãy bổ sung các phương thức cần thiết để lớp MyFloat an toàn.
b) Hãy cài đặt thêm toán tử nhập >> và xuất << cho lớp MyFloat.
c) Cho mã nguồn C++ cài đặt lớp đối tượng biểu diễn số phức MyComplex như sau:
class MyComplex: public MyFloat {
private:
char* mImaginary;
// thuộc tính biểu diễn phần ảo trong Số Phức
};
Hãy cài đặt thêm toán tử gán và phương thức khởi tạo hai tham số (phần thực và
phần ảo, có kiểu float) cho lớp MyComplex.
d) Hằng số PI = 3.14 là một số đặc biệt của MyFloat. Hãy đề xuất một cách cài đặt lớp
PI kế thừa từ MyFloat và chỉ được phép tạo duy nhất một thể hiện (đối tượng) trên
lớp đối tượng này.
(Đề thi gồm 2 trang)
Họ tên người ra đề/MSCB: .........................................................Chữ ký: ................. [Trang 1/2]
Họ tên người duyệt đề: ..............................................................Chữ ký:..................
MÃ LƯU TRỮ
(do phòng KT-ĐBCL ghi)
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN, ĐHQG-HCM
ĐỀ THI KẾT THÚC HỌC PHẦN
Học kỳ I – Năm học 2017-2018
e) Cho hàm main như sau:
int main() {
char* sValue = MyFloat::ValueOf(123.0);
cout << sValue;
return 0;
}
Hãy liệt kê theo thứ tự thời gian các phương thức được gọi trong lớp MyFloat.
Giải thích.
Câu 2 (5.0 điểm):
Công ty phát triển phần mềm Alpha có nhu cầu quản lý các nhân viên văn phòng gồm:
Manager (Nhân viên quản lý), Programmer (Nhân viên lập trình), Designer (Nhân viên thiết
kế), Tester (Nhân viên kiểm thử). Thông tin cơ bản các nhân viên đều có: Mã nhân viên, tên
nhân viên, ngày tháng năm sinh, địa chỉ, hệ số lương, ngày bắt đầu làm việc.
Lương của từng loại nhân viên được tính như sau:
- Manager: Lương cơ bản * Hệ số lương.
- Programmer: Lương cơ bản * Hệ số lương + Overtime (tiền làm ngoài giờ).
- Designer: Lương cơ bản * Hệ số lương + Bonus (Tiền thưởng thêm).
- Tester: Lương cơ bản * Hệ số lương + Error * 200.000 (Error là số lỗi quan trọng của
phần mềm mà nhân viên này phát hiện được trong tháng).
Áp dụng tính kế thừa và đa hình, hãy vẽ sơ đồ lớp và viết chương trình C++ thực hiện các
chức năng sau:
- Yêu cầu cơ bản:
a) Nhập danh sách nhân viên của công ty (lưu trong một mảng duy nhất).
b) Tính tổng số tiền lương công ty phải trả cho toàn bộ nhân viên trong một tháng.
- Yêu cầu nâng cao:
Mỗi Manager có một danh sách các nhân viên cấp dưới mà mình quản lý trực tiếp.
Nhân viên cấp dưới có thể là: Programmer, Designer, Tester, hoặc Manager khác.
Hãy chỉnh sửa lại sơ đồ lớp và chương trình để đếm xem công ty có bao nhiêu
Manager quản lý trực tiếp hoặc gián tiếp nhiều hơn 10 nhân viên cấp dưới.
Lưu ý: sơ đồ lớp phải thể hiện được các lớp, các thuộc tính và phương thức trong từng lớp,
và mỗi quan hệ giữa các lớp.
(Đề thi gồm 2 trang)
Họ tên người ra đề/MSCB: .........................................................Chữ ký: ................. [Trang 2/2]
Họ tên người duyệt đề: ..............................................................Chữ ký:..................
Bạn đang xem tài liệu "Đề thi kết thúc học kỳ I môn Phương pháp lập trình hướng đối tượng - Năm học 2017-2018 - Đại học Khoa học Tự nhiên thành phố Hồ Chí Minh", để 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:
de_thi_ket_thuc_hoc_ky_i_mon_phuong_phap_lap_trinh_huong_doi.pdf

