Laborator 9

Recapitularea conceptelor de programare orientata pe obiecte.

Obiective

Recapitularea conceptelor de programare orientata pe obiecte.

Aspecte teoretice

Exercitii

1. Sa se implementeze un simulator de trafic rutier pentru o intersectie in cruce, cu cate o banda pentru fiecare sens de deplasare.

Intersectia este dotata cu semafoare pe fiecare banda de intrare in intersectie (4 semafoare in total) si un controler care comanda comutarea semafoarelor. Benzile de intrare in intersectie ofera informatii cu privire la lungimea cozilor (numarul de masini care asteapta pentru a intra in intersectie). Sosiera masinilor pe benzile de intrare se face in mod aleator.

Controlerul de intersectie trebuie sa respcte urmatoarele constrangeri: ciclul intersectiei este de fix 100 secunde, ciclul intersectiei trebuie alocat in intervale variabile fiecarui semafor astfel incat intr-un ciclu toate semafoarele sa fi comutat o singura data pe culoarea verde, durata minima pe care un semafor poate ramane pe culoarea verde este de 5 secunde, la un moment dat doar un semafor poate fi comutat pe culoarea verde, durata pentru care un semafor ramane pe culoarea verde este calculata de controler in functie de numarul de masini aflat la coada pe benzile de intrare in intersectie dupa un algoritm care ramane la alegerea programatorului.

Banda de intrare in intersectie are o capacitate maxima, a carei depasire va genera o eroare.

Constrangeri de implementare:

a. Aplicatia va contine minim urmatoarele clase: TrafficLight, CrossRoad, Lane, Controler, Vehicle si Simulator.

b. Clasa Lane incapsuleaza atributele caracteristice unei benzi de deplasare, inclusiv vehiculele aflate la coada. Vehiculele vor fi stocate intr-o colectie java.