Bài tập kỹ thuật lập trình C++ 109.5 KB
Bài
tập kỹ thuật lập trình C++
đề cơng ôn tập môn lập
trình hớng đối tợng với c++
Phần 1: đối tợng và lớp
Câu 1.1: a. Xây dựng một lớp Complex mô tả các đối tợng số phức, lớp gồm các thành phần:
- Các thuộc tính a, b là các số thực mô tả phần thực và phần ảo của số phức.
- Hàm thiết lập.
- Hàm nhập số phức.
- Hàm in số phức dạng a+ib.
- Khai báo toán tử + là hàm bạn của lớp số phức.
- Khai báo toán tử - là hàm bạn của lớp số phức.
b. Viết toán tử + để tính tổng 2 số phức, toán tử - để tính hiệu 2 số phức .
c. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo hai đối tợng số phức x, y. Tính và in ra tổng,
hiệu 2 số phức đó.
Câu 1.2: a. Xây dựng một lớp Complex mô tả các đối tợng số phức, lớp gồm các thành phần:
- Các thuộc tính a, b là các số thực mô tả phần thực và phần ảo của số phức.
- Hàm thiết lập.
- Hàm nhập số phức.
- Hàm in số phức dạng a+ib.
- Toán tử = để gán 2 số phức
- Toán tử + để cộng 2 số phức.
b. Viết chơng trình nhập một mảng n số phức, tính và in ra màn hình tổng các số phức đã nhập.
Câu 1.3: a. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm nhập ngày, tháng, năm (không cần biện luận dữ liệu).
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
- Khai báo toán tử >= là hàm bạn với lớp dùng để so sánh 2 đối tợng Mydate.
b. Viết hàm tự do định nghĩa toán tử >= để so sánh hai đối tợng Mydate.
c. Viết chơng trình nhập dữ liệu để tạo một mảng 5 đối tợng kiểu Mydate. Tìm và hiển thị đối tợng
có thời gian lớn nhất.
Câu 1.4: a. Tạo lớp Vector để mô tả các đối tợng vector, lớp gồm các thành phần:
- Số phần tử: n
- Một con trỏ *v trỏ đến các phần tử dữ liệu.
- Hàm thiết lập một tham số dùng để cấp phát bộ nhớ cho các phần tử dữ liệu.
- Hàm thiết lập sao chép.
- Hàm huỷ bỏ.
- Hàm nhập các phần tử của véc tơ.
- Hàm hiển thị các phần tử dữ liệu của vector.
- Toán tử = để gán một vector cho một vector.
- Khai báo toán tử + là hàm bạn của lớp Vector, dùng để cộng hai vector.
b. Viết toán tử + để cộng hai vector, kết quả trả về là một vector.
c. Viết chơng trình nhập vào hai vector a, b. In ra màn hình các phần tử dữ liệu của vector a, vector b
và vector a+b.
Câu 1.5: a. Xây dựng 1 lớp PS mô tả các đối tợng phân số, lớp gồm các thành phần:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm nhập phân số.
- Hàm in phân số dạng tử số/mẫu số.
- Hàm rút gọn phân số.
- Toán tử + dùng để tính tổng 2 phân số, kết quả trả về một phân số tối giản.
b. Viết chơng trình nhập một mảng n đối tợng phân số, tính và in ra màn hình tổng của mảng đã
nhập.
1
Câu 1.6: a. Xây dựng 1 lớp PS mô tả các đối tợng phân số, lớp gồm các thành phần:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm nhập phân số.
- Hàm in phân số dạng tử số/mẫu số.
- Toán tử > để so sánh 2 đố tợng phân số.
b. Viết chơng trình nhập một mảng n phân số, sắp xếp mảng phân số tăng dần và in ra mảng đã sắp.
Câu 1.7: a. Xây dựng 1 lớp PS mô tả các đối tợng phân số, lớp gồm các thành phần:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm nhập phân số.
- Hàm in phân số dạng tử số/mẫu số.
- Khai báo toán tử >= là hàm bạn của lớp phân số dùng để so sánh 2 phân số.
b. Viết các toán tử >= để so sánh 2 phân số.
c. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo một mảng 5 phân số. Tìm và in ra phân số
lớn nhất, phân số bé nhất.
Câu 1.8: a. Tạo lớp Vector để mô tả các đối tợng vector, lớp gồm các thành phần:
- Số phần tử: n
- Một con trỏ *v trỏ đến các phần tử dữ liệu.
- Hàm thiết lập
- Hàm thiết lập sao chép.
- Hàm huỷ bỏ.
- Hàm nhập các phần tử của véc tơ.
- Hàm hiển thị các phần tử dữ liệu của vector.
- Toán tử = để gán một vector cho một vector.
- Khai báo toán tử * là hàm bạn của lớp Vector, dùng để nhân một số thực k với 1 vector.
b. Viết toán tử * để nhân một số thực k với một vector, kết quả trả về là một vector.
c. Viết chơng trình nhập vào một số thực k và một vector a. In ra màn hình các phần tử dữ liệu của
vector a và vector k*a.
Câu 1.9: a.Xây dựng 1 lớp MyDate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm nhập ngày, tháng, năm.
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
- Toán tử > so sánh 2 đối tợng Mydate.
b. Viết chơng trình tạo một mảng n đối tợng kiểu MyDate, hiển thị các đối tợng đã nhập, sắp xếp
các đối tợng tăng dần và in ra các đối tợng đã sắp.
Câu 1.10: a. Tạo lớp Vector để mô tả các đối tợng vector, lớp gồm các thành phần:
- Số phần tử: n
- Một con trỏ *v trỏ đến các phần tử dữ liệu.
- Hàm thiết lập một tham số dùng để khởi tạo n và cấp phát bộ nhớ cho các phần tử dữ liệu.
- Hàm thiết lập sao chép.
- Hàm huỷ bỏ.
- Hàm nhập các phần tử của véc tơ.
- Hàm hiển thị các phần tử dữ liệu của vector.
- Toán tử = để gán một vector cho một vector.
- Viết hàm kiểm tra để kiểm tra xem hai vector có cùng số phần tử hay không?
- Khai báo toán tử + là hàm bạn của lớp Vector, dùng để cộng hai vector cùng số phần tử.
b. Viết toán tử + để cộng hai vector có cùng số phần tử, kết quả trả về là một vector.
c. Viết chơng trình nhập vào hai vector a và b. Dùng hàm kiểm tra để kiểm tra xem hai vector a, b có
cùng số phần tử hay không, nếu đúng thì tính tổng hai vector và hiển thị vector tổng, nếu không thì
có thông báo ra màn hình hai vector a, b không cộng đợc với nhau.
Câu 1.11: a. Xây dựng 1 lớp PS mô tả các đối tợng phân số, lớp gồm các thành phần:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập phân số.
2
- Hàm nhập phân số.
- Viết hàm ớc cung lớn nhất là bạn của lớp PS để tìm ớc chung lớn nhất của hai số nguyên dơng
a, b.
- Viết hàm rút gọn phân số.
- Hàm in phân số dạng tử số/mẫu số.
b. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo 1 mảng 5 phân số. In ra màn hình danh sách
các phân số dới dạng đã rút gọn.
Câu 1.12: a. Xây dựng 1 lớp MyTime mô tả các đối tợng thời gian, lớp gồm các thành phần:
- Các thuộc tính mô tả giờ, phút, giây.
- Hàm thiết lập.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu dạng: gio : phut : giay.
- Khai báo toán tử >= là hàm bạn của lớp MyTime dùng để so sánh 2 đối tuợng MyTime.
b. Viết các toán tử >= để so sánh 2 đối tuợng MyTime.
c. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo một mảng 5 đối tợng MyTime. Tìm và in ra
đối tợng có thời gian lớn nhất, bé nhất.
Câu 1.13: a. Xây dựng 1 lớp Student mô tả các sinh viên của một lớp học, lớp gồm các thành phần:
- Các thuộc tính mô tả họ tên, điểm kỳ 1, điểm kỳ 2, điểm trung bình cả năm. (điểm trung bình
cả năm = (điểm kỳ 1 + 2*điểm kỳ 2)/3).
- Hàm thiết lập.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
- Định nghĩa toán tử > để so sánh hai sinh viên theo tiêu chuẩn điểm trung bình cả năm.
b. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo một mảng 5 sinh viên. Hiển thị danh sách
những sinh viên vừa nhập. Sắp xếp danh sách sinh viên theo thứ tự giảm dần của điểm trung bình cả
năm. Hiển thị danh sách sinh viên sau khi sắp xếp.
Câu 1.14: a. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm nhập ngày, tháng, năm (không cần biện luận dữ liệu).
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
- Xây dựng toán tử = = dùng để so sánh 2 đối tợng Mydate.
b. Viết chơng trình nhập dữ liệu để tạo 1 mảng 5 đối tợng kiểu Mydate và nhập dữ liệu để tạo 1 đối
tợng x có kiểu Mydate. Tìm kiếm và thông báo ra màn hình phần tử x có trong mảng hay không?.
Câu 1.15: a. Tạo lớp Vector để mô tả các đối tợng vector, lớp gồm các thành phần:
- Số phần tử: n
- Một con trỏ *v trỏ đến các phần tử dữ liệu.
- Hàm thiết lập một tham số dùng để khởi tạo n và cấp phát bộ nhớ cho các phần tử dữ liệu.
- Hàm thiết lập sao chép.
- Hàm huỷ bỏ.
- Hàm nhập các phần tử của véc tơ.
- Hàm hiển thị các phần tử dữ liệu của vector.
- Toán tử = để gán một vector cho một vector.
- Khai báo toán tử + là hàm bạn của lớp Vector, dùng để cộng 2 vector.
b. Viết toán tử + để cộng 2 vector, kết quả trả về là một vector.
c. Viết chơng trình nhập vào 2 vector, tính và hiển thị tổng của chúng ra màn hình.
Câu 1.16: a. Xây dựng 1 lớp mô tả các đối tợng phân số, lớp gồm:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm hiển thị phân số.
- Toán tử = = để so sánh 2 đối tợng phân số.
b. Viết chơng trình tạo một mảng n đối tợng phân số. Nhập tiếp một phân số, tìm kiếm phân số đã
nhập có trong mảng hay không ?
3
Câu 1.17: a. Xây dựng một lớp Complex mô tả các đối tợng số phức, lớp gồm các thành phần:
- Các thuộc tính a, b là các số thực mô tả phần thực và phần ảo của số phức.
- Hàm thiết lập.
- Hàm nhập số phức.
- Hàm in số phức dạng a+ib.
- Toán tử = = để so sánh 2 số phức.
b. Viết chơng trình nhập một mảng n số phức. Nhập tiếp một số phức. và tìm số phức đã nhập có
trong mảng số phức hay không ? Nếu có thì hiển thị vị trí của nó có trong mảng.
Câu 1.18: a. Xây dựng 1 lớp Student mô tả các sinh viên của một lớp học, lớp gồm các thành phần:
- Các thuộc tính mô tả họ tên, điểm kỳ 1, điểm kỳ 2.
- Hàm thiết lập.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
- Hàm kiểm tra để kiểm tra xem sinh viên có đạt điểm trung bình cả năm>=5 hay không? (điểm
trung bình cả năm=điểm kỳ 1 + 2*điểm kỳ 2)/3).
b. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo một mảng 5 sinh viên. Hiển thị danh sách
những sinh viên vừa nhập. Sau đó, hiển thị danh sách những sinh viên có điểm trung bình cả năm
>=5.
Câu 1.19: a. Xây dựng 1 lớp PS mô tả các đối tợng phân số, lớp gồm các thành phần:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập phân số.
- Hàm nhập phân số.
- Hàm in phân số dạng tử số/mẫu số.
- Xây dựng toán tử >= dùng để so sánh 2 phân số.
c. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo một mảng 5 phân số. Tìm và in ra phân số
lớn nhất.
Câu 1.20 a. Xây dựng một lớp Complex mô tả các đối tợng số phức, lớp gồm các thành phần:
- Các thuộc tính a, b là các số thực mô tả phần thực và phần ảo của số phức.
- Hàm thiết lập.
- Hàm thiết lập sao chép.
- Hàm nhập số phức.
- Hàm in số phức dạng a+ib.
- Xây dựng toán tử + dùng để tính tổng 2 số phức.
- Xây dựng toán tử - dùng để tính hiệu 2 số phức.
b. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo hai đối tợng số phức x, y. Tính và in ra tổng,
hiệu 2 số phức đó.
4
Phần 2: kế thừa
Câu 2.1: a. Xây dựng 1 lớp MyAttr mô tả các thuộc tính của tệp. Lớp gồm các thành phần:
- Thuộc tính Attr mô tả số hiệu thuộc tính của tệp là một số nguyên.
- Hàm thiết lập.
- Hàm hiển thị số hiệu thuộc tính tệp.
b. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Toán tử > để so sánh 2 đôi tợng Mydate
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
c. Xây dựng 1 lớp Myfile kế thừa từ 2 lớp MyAttr và Mydate và đồng thời bổ sung thêm các thành
phần:
- filename: Mô tả tên tệp, là một xâu không quá 255 ký tự.
- filesize: Mô tả kích thớc tệp, là một số nguyên.
- Hàm thiết lập.
- Hàm hiển thị thông tin, kích thớc, thời gian và số hiệu thuộc tính tệp.
d. Viết chơng trình khai báo một mảng 4 con trỏ đối tợng kiểu Myfile, nhập dữ liệu vào để tạo 4 con
trỏ đối tợng Myfile. Sắp xếp các đối tợng tăng dần theo ngày tháng và in ra các đối tợng đã sắp xếp.
Câu 2.2: a.Xây dựng 1 lớp MyDate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
- Toán tử > so sánh 2 đối tợng Mydate.
b.Xây dựng 1 lớp Person mô tả thông tin về một ngời, lớp kế thừa từ lớp MyDate và bổ sung thêm:
- Name: Mô tả tên của ngời.
- Address: Mô tả địa chỉ của ngời.
- Phone: Mô tả số điện thoại.
- Hàm thiết lập
- Hàm hiển thị thông tin về 1 ngời
c. Xây dựng một lớp Officer mô tả các thông về một cán bộ viên chức, lớp kế thừa từ lớp Person và
bổ sung thêm:
- Salary: Mô tả lơng của cán bộ, là một số thực.
- Hàm thiết lập.
- Hàm hiển thi thông tin về một cán bộ viên chức.
d. Viết chơng trình khai báo một mảng 4 con trỏ đối tợng kiểu Officer, nhập dữ liệu vào để tạo 4 đối
tợng này, sắp xếp theo ngày tháng tăng dần và hiển thị ra màn hình.
Câu 2.3: a. Xây dựng một lớp SV để mô tả các sinh viên trong một Khoa của một Trờng Đại học,
lớp SV gồm các thành phần sau:
- Lop: Mô tả lớp học của sinh viên.
- Hoten: Mô tả họ tên của sinh viên.
- Hàm thiết lập.
- Hàm huỷ bỏ.
- Hàm hiển thị thông tin về một SV.
b. Xây dựng một lớp SVSP để mô tả các sinh viên thuộc hệ s phạm. Lớp đợc kế thừa từ lớp SV và
bổ sung thêm các thành phần sau:
- Dtb: Mô tả điểm trung bình của sinh viên.
- Hocbong: Mô tả học bổng của sinh viên.
- Hàm thiết lập.
- Hàm hiển thị thông tin về một SVSP.
c. Xây dựng một lớp SVCN để mô tả các sinh viên thuộc hệ cử nhân. Lớp đợc kế thừa từ lớp SVSP
và bổ sung thêm các thành phần sau:
- Hocphi: Mô tả học phí của sinh viên cử nhân.
- Hàm thiết lập.
- Hàm hiển thị thông tin về một SVCN.
5
d. Viết chơng trình khai báo một mảng 3 con trỏ đối tợng kiểu SVCN, nhập dữ liệu vào để tạo 3 đối
tợng SVCN. Gọi hàm hiển thị của lớp SVCN thông qua các con trỏ này để in thông tin về một
SVCN ra màn hình.
Câu 2.4: Xây dựng chơng trình quản lý sách và băng video của một cửa hàng, chơng trình gồm:
a. Xây dựng 1 lớp Media mô tả các đối tợng phơng tiện truyền thông, lớp gồm:
- Thuộc tính tên gọi, giá bán.
- Hàm thiết lập hai tham số.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
b. Xây dựng lớp Book mô tả các đối tợng sách. Lớp đợc kế thừa từ lớp Media và bổ sung thêm:
- Thuộc tính mô tả số trang, tác giả.
- Hàm thiết lập.
- Hàm nhập dữ liệu
- Hàm hiển thị dữ liệu.
c. Xây dựng lớp Video mô tả các đối tợng băng video, lớp kế thừa từ lớp Media và bổ sung thêm:
- Thuộc tính thời gian chạy, giá bán.
- Hàm thiết lập.
- Hàm nhập dữ liệu
- Hàm hiển thị dữ liệu.
d. Viết chơng trình khai báo 2 mảng con đối tợng, một mảng gồm các đối tợng sách, một
mảng gồm các đối tợng băng video. Nhập dữ liệu cho các mảng đối tợng, hiển thị dữ liệu của các
đối tợng sách và băng video ra màn hình.
Câu 2.5: a. Xây dựng 1 lớp MyAddress mô tả thông tin về địa chỉ của một con ngời. Lớp gồm các
thành phần:
- Các thuộc tính mô tả Tĩnh và Huyện.
- Hàm thiết lập.
- Hàm hủy bỏ.
- Hàm hiển thị thông tin về Tĩnh và Huyện.
b. Xây dựng một lớp Person mô tả các thông tin về ngời. Lớp đợc kế thừa từ lớp MyAddress và bổ
sung thêm các thành phần:
- Name: Mô tả tên của ngời.
- Phone: Mô tả số điện thoại.
- Hàm thiết lập.
- Hàm hủy bỏ.
c. Xây dựng một lớp Officer mô tả các thông về một cán bộ viên chức, lớp kế thừa từ lớp Person và
bổ sung thêm các thành phần:
- Salary: Mô tả lơng của cán bộ.
- Hàm thiết lập.
- Hàm hiển thị thông tin về một đối tợng Officer ra màn hình.
- Toán tử > để so sánh 2 đối tợng Officer dựa trên Salary.
d. Viết chơng trình khai báo một mảng 4 con trỏ đối tợng kiểu Officer, nhập dữ liệu, sắp xếp tăng
dần theo lơng của các đối tợng và hiển thị các đối tợng ra màn hình.
Câu 2.6: a. Xây dựng một lớp Printer mô tả các đối tợng máy in, lớp gồm các thành phần:
- Thuộc tính Name mô tả tên máy in.
- Thuộc tính Soluong mô tả số lợng trong kho.
- Hàm nhapkho(int q) để nhập vào kho q số lợng mặt hàng.
- Hàm xuatkho(int q) để xuất ra khỏi kho q số lợng mặt hàng.
b. Xây dựng lớp Laser mô tả các máy in Laser, lớp đợc kế thừa từ lớp Printer và có thêm thuộc tính
Dpi.
c. Xây dựng lớp ColorPrinter mô tả các máy in màu, lớp đợc kế thừa từ lớp Printer và có thêm
thuộc tính Color.
d. Xây dựng lớp ColorLaser mô tả các máy in Laser màu, lớp đợc kế thừa từ lớp Laser và lớp
ColorPrinter.
e. Viết chơng trình tạo 3 đối tợng kiểu ColorLaser. Gọi các hàm nhập, xuất và in ra số lợng có
trong kho.
6
Câu 2.7: a. Xây dựng một lớp SV để mô tả các sinh viên trong một Khoa của một Trờng Đại học,
lớp SV gồm các thành phần sau:
- Lop: Mô tả lớp học của sinh viên.
- Hoten: Mô tả họ tên của sinh viên.
- Hàm thiết lập.
- Hàm huỷ bỏ.
- Hàm hiển thị thông tin về một SV.
b. Xây dựng một lớp SVTC để mô tả các sinh viên thuộc hệ tại chức. Lớp đợc kế thừa từ lớp SV và
bổ sung thêm các thành phần sau:
- Hocphi: Mô tả học phí.
- Hàm thiết lập.
- Hàm hiển thị thông tin về một SVTC.
c. Xây dựng một lớp SVCN để mô tả các sinh viên thuộc hệ cử nhân. Lớp đợc kế thừa từ lớp SVTC
và bổ sung thêm các thành phần sau:
- Dtb: Mô tả điểm trung bình của sinh viên cử nhân.
- Hocbong: Mô tả học bổng của sinh viên cử nhân.
- Hàm thiết lập.
- Hàm hiển thị thông tin về một SVCN.
- Toán tử > so sánh 2 đối tợng SVCN theo Dtb.
d. Viết chơng trình khai báo một mảng 3 con trỏ đối tợng kiểu SVCN, nhập dữ liệu vào để tạo 3 đối
tợng SVCN, sắp xếp các đối tợng SVCN theo điểm trung bình giảm dần và in ra màn hình.
Câu 2.8: a. Xây dựng 1 lớp Mytime mô tả thông tin về giờ, phút, giây. Lớp gồm các thành phần:
- Các thuộc tính mô tả giờ, phút, giây.
- Hàm nhập giờ, phút, giây (không cần biện luận dữ liệu nhập).
- Hàm hiển thị thông tin về giờ, phút, giây theo dạng: Giờ : phút : giây.
b. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm nhập ngày, tháng, năm (không cần biện luận dữ liệu nhập).
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: Ngày-tháng-năm.
c. Xây dựng 1 lớp Myfile kế thừa từ 2 lớp Mydate và Mytime đồng thời bổ sung thêm các thành
phần:
- filename: Mô tả tên tệp, là một xâu không quá 255 ký tự.
- filesize: Mô tả kích thớc tệp, là một số nguyên.
- Hàm nhập dữ liệu.
- Hàm hiển thị tên tệp, kích thớc, ngày tháng năm và giờ phút giây.
- Toán tử > để so sánh 2 đối tợng Myfile dựa trên filesize.
d. Viết chơng trình khai báo một mảng 5 con trỏ đối tợng kiểu Myfile, nhập dữ liệu vào để tạo các
đối tợng Myfile. Sắp xếp các đối tợng theo kích thuớc tệp giảm dần và in ra cac đối tợng đã sắp.
Câu 2.9: a. Xây dựng 1 lớp MyColor mô tả các thông tin về màu. Lớp gồm các thành phần:
- Thuộc tính Color mô tả số hiệu màu là một số nguyên.
- Hàm thiết lập.
- Hàm hiển thị số hiệu màu.
b. Xây dựng 1 lớp Point mô tả các đối tợng điểm trên mặt phẳng. Lớp gồm các thành phần:
- Các thuộc tính x, y mô tả toạ độ của điểm.
- Hàm thiết lập.
- Hàm tịnh tiến điểm đến toạ độ x+dx, y+dy.
- Hàm hiển thị toạ độ của điểm trong mặt phẳng.
c. Xây dựng 1 lớp Triangle mô tả các đối tợng tam giác. Lớp đợc kế thừa từ lớp MyColor và bổ
sung thêm các thành phần:
- Ba đỉnh của tam giác là 3 điểm A, B, C.
- Hàm thiết lập tam giác tại 3 điểm X, Y, Z và màu bằng k.
- Hàm move(dx, dy) để tịnh tiến tam giác đến vị trí mới:
A.x=A.x+dx; A.y=A.y+dy; B.x=B.x+dx; B.y=B.y+dy; C.x=C.x+dx; C.y=C.y+dy;
- Hàm hiển thị toạ độ đỉnh của tam giác, màu của tam giác.
7
d. Viết chơng trình nhập vào 4 cặp số thực (x1,y1), (x2,y2), (x3,y3), (dx,dy) và một số k. Tạo tam
giác với 3 đỉnh A(x1,y1), B(x2,y2), C(x3,y3) có màu bằng k. Tịnh tiến tam giác theo dx, dy. Hiển thị
toạ độ và màu của tam giác trớc và sau khi tịnh tiến.
Câu 2.10: a. Xây dựng 1 lớp MyColor mô tả các thông tin về màu. Lớp gồm các thành phần:
- Thuộc tính Color mô tả số hiệu màu.
- Hàm nhập số hiệu màu.
- Hàm hiển thị số hiệu màu.
b. Xây dựng 1 lớp Point mô tả các điểm trên mặt phẳng. Lớp gồm các thành phần:
- Các thuộc tính x, y mô tả toạ độ của điểm.
- Hàm nhập toạ độ của điểm.
- Hàm hiển thị toạ độ của điểm trong mặt phẳng.
- Khai báo một hàm tự do tính khoảng cách giữa hai điểm là bạn với lớp Point.
c. Viết một hàm tự do tính khoảng cách giữa 2 điểm.
d. Xây dựng 1 lớp Line mô tả các đối tợng đoạn thẳng. Lớp đợc kế thừa từ lớp MyColor và bổ sung
thêm các thành phần:
- Hai điểm A, B xác định đoạn thẳng.
- Hàm nhập toạ độ của 2 điểm xác định đoạn thẳng và màu đoạn thẳng.
- Hàm tính khoảng cách giữa hai điểm xác định đoạn thẳng.
- Hàm hiển thị toạ độ của hai điểm xác định đoạn thẳng, màu của đoạn thẳng và khoảng cách
giữa hai điểm xác định đoạn thẳng.
đ. Viết chơng trình nhập dữ liệu để tạo đoạn thẳng xác định bởi hai điểm A, B và màu bằng k. Hiển
thị toạ độ của 2 điểm xác định đoạn thẳng, màu của đoạn thẳng và chiều dài của đoạn thẳng.
Câu 2.11: a. Xây dựng 1 lớp MyColor mô tả các thông tin về màu. Lớp gồm các thành phần:
- Thuộc tính Color mô tả số hiệu màu.
- Hàm thiết lập.
- Hàm hiển thị số hiệu màu.
b. Xây dựng 1 lớp Point mô tả các điểm trên mặt phẳng. Lớp gồm các thành phần:
- Các thuộc tính x, y mô tả toạ độ của điểm.
- Hàm thiết lập.
- Hàm hiển thị toạ độ của điểm trong mặt phẳng.
c. Xây dựng 1 lớp Circle mô tả các đối tợng đờng tròn. Lớp đợc kế thừa từ lớp MyColor và bổ sung
thêm các thành phần:
- Thuộc tính tâm là 1 điểm O.
- Thuộc tính r mô tả bán kính của đờng tròn.
- Hàm tính diện tích.
- Hàm thiết lập.
- Hàm hiển thị diện tích, toạ độ tâm, bán kính và màu của đờng tròn.
- Toán tử > so sánh 2 đối tợng đờng tròn dựa trên diện tích.
d. Viết chơng trình nhập dữ liệu và tạo một mảng n con trỏ đối tợng đờng tròn. Tìm và in ra màn
hình đờng tròn có diện tích lớn nhất.
Câu 2.12: a. Xây dựng 1 lớp MyColor mô tả các màu. Lớp gồm các thành phần:
- Thuộc tính Color mô tả số hiệu màu.
- Hàm thiết lập.
- Hàm hiển thị số hiệu màu.
b. Xây dựng 1 lớp Point mô tả các điểm trên mặt phẳng. Lớp gồm các thành phần:
- Các thuộc tính x, y mô tả toạ độ của điểm.
- Hàm thiết lập.
- Khai báo một hàm tự do tính khoảng cách giữa hai điểm là bạn với lớp.
- Hàm hiển thị toạ độ của điểm.
c. Viết một hàm tự do tính khoảng cách giữa 2 điểm.
d. Xây dựng 1 lớp Triangle mô tả các tam giác. Lớp đợc kế thừ từ lớp MyColor và bổ sung thêm
các thành phần:
- Ba đỉnh của tam giác là 3 điểm A, B, C.
- Hàm thiết lập tam giác tại 3 điểm.
- Hàm tính chu vi của tam giác.
- Hàm hiển thị toạ độ đỉnh của tam giác, màu và chu vi của tam giác.
- Toán tử > để so 2 đối tợng Triangle dựa trên chu vi tam giác.
đ. Viết chơng trình nhập dữ liệu một mảng n tam giác. Hiển thị toạ độ, màu và chu vi của tam giác
của các đối tợng đã tạo. Tìm và in ra màn hình tam giác có diện tích lớn nhất.
Câu 2.13: a. Xây dựng một lớp Printer mô tả các đối tợng máy in. Lớp gồm các thành phần:
8
- Các thuộc tính Sohieu và Soluong mô tả số hiệu máy in và số lợng máy in có trong kho.
- Hàm thiết lập.
- Hàm Nhapkho(int q) để nhập vào kho q số lợng mặt hàng.
- Hàm Xuatkho(int q) để xuất ra khỏi kho q số lợng mặt hàng.
- Hàm hiển thị thông tin về một đối tợng máy in gồm: Số liệu, số lợng.
b. Xây dựng lớp Laser mô tả các đối tợng máy in Laser. Lớp đợc kế thừa từ lớp Printer in và bổ
sung thêm:
- Thuộc tính dpi mô tả số điểm in trên 1 đơn vị in của máy in Laser.
- Hàm in thông tin về một đối tợng Laser gồm: Số hiệu, số lợng, dpi.
c. Xây dựng lớp ColorLaser mô tả các đối tợng máy in Laser màu. Lớp đợc kế thừa từ lớp Laser và
bổ sung thêm:
- Thuộc tính Somau mô tả số màu của máy in màu.
- Hàm in thông tin về một đối tợng ColorLaser gồm: Số hiệu, số lợng, dpi, số màu.
d. Viết chơng trình nhập dữ liệu để tạo 2 đối tợng kiểu ColorLaser. In thông tin về các đối tợng đã
nhập.
Câu 2.14: a. Xây dựng 1 lớp Mytime mô tả thông tin về giờ, phút, giây. Lớp gồm các thành phần:
- Các thuộc tính mô tả giờ, phút, giây.
- Hàm thiết lập.
- Hàm nhập thông tin về giờ, phút, giây.
- Hàm hiển thị giờ theo 24 giờ dạng: Giờ : phút : giây.
b. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm nhập thông tin về ngày, tháng, năm.
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
c. Xây dựng 1 lớp Datetime kế thừa từ 2 lớp Mydate và Mytime để mô tả thông tin đồng thời về
ngày, tháng, năm, giờ, phút, giây. Lớp gồm các hàm thành phần:
- Hàm thiết lập.
- Hàm nhập ngày, tháng, năm, giờ, phút, giây.
- Hàm hiển thị thời gian gồm: ngày-tháng-năm giờ : phút : giây.
d. Viết chơng trình nhập dữ liệu vào để tạo 3 đối tợng kiểu Datetime. Gọi hàm hiển thị thời gian của
đối tợng đã tạo.
Câu 2.15: a. Xây dựng một lớp SV để mô tả các sinh viên trong một Khoa của một Trờng Đại học,
lớp SV gồm các thành phần sau:
- Lop: Mô tả lớp học của sinh viên.
- Hoten: Mô tả họ tên của sinh viên.
- Hàm thiết lập.
- Hàm huỷ bỏ.
- Hàm hiển thị dữ liệu
b. Xây dựng một lớp SVTC để mô tả các sinh viên thuộc hệ tại chức. Lớp đợc kế thừa từ lớp SV và
bổ sung thêm các thành phần sau:
- Hocphi: Mô tả học phí phải nộp của sinh viên, là một số nguyên.
- Hàm thiết lập.
- Hàm hiển thị dữ liệu
- Toán tử > để so sánh 2 đối tợng SVTC dựa trên Hocphi.
c. Xây dựng một lớp SVCN để mô tả các sinh viên thuộc hệ cử nhân. Lớp đợc kế thừa từ lớp SVTC
và bổ sung thêm các thành phần sau:
- Dtb: Mô tả điểm trung bình của sinh viên cử nhân.
- Hocbong: Mô tả học bổng của sinh viên cử nhân.
- Hàm thiết lập
- Hàm hiển thị dữ liệu.
d. Viết chơng trình khai báo một mảng 5 con trỏ đối tợng kiểu SVCN, nhập dữ liệu vào để tạo các
đối tợng SVCN. Hiển thị các đối tợng đã tạo ra màn hình, sắp xếp các đối tợng theo học phí giảm
dần và hiển thị các đối tợng sau khi sắp xếp.
9
Câu 2.16: a.Xây dựng 1 lớp MyAddress mô tả thông tin về địa chỉ của một con ngời. Lớp gồm các
thành phần:
- Các thuộc tính mô tả Tĩnh và Huyện.
- Hàm thiết lập.
- Hàm huỷ bỏ.
- Hàm hiển thị dữ liệu.
b.Xây dựng 1 lớp MyDate mô tả thông tin ngày, tháng, năm. Lớp MyDate gồm có các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm hiển thị dữ liệu
- Toán tử > so sánh 2 đối tợng MyDate
c.Xây dựng 1 lớp Person mô tả thông tin về một ngời. Lớp đợc kế thừa từ 2 lớp MyDate,
MyAddress và bổ sung thêm các thành phần:
- Name: Mô tả tên của ngời, là một xâu không quá 30 ký tự.
- Phone: Mô tả số điện thoại, là một số nguyên.
- Hàm thiết lập.
- Hàm huỷ bỏ.
- Hàm hiển thị dữ liệu.
d. Viết chơng trình khai báo một mảng 4 con trỏ đối tợng kiểu Person. Nhập dữ liệu và sắp xếp dữ
liệu tăng dần theo ngày, tháng, năm. Hiển thị dữ liệu đã sắp ra màn hình.
Câu 2.17: a. Xây dựng một lớp Printer mô tả các đối tợng máy in, lớp gồm các thành phần:
- Các thuộc tính số hiệu và số lợng trong kho.
- Hàm nhapkho(int q) để nhập vào kho q số lợng mặt hàng.
- Hàm xuatkho(int q) để xuất ra khỏi kho q số lợng mặt hàng.
b. Xây dựng lớp Laser mô tả các máy in Laser, lớp đợc kế thừa từ lớp Printer và có thêm thuộc tính
Dpi.
c. Xây dựng lớp ColorPrinter mô tả các máy in màu, lớp đợc kế thừa từ lớp Printer và có thêm
thuộc tính Color.
d. Xây dựng lớp ColorLaser mô tả các máy in Laser màu, lớp đợc kế thừa từ lớp Laser và lớp
ColorPrinter.
e. Viết chơng trình tạo 3 đối tợng kiểu ColorLaser. Gọi các hàm nhập, xuất và in ra số lợng có
trong kho.
10
Phần 3: Tính tơng ứng bội
Câu 3.1: Sử dụng tính tơng ứng bội xây dựng bài toán sau:
a. Xây dựng 1 lớp Shape mô tả các đối tợng hình dạng, lớp gồm:
- Hàm tính diện tích của hình trả về giá trị bằng 0.
- Hàm nhập dữ liệu là hàm rỗng.
- Hàm hiển thị diện tích.
b. Xây dựng lớp Circle mô tả các đối tợng hình tròn. Lớp đợc kế thừa từ lớp Shape và bổ sung thêm
các thành phần:
- Thuộc tính mô tả bán kính của hình tròn.
- Hàm thiết lập hình tròn.
- Hàm nhập bán kính.
- Hàm tính diện tích hình tròn.
c. Xây dựng lớp Rectangle mô tả các đối tợng hình chữ nhật. Lớp đợc kế thừa từ lớp Shape và bổ
sung thêm các thành phần:
- Các thuộc tính mô tả độ dài các cạnh.
- Hàm thiết lập hình chữ nhật.
- Hàm nhập các cạnh.
- Hàm tính diện tích hình chữ nhật.
Viết chơng trình khai báo 2 mảng con trỏ kiểu Shape. Cho một mảng trỏ đến các đối tợng hình tròn
và một mảng trỏ đến các đối tợng hình chữ nhật. Nhập dữ liệu cho các mảng con trỏ, hiện thị diện
tích của các hình tròn và diện tích các hình chữ nhật ra màn hình.
Câu 3.2: Sử dụng tính tơng ứng bội xây dựng bài toán sau:
a. Xây dựng 1 lớp SV mô tả các đối tợng sinh viên, lớp gồm các thành phần:
- Các thuộc tính lớp học và họ tên của sinh viên.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu
b. Xây dựng 1 lớp SVSP mô tả các đối tợng sinh viên s phạm, lớp đợc kế thừa từ lớp SV và bổ
sung thêm các thành phần:
- Thuộc tính mô tả học bổng của sinh viên.
- Hàm nhập lớp học, họ tên, học bổng.
- Hàm hiển thị lớp học, họ tên, học bổng.
c. Xây dựng lớp SVTC mô tả các đối tợng sinh viên tại chức, lớp đợc kế thừa từ lớp SV và bổ
sung thêm các thành phần:
- Thuộc tính mô tả học phí của sinh viên.
- Hàm nhập lớp học, họ tên, học phí.
- Hàm hiển thị lớp học, họ tên, học phí.
Viết chơng trình khai báo 2 mảng con trỏ kiểu SV, cho 1 mảng trỏ đến các đối tợng SVSP và
một mảng trỏ đến các đối tợng SVTC. Nhập dữ liệu cho các đối tợng SVSP và các đối tợng
SVTC, in dữ liệu đã nhập ra màn hình.
Câu 3.3: Sử dụng tính tơng ứng bội xây dựng bài toán sau:
a. Xây dựng 1 lớp MatHang mô tả các đối tợng mặt hàng, lớp gồm các thành phần:
- Thuộc tính Ten mô tả tên mặt hàng.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu
b. Xây dựng lớp MayTinh mô tả các đối tợng máy tính. Lớp đợc kế thừa từ lớp MatHang và bổ
sung thêm các thành phần:
- Thuộc tính Speed là một số nguyên.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
c. Xây dựng lớp MayIn mô tả các đối tợng máy in. Lớp đợc kế thừa từ lớp MatHang và bổ sung
thêm các thành phần:
- Thuộc tính Dpi là một số nguyên.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
11
Viết chơng trình khai báo 2 mảng con trỏ kiểu MatHang. Một mảng cho trỏ đến các đối tợng
MayTinh, một mảng cho trỏ đến các đối tợng MayIn, nhập dữ liệu cho 2 mảng trên và hiển thị dữ
liệu của 2 mảng đã nhập.
Câu 3.4: Sử dụng tính tơng ứng bội xây dựng bài toán sau:
a. Xây dựng 1 lớp Printer mô tả các đối tợng máy in, lớp gồm:
- Thuộc tính Name mô tả tên máy in.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
- Toán tử > để so sánh tên của 2 đối tợng máy in.
b. Xây dựng lớp Laser mô tả các đối tợng máy in Laser. Lớp đợc kế thừa từ lớp Printer và bổ sung
thêm:
- Thuộc tính Dpi
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
c. Xây dựng lớp ColorLaser mô tả các đối tợng máy in Laser màu. Lớp đợc kế thừa từ lớp Laser và
bổ sung thêm:
- Các thuộc tính Color
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
Viết chơng trình khai báo 2 mảng con trỏ kiểu Printer. Cho một mảng trỏ đến các đối tợng Laser
và một mảng trỏ đến các đối tợng ColorLaser. Nhập dữ liệu cho các con trỏ, sắp xếp các đối tợng
tăng dần theo tên và hiển thị dữ liệu đã sắp ra màn hình.
Câu 3.5: Sử dụng tính tơng ứng bội xây dựng bài toán sau:
a. Xây dựng 1 lớp Media mô tả các đối tợng phơng tiện truyền thông, lớp gồm:
- Thuộc tính tên gọi, giá bán.
- Hàm thiết lập hai tham số.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
b. Xây dựng lớp Book mô tả các đối tợng sách. Lớp đợc kế thừa từ lớp Media và bổ sung thêm:
- Thuộc tính mô tả số trang, tác giả.
- Hàm thiết lập.
- Hàm nhập dữ liệu
- Hàm hiển thị dữ liệu.
c. Xây dựng lớp Video mô tả các đối tợng hình chữ nhật, lớp kế thừa từ lớp Media và bổ sung thêm:
- Thuộc tính thời gian chạy, giá bán.
- Hàm thiết lập.
- Hàm nhập dữ liệu
- Hàm hiển thị dữ liệu.
d. Viết chơng trình khai báo 2 mảng con trỏ kiểu Media. Cho một mảng trỏ đến các đối tợng
sách và một mảng trỏ đến các đối tợng băng video. Nhập dữ liệu cho các mảng con trỏ, hiển thị dữ
liệu của các đối tợng sách và băng video ra màn hình.
12
Phần 4: Mô hình
Câu 4.1: Xây dựng 1 mô hình hàm để tìm giá trị lớn nhất của 1 mảng dữ liệu các số nguyên, số
thực, xâu ký tự gồm n phần tử. Viết chơng trình nhập vào 1 mảng 3 xâu ký tự, in ra giá trị lớn nhất
của mảng đó.
Câu 4.2: a. Xây dựng 1 lớp Frac mô tả các phân số gồm:
- Các thuộc tính a, b là các số thực mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm nhập 1 phân số.
- Hàm in 1 phân số
- Định nghĩa toán tử > để so sánh hai phân số.
- Định nghĩa toán tử = để gán một phân số cho một phân số
b. Xây dựng 1 mô hình hàm max để tìm phần tử lớn nhất của một dãy các phần tử nguyên, thực, ký
tự, phân số.
c. Viết chơng trình:
- Nhập vào một mảng n phân số, in ra phân số lớn nhất.
- Nhập vào một mảng n số thực, in ra số lớn nhất.
Câu 4.3: a. Xây dựng 1 lớp Frac mô tả các phân số gồm:
- Các thuộc tính a, b là các số thực mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm nhập 1 phân số.
- Hàm in 1 phân số dạng
- Định nghĩa toán tử + để cộng hai phân số
- Định nghĩa toán tử = để gán một phân số cho một phân số
b. Xây dựng 1 mô hình hàm sum để tính tổng của n phần tử nguyên, thực, phân số.
c. Viết chơng trình:
- Nhập vào một mảng n phân số, tính và in ra tổng các phân số.
- Nhập vào một mảng n số nguyên, tính và in ra tổng các phần tử.
13
Phần 1: đối tợng và lớp
Câu 1.1: a. Xây dựng một lớp Complex mô tả các đối tợng số phức, lớp gồm các thành phần:
- Các thuộc tính a, b là các số thực mô tả phần thực và phần ảo của số phức.
- Hàm thiết lập.
- Hàm nhập số phức.
- Hàm in số phức dạng a+ib.
- Khai báo toán tử + là hàm bạn của lớp số phức.
- Khai báo toán tử - là hàm bạn của lớp số phức.
b. Viết toán tử + để tính tổng 2 số phức, toán tử - để tính hiệu 2 số phức .
c. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo hai đối tợng số phức x, y. Tính và in ra tổng,
hiệu 2 số phức đó.
Câu 1.2: a. Xây dựng một lớp Complex mô tả các đối tợng số phức, lớp gồm các thành phần:
- Các thuộc tính a, b là các số thực mô tả phần thực và phần ảo của số phức.
- Hàm thiết lập.
- Hàm nhập số phức.
- Hàm in số phức dạng a+ib.
- Toán tử = để gán 2 số phức
- Toán tử + để cộng 2 số phức.
b. Viết chơng trình nhập một mảng n số phức, tính và in ra màn hình tổng các số phức đã nhập.
Câu 1.3: a. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm nhập ngày, tháng, năm (không cần biện luận dữ liệu).
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
- Khai báo toán tử >= là hàm bạn với lớp dùng để so sánh 2 đối tợng Mydate.
b. Viết hàm tự do định nghĩa toán tử >= để so sánh hai đối tợng Mydate.
c. Viết chơng trình nhập dữ liệu để tạo một mảng 5 đối tợng kiểu Mydate. Tìm và hiển thị đối tợng
có thời gian lớn nhất.
Câu 1.4: a. Tạo lớp Vector để mô tả các đối tợng vector, lớp gồm các thành phần:
- Số phần tử: n
- Một con trỏ *v trỏ đến các phần tử dữ liệu.
- Hàm thiết lập một tham số dùng để cấp phát bộ nhớ cho các phần tử dữ liệu.
- Hàm thiết lập sao chép.
- Hàm huỷ bỏ.
- Hàm nhập các phần tử của véc tơ.
- Hàm hiển thị các phần tử dữ liệu của vector.
- Toán tử = để gán một vector cho một vector.
- Khai báo toán tử + là hàm bạn của lớp Vector, dùng để cộng hai vector.
b. Viết toán tử + để cộng hai vector, kết quả trả về là một vector.
c. Viết chơng trình nhập vào hai vector a, b. In ra màn hình các phần tử dữ liệu của vector a, vector b
và vector a+b.
Câu 1.5: a. Xây dựng 1 lớp PS mô tả các đối tợng phân số, lớp gồm các thành phần:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm nhập phân số.
- Hàm in phân số dạng tử số/mẫu số.
- Hàm rút gọn phân số.
- Toán tử + dùng để tính tổng 2 phân số, kết quả trả về một phân số tối giản.
b. Viết chơng trình nhập một mảng n đối tợng phân số, tính và in ra màn hình tổng của mảng đã
nhập.
1
Câu 1.6: a. Xây dựng 1 lớp PS mô tả các đối tợng phân số, lớp gồm các thành phần:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm nhập phân số.
- Hàm in phân số dạng tử số/mẫu số.
- Toán tử > để so sánh 2 đố tợng phân số.
b. Viết chơng trình nhập một mảng n phân số, sắp xếp mảng phân số tăng dần và in ra mảng đã sắp.
Câu 1.7: a. Xây dựng 1 lớp PS mô tả các đối tợng phân số, lớp gồm các thành phần:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm nhập phân số.
- Hàm in phân số dạng tử số/mẫu số.
- Khai báo toán tử >= là hàm bạn của lớp phân số dùng để so sánh 2 phân số.
b. Viết các toán tử >= để so sánh 2 phân số.
c. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo một mảng 5 phân số. Tìm và in ra phân số
lớn nhất, phân số bé nhất.
Câu 1.8: a. Tạo lớp Vector để mô tả các đối tợng vector, lớp gồm các thành phần:
- Số phần tử: n
- Một con trỏ *v trỏ đến các phần tử dữ liệu.
- Hàm thiết lập
- Hàm thiết lập sao chép.
- Hàm huỷ bỏ.
- Hàm nhập các phần tử của véc tơ.
- Hàm hiển thị các phần tử dữ liệu của vector.
- Toán tử = để gán một vector cho một vector.
- Khai báo toán tử * là hàm bạn của lớp Vector, dùng để nhân một số thực k với 1 vector.
b. Viết toán tử * để nhân một số thực k với một vector, kết quả trả về là một vector.
c. Viết chơng trình nhập vào một số thực k và một vector a. In ra màn hình các phần tử dữ liệu của
vector a và vector k*a.
Câu 1.9: a.Xây dựng 1 lớp MyDate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm nhập ngày, tháng, năm.
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
- Toán tử > so sánh 2 đối tợng Mydate.
b. Viết chơng trình tạo một mảng n đối tợng kiểu MyDate, hiển thị các đối tợng đã nhập, sắp xếp
các đối tợng tăng dần và in ra các đối tợng đã sắp.
Câu 1.10: a. Tạo lớp Vector để mô tả các đối tợng vector, lớp gồm các thành phần:
- Số phần tử: n
- Một con trỏ *v trỏ đến các phần tử dữ liệu.
- Hàm thiết lập một tham số dùng để khởi tạo n và cấp phát bộ nhớ cho các phần tử dữ liệu.
- Hàm thiết lập sao chép.
- Hàm huỷ bỏ.
- Hàm nhập các phần tử của véc tơ.
- Hàm hiển thị các phần tử dữ liệu của vector.
- Toán tử = để gán một vector cho một vector.
- Viết hàm kiểm tra để kiểm tra xem hai vector có cùng số phần tử hay không?
- Khai báo toán tử + là hàm bạn của lớp Vector, dùng để cộng hai vector cùng số phần tử.
b. Viết toán tử + để cộng hai vector có cùng số phần tử, kết quả trả về là một vector.
c. Viết chơng trình nhập vào hai vector a và b. Dùng hàm kiểm tra để kiểm tra xem hai vector a, b có
cùng số phần tử hay không, nếu đúng thì tính tổng hai vector và hiển thị vector tổng, nếu không thì
có thông báo ra màn hình hai vector a, b không cộng đợc với nhau.
Câu 1.11: a. Xây dựng 1 lớp PS mô tả các đối tợng phân số, lớp gồm các thành phần:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập phân số.
2
- Hàm nhập phân số.
- Viết hàm ớc cung lớn nhất là bạn của lớp PS để tìm ớc chung lớn nhất của hai số nguyên dơng
a, b.
- Viết hàm rút gọn phân số.
- Hàm in phân số dạng tử số/mẫu số.
b. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo 1 mảng 5 phân số. In ra màn hình danh sách
các phân số dới dạng đã rút gọn.
Câu 1.12: a. Xây dựng 1 lớp MyTime mô tả các đối tợng thời gian, lớp gồm các thành phần:
- Các thuộc tính mô tả giờ, phút, giây.
- Hàm thiết lập.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu dạng: gio : phut : giay.
- Khai báo toán tử >= là hàm bạn của lớp MyTime dùng để so sánh 2 đối tuợng MyTime.
b. Viết các toán tử >= để so sánh 2 đối tuợng MyTime.
c. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo một mảng 5 đối tợng MyTime. Tìm và in ra
đối tợng có thời gian lớn nhất, bé nhất.
Câu 1.13: a. Xây dựng 1 lớp Student mô tả các sinh viên của một lớp học, lớp gồm các thành phần:
- Các thuộc tính mô tả họ tên, điểm kỳ 1, điểm kỳ 2, điểm trung bình cả năm. (điểm trung bình
cả năm = (điểm kỳ 1 + 2*điểm kỳ 2)/3).
- Hàm thiết lập.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
- Định nghĩa toán tử > để so sánh hai sinh viên theo tiêu chuẩn điểm trung bình cả năm.
b. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo một mảng 5 sinh viên. Hiển thị danh sách
những sinh viên vừa nhập. Sắp xếp danh sách sinh viên theo thứ tự giảm dần của điểm trung bình cả
năm. Hiển thị danh sách sinh viên sau khi sắp xếp.
Câu 1.14: a. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm nhập ngày, tháng, năm (không cần biện luận dữ liệu).
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
- Xây dựng toán tử = = dùng để so sánh 2 đối tợng Mydate.
b. Viết chơng trình nhập dữ liệu để tạo 1 mảng 5 đối tợng kiểu Mydate và nhập dữ liệu để tạo 1 đối
tợng x có kiểu Mydate. Tìm kiếm và thông báo ra màn hình phần tử x có trong mảng hay không?.
Câu 1.15: a. Tạo lớp Vector để mô tả các đối tợng vector, lớp gồm các thành phần:
- Số phần tử: n
- Một con trỏ *v trỏ đến các phần tử dữ liệu.
- Hàm thiết lập một tham số dùng để khởi tạo n và cấp phát bộ nhớ cho các phần tử dữ liệu.
- Hàm thiết lập sao chép.
- Hàm huỷ bỏ.
- Hàm nhập các phần tử của véc tơ.
- Hàm hiển thị các phần tử dữ liệu của vector.
- Toán tử = để gán một vector cho một vector.
- Khai báo toán tử + là hàm bạn của lớp Vector, dùng để cộng 2 vector.
b. Viết toán tử + để cộng 2 vector, kết quả trả về là một vector.
c. Viết chơng trình nhập vào 2 vector, tính và hiển thị tổng của chúng ra màn hình.
Câu 1.16: a. Xây dựng 1 lớp mô tả các đối tợng phân số, lớp gồm:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm hiển thị phân số.
- Toán tử = = để so sánh 2 đối tợng phân số.
b. Viết chơng trình tạo một mảng n đối tợng phân số. Nhập tiếp một phân số, tìm kiếm phân số đã
nhập có trong mảng hay không ?
3
Câu 1.17: a. Xây dựng một lớp Complex mô tả các đối tợng số phức, lớp gồm các thành phần:
- Các thuộc tính a, b là các số thực mô tả phần thực và phần ảo của số phức.
- Hàm thiết lập.
- Hàm nhập số phức.
- Hàm in số phức dạng a+ib.
- Toán tử = = để so sánh 2 số phức.
b. Viết chơng trình nhập một mảng n số phức. Nhập tiếp một số phức. và tìm số phức đã nhập có
trong mảng số phức hay không ? Nếu có thì hiển thị vị trí của nó có trong mảng.
Câu 1.18: a. Xây dựng 1 lớp Student mô tả các sinh viên của một lớp học, lớp gồm các thành phần:
- Các thuộc tính mô tả họ tên, điểm kỳ 1, điểm kỳ 2.
- Hàm thiết lập.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
- Hàm kiểm tra để kiểm tra xem sinh viên có đạt điểm trung bình cả năm>=5 hay không? (điểm
trung bình cả năm=điểm kỳ 1 + 2*điểm kỳ 2)/3).
b. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo một mảng 5 sinh viên. Hiển thị danh sách
những sinh viên vừa nhập. Sau đó, hiển thị danh sách những sinh viên có điểm trung bình cả năm
>=5.
Câu 1.19: a. Xây dựng 1 lớp PS mô tả các đối tợng phân số, lớp gồm các thành phần:
- Các thuộc tính mô tả tử số và mẫu số của phân số.
- Hàm thiết lập phân số.
- Hàm nhập phân số.
- Hàm in phân số dạng tử số/mẫu số.
- Xây dựng toán tử >= dùng để so sánh 2 phân số.
c. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo một mảng 5 phân số. Tìm và in ra phân số
lớn nhất.
Câu 1.20 a. Xây dựng một lớp Complex mô tả các đối tợng số phức, lớp gồm các thành phần:
- Các thuộc tính a, b là các số thực mô tả phần thực và phần ảo của số phức.
- Hàm thiết lập.
- Hàm thiết lập sao chép.
- Hàm nhập số phức.
- Hàm in số phức dạng a+ib.
- Xây dựng toán tử + dùng để tính tổng 2 số phức.
- Xây dựng toán tử - dùng để tính hiệu 2 số phức.
b. Viết chơng trình nhập dữ liệu vào từ bàn phím để tạo hai đối tợng số phức x, y. Tính và in ra tổng,
hiệu 2 số phức đó.
4
Phần 2: kế thừa
Câu 2.1: a. Xây dựng 1 lớp MyAttr mô tả các thuộc tính của tệp. Lớp gồm các thành phần:
- Thuộc tính Attr mô tả số hiệu thuộc tính của tệp là một số nguyên.
- Hàm thiết lập.
- Hàm hiển thị số hiệu thuộc tính tệp.
b. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Toán tử > để so sánh 2 đôi tợng Mydate
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
c. Xây dựng 1 lớp Myfile kế thừa từ 2 lớp MyAttr và Mydate và đồng thời bổ sung thêm các thành
phần:
- filename: Mô tả tên tệp, là một xâu không quá 255 ký tự.
- filesize: Mô tả kích thớc tệp, là một số nguyên.
- Hàm thiết lập.
- Hàm hiển thị thông tin, kích thớc, thời gian và số hiệu thuộc tính tệp.
d. Viết chơng trình khai báo một mảng 4 con trỏ đối tợng kiểu Myfile, nhập dữ liệu vào để tạo 4 con
trỏ đối tợng Myfile. Sắp xếp các đối tợng tăng dần theo ngày tháng và in ra các đối tợng đã sắp xếp.
Câu 2.2: a.Xây dựng 1 lớp MyDate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
- Toán tử > so sánh 2 đối tợng Mydate.
b.Xây dựng 1 lớp Person mô tả thông tin về một ngời, lớp kế thừa từ lớp MyDate và bổ sung thêm:
- Name: Mô tả tên của ngời.
- Address: Mô tả địa chỉ của ngời.
- Phone: Mô tả số điện thoại.
- Hàm thiết lập
- Hàm hiển thị thông tin về 1 ngời
c. Xây dựng một lớp Officer mô tả các thông về một cán bộ viên chức, lớp kế thừa từ lớp Person và
bổ sung thêm:
- Salary: Mô tả lơng của cán bộ, là một số thực.
- Hàm thiết lập.
- Hàm hiển thi thông tin về một cán bộ viên chức.
d. Viết chơng trình khai báo một mảng 4 con trỏ đối tợng kiểu Officer, nhập dữ liệu vào để tạo 4 đối
tợng này, sắp xếp theo ngày tháng tăng dần và hiển thị ra màn hình.
Câu 2.3: a. Xây dựng một lớp SV để mô tả các sinh viên trong một Khoa của một Trờng Đại học,
lớp SV gồm các thành phần sau:
- Lop: Mô tả lớp học của sinh viên.
- Hoten: Mô tả họ tên của sinh viên.
- Hàm thiết lập.
- Hàm huỷ bỏ.
- Hàm hiển thị thông tin về một SV.
b. Xây dựng một lớp SVSP để mô tả các sinh viên thuộc hệ s phạm. Lớp đợc kế thừa từ lớp SV và
bổ sung thêm các thành phần sau:
- Dtb: Mô tả điểm trung bình của sinh viên.
- Hocbong: Mô tả học bổng của sinh viên.
- Hàm thiết lập.
- Hàm hiển thị thông tin về một SVSP.
c. Xây dựng một lớp SVCN để mô tả các sinh viên thuộc hệ cử nhân. Lớp đợc kế thừa từ lớp SVSP
và bổ sung thêm các thành phần sau:
- Hocphi: Mô tả học phí của sinh viên cử nhân.
- Hàm thiết lập.
- Hàm hiển thị thông tin về một SVCN.
5
d. Viết chơng trình khai báo một mảng 3 con trỏ đối tợng kiểu SVCN, nhập dữ liệu vào để tạo 3 đối
tợng SVCN. Gọi hàm hiển thị của lớp SVCN thông qua các con trỏ này để in thông tin về một
SVCN ra màn hình.
Câu 2.4: Xây dựng chơng trình quản lý sách và băng video của một cửa hàng, chơng trình gồm:
a. Xây dựng 1 lớp Media mô tả các đối tợng phơng tiện truyền thông, lớp gồm:
- Thuộc tính tên gọi, giá bán.
- Hàm thiết lập hai tham số.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
b. Xây dựng lớp Book mô tả các đối tợng sách. Lớp đợc kế thừa từ lớp Media và bổ sung thêm:
- Thuộc tính mô tả số trang, tác giả.
- Hàm thiết lập.
- Hàm nhập dữ liệu
- Hàm hiển thị dữ liệu.
c. Xây dựng lớp Video mô tả các đối tợng băng video, lớp kế thừa từ lớp Media và bổ sung thêm:
- Thuộc tính thời gian chạy, giá bán.
- Hàm thiết lập.
- Hàm nhập dữ liệu
- Hàm hiển thị dữ liệu.
d. Viết chơng trình khai báo 2 mảng con đối tợng, một mảng gồm các đối tợng sách, một
mảng gồm các đối tợng băng video. Nhập dữ liệu cho các mảng đối tợng, hiển thị dữ liệu của các
đối tợng sách và băng video ra màn hình.
Câu 2.5: a. Xây dựng 1 lớp MyAddress mô tả thông tin về địa chỉ của một con ngời. Lớp gồm các
thành phần:
- Các thuộc tính mô tả Tĩnh và Huyện.
- Hàm thiết lập.
- Hàm hủy bỏ.
- Hàm hiển thị thông tin về Tĩnh và Huyện.
b. Xây dựng một lớp Person mô tả các thông tin về ngời. Lớp đợc kế thừa từ lớp MyAddress và bổ
sung thêm các thành phần:
- Name: Mô tả tên của ngời.
- Phone: Mô tả số điện thoại.
- Hàm thiết lập.
- Hàm hủy bỏ.
c. Xây dựng một lớp Officer mô tả các thông về một cán bộ viên chức, lớp kế thừa từ lớp Person và
bổ sung thêm các thành phần:
- Salary: Mô tả lơng của cán bộ.
- Hàm thiết lập.
- Hàm hiển thị thông tin về một đối tợng Officer ra màn hình.
- Toán tử > để so sánh 2 đối tợng Officer dựa trên Salary.
d. Viết chơng trình khai báo một mảng 4 con trỏ đối tợng kiểu Officer, nhập dữ liệu, sắp xếp tăng
dần theo lơng của các đối tợng và hiển thị các đối tợng ra màn hình.
Câu 2.6: a. Xây dựng một lớp Printer mô tả các đối tợng máy in, lớp gồm các thành phần:
- Thuộc tính Name mô tả tên máy in.
- Thuộc tính Soluong mô tả số lợng trong kho.
- Hàm nhapkho(int q) để nhập vào kho q số lợng mặt hàng.
- Hàm xuatkho(int q) để xuất ra khỏi kho q số lợng mặt hàng.
b. Xây dựng lớp Laser mô tả các máy in Laser, lớp đợc kế thừa từ lớp Printer và có thêm thuộc tính
Dpi.
c. Xây dựng lớp ColorPrinter mô tả các máy in màu, lớp đợc kế thừa từ lớp Printer và có thêm
thuộc tính Color.
d. Xây dựng lớp ColorLaser mô tả các máy in Laser màu, lớp đợc kế thừa từ lớp Laser và lớp
ColorPrinter.
e. Viết chơng trình tạo 3 đối tợng kiểu ColorLaser. Gọi các hàm nhập, xuất và in ra số lợng có
trong kho.
6
Câu 2.7: a. Xây dựng một lớp SV để mô tả các sinh viên trong một Khoa của một Trờng Đại học,
lớp SV gồm các thành phần sau:
- Lop: Mô tả lớp học của sinh viên.
- Hoten: Mô tả họ tên của sinh viên.
- Hàm thiết lập.
- Hàm huỷ bỏ.
- Hàm hiển thị thông tin về một SV.
b. Xây dựng một lớp SVTC để mô tả các sinh viên thuộc hệ tại chức. Lớp đợc kế thừa từ lớp SV và
bổ sung thêm các thành phần sau:
- Hocphi: Mô tả học phí.
- Hàm thiết lập.
- Hàm hiển thị thông tin về một SVTC.
c. Xây dựng một lớp SVCN để mô tả các sinh viên thuộc hệ cử nhân. Lớp đợc kế thừa từ lớp SVTC
và bổ sung thêm các thành phần sau:
- Dtb: Mô tả điểm trung bình của sinh viên cử nhân.
- Hocbong: Mô tả học bổng của sinh viên cử nhân.
- Hàm thiết lập.
- Hàm hiển thị thông tin về một SVCN.
- Toán tử > so sánh 2 đối tợng SVCN theo Dtb.
d. Viết chơng trình khai báo một mảng 3 con trỏ đối tợng kiểu SVCN, nhập dữ liệu vào để tạo 3 đối
tợng SVCN, sắp xếp các đối tợng SVCN theo điểm trung bình giảm dần và in ra màn hình.
Câu 2.8: a. Xây dựng 1 lớp Mytime mô tả thông tin về giờ, phút, giây. Lớp gồm các thành phần:
- Các thuộc tính mô tả giờ, phút, giây.
- Hàm nhập giờ, phút, giây (không cần biện luận dữ liệu nhập).
- Hàm hiển thị thông tin về giờ, phút, giây theo dạng: Giờ : phút : giây.
b. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm nhập ngày, tháng, năm (không cần biện luận dữ liệu nhập).
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: Ngày-tháng-năm.
c. Xây dựng 1 lớp Myfile kế thừa từ 2 lớp Mydate và Mytime đồng thời bổ sung thêm các thành
phần:
- filename: Mô tả tên tệp, là một xâu không quá 255 ký tự.
- filesize: Mô tả kích thớc tệp, là một số nguyên.
- Hàm nhập dữ liệu.
- Hàm hiển thị tên tệp, kích thớc, ngày tháng năm và giờ phút giây.
- Toán tử > để so sánh 2 đối tợng Myfile dựa trên filesize.
d. Viết chơng trình khai báo một mảng 5 con trỏ đối tợng kiểu Myfile, nhập dữ liệu vào để tạo các
đối tợng Myfile. Sắp xếp các đối tợng theo kích thuớc tệp giảm dần và in ra cac đối tợng đã sắp.
Câu 2.9: a. Xây dựng 1 lớp MyColor mô tả các thông tin về màu. Lớp gồm các thành phần:
- Thuộc tính Color mô tả số hiệu màu là một số nguyên.
- Hàm thiết lập.
- Hàm hiển thị số hiệu màu.
b. Xây dựng 1 lớp Point mô tả các đối tợng điểm trên mặt phẳng. Lớp gồm các thành phần:
- Các thuộc tính x, y mô tả toạ độ của điểm.
- Hàm thiết lập.
- Hàm tịnh tiến điểm đến toạ độ x+dx, y+dy.
- Hàm hiển thị toạ độ của điểm trong mặt phẳng.
c. Xây dựng 1 lớp Triangle mô tả các đối tợng tam giác. Lớp đợc kế thừa từ lớp MyColor và bổ
sung thêm các thành phần:
- Ba đỉnh của tam giác là 3 điểm A, B, C.
- Hàm thiết lập tam giác tại 3 điểm X, Y, Z và màu bằng k.
- Hàm move(dx, dy) để tịnh tiến tam giác đến vị trí mới:
A.x=A.x+dx; A.y=A.y+dy; B.x=B.x+dx; B.y=B.y+dy; C.x=C.x+dx; C.y=C.y+dy;
- Hàm hiển thị toạ độ đỉnh của tam giác, màu của tam giác.
7
d. Viết chơng trình nhập vào 4 cặp số thực (x1,y1), (x2,y2), (x3,y3), (dx,dy) và một số k. Tạo tam
giác với 3 đỉnh A(x1,y1), B(x2,y2), C(x3,y3) có màu bằng k. Tịnh tiến tam giác theo dx, dy. Hiển thị
toạ độ và màu của tam giác trớc và sau khi tịnh tiến.
Câu 2.10: a. Xây dựng 1 lớp MyColor mô tả các thông tin về màu. Lớp gồm các thành phần:
- Thuộc tính Color mô tả số hiệu màu.
- Hàm nhập số hiệu màu.
- Hàm hiển thị số hiệu màu.
b. Xây dựng 1 lớp Point mô tả các điểm trên mặt phẳng. Lớp gồm các thành phần:
- Các thuộc tính x, y mô tả toạ độ của điểm.
- Hàm nhập toạ độ của điểm.
- Hàm hiển thị toạ độ của điểm trong mặt phẳng.
- Khai báo một hàm tự do tính khoảng cách giữa hai điểm là bạn với lớp Point.
c. Viết một hàm tự do tính khoảng cách giữa 2 điểm.
d. Xây dựng 1 lớp Line mô tả các đối tợng đoạn thẳng. Lớp đợc kế thừa từ lớp MyColor và bổ sung
thêm các thành phần:
- Hai điểm A, B xác định đoạn thẳng.
- Hàm nhập toạ độ của 2 điểm xác định đoạn thẳng và màu đoạn thẳng.
- Hàm tính khoảng cách giữa hai điểm xác định đoạn thẳng.
- Hàm hiển thị toạ độ của hai điểm xác định đoạn thẳng, màu của đoạn thẳng và khoảng cách
giữa hai điểm xác định đoạn thẳng.
đ. Viết chơng trình nhập dữ liệu để tạo đoạn thẳng xác định bởi hai điểm A, B và màu bằng k. Hiển
thị toạ độ của 2 điểm xác định đoạn thẳng, màu của đoạn thẳng và chiều dài của đoạn thẳng.
Câu 2.11: a. Xây dựng 1 lớp MyColor mô tả các thông tin về màu. Lớp gồm các thành phần:
- Thuộc tính Color mô tả số hiệu màu.
- Hàm thiết lập.
- Hàm hiển thị số hiệu màu.
b. Xây dựng 1 lớp Point mô tả các điểm trên mặt phẳng. Lớp gồm các thành phần:
- Các thuộc tính x, y mô tả toạ độ của điểm.
- Hàm thiết lập.
- Hàm hiển thị toạ độ của điểm trong mặt phẳng.
c. Xây dựng 1 lớp Circle mô tả các đối tợng đờng tròn. Lớp đợc kế thừa từ lớp MyColor và bổ sung
thêm các thành phần:
- Thuộc tính tâm là 1 điểm O.
- Thuộc tính r mô tả bán kính của đờng tròn.
- Hàm tính diện tích.
- Hàm thiết lập.
- Hàm hiển thị diện tích, toạ độ tâm, bán kính và màu của đờng tròn.
- Toán tử > so sánh 2 đối tợng đờng tròn dựa trên diện tích.
d. Viết chơng trình nhập dữ liệu và tạo một mảng n con trỏ đối tợng đờng tròn. Tìm và in ra màn
hình đờng tròn có diện tích lớn nhất.
Câu 2.12: a. Xây dựng 1 lớp MyColor mô tả các màu. Lớp gồm các thành phần:
- Thuộc tính Color mô tả số hiệu màu.
- Hàm thiết lập.
- Hàm hiển thị số hiệu màu.
b. Xây dựng 1 lớp Point mô tả các điểm trên mặt phẳng. Lớp gồm các thành phần:
- Các thuộc tính x, y mô tả toạ độ của điểm.
- Hàm thiết lập.
- Khai báo một hàm tự do tính khoảng cách giữa hai điểm là bạn với lớp.
- Hàm hiển thị toạ độ của điểm.
c. Viết một hàm tự do tính khoảng cách giữa 2 điểm.
d. Xây dựng 1 lớp Triangle mô tả các tam giác. Lớp đợc kế thừ từ lớp MyColor và bổ sung thêm
các thành phần:
- Ba đỉnh của tam giác là 3 điểm A, B, C.
- Hàm thiết lập tam giác tại 3 điểm.
- Hàm tính chu vi của tam giác.
- Hàm hiển thị toạ độ đỉnh của tam giác, màu và chu vi của tam giác.
- Toán tử > để so 2 đối tợng Triangle dựa trên chu vi tam giác.
đ. Viết chơng trình nhập dữ liệu một mảng n tam giác. Hiển thị toạ độ, màu và chu vi của tam giác
của các đối tợng đã tạo. Tìm và in ra màn hình tam giác có diện tích lớn nhất.
Câu 2.13: a. Xây dựng một lớp Printer mô tả các đối tợng máy in. Lớp gồm các thành phần:
8
- Các thuộc tính Sohieu và Soluong mô tả số hiệu máy in và số lợng máy in có trong kho.
- Hàm thiết lập.
- Hàm Nhapkho(int q) để nhập vào kho q số lợng mặt hàng.
- Hàm Xuatkho(int q) để xuất ra khỏi kho q số lợng mặt hàng.
- Hàm hiển thị thông tin về một đối tợng máy in gồm: Số liệu, số lợng.
b. Xây dựng lớp Laser mô tả các đối tợng máy in Laser. Lớp đợc kế thừa từ lớp Printer in và bổ
sung thêm:
- Thuộc tính dpi mô tả số điểm in trên 1 đơn vị in của máy in Laser.
- Hàm in thông tin về một đối tợng Laser gồm: Số hiệu, số lợng, dpi.
c. Xây dựng lớp ColorLaser mô tả các đối tợng máy in Laser màu. Lớp đợc kế thừa từ lớp Laser và
bổ sung thêm:
- Thuộc tính Somau mô tả số màu của máy in màu.
- Hàm in thông tin về một đối tợng ColorLaser gồm: Số hiệu, số lợng, dpi, số màu.
d. Viết chơng trình nhập dữ liệu để tạo 2 đối tợng kiểu ColorLaser. In thông tin về các đối tợng đã
nhập.
Câu 2.14: a. Xây dựng 1 lớp Mytime mô tả thông tin về giờ, phút, giây. Lớp gồm các thành phần:
- Các thuộc tính mô tả giờ, phút, giây.
- Hàm thiết lập.
- Hàm nhập thông tin về giờ, phút, giây.
- Hàm hiển thị giờ theo 24 giờ dạng: Giờ : phút : giây.
b. Xây dựng 1 lớp Mydate mô tả thông tin ngày, tháng, năm. Lớp gồm các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm nhập thông tin về ngày, tháng, năm.
- Hàm hiển thị thông tin về ngày, tháng, năm theo dạng: ngày-tháng-năm.
c. Xây dựng 1 lớp Datetime kế thừa từ 2 lớp Mydate và Mytime để mô tả thông tin đồng thời về
ngày, tháng, năm, giờ, phút, giây. Lớp gồm các hàm thành phần:
- Hàm thiết lập.
- Hàm nhập ngày, tháng, năm, giờ, phút, giây.
- Hàm hiển thị thời gian gồm: ngày-tháng-năm giờ : phút : giây.
d. Viết chơng trình nhập dữ liệu vào để tạo 3 đối tợng kiểu Datetime. Gọi hàm hiển thị thời gian của
đối tợng đã tạo.
Câu 2.15: a. Xây dựng một lớp SV để mô tả các sinh viên trong một Khoa của một Trờng Đại học,
lớp SV gồm các thành phần sau:
- Lop: Mô tả lớp học của sinh viên.
- Hoten: Mô tả họ tên của sinh viên.
- Hàm thiết lập.
- Hàm huỷ bỏ.
- Hàm hiển thị dữ liệu
b. Xây dựng một lớp SVTC để mô tả các sinh viên thuộc hệ tại chức. Lớp đợc kế thừa từ lớp SV và
bổ sung thêm các thành phần sau:
- Hocphi: Mô tả học phí phải nộp của sinh viên, là một số nguyên.
- Hàm thiết lập.
- Hàm hiển thị dữ liệu
- Toán tử > để so sánh 2 đối tợng SVTC dựa trên Hocphi.
c. Xây dựng một lớp SVCN để mô tả các sinh viên thuộc hệ cử nhân. Lớp đợc kế thừa từ lớp SVTC
và bổ sung thêm các thành phần sau:
- Dtb: Mô tả điểm trung bình của sinh viên cử nhân.
- Hocbong: Mô tả học bổng của sinh viên cử nhân.
- Hàm thiết lập
- Hàm hiển thị dữ liệu.
d. Viết chơng trình khai báo một mảng 5 con trỏ đối tợng kiểu SVCN, nhập dữ liệu vào để tạo các
đối tợng SVCN. Hiển thị các đối tợng đã tạo ra màn hình, sắp xếp các đối tợng theo học phí giảm
dần và hiển thị các đối tợng sau khi sắp xếp.
9
Câu 2.16: a.Xây dựng 1 lớp MyAddress mô tả thông tin về địa chỉ của một con ngời. Lớp gồm các
thành phần:
- Các thuộc tính mô tả Tĩnh và Huyện.
- Hàm thiết lập.
- Hàm huỷ bỏ.
- Hàm hiển thị dữ liệu.
b.Xây dựng 1 lớp MyDate mô tả thông tin ngày, tháng, năm. Lớp MyDate gồm có các thành phần:
- Các thuộc tính mô tả ngày, tháng, năm.
- Hàm thiết lập.
- Hàm hiển thị dữ liệu
- Toán tử > so sánh 2 đối tợng MyDate
c.Xây dựng 1 lớp Person mô tả thông tin về một ngời. Lớp đợc kế thừa từ 2 lớp MyDate,
MyAddress và bổ sung thêm các thành phần:
- Name: Mô tả tên của ngời, là một xâu không quá 30 ký tự.
- Phone: Mô tả số điện thoại, là một số nguyên.
- Hàm thiết lập.
- Hàm huỷ bỏ.
- Hàm hiển thị dữ liệu.
d. Viết chơng trình khai báo một mảng 4 con trỏ đối tợng kiểu Person. Nhập dữ liệu và sắp xếp dữ
liệu tăng dần theo ngày, tháng, năm. Hiển thị dữ liệu đã sắp ra màn hình.
Câu 2.17: a. Xây dựng một lớp Printer mô tả các đối tợng máy in, lớp gồm các thành phần:
- Các thuộc tính số hiệu và số lợng trong kho.
- Hàm nhapkho(int q) để nhập vào kho q số lợng mặt hàng.
- Hàm xuatkho(int q) để xuất ra khỏi kho q số lợng mặt hàng.
b. Xây dựng lớp Laser mô tả các máy in Laser, lớp đợc kế thừa từ lớp Printer và có thêm thuộc tính
Dpi.
c. Xây dựng lớp ColorPrinter mô tả các máy in màu, lớp đợc kế thừa từ lớp Printer và có thêm
thuộc tính Color.
d. Xây dựng lớp ColorLaser mô tả các máy in Laser màu, lớp đợc kế thừa từ lớp Laser và lớp
ColorPrinter.
e. Viết chơng trình tạo 3 đối tợng kiểu ColorLaser. Gọi các hàm nhập, xuất và in ra số lợng có
trong kho.
10
Phần 3: Tính tơng ứng bội
Câu 3.1: Sử dụng tính tơng ứng bội xây dựng bài toán sau:
a. Xây dựng 1 lớp Shape mô tả các đối tợng hình dạng, lớp gồm:
- Hàm tính diện tích của hình trả về giá trị bằng 0.
- Hàm nhập dữ liệu là hàm rỗng.
- Hàm hiển thị diện tích.
b. Xây dựng lớp Circle mô tả các đối tợng hình tròn. Lớp đợc kế thừa từ lớp Shape và bổ sung thêm
các thành phần:
- Thuộc tính mô tả bán kính của hình tròn.
- Hàm thiết lập hình tròn.
- Hàm nhập bán kính.
- Hàm tính diện tích hình tròn.
c. Xây dựng lớp Rectangle mô tả các đối tợng hình chữ nhật. Lớp đợc kế thừa từ lớp Shape và bổ
sung thêm các thành phần:
- Các thuộc tính mô tả độ dài các cạnh.
- Hàm thiết lập hình chữ nhật.
- Hàm nhập các cạnh.
- Hàm tính diện tích hình chữ nhật.
Viết chơng trình khai báo 2 mảng con trỏ kiểu Shape. Cho một mảng trỏ đến các đối tợng hình tròn
và một mảng trỏ đến các đối tợng hình chữ nhật. Nhập dữ liệu cho các mảng con trỏ, hiện thị diện
tích của các hình tròn và diện tích các hình chữ nhật ra màn hình.
Câu 3.2: Sử dụng tính tơng ứng bội xây dựng bài toán sau:
a. Xây dựng 1 lớp SV mô tả các đối tợng sinh viên, lớp gồm các thành phần:
- Các thuộc tính lớp học và họ tên của sinh viên.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu
b. Xây dựng 1 lớp SVSP mô tả các đối tợng sinh viên s phạm, lớp đợc kế thừa từ lớp SV và bổ
sung thêm các thành phần:
- Thuộc tính mô tả học bổng của sinh viên.
- Hàm nhập lớp học, họ tên, học bổng.
- Hàm hiển thị lớp học, họ tên, học bổng.
c. Xây dựng lớp SVTC mô tả các đối tợng sinh viên tại chức, lớp đợc kế thừa từ lớp SV và bổ
sung thêm các thành phần:
- Thuộc tính mô tả học phí của sinh viên.
- Hàm nhập lớp học, họ tên, học phí.
- Hàm hiển thị lớp học, họ tên, học phí.
Viết chơng trình khai báo 2 mảng con trỏ kiểu SV, cho 1 mảng trỏ đến các đối tợng SVSP và
một mảng trỏ đến các đối tợng SVTC. Nhập dữ liệu cho các đối tợng SVSP và các đối tợng
SVTC, in dữ liệu đã nhập ra màn hình.
Câu 3.3: Sử dụng tính tơng ứng bội xây dựng bài toán sau:
a. Xây dựng 1 lớp MatHang mô tả các đối tợng mặt hàng, lớp gồm các thành phần:
- Thuộc tính Ten mô tả tên mặt hàng.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu
b. Xây dựng lớp MayTinh mô tả các đối tợng máy tính. Lớp đợc kế thừa từ lớp MatHang và bổ
sung thêm các thành phần:
- Thuộc tính Speed là một số nguyên.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
c. Xây dựng lớp MayIn mô tả các đối tợng máy in. Lớp đợc kế thừa từ lớp MatHang và bổ sung
thêm các thành phần:
- Thuộc tính Dpi là một số nguyên.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
11
Viết chơng trình khai báo 2 mảng con trỏ kiểu MatHang. Một mảng cho trỏ đến các đối tợng
MayTinh, một mảng cho trỏ đến các đối tợng MayIn, nhập dữ liệu cho 2 mảng trên và hiển thị dữ
liệu của 2 mảng đã nhập.
Câu 3.4: Sử dụng tính tơng ứng bội xây dựng bài toán sau:
a. Xây dựng 1 lớp Printer mô tả các đối tợng máy in, lớp gồm:
- Thuộc tính Name mô tả tên máy in.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
- Toán tử > để so sánh tên của 2 đối tợng máy in.
b. Xây dựng lớp Laser mô tả các đối tợng máy in Laser. Lớp đợc kế thừa từ lớp Printer và bổ sung
thêm:
- Thuộc tính Dpi
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
c. Xây dựng lớp ColorLaser mô tả các đối tợng máy in Laser màu. Lớp đợc kế thừa từ lớp Laser và
bổ sung thêm:
- Các thuộc tính Color
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
Viết chơng trình khai báo 2 mảng con trỏ kiểu Printer. Cho một mảng trỏ đến các đối tợng Laser
và một mảng trỏ đến các đối tợng ColorLaser. Nhập dữ liệu cho các con trỏ, sắp xếp các đối tợng
tăng dần theo tên và hiển thị dữ liệu đã sắp ra màn hình.
Câu 3.5: Sử dụng tính tơng ứng bội xây dựng bài toán sau:
a. Xây dựng 1 lớp Media mô tả các đối tợng phơng tiện truyền thông, lớp gồm:
- Thuộc tính tên gọi, giá bán.
- Hàm thiết lập hai tham số.
- Hàm nhập dữ liệu.
- Hàm hiển thị dữ liệu.
b. Xây dựng lớp Book mô tả các đối tợng sách. Lớp đợc kế thừa từ lớp Media và bổ sung thêm:
- Thuộc tính mô tả số trang, tác giả.
- Hàm thiết lập.
- Hàm nhập dữ liệu
- Hàm hiển thị dữ liệu.
c. Xây dựng lớp Video mô tả các đối tợng hình chữ nhật, lớp kế thừa từ lớp Media và bổ sung thêm:
- Thuộc tính thời gian chạy, giá bán.
- Hàm thiết lập.
- Hàm nhập dữ liệu
- Hàm hiển thị dữ liệu.
d. Viết chơng trình khai báo 2 mảng con trỏ kiểu Media. Cho một mảng trỏ đến các đối tợng
sách và một mảng trỏ đến các đối tợng băng video. Nhập dữ liệu cho các mảng con trỏ, hiển thị dữ
liệu của các đối tợng sách và băng video ra màn hình.
12
Phần 4: Mô hình
Câu 4.1: Xây dựng 1 mô hình hàm để tìm giá trị lớn nhất của 1 mảng dữ liệu các số nguyên, số
thực, xâu ký tự gồm n phần tử. Viết chơng trình nhập vào 1 mảng 3 xâu ký tự, in ra giá trị lớn nhất
của mảng đó.
Câu 4.2: a. Xây dựng 1 lớp Frac mô tả các phân số gồm:
- Các thuộc tính a, b là các số thực mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm nhập 1 phân số.
- Hàm in 1 phân số
- Định nghĩa toán tử > để so sánh hai phân số.
- Định nghĩa toán tử = để gán một phân số cho một phân số
b. Xây dựng 1 mô hình hàm max để tìm phần tử lớn nhất của một dãy các phần tử nguyên, thực, ký
tự, phân số.
c. Viết chơng trình:
- Nhập vào một mảng n phân số, in ra phân số lớn nhất.
- Nhập vào một mảng n số thực, in ra số lớn nhất.
Câu 4.3: a. Xây dựng 1 lớp Frac mô tả các phân số gồm:
- Các thuộc tính a, b là các số thực mô tả tử số và mẫu số của phân số.
- Hàm thiết lập.
- Hàm nhập 1 phân số.
- Hàm in 1 phân số dạng
- Định nghĩa toán tử + để cộng hai phân số
- Định nghĩa toán tử = để gán một phân số cho một phân số
b. Xây dựng 1 mô hình hàm sum để tính tổng của n phần tử nguyên, thực, phân số.
c. Viết chơng trình:
- Nhập vào một mảng n phân số, tính và in ra tổng các phân số.
- Nhập vào một mảng n số nguyên, tính và in ra tổng các phần tử.
13
Tài liệu liên quan
Generate
time = 0.075100898742676 s. Memory usage = 2.1 MB
mình xin code mẫu để thảm khảo đc k
Trả lờiXóa