Menu
CoddyTech

Ôn tập: Đèn giao thông

Thuộc phần Logic và luồng điều khiển trong hành trình Dart của Coddy. Bài học 62 trên 65.

challenge icon

Thử thách

Dễ

Tạo một hệ thống quản lý đèn giao thông toàn diện để thể hiện bạn thành thạo enum và câu lệnh switch. Nhiệm vụ của bạn là xây dựng một hệ thống có thể quản lý nhiều đèn giao thông và đưa ra hành động phù hợp cho người lái xe.

  1. Định nghĩa một enum có tên TrafficLight với ba giá trị: red, yellow và green
  2. Tạo một hàm có tên getDriverAction, nhận tham số TrafficLight và trả về chuỗi hành động phù hợp bằng câu lệnh switch:
    • Với TrafficLight.red: trả về "Stop"
    • Với TrafficLight.yellow: trả về "Caution"
    • Với TrafficLight.green: trả về "Go"
  3. Tạo một hàm có tên getWaitTime, nhận tham số TrafficLight và trả về thời gian chờ tính bằng giây bằng câu lệnh switch:
    • Với TrafficLight.red: trả về 30
    • Với TrafficLight.yellow: trả về 3
    • Với TrafficLight.green: trả về 25
  4. Tạo ba biến đại diện cho các giao lộ khác nhau:
    • intersection1 có kiểu TrafficLight, được đặt thành TrafficLight.red
    • intersection2 có kiểu TrafficLight, được đặt thành TrafficLight.yellow
    • intersection3 có kiểu TrafficLight, được đặt thành TrafficLight.green
  5. Với mỗi giao lộ, in trạng thái theo đúng định dạng sau:
    • Intersection 1: Red light - Stop - Wait time: 30 seconds
    • Intersection 2: Yellow light - Caution - Wait time: 3 seconds
    • Intersection 3: Green light - Go - Wait time: 25 seconds
  6. Mô phỏng việc thay đổi chu kỳ đèn giao thông bằng cách cập nhật intersection1 thành TrafficLight.green
  7. In trạng thái đã cập nhật: Updated Intersection 1: Green light - Go - Wait time: 25 seconds
  8. Tạo phần tóm tắt bằng cách in: Traffic system managing 3 intersections successfully

Chương trình của bạn cần thể hiện sức mạnh của việc kết hợp enum với câu lệnh switch để tạo ra một hệ thống quản lý giao thông có kiểu dữ liệu an toàn và dễ đọc. Các câu lệnh switch phải xử lý mọi giá trị enum và trả về chính xác các chuỗi và số đã nêu ở trên.

Tự làm thử

import 'dart:io';

// TODO: Định nghĩa enum TrafficLight tại đây

// TODO: Tạo hàm getDriverAction tại đây

// TODO: Tạo hàm getWaitTime tại đây

void main() {
  // TODO: Viết code bên dưới
  
  // Tạo các biến cho các giao lộ
  
  // In ra trạng thái của từng giao lộ
  
  // Cập nhật intersection1 và in ra trạng thái mới
  
  // In ra bản tóm tắt
}

Tất cả bài học trong Logic và luồng điều khiển

Tự luyện tập: Trình biên dịch Dart online