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ả.
13 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 4864 | Lượt tải: 5
Bạn đang xem nội dung tài liệu Đề cương ôn tập môn lập trình hướng đối tượng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐỀ 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 ?
CÂ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):
Số 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
Ghi 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%
Câ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 0Yê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ộ.
+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)
CÂ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:
- 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:
YC
Nội dung
Điểm
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)
Nhập dữ liệu
Xuất dữ liệu
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:
Tên lớp : khudat
Thuộc tính : Địa điểm (chuỗi), đơn giá (số thực), diện tích (số thực)
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ộ:
Tên lớp : canho
Thừa kế : từ lớp khudat
Thuộc tính : diện tích xây dựng (số thực)
Phương thức :
Thiết lập : canho() ;
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ố:
Tên lớp : nhapho
Thừa kế : từ lớp canho
Thuộc tính : số tầng (số nguyên)
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:
Tên lớp : nhasanvuon
Thừa kế : từ lớp canho
Thuộc tính : diện tích sân vườn (số thực)
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
Khudat
Diadiem
Dientich
Dongia
Nhap()
Xuat()
Tinhgiaban()
Canho
Dientichxaydung
Nhap()
Xuat()
Tinhgiaban()
Nhansanvuon
dientichsanvuon
Nhap()
Xuat()
Tinhgiaban()
Mô hình quan hệ giữa các lớp đối tượng :
Nhapho
Sotang
Nhap()
Xuat()
Tinhgiaban()
Mố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++
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() ;
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() ;
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() ;
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:
nhập : void nhasanvuon::nhap() ;
xuất : void nhasanvuon::xuat() ;
tính giá bán : double nhasanvuon::tinhgiaban() ;
Viết các thủ tục dùng chung thể hiện các yêu cầu:
Nhập thông tin các khu đất, căn hộ.
void nhapthongtin(khudat*[], int &sodoituong){
int loaidoituong=0;
cout>sodoituong;
for(int i=0;i<sodoituong;i++){
cout<<”\nNhập thông tin đối tượng thứ ”<<i<<endl;
cout>loaidoituong;
switch case (loaidoituong){
case 1: khudat[i]=new khudat(); break;
case 2: khudat[i]=new nhapho(); break;
case 3: khudat[i]=new nhasanvuon(); break;
}
khudat[i]->nhap();
}
}
Xuất thông tin các khu đất, căn hộ.
void xuatthongtin(khudat*[], int sodoituong){
cout<<”\nDanh sách đối tượng:”;
for(int i=0;i<sodoituong;i++){
cout<<”\nThông tin đối tượng thứ ”<<i<<endl;
khudat[i]->xuat();
}
}
Tính giá bán các khu đất, căn hộ.
void tinhgiaban(khudat*[], int sodoituong){
cout<<”\nDanh sách giá bán các khu đất và căn hộ:”;
for(int i=0;i<sodoituong;i++){
cout<<”\nThông tin đối tượng thứ ”<<i<<endl;
khudat[i]->xuat();
khudat[i]->tinhgiaban();
}
}
Các file đính kèm theo tài liệu này:
- Đề cương ôn tập môn lập trình hướng đối tượng.doc