Mã đề B - Tính tiền theo hạng khách và hình thức thanh toán
Kiến thức áp dụng: switch lồng nhau (2 tầng phân loại), kết hợp đổi giao diện theo kết quả, kiểm tra hợp lệ trước khi vào switch.
Yêu cầu
- Chương trình có tối thiểu 2 tầng phân loại: switch lồng trong switch (tầng ngoài theo Hạng khách, tầng trong theo Hình thức thanh toán).
- Kết quả không chỉ hiển thị chữ mà phải thay đổi cả giao diện: màu sắc, biểu tượng, class trạng thái tương ứng.
- Có 1 tình huống cố ý minh họa lỗi thiếu break (xem comment trong
dapan.js), sau đó sửa lại đúng, giữ cả 2 phiên bản trong comment. - Toàn bộ đầu vào lấy từ tương tác người dùng, có kiểm tra tính hợp lệ trước khi đưa vào switch.
- Nộp kèm mô tả sơ đồ luồng rẽ nhánh của chương trình (xem mục bên dưới).
Sơ đồ luồng rẽ nhánh (mô tả bằng chữ)
Nhận hạng khách -> switch(hạng) xác định mức giảm giá cơ bản; bên trong mỗi case lại switch(hình thức thanh toán) để thêm ưu đãi phụ theo hình thức.
Bảng đầu vào - đầu ra mong muốn
| Hạng khách | Hình thức thanh toán | Kết quả mong muốn |
|---|---|---|
| Khách thường | Tiền mặt | Giảm 0% trên hóa đơn, thanh toán bằng tiền mặt |
| Khách thường | Thẻ ngân hàng | Giảm 0% trên hóa đơn, thanh toán bằng thẻ ngân hàng (cộng thêm điểm thưởng thẻ) |
| Khách thường | Ví điện tử | Giảm 0% trên hóa đơn, thanh toán bằng ví điện tử (hoàn thêm 1% vào ví) |
| Khách hạng Bạc | Tiền mặt | Giảm 5% trên hóa đơn, thanh toán bằng tiền mặt |
| Khách hạng Bạc | Thẻ ngân hàng | Giảm 5% trên hóa đơn, thanh toán bằng thẻ ngân hàng (cộng thêm điểm thưởng thẻ) |
| Khách hạng Bạc | Ví điện tử | Giảm 5% trên hóa đơn, thanh toán bằng ví điện tử (hoàn thêm 1% vào ví) |
| Khách hạng Vàng | Tiền mặt | Giảm 10% trên hóa đơn, thanh toán bằng tiền mặt |
| Khách hạng Vàng | Thẻ ngân hàng | Giảm 10% trên hóa đơn, thanh toán bằng thẻ ngân hàng (cộng thêm điểm thưởng thẻ) |
| Khách hạng Vàng | Ví điện tử | Giảm 10% trên hóa đơn, thanh toán bằng ví điện tử (hoàn thêm 1% vào ví) |
| Khách hạng Kim Cương | Tiền mặt | Giảm 15% trên hóa đơn, thanh toán bằng tiền mặt |
| Khách hạng Kim Cương | Thẻ ngân hàng | Giảm 15% trên hóa đơn, thanh toán bằng thẻ ngân hàng (cộng thêm điểm thưởng thẻ) |
| Khách hạng Kim Cương | Ví điện tử | Giảm 15% trên hóa đơn, thanh toán bằng ví điện tử (hoàn thêm 1% vào ví) |
| (để trống) | (để trống) | Vui lòng chọn đầy đủ hai lựa chọn (giá trị không hợp lệ) |
Ảnh minh họa kết quả (bản đáp án)
Ràng buộc cấu trúc riêng cho mã đề B
Thanh tóm tắt dạng danh sách: Thêm một thanh tóm tắt gồm danh sách gạch đầu dòng, đặt sau phần giới thiệu. Không thay ràng buộc này bằng cấu trúc của mã đề khác.
