Sie sind auf Seite 1von 3

EJERCICIO 1A:

Desarrollar un programa C# para una agencia de alquiler de Vehículos.

Enunciado de este ejercicio.

Una agencia de alquiler de vehículos sin conductor dispone de camiones y de


turismos.

La figura anterior muestra la jerarquía de clases. En la misma figura se incluyen los


atributos y métodos que es necesario considerar.

Los atributos miembros de la clase base Vehiculo son las siguientes:


1. un string con la matricula del vehículo y
2. una variable boolean (true, false) llamada alquilado que indica si ese vehículo
está alquilado o no en un determinado momento.

Los métodos públicos de Vehiculo son los siguientes:


1. un constructor (no mostrado en la figura) con el header siguiente,
public Vehiculo(String matric, boolean alquil) { ... }
2. dos métodos abstract llamados alquilar( ) y devolver( ) para alquilar y devolver un
vehículo, y un método abstract llamado showInfo( ) para mostrar información de
un vehículo. Este método se definirá en cada una de las clases de las que pueden
existir objetos, es decir en Camion y Turismo.

El alquiler de turismos se factura por kilómetros, mientras que el de camiones se


factura por días. Por esta razón, las variables miembro de la clase Turismo son las
siguientes:
1. un double con el precio por km (precioKm),
2. un int con el numero de km que tiene el coche cuando se alquila (kmAlquiler) y
3. un int con el numero de km con los que se devuelve (kmDevolucion).
Además esta clase define unos atributos static de tipo entero que indican el número total
de objetos creados de la clase (numTurismos), y el número de vehículos de esa clase
que están alquilados en un determinado momento (numTurAlquilados). Los métodos de
la clase deberán mantener actualizadas estas variables en todo momento.

Nota: Investiga cómo se definen y se manejan variables static.

En la clase Camion los atributos correspondientes son un double con el precio por día
(precioDia), el día en el que se alquila (diaAlquiler) y el día en el que se devuelve
(diaDevolucion). Las dos últimas son de tipo entero.

La clase Camion tiene unos atributos static análogas (numCamiones y


numCamAlquilados), que también son enteras.

No se pueden definir objetos de la clase Vehiculo puesto que es abstract.

Las clases Turismo y Camion disponen de los dos métodos siguientes:


1. El método void alquilar(int), que recibe como argumento un entero que
representa los km que tiene el vehículo cuando se alquila (kmAlquiler) para
turismos, o el día en el que se alquila (diaAlquiler) para camiones. Este método
imprime por consola noticia del tipo de alquiler realizado.
2. El método void devolver( ), que tiene un argumento análogo (kmDevolucion para
turismos y diaDevolucion para camiones). Este método calcula e imprime por
consola el coste que ha supuesto el alquiler del vehículo.

Para la clase Camion los días se cuentan como números enteros a partir del 1 de Enero
de 2000.

Además cada clase tendrá su propio constructor, según los headers siguientes:
public Turismo(String matric, boolean alquil, double prKm) {...}
public Camion(String matric, boolean alquil, double prDia) {...}

Todas las clases de las que se crean objetos tienen también un método showInfo( ) que
imprime los siguientes datos:
• el tipo de vehículo, es decir la clase a la que pertenece,
• la matrícula,
• si el vehículo está alquilado o no,
• el precio por día o por km,
• el número total de vehículos que hay de esa clase y
• cuántos vehículos de esa clase están alquilados en ese momento (ver modelo con
el resultado del programa).
El programa principal, se llamara AgenciaAlquiler, realiza las siguientes funciones:

1. Crea 4 objetos de las clases Camion y Turismo pasándole al constructor los


argumentos necesarios.
2. Se alquilan dos de los vehículos creados.
3. Se hace un listado de la situación todos los vehículos de la empresa.
4. Se devuelven los vehículos creados anteriormente.

EJERCICIO 1B.

Cambiar el programa principal.

Crea un nuevo programa principal similar al de la clase AgenciaAlquiler, llamado


NuevaAgenciaAlquiler, que utilice la clase ArrayList para almacenar los vehículos. El
método main( ) deberá ser similar al anterior y hacer uso asimismo del polimorfismo.

Nota: Investigar cómo definir y crear un ArrayList de Objetos.

Atte.
Tutor.

Das könnte Ihnen auch gefallen