Câu 1) Cho biết kế thừa là gì? Khi nào nên dùng kế thừa, khi nào không nhất thiết dùng kế thừa, cho ví dụ thể hiện 2 trường hợp trên. Câu 2) Cho biết lớp ảo là gì? Khi nào nên dùng lớp ảo, khi nào không nhất thiết dùng lớp ảo, cho ví dụ thể hiện 2 trường hợp trên. Câu 3) Cho biết tính đóng gói trong hướng đối tượng là gì? Cho ví dụ. Câu 4) Phân biệt Class và object, cho ví dụ thực tế. Câu 5) Bộ khởi tạo (phương thức thiết lập) là gì, vai trò của bộ khởi tạo, cho ví dụ Câu 6) Bộ phá huỷ (phương thức huỷ bỏ) là gì, vai trò của bộ phá huỷ, cho ví dụ Câu 7) Tính đa hình là gì, cho một ví dụ cụ thể viết bằng mã. Câu 8) Phân biệt giữa overload và override, cho ví dụ mô tả. Câu 9) Hàm bạn được sử dụng trong trường hợp nào? Giữa hàm bạn và lớp bạn khác nhau ở điểm nào? Cho ví dụ minh hoạ CÂU 10) Trong ngôn ngữ C++, liệt kê tất cả các trường hợp mà hàm thiết lập sao chép (copy constructor) được tự động thực hiện? Khi nào bắt buộc phải cài đặt tường minh hàm thiết lập sao chép?
Trang 1ĐỀ CƯƠNG ÔN TẬP
MÔN LTHĐT I/ Phần lý thuyết
Câu 1)
Cho biết kế thừa là gì? Khi nào nên dùng kế thừa, khi nào không nhất thiết dùng kế thừa, cho
ví dụ thể hiện 2 trường hợp trên
Câu 2)
Cho biết lớp ảo là gì? Khi nào nên dùng lớp ảo, khi nào không nhất thiết dùng lớp ảo, cho ví
dụ thể hiện 2 trường hợp trên
Câu 3)
Cho biết tính đóng gói trong hướng đối tượng là gì? Cho ví dụ
Câu 4)
Phân biệt Class và object, cho ví dụ thực tế
Câu 5)
Bộ khởi tạo (phương thức thiết lập) là gì, vai trò của bộ khởi tạo, cho ví dụ
Câu 6)
Bộ phá huỷ (phương thức huỷ bỏ) là gì, vai trò của bộ phá huỷ, cho ví dụ
Câu 7)
Tính đa hình là gì, cho một ví dụ cụ thể viết bằng mã
Câu 8)
Phân biệt giữa overload và override, cho ví dụ mô tả
Câu 9)
Hàm bạn được sử dụng trong trường hợp nào? Giữa hàm bạn và lớp bạn khác nhau ở điểm nào? Cho ví dụ minh hoạ
CÂU 10)
Trong ngôn ngữ C++, liệt kê tất cả các trường hợp mà hàm thiết lập sao chép (copy constructor) được tự động thực hiện?
Khi nào bắt buộc phải cài đặt tường minh hàm thiết lập sao chép?
CÂU 11)
Hãy nêu sự khác nhau giữa Overload và Override
CÂU 12)
Cho biết hàm khởi tạo (constructor) là gì? tác dụng của nó? Thế nào là contructor chuẩn? có mấy loại constructor chuẩn?
Các đối tượng của lớp thừa kế đơn được thiết lập và hủy bỏ theo thứ tự như thế nào ?
Trang 2CÂU 13)
Hàm ảo là gì? thừa kế ảo là gì? Khi nào thì nên sử dụng hàm ảo? Thế nào là hàm ảo thuần túy?
CÂU 14)
Thế nào là tính đóng gói? Lợi ích của tính đóng gói trong lập trình hướng đối tượng?
CÂU 15)
Thế nào là đa năng hóa toán tử? Trong lập trình hướng đối tượng sử dụng C++,
những toán tử nào không thể đa năng hóa? Viết cú pháp khai báo đa năng hóa toán tử
II/ Phần bài tập
Câu 1)
Một cửa hàng cần quản lý hoạt động bán hàng theo các quy định sau:
+ Một mặt hàng có thể thuộc một trong các loại hàng sau
- Hàng thực phầm: Mã số, Tên, đơn vị tính, số lượng, đơn giá, ngày sản xuất, ngày hết hạn
- Hàng gia dụng: Mã số, tên, đơn vị tính, số lượng, đơn giá, bảo hành
- Hàng quần áo giày dép: Mã số, tên, đơn vị tính, số lượng, đơn giá, kích
cỡ, màu sắc + Một hóa đơn chứa các thông tin: Mã hóa đơn, Ngày lập, tên khách hàng, địa chỉ, thuế VAT và danh mục các mặt hàng được mua ( tối đa 10 mặt hàng)
Yêu cầu:
+ Thiết kế các lớp đối tượng cho bài toán trên, với mỗi đối tượng hãy chỉ ra:
- các thuộc tính
- các phương thức ( chỉ nêu tên phương thức và mục đích, không cài đặt)
+ Vẽ mô hình các lớp đối tượng và quan hệ giữa chúng (nếu có)
+ Dùng ngôn ngữ C++, cài đặt các lớp, lưu ý sinh viên chỉ cài đặt các thuộc tính và các prototype cho các phương thức, không cài đặt phương thức
+ Hãy cài đặt phương thức tính trị giá cho hóa đơn
Câu 2)
Công ty XYZ quản lý việc mua hàng của 3 loại khách hàng:
- Loại A: Khách hàng bình thường (gồm x khách hàng):
Số tiền khách hàng trả = Số lượng hàng * đơn giá hàng + Thuế VAT (10%)
- Loại B: Khách hàng thân thiết (gồm y khách hàng):
Phần trăm khuyến mãi = MAX( Số năm thân thiết * 5%, 50%)
Số tiền khách hàng trả = (Số lượng hàng * đơn giá hàng ) * (100% - Phần trăm khuyến mãi) +
Thuế VAT (10%)
- Loại C: Khách hàng đặc biệt (gồm z khách hàng):
Trang 3Số tiền khách hàng trả = (Số lượng hàng * đơn giá hàng) *50% + Thuế VAT (10%)
Yêu cầu:
+ Thiết kế các lớp đối tượng cho bài toán trên, với mỗi đối tượng hãy chỉ ra:
- các thuộc tính
- các phương thức ( chỉ nêu tên phương thức và mục đích, không cài đặt)
+ Vẽ mô hình các lớp đối tượng và quan hệ giữa chúng (nếu có)
+ Dùng ngôn ngữ C++, cài đặt các lớp, lưu ý sinh viên chỉ cài đặt các thuộc tính và các prototype cho các phương thức, không cài đặt phương thức
+ Hãy cài đặt phương thức tính doanh thu của công ty
Câu 3)
Hàng đợi là một danh sách hoạt động theo nguyên tắc “vào trước ra trước” (FIFO) Có thể cài đặt hàng đợi như một danh sách liên kết đơn với thao tác thêm phần tử vào hàng đợi, lấy phần tử từ hàng đợi lần lượt được xử lý như thêm phần tử vào cuối danh sách, lấy phần tử ở đầu danh sách
Ngăn xếp là một danh sách hoạt động theo nguyên tắc “vào sau ra trước” (LIFO) Có thể cài đặt ngăn xếp như một danh sách liên kết đơn với thao tác thêm phần tử vào đầu danh sách, lấy phần tử ở đầu danh sách
Yêu cầu:
+ Thiết kế các lớp đối tượng cho bài toán trên, với mỗi đối tượng hãy chỉ ra:
- các thuộc tính
- các phương thức ( chỉ nêu tên phương thức và mục đích, không cài đặt)
+ Vẽ mô hình các lớp đối tượng và quan hệ giữa chúng (nếu có)
+ Dùng ngôn ngữ C++, cài đặt các lớp, lưu ý sinh viên chỉ cài đặt các thuộc tính và các prototype cho các phương thức, không cài đặt phương thức
+ Hãy cài đặt phương thức sao chép giá trị từ một hàng đợi vào một ngăn xếp
Câu 4)
Một công ty kinh doanh địa ốc cần xây dựng chương trình quản lý thông tin về các khu đất và căn hộ do công ty cung ứng với các thông tin cần quản lý như sau:
- Khu đất : Địa điểm, giá bán, diện tích
- Căn hộ (có 2 loại) :
* Nhà sân vườn : Địa điểm, giá bán, diện tích xây dựng, diện tích sân vườn
* Nhà phố : Địa điểm, giá bán, diện tích xây dựng, số tầng
Yêu cầu:
+ Thiết kế các lớp đối tượng cho bài toán trên, với mỗi đối tượng hãy chỉ ra:
- các thuộc tính
- các phương thức ( chỉ nêu tên phương thức và mục đích, không cài đặt)
+ Vẽ mô hình các lớp đối tượng và quan hệ giữa chúng (nếu có)
+ Dùng ngôn ngữ C++, cài đặt các lớp, lưu ý sinh viên chỉ cài đặt các thuộc tính và các prototype cho các phương thức, không cài đặt phương thức
+ Hãy cài đặt phương thức hiển thị thông tin theo từng phân loại
Trang 4Ghi chú :
* Chỉ dùng một danh sách để quản lý các đối tượng
* Số lượng đối tượng cần quản lý không quá 50
Câu 5)
Cho N hình, gồm các loại hình: tam giác, chữ nhật, hình vuông, hình tròn
Các hình được mô tả với các thông số như sau:
- Hình tam giác: ký hiệu là ‘G’ kèm theo tọa độ 3 đỉnh.
- Hình chữ nhật: ký hiệu là ‘C’ kèm theo tọa độ góc trái trên và chiều dài (theo trục Ox)
và chiều rộng (theo trục Oy)
- Hình vuông: ký hiệu là ‘V’ kèm theo tọa độ góc trái trên và chiều dài cạnh.
- Hình tròn: ký hiệu là ‘T’ kèm theo tọa độ tâm và bán kính.
Mỗi tọa độ được xác định bởi hai số nguyên
Yêu cầu:
+ Thiết kế các lớp đối tượng cho bài toán trên, với mỗi đối tượng hãy chỉ ra:
- các thuộc tính
- các phương thức ( chỉ nêu tên phương thức và mục đích, không cài đặt)
+ Vẽ mô hình các lớp đối tượng và quan hệ giữa chúng (nếu có)
+ Dùng ngôn ngữ C++, cài đặt các lớp, lưu ý sinh viên chỉ cài đặt các thuộc tính và các prototype cho các phương thức, không cài đặt phương thức
+ Hãy cài đặt phương thức tìm hình chữ nhật nhỏ nhất bao quanh N hình đã cho xác định bởi tọa độ góc trái trên và chiều dài, chiều rộng của hình chữ nhật đó
Câu 6)
Khách sạn SOFITEL có 3 loại phòng với doanh thu phòng của tháng được tính như sau:
- Loại Deluxe: doanh thu phòng = (Số đêm * 750000 + Phí dịch vụ) * (100% + Phí phục vụ)
- Loại Premium: doanh thu phòng = (Số đêm * 500000 + Phí dịch vụ) * 105%
- Loại Business: doanh thu phòng = Số đêm * 300000
Yêu cầu:
+ Thiết kế các lớp đối tượng cho bài toán trên, với mỗi đối tượng hãy chỉ ra:
- các thuộc tính
- các phương thức ( chỉ nêu tên phương thức và mục đích, không cài đặt)
+ Vẽ mô hình các lớp đối tượng và quan hệ giữa chúng (nếu có)
+ Dùng ngôn ngữ C++, cài đặt các lớp, lưu ý sinh viên chỉ cài đặt các thuộc tính và các prototype cho các phương thức, không cài đặt phương thức
+ Hãy cài đặt phương thức để liệt kê phòng có doanh thu vượt trội Biết phòng có
doanh thu vượt trội thỏa tính chất:
Doanh thu tháng >= Doanh thu tháng trước * 125%
Trang 5Câu 7)
Xây dựng lớp TapHopSoPhuc đặc tả khái niệm tập hợp các số phức (số lượng phần tử không giới hạn trước) với các phương thức:
Thiết lập, thiết lập sao chép, hủy
Thêm phần tử vào tập hợp
Loại phần tử khỏi tập hợp
Kiểm tra phần tử thuộc tập hợp
Kiểm tra là tập con của một tập hợp
Và các phép toán:
Phép gán
Phép toán giao, hội , hiệu hai tập hợp (sử dụng các ký hiệu phép toán &, |, -)
Phép toán xuất/nhập
Ghi chú:
Xem như đã có lớp SoPhuc đặc tả khái niệm số phức với đầy đủ các phương thức cùng các phép toán: so sánh bằng (==), xuất/nhập,……
Sinh viên không cần cài đặt lớp SoPhuc
Câu 8)
Cho lớp Person dùng quản lý thông tin của một người Dữ liệu thành viên của Person gồm có: id(5 ký tự), name (tối đa 50 ký tự), yob(năm sinh), yod(năm mất) Lớp Person có một số
phương thức
Input(), Output(): Nhập, xuất các dữ liệu của Person
Get Age(int year): trả về tuổi của người đó dựa vào năm hiện hành (year) nếu người đó còn sống, hay là tuổi lúc người đó mất nếu yod khác 0
Yêu cầu: Khai báo lớp Person và cài đặt các phương thức trong lớp đó
Câu 9)
Một địa phương cần quản lý nhân khẩu nên đã thiết kế lớp PersonList dùng để quản lý n (0<n<200) người khác nhau Lớp PersonList có một số phương thức sau:
Input(), Ouput(): nhập xuất các dữ liệu của PersonList
Add(Person x): thêm một Person vào trong PersonList
AgedPeople(int year, int age): trả về một PersonList những người có tuổi tính từ năm
"year" mà nhỏ tuổi hơn "age"
Yêu cầu: Khai báo lớp PersonList và cài đặt các phương thức trong lớp đó
CÂU 10)
Một công ty kinh doanh địa ốc cần xây dựng chương trình quản lý thông tin về các khu đất và căn hộ do công ty cung ứng với các thông tin cần quản lý như sau:
- Khu đất : Địa điểm, đơn giá 1 km2 , diện tích
- Căn hộ (có 2 loại) :
* Nhà sân vườn : Địa điểm, đơn giá 1 km2, diện tích xây dựng, diện tích sân vườn
* Nhà phố : Địa điểm, đơn giá 1 km2, diện tích xây dựng, số tầng
a) Hãy thiết kế mô hình theo hướng hướng đối tượng để đáp ứng yêu cầu quản lý của công ty này
b)Viết chương trình đáp ứng yêu cầu của công ty trên Chương trình phải có các chức năng:
+ Nhập thông tin các khu đất, căn hộ
+ Xuất thông tin các khu đất, căn hộ
Trang 6+Tính giá bán của các khu đất và căn hộ biết rằng:
đối với khu đất: giá bán=diện tích x đơn giá 1 km2
đối với nhà sân vườn, giá bán=diện tích xây dựng x đơn giá 1 km2+ diện tích sân vườn
x đơn giá 1 km2 x 50%
Đối với nhà phố: giá bán= diện tích xây dựng x đơn giá 1 km2 x số tầng
CÂU 11)
Công ty XYZ quản lý việc mua hàng của 3 loại khách hàng:
-Loại A: khách hàng bình thường: họ tên, số lượng hàng, đơn giá hàng
Số tiền khách hàng trả=số lượng hàng x đơn giá hàng + thuế VAT 10%
-Loại B: khách hàng thân thiết: họ tên, số lượng hàng, đơn giá , số năm thân thiết, địa chỉ, điện thoại
Phần trăm khuyến mãi=số năm thân thiết x 5%
số tiền khách hàng trả=(số lượng hàng x đơn giá hàng) x (100%-phần trăm khuyến mãi) + thuế VAT 10%
-Loại C: khách hàng đặc biệt: họ tên, số lượng hàng, đơn giá hàng, địa chỉ, điện thoại
số tiền khách hàng trả=(số lượng hàng x đơn giá hàng) x 50% + thuế VAT 10%
a) Hãy thiết kế mô hình theo hướng đối tượng sao cho có thể quản lý việc mua hàng của công ty XYZ
b)Viết chương trình thực hiện các yêu cầu sau:
+Nhập các khách hàng
+In thông tin các khách hàng
+Tính tổng tiền mỗi khách hàng phải trả
CÂU 12)
Một trường đại học muốn quản lý tiền giảng cho các giáo viên và nhân viên như sau: Giảng viên cơ hữu: số CMND, họ tên, trình độ, địa chỉ, điện thoại, số tiết giảng, số tiết nghĩa vụ, tiền chuẩn 1 tiết
Nhân viên : số CMND, họ tên, trình độ, địa chỉ, điện thoại, số tiết giảng, tiền chuẩn 1 tiết
Giảng viên thỉnh giảng: số CMND, họ tên, trình độ, địa chỉ, điện thoại, số tiết giảng, tiền chuẩn 1 tiết, hệ số ở xa
a) Thiết kế các lớp để quản lý theo yêu cầu của trường đại học trên
b)Viết chương trình:
+Nhập thông tin các giảng viên, nhân viên
+Xuất thông tin các giảng viên, nhân viên
+ Tính tiền giảng các giảng viên và nhân viên như sau:
Đối với giảng viên cơ hữu: tiền giảng = (số tiết giảng – số tiết nghĩa vụ) x tiền chuẩn 1 tiết
Đối với nhân viên: tiền giảng = số tiết giảng x số tiền chuẩn 1 tiết
Đối với giảng viên thỉnh giảng = số tiết giảng x số tiền chuẩn 1 tiết x (1+hệ số ở xa)
Trang 7CÂU 13)
Cài đặt lớp Time biểu diễn khái niệm thời điểm có thành phần giờ, phút, giây và các phép toán sau:
-Phép toán +(cộng một Time với một số nguyên giây)
-Phép toán - (trừ 2 Time với nhau)
-Phép toán >>, << (để xuất nhập dữ liệu loại Time),
-Phép toán >, < (so sánh 2 thời gian)
-Hàm để kiểm tra một Time có hợp lệ hay không
Viết hàm main nhập vào thời điểm bắt đầu và thời điểm đến đích của một vận động viện Cho biết thời gian chạy của vận động viên đó Nhập vào thời gian chạy kỷ lục hiện tại So sánh thời gian chạy của vận động viên đó và thời gian chạy kỷ lục hiện tại
để biết vận động viên này có phá kỷ lục hay không
CÂU 14)
Cài đặt lớp TamGiac biểu diễn khái niệm hình tam giác gồm 3 số thực tượng trưng cho 3 cạnh của nó và các hành vi, phép tính sau:
-Kiểm tra 1 tam giác đã cho có hợp lệ hay không (tam giác hợp lệ nếu tổng 2 cạnh bất
kỳ luôn lớn hơn cạnh thứ 3)
-Phép toán >>, << để xuất nhập một tam giác
-Phép toán >, < để so sánh diện tích 2 tam giác
-Kiểm tra xem 1 tam giác là tam giác đều, tam giác cân, tam giác vuông tam giác vuông cân hay tam giác thường
Hãy viết hàm main theo yêu cầu sau:
Nhập vào 2 tam giác Kiểm tra xem chúng có hợp lệ không Nếu hợp lệ, so sánh xem diện tích tam giác nào lớn hơn Kiểm tra xem tam giác có diện tích lớn hơn đó là tam giác gì?
CÂU 15)
Cài đặt lớp hình tròn gồm tọa độ tâm trong mặt phẳng (hoành độ, tung độ) và bán kính với các hành vi như sau:
-Khởi tạo (có tham số và không có tham số)
-Phép toán >>, << để nhập, xuất một đối tượng hình tròn
-Phép toán >, < để so sánh diện tích của 2 đối tượng hình tròn
-Phép toán – để tính hiệu của 2 hình tròn, kết quả trả về là 1 hình tròn với tọa độ tâm là tọa độ trung điểm của tọa độ tâm 2 hình tròn và bán kính là hiệu bán kính của 2 hình tròn đó
Viết hàm main theo yêu cầu sau:
Nhập vào 2 đối tượng hình tròn H1, H2 Tính và in ra thông tin của đối tượng hình tròn H3 với H3 là hiệu của H1 và H2
Mẫu giải bài tập phân tích
CÂU 10)
Một công ty kinh doanh địa ốc cần xây dựng chương trình quản lý thông tin về các khu đất và căn hộ do công ty cung ứng với các thông tin cần quản lý như sau:
Trang 8- Khu đất : Địa điểm, đơn giá 1 km2 , diện tích.
- Căn hộ (có 2 loại) :
* Nhà sân vườn : Địa điểm, đơn giá 1 km2, diện tích xây dựng, diện tích sân vườn
* Nhà phố : Địa điểm, đơn giá 1 km2, diện tích xây dựng, số tầng
a) Hãy thiết kế mô hình theo hướng hướng đối tượng để đáp ứng yêu cầu quản lý của công ty này
b)Viết chương trình đáp ứng yêu cầu của công ty trên Chương trình phải có các chức năng:
+ Nhập thông tin các khu đất, căn hộ
+ Xuất thông tin các khu đất, căn hộ
+Tính giá bán của các khu đất và căn hộ biết rằng:
đối với khu đất: giá bán=diện tích x đơn giá 1 km2
đối với nhà sân vườn, giá bán=diện tích xây dựng x đơn giá 1 km2+ diện tích sân vườn
x đơn giá 1 km2 x 50%
Đối với nhà phố: giá bán= diện tích xây dựng x đơn giá 1 km2 x số tầng
Giải
Câu 10:
1 Thiết kế các lớp đối tượng cho bài toán:
Nêu thiếu đối tượng trừ 0.5 điểm
Thiếu một trong các phương thức trừ 0.25 điểm (nêu tên phương thức và
mục đích, không cài đặt)
o Nhập dữ liệu
o Xuất dữ liệu
o Tính giá bán
Không nêu được phương thức ảo trừ 0.25 điểm
Các lớp đối tượng :
Khu đất:
o Tên lớp : khudat
o Thuộc tính : Địa điểm (chuỗi), đơn giá (số thực), diện tích (số thực)
o Phương thức :
Thiết lập : khudat() ;
Huỷ bỏ: ~khudat() ;
Nhập dữ liệu: virtual void nhap() ;// nhập thông tin khu đất
Xuất dữ liệu: virtual void xuat() ; //in thông tin khu đất
Kiểm tra dữ liệu : int kiemtradulieu() ;//kiểm tra dữ liệu (đơn giá
và diện tích >0)
Tính giá bán : virtual double tinhgiaban() ;
Căn hộ:
o Tên lớp : canho
o Thừa kế : từ lớp khudat
o Thuộc tính : diện tích xây dựng (số thực)
o Phương thức :
Thiết lập : canho() ;
Trang 9 Huỷ bỏ: ~canho() ;
Nhập dữ liệu: virtual void nhap() ;// nhập thông tin căn hộ
Xuất dữ liệu: virtual void xuat() ; //in thông tin căn hộ
Tính giá bán : virtual double tinhgiaban()=0 ;
Nhà phố:
o Tên lớp : nhapho
o Thừa kế : từ lớp canho
o Thuộc tính : số tầng (số nguyên)
o Phương thức :
Thiết lập : nhapho() ;
Huỷ bỏ: ~nhapho() ;
Nhập dữ liệu: void nhap() ;// nhập thông tin nhà phố
Xuất dữ liệu: void xuat() ; //in thông tin nhà phố
Kiểm tra dữ liệu : int kiemtradulieu() ;//kiểm tra dữ liệu (số tầng
>0)
Tính giá bán : double tinhgiaban() ;
Nhà sân vườn:
o Tên lớp : nhasanvuon
o Thừa kế : từ lớp canho
o Thuộc tính : diện tích sân vườn (số thực)
o Phương thức :
Thiết lập : nhasanvuon() ;
Huỷ bỏ: ~nhasanvuon() ;
Nhập dữ liệu: void nhap() ;// nhập thông tin nhà sân vườn
Xuất dữ liệu: void xuat() ; //in thông tin nhà sân vườn
Kiểm tra dữ liệu : int kiemtradulieu() ;//kiểm tra dữ liệu (diện tích sân vườn >0)
Tính giá bán : double tinhgiaban() ;
2 Vẽ mô hình các lớp đối tượng và quan hệ giữa chúng (nếu có)
Vẽ thiếu một đối tượng trừ 0.25 điểm
Không vẽ được mô hình thừa kế trừ 0.25 điểm
Mô hình quan hệ giữa các lớp đối tượng :
Nhansanvuon
dientichsanvuon
Nhap()
Xuat()
Tinhgiaban()
Nhapho
Sotang
Nhap()
Xuat()
Tinhgiaban()
Trang 10Mối quan hệ:
Lớp canho thừa kế từ lớp khudat
Lớp nhapho và nhasanvuon thừa kế từ lớp canho
3 Hiện thực các lớp bằng ngôn ngữ C++ với các phương thức và thủ tục cần thiết để
thể hiện các yêu cầu:
(thiếu một lớp trừ 0.5 điểm, thiếu một phương thức trừ 0.25 điểm, sai quyền truy xuất trừ 0.25 điểm)
Hiện thực các lớp bằng C++
o Lớp khu đất:
Quyền truy xuất: protected cho các thuộc tính, public cho các phương thức
Thuộc tính : char*diadiem ; double dongia,dientich ;
Phương thức:
nhập : virtual void khudat ::nhap() ;
xuất : virtual void khudat ::xuat() ;
tính giá bán : virtual double tinhgiaban() ;
o Lớp căn hộ với các phương thức :
Quyền truy xuất: protected cho các thuộc tính, public cho các phương thức
Thuộc tính : char*diadiem ; double dongia,dientich ;
Phương thức:
nhập : virtual void canho ::nhap() ;
xuất : virtual void canho ::xuat() ;
tính giá bán : virtual double canho ::tinhgiaban() ;
o Lớp nhà phố với các phương thức :
Quyền truy xuất: protected cho các thuộc tính, public cho các phương thức
Thuộc tính : char*diadiem ; double dongia,dientich ;
Phương thức:
nhập : void nhapho ::nhap() ;
xuất : void nhapho ::xuat() ;
tính giá bán : double tinhgiaban() ;
o Lớp khu đất với các phương thức :
Quyền truy xuất: protected cho các thuộc tính, public cho các phương thức
Thuộc tính : char*diadiem ; double dongia,dientich ;
Phương thức: