Portada » Informática » Implementación Práctica de Clases y Estructuras de Datos en Programación Orientada a Objetos
A continuación, se presentan varios escenarios de programación orientada a objetos (POO) que requieren la implementación de un programa principal utilizando las clases y métodos definidos. Las definiciones de clases se presentan en una sintaxis similar a C#.
Clase Tarea
public class Tarea
{
// Constructor
public Tarea(string identificador);
// Métodos para establecer el identificador y el vencimiento
public void SetIdentificador(string val);
public void SetVencimiento(int val);
// Devuelve una copia del objeto
public Tarea Copy();
// Muestra los datos de la tarea por pantalla
public void EscribirPantalla();
}
Clase ListaTareas
(Representa una lista de tareas)
public class ListaTareas
{
// Añade la tarea recibida como parámetro al final de la lista.
// Devuelve -1 si no había espacio en la lista, 0 en caso contrario.
public int AñadirTarea(Tarea tarea);
// Devuelve el número de tareas con prioridad igual a la indicada.
public int GetNumeroPorPrioridad(int prioridad);
}
Escriba el código de un programa principal que utilice los métodos anteriores para realizar las siguientes operaciones:
Tarea
a partir de los datos (identificador y vencimiento) leídos del teclado.Clase Coche
public class Coche
{
// Constructor
public Coche(string marca, string matricula);
// Devuelve la matrícula del coche
public string GetMatricula();
// Devuelve la cantidad de ocupantes del coche
public int GetOcupantes();
}
Clase ParkingCoches
(Representa coches y las plazas que ocupan en el parking. Los coches no tienen por qué estar en plazas consecutivas).
public class ParkingCoches
{
// Devuelve el número de coches en el parking
public int GetNumeroCoches();
// Devuelve el número máximo de plazas del parking
public int GetMaxPlazas();
// Carga la lista con los datos del fichero “coches.txt”.
// Devuelve 0 si la lista se ha cargado correctamente, -1 en caso contrario.
public int Cargar();
// Aparca el coche en la plaza recibida por parámetro.
// Devuelve 0 si todo ha ido bien, -1 en caso contrario.
public int Aparcar(Coche coche, int plaza);
// Devuelve el coche que ocupa la plaza recibida como parámetro.
// Devuelve null si no hay ningún coche en esa plaza.
public Coche ConsultarCochePorPlaza(int plaza);
// Devuelve un nuevo objeto ParkingCoches pero solo con aquellos coches con número de ocupantes
// igual al recibido como parámetro.
public ParkingCoches GetParkingPorOcupantes(int ocupantes);
}
Escriba el código de un programa principal para realizar las siguientes operaciones:
Clase Position
public class Position
{
// Constructor
public Position(double lat, double lon, double alt);
// Devuelve la latitud en grados
public double GetDegLatitude();
// Devuelve la longitud en grados
public double GetDegLongitude();
// Devuelve una copia de la posición
public Position Clone();
}
Clase ListaPosiciones
(Representa una lista de posiciones)
public class ListaPosiciones
{
// Devuelve el número de posiciones en la lista
public int GetNumero();
// Devuelve el objeto tipo Position que ocupa la posición i de la lista.
// Devuelve null si el número indicado está fuera de rango.
public Position GetPosicion(int i);
// Añade la posición recibida como parámetro al final de la lista.
// Devuelve 0 si todo ha ido bien, -1 en caso contrario.
public int AñadirPosicion(Position posicion);
// Devuelve otra lista con las posiciones con altura superior a la indicada.
public ListaPosiciones GetPosicionesPorAltura(double altura);
}
Escriba el código de un programa principal que utilice los métodos anteriores para realizar las siguientes operaciones:
Position
a partir de los datos (latitud, longitud y altura) leídos del teclado.Clase Cliente
public class Cliente
{
// Constructor
public Cliente(string dni, float importe);
// Devuelve el DNI del cliente
public string GetDNI();
// Devuelve la cantidad que le falta por pagar al cliente (deuda)
public double GetDeuda();
// Suma el pago indicado a la cantidad pagada por el cliente
public void RealizarPago(float pago);
}
Clase ListaClientes
(Representa una lista de clientes)
Nota: Se corrige la definición duplicada de Cliente
por ListaClientes
, basándose en los métodos listados.
public class ListaClientes
{
// Devuelve el número de clientes que hay en la lista
public int GetNumero();
// Devuelve el cliente que ocupa la posición recibida como parámetro, null
// si la posición indicada está fuera de rango.
public Cliente GetCliente(int posicion);
// Devuelve el cliente con DNI igual al recibido como parámetro, null si
// no hay ningún cliente con ese DNI.
public Cliente GetClientePorDNI(string dni);
// Carga la lista con los datos del fichero “clientes.txt”. Devuelve 0 si
// la lista se ha cargado correctamente, -1 en caso contrario.
public int Cargar();
// Añade el cliente recibido a la lista.
// Devuelve 0 si todo ha ido bien, -1 si no hay espacio en la lista.
public int AñadirCliente(Cliente cliente);
// Devuelve otra lista con aquellos clientes que deben dinero (morosos).
public ListaClientes GetListaMorosos();
}
Escriba el código de un programa principal para realizar las siguientes operaciones:
Clase Jugador
public class Jugador
{
// Constructor
public Jugador(string nombre, int dorsal);
// Suma al número de goles del jugador el valor recibido como parámetro
public void SumarGoles(int goles);
}
Clase Equipo
public class Equipo
{
// Constructor
public Equipo(string nombre);
// Devuelve el jugador con dorsal igual al recibido como parámetro.
// Devuelve null si no hay ningún jugador con ese dorsal.
public Jugador GetJugador(int dorsal);
// Añade al equipo el jugador recibido como parámetro.
// Devuelve 0 si todo ha ido bien, -1 en caso contrario.
public int AltaJugador(Jugador jugador);
// Devuelve el nombre del jugador del equipo que ha marcado más goles.
public string MaximoGoleador();
}
Escriba el código de un programa principal para realizar las siguientes operaciones: