Na základě dodaného objektového modelu a připravené třídy Main implementujte třídy: Vehicle, Tracker a GPSTrackingSystem.
Stáhněte si kostru projektu na: https://gitlab.fel.cvut.cz/B201_B6B36OMO/seminar.git.
(git clone git@gitlab.fel.cvut.cz:B201_B6B36OMO/seminar.git)
Pokud jste neabsolvovali kurzy čarodějnictví, tak doporučujem vyklonovat mimo své hlavní repo a do svého hlavního repa soubory překopírovat.
Implementujte třídu GPSTrackingSystem, která reprezentuje nové řešení pro GPS sledování vozidel.
Třída drží List všech vytvořených Trackovacích zařízení a vnitřní counter, pomocí kterého je trackerům přidělováno ID (jelikož každé trackovací zařízení musí mít unikátní ID, counter musí být statický).
Třída podporuje vlastnost attachTrackingDevices, která na vstupu dostane List vozidel a ke každému vytvoří a připevní trackovací zařízení.
Dále třída podporuje vlastnost generateMonthlyReport, která vypíše informaci o všech trackovacích zařízeních včetně vozidel, ke kterým jsou připevněny a vypočte ujetou vzdálenost od posledního měření. Metoda následně resetuje všechna trackovací zařízení, aby report obsahoval vždy pouze vzdálenost ujetou za daný měsíc.
Příklad výpisu metody generateMonthlyReport:
—– GPS Tracking system: Monthly report —–
Currently active devices:
Tracker_1, attached to VOLVO, VINKLJ15
Tracker_2, attached to Saab, JKLAJSL15
Tracker_3, attached to BMW, HASUINJ15
This month traveled distance: 300 Km.