La FIOS es una empresa que organiza diferentes competiciones de vehículos a motor cada año. Cada competición se realiza con coches diferentes y tienen lugar en diferentes circuitos.
Las competiciones constan de un número de carreras, cada competición se identifica por el nombre y el año que tiene lugar, (Ejemplo; Super600 2023). Las carreras tienen lugar en circuitos donde se indicará el nombre del circuito, el país en que tiene lugar, los Km de cada vuelta y el número de vueltas.
Estos circuitos pueden ser solo de tipo, URBANO, OVALO, TIERRA, PISTA
Todos los vehículos independientemente de la competición en que compitan, tendrán una marca, un modelo, una motorización, velocidad máxima y un peso.
Dependiendo del tipo de vehículo tendrán:
En el caso de los F1 pueden ser prototipos o oficiales. Los oficiales tendrán un atributo para almacenar el número de vueltas que tiene recorridas y en el caso de los prototipos tendrán un atributo que indique la versión (Ejemplo; 1,1.2,3.0…). Las carreras estarán formadas por un número de coches del mismo tipo, no se puede crear una carrera con coches diferentes. Las carreras tienen las siguientes propiedades.
Cada coche pertenece a una escudería, donde se indicara el nombre de la escuderia, nombre del jefe de equipo, y pilotos. Cada escudería tendrá dos coches. De todos los miembros del equipo necesitamos saber su nombre, edad y años de contrato.
Además en el caso de los pilotos, pueden ser oficiales, probadores o rookies. Para los pilotos oficiales tendremos que saber el número de piloto (Ejemplo: alonso 14) y carreras ganadas. Para los rookies el número de kilómetros que ha recorrido.
El programa debe poder crear competiciones donde añadir diferentes carreras. Tambien se deben poder incluir las escuderías que compiten con la información de sus coches, y personal como los pilotos oficiales, de pruebas, rookies y jefes de equipo.
Se debe poder introducir en las diferentes listas de coches, carreras o competiciones directamente un elemento. Ejemplo (competicion.anadir(GPFrancia), o carrera.anadirCoche(Ferrari1)…..).
Solo se podrá crear objetos de los tipos definidos para las carreras, coches, personal del equipo, etc.
Introduce los datos en el programa directamente desde el main y el programa debe ser capaz de imprimir mediante una traza (toString) todos los datos insertados.