import java.util.Random;
enum TrafficLightState {
RED, YELLOW, GREEN
}
class TrafficLight {
private TrafficLightState state;
public TrafficLight() {
state = TrafficLightState.RED;
}
public TrafficLightState getState() {
return state;
}
public void changeState(TrafficLightState newState) {
state = newState;
}
}
class Vehicle {
private String id;
public Vehicle(String id) {
this.id = id;
}
public String getId() {
return id;
}
}
public class TrafficManagementSystem {
public static void main(String[] args) {
TrafficLight trafficLight = new TrafficLight();
Random random = new Random();
for (int i = 0; i < 10; i++) {
int randomStateIndex = random.nextInt(TrafficLightState.values().length);
TrafficLightState newState = TrafficLightState.values()[randomStateIndex];
trafficLight.changeState(newState);
System.out.println("Traffic Light is now " + newState);
int numVehicles = random.nextInt(10);
for (int j = 0; j < numVehicles; j++) {
Vehicle vehicle = new Vehicle("Vehicle " + j);
System.out.println(vehicle.getId() + " is approaching the signal.");
if (newState == TrafficLightState.RED) {
System.out.println(vehicle.getId() + " must stop.");
} else {
System.out.println(vehicle.getId() + " can proceed.");
}
}
System.out.println();
}
}
}