[Tự Học C++] Bài Tập Tổng Hợp, Nâng Cao Dành Cho C++ - Cafedev
Có thể bạn quan tâm
🔥CHỌN LỌC TOP NHỮNG KHOÁ HỌC LẬP TRÌNH ONLINE NHIỀU NGƯỜI THEO HOC TẠI ĐÂY🔥
Lưu ý: Hướng dẫn cách xem và tải tài liệu từ trang cafedev tại đây.
- Áp dụng function template để giải các bài tập sau:
- Tìm min, max giữa 2 phần tử kiểu T (int, float, PhanSo, …).
- Tìm phần tử dương lớn nhất trong mảng kiểu T (int, float, PhanSo, …).
- Sắp xếp tăng dần mảng kiểu T (int, float, PhanSo, …).
2. Có 4 yêu cầu sắp xếp trên một dãy số nguyên như sau:
- Sắp xếp dãy số nguyên theo thứ tự tăng dần.
- Sắp xếp dãy số nguyên theo thứ tự giảm dần của gi trị tuyệt đối.
- Sắp xếp các số nguyên chẳn tăng dần và các số nguyên lẻ giảm dần.
- Sắp xếp các số nguyên âm giảm dần, các số nguyên dương tăng dần, và các số dương âm xếp trước các số nguyên dương.
Yêu cầu: a. Bạn hãy thiết kế và cài đặt 4 thuật toán sắp xếp trên theo phương pháp lập trình hướng đối tượng để tận dụng tối đa mã nguồn. b. Nếu phải thay đổi kiểu dữ liệu, bạn hãy tổng quát hóa các thuật toán sắp xếp trên để có thể sắp xếp các dãy số có kiểu dữ liệu bất kì. (sử dụng template
Tải bài giải 23. Công ty XYZ quản lý việc mua hàng của 3 loại khách hàng:
- Loại A: Khách hàng bình thường (gồm x khách hàng): Số tiền khách hàng trả = Số lượng hàng * đơn giá hàng + Thuế VAT (10%)
- Loại B: Khách hàng thân thiết (gồm y khách hàng): Phần trăm khuyến mãi = MAX (Số năm thân thiết * 5%, 50%) Số tiền khách hàng trả = (Số lượng hàng * đơn giá hàng) * (100% – Phần trăm khuyến mãi) + Thuế VAT (10%)
- Loại C: Khách hàng đặc biệt (gồm z khách hàng): Số tiền khách hàng trả = (Số lượng hàng * đơn giá hàng) *50% + Thuế VAT (10%)
Viết chương trình thực hiện các yêu cầu sau:
- Nhập danh sách khách hàng từ file văn bản XYZ.INP. 0< x,y,z<1000.
- Sử dụng con trỏ hàm để tính Tổng số tiền mỗi khách hàng trong danh sách phải trả. Xuất kết quả ra file XYZ.OUT dưới định dạng theo quy định.
- Thiết kế và xây dựng các lớp để giải quyết bài toán tính Tổng số tiền công ty thu được. Xuất kết quả ra file XYZ.OUT dưới định dạng theo quy định.
XYZ.INP | XYZ.OUT |
x y z TenKhachHangA1 SoTienPhaiTraA1 ……………… TenKhachHangAx SoTienPhaiTraAx TenKhachHangB1 SoTienPhaiTraB1 ……………… TenKhachHangBy SoTienPhaiTraBy TenKhachHangC1 SoTienPhaiTraC1 ……………… TenKhachHangCz SoTienPhaiTraCz TongSoTienCongTyThuDuoc |
4. Khách sạn SOFITEL có 3 loại phòng với doanh thu phòng của tháng được tính như sau:
- Loại Deluxe: doanh thu phòng = (Số đêm * 750000 + Phí dịch vụ) * (100% + Phí phục vụ)
- Loại Premium: doanh thu phòng = (Số đêm * 500000 + Phí dịch vụ) * 105%
- Loại Business: doanh thu phòng = Số đêm * 300000
Viết chương trình thực hiện các yêu cầu sau:
- Nhập danh sách các phòng được sử dụng từ tập tin văn bản SOFITEL.INP. d: số phòng loại Deluxe, p: số phòng loại Premium, b: số phịng loại Business (0<d,p,b<1000)
- Sử dụng con trỏ hàm để tính doanh thu từng loại phòng khách sạn thu được. Xuất kết quả ra file SOFITEL.OUT dưới định dạng theo quy định.
- Thiết kế và xây dựng các lớp để liệt kê phòng có doanh thu vượt trội. Biết phòng có doanh thu vượt trội thỏa tính chất:
- Doanh thu tháng >= Doanh thu tháng trước * 125%
- Xuất kết quả ra file SOFITEL.OUT dưới định dạng theo quy định.
SOFITEL.INP | SOFITEL.OUT |
d p b MaPhongD1 SoDemD1 PhiDichVuD1 PhiPhucVuD1 … MaPhongDd SoDemDd PhiDichVuDd PhiPhucVuDd MaPhongP1 SoDemP1 PhiDichVuP1 … MaPhongPp SoDemPp PhiDichVuPp MaPhongB1 SoDemB1 … MaPhongBb SoDemBb |
5. Cho N hình, gồm các loại hình: tam giác, chữ nhật, hình vuông, hình tròn (đọc từ file).
- Các hình được mô tả với các thông số như sau:
- Hình tam giác: ký hiệu l ‘G’ kèm theo tọa độ 3 đỉnh.
- Hình chữ nhật: ký hiệu l ‘C’ kèm theo tọa độ góc trái trên và chiều dài (theo trục Ox) và chiều rộng (theo trục Oy).
- Hình vuông: ký hiệu l ‘V’ kèm theo tọa độ góc trái trên và chiều dài cạnh.
- Hình tròn: ký hiệu l ‘T’ kèm theo tọa độ tâm và bán kính.
- Mỗi tọa độ được xác định bởi hai số nguyên.
Tìm hình chữ nhật nhỏ nhất bao quanh N hình được cho xác định bởi tọa độ góc trái trên và chiều dài, chiều rộng của hình chữ nhật đó. Xuất kết quả ra tập tin văn bản như ví dụ sau: Yêu cầu: thiết kế các lớp đối tượng để giải quyết sao cho chương trình có khả năng tiến hóa, dễ dàng thêm các loại hình mới.
Tải bài giải 56. Cho sẵn 3 hàm số:
- f(x) = k1*x – 3
- g(x) = -3x mũ 2 + k2*x
- h(x) = 7x mũ 3 + k3*x mũ 2 – 5
và 3 tham số min, max, step.
Viết chương trình thực hiện các yêu cầu sau:
- Đọc 6 tham số trên từ tập tin KHAOSAT.INP. Tập tin chỉ gồm một dòng duy nhất chứa 6 số thực k1, k2, k3, min, max, step (mỗi số cách bởi một khoảng trắng)
- Sử dụng con trỏ hàm để in bảng giá trị của 3 hàm trên trong khoảng [min, max] với bước nhảy l step ra tập tin KHAOSAT.OUT. Dòng đầu tiên chứa các số ứng với gi trị của x khảo st: x1, x2, x3, … (mỗi số cách nhau bởi đúng một khoảng trắng) với x1 = min, x2 = min+step, … Dòng thứ hai chứa cc gi trị f(x1), f(x2), f(x3), … Tương tự, dòng thứ ba cho hàm g và dòng thứ tư cho hàm h.
- Thiết kế và xây dựng các lớp để in ra bảng giá trị đạo hàm ra tập tin KHAOSAT.OUT. Dòng tiếp theo đầu tiên chứa các số f’(x1), f’(x2), f’(x3), … Tương tự cho hai dòng kế tiếp ứng với g’ và h’.
KHAOSAT.INP | KHAOSAT.OUT |
1 2 3 -2 2 2 | -2 0 2 -5 -3 -1 -16 0 -8 -49 -5 63 1 1 1 14 2 -10 72 0 96 |
7. Viết chương trình tính diện tích và chu vi các hình: Hình chữ nhật biết hai cạnh, hình tam giác biết ba cạnh, hình tròn biết bán kính. Chương trình có giao diện như sau:
- Nhập kích thước các hình
- Hiện thị diện tích và chu vi các hình đã nhập
- Kết thúc chương trình
Lựa chọn công việc (1, 2, 3): Khi người sử dụng chọn 1 thì hỏi người sử dụng nhập kích thước cho hình nào, nhập xong hỏi người sử dụng có nhập tiếp không. Yêu cầu trong chương trình có cài đặt sự đa hình liên kết động.
Tải bài giải 7Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Nguồn và Tài liệu tiếng anh tham khảo:
- cplusplus
- w3schools
- Geeksforgeeks
- learncpp
Tài liệu từ cafedev:
- Full series tự học C++ từ cơ bản tới nâng cao tại đây nha.
- Ebook về C++ tại đây.
- Các series tự học lập trình MIỄN PHÍ khác
- Nơi liên hệ hợp tác hoặc quảng cáo cùng Cafedevn tại đây.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
- Group Facebook
- Fanpage
- Youtube
- Trang chủ
Chào thân ái và quyết thắng!
Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!
Từ khóa » Bài Tập C Nâng Cao
-
Tổng Hợp 1000 Bài Tập Lập Trình C/C++ Từ Cơ Bản Tới Nâng Cao
-
Tuyển Tập 140 Bài Tập C Có Giải
-
Tổng Hợp Bài Tập C/C++ Có Lời Giải - Lập Trình Không Khó
-
BÀI TẬP THỰC HÀNH Môn Lập Trình C Nâng Cao - TaiLieu.VN
-
Bài Tập Lập Trình C/C++ | VnCoding
-
Tài Liệu Lập Trình C Nâng Cao Mới Nhất (cập Nhật 2021) - CodeGym
-
Tổng Hợp Bài Tập Lập Trình C Cơ Bản Phần 1 - Khuê Nguyễn
-
Các Bài Tập C Từ Cơ Bản đến Nâng Cao Có đáp án
-
Tổng Hợp Hơn 1000 Bài Tập C / C++ Có Lời Giải - Freetuts
-
Bài Tập Code C/C++ Cơ Bản Đến Nâng Cao Có Lời Giải - Phần 1
-
Các Bài Tập Lập Trình C Từ Cơ Bản Đến Nâng Cao Có Đáp Án ...
-
Học Lập Trình C Căn Bản & Nâng Cao - Freetuts
-
Giúp đỡ Làm Các Bài Tập C/C++ | Facebook
-
1000 Bài Tập Lập Trình C/C++ Có Lời Giải Giành Cho SV - Linkerpt