Đề bài: B - Công cụ tạo lịch hẹn theo khoảng thời gian tùy chọn
Nhập giờ bắt đầu, giờ kết thúc trong ngày và thời lượng mỗi cuộc hẹn, chương trình tổ chức thành nhiều hàm để tạo danh sách khung giờ hẹn và kiểm tra khung giờ có hợp lệ hay không.
Yêu cầu kỹ thuật chung (áp dụng cho cả 8 mã đề của lần giao này):
- Toàn bộ chương trình tổ chức thành tối thiểu 5 hàm, mỗi hàm chỉ làm một nhiệm vụ, không viết mã rời rạc ngoài hàm trừ phần gắn sự kiện.
- Mỗi hàm phải có ít nhất 1 tham số, và có ít nhất 1 hàm nhận từ 2 tham số trở lên.
- Có ít nhất 1 hàm được gọi lại nhiều lần với các tham số khác nhau để tạo ra kết quả khác nhau.
- Có ít nhất 1 hàm gọi hàm khác bên trong nó.
- Nộp kèm bảng mô tả: tên hàm, tham số, nhiệm vụ, được gọi ở đâu (xem bảng bên dưới).
File khởi tạo: goc.html. Tham khảo kết quả mong muốn ở ảnh chụp bên dưới.
Bảng mô tả hàm
| Tên hàm | Tham số | Nhiệm vụ | Được gọi ở đâu |
|---|---|---|---|
kiemTraKhoangThoiGian(batDau, ketThuc) | 2 | Kiểm tra khoảng thời gian nhập vào có hợp lệ không (bằng if/else) | Đầu hàm taoLichHen() |
dinhDangGio(soPhutTuNuaDem) | 1 | Đổi số phút kể từ 0h thành chuỗi giờ:phút | Gọi lại nhiều lần trong taoDanhSachKhungGio() với các mốc phút khác nhau |
taoDanhSachKhungGio(batDau, ketThuc, thoiLuong) | 3 | Dùng vòng lặp while sinh mảng các khung giờ hẹn liên tiếp | Trong taoLichHen(); gọi lại hàm dinhDangGio() bên trong |
phanLoaiKhungGio(gio) | 1 | Phân loại khung giờ thuộc buổi sáng/chiều/tối bằng switch | Trong renderDanhSach() cho từng khung giờ |
renderDanhSach(danhSach) | 1 (mảng khung giờ) | Sinh danh sách thẻ hiển thị các khung giờ hẹn ra giao diện | Cuối hàm taoLichHen(); gọi phanLoaiKhungGio() bên trong |
taoLichHen() | 0 | Hàm điều phối chính, gọi lần lượt các hàm trên | Gắn vào sự kiện click nút "Tạo lịch" |
Kết quả mong muốn (đáp án tham khảo)
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.