Bài tập lập trình hướng đối tượng c
lượt xem 53
download
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
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài tập lập trình hướng đối tượng 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. 1
- 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. 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: 2
- - 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ố. - 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. 3
- - 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 ? 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. 4
- 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 đó. 5
- 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. 6
- - 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. 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. 7
- - 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. 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. 8
- - 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. 9
- 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: 10
- - 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: - 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. 11
- 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. 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. 12
- 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. 13
- 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. 14
- - 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. 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ả. 15
- - 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. 16
- 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ử. 17
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài tập Lập trình hướng đối tượng C++ cơ bản
59 p | 4250 | 728
-
Hướng dẫn giải bài tập lập trình hướng đối tượng C++ - Lê Hải Trung
100 p | 1459 | 218
-
BÀI GIẢNG TÓM TẮT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
111 p | 382 | 157
-
Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++
22 p | 561 | 131
-
Bài giảng Ôn tập Lập trình hướng đối tượng (OOP)
15 p | 287 | 33
-
Bài giảng Lập trình hướng đối tượng: Chương 3 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
38 p | 140 | 19
-
Tập bài giảng Lập trình hướng đối tượng
253 p | 54 | 10
-
Bài giảng Lập trình hướng đối tượng: Chương 7 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
11 p | 87 | 9
-
Bài giảng Lập trình hướng đối tượng: Chương 6 - Trần Minh Thái
40 p | 82 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - ĐH Lạc Hồng
41 p | 116 | 7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - ĐH Lạc Hồng
47 p | 67 | 6
-
Bài giảng Lập trình hướng đối tượng: Chương 5 - Nguyễn Minh Thành
27 p | 69 | 6
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 8
5 p | 67 | 5
-
Bài giảng Ôn tập tốt nghiệp Lập trình hướng đối tượng - Chương 1: Đối tượng và lớp
118 p | 39 | 4
-
Bài giảng Lập trình hướng đối tượng (Object-Oriented Programming) - Chương 1-8: Con trỏ
41 p | 12 | 4
-
Bài giảng Phương pháp lập trình hướng đối tượng: Template, thư viện C++ - Trần Phước Tuấn
24 p | 51 | 3
-
Bài giảng Lập trình hướng đối tượng: Chương 6 - Nguyễn Minh Thi
9 p | 43 | 3
-
Bài giảng Lập trình hướng đối tượng: Chương 5 - Nguyễn Minh Thi
12 p | 33 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn