Está en la página 1de 7

CLASE COLA

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CPlayaEstacionamiento
{
public class CCola
{
/***************** Atributos ****************/
protected object aElemento;
protected CCola aSubCola;

/***************** Constructores ****************/


public CCola()
{
aElemento = null;
aSubCola = null;
}
protected CCola(object pElemento, CCola pSubCola)
{
aElemento = pElemento;
aSubCola = pSubCola;
}
public static CCola crearCola()
{
return new CCola();
}
/***************** Modificadores ****************/
protected void modificarElemento(object pElemento)
{
aElemento = pElemento;

}
protected void modificarSubCola(CCola pSubCola)
{
aSubCola = pSubCola;

/***************** Selectores ****************/


protected object Elemento()
{
return aElemento;
}
protected CCola SubCola()
{
return aSubCola;
}

/***************** Operaciones de Base ****************/


public object primero()
{
return Elemento();
}
public bool esVacia()
{
return aElemento == null;
}
public static CCola colaVacia()
{
return new CCola();
}
public CCola agregar(object pElemento)
{
if (esVacia())
{
aSubCola = new CCola(aElemento, aSubCola);
aElemento = pElemento;
}
else
{
aSubCola.agregar(pElemento);
}
return this;
}
public CCola avanzar()
{
if (esVacia())
{
aSubCola = aSubCola.SubCola();
aElemento = aSubCola.Elemento();
}
return this;
}

public void listar()


{
if (!esVacia())
{
Console.WriteLine(primero().ToString());
aSubCola.listar();
}
}

}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CPlayaEstacionamiento
{
internal class CPlayaEstacionamiento
{
/***************** Atributos ****************/
private CCola aPlaya;
public CCola aEspacioAux;

/***************** Metodos ****************/


/***************** Constructores ****************/

public CPlayaEstacionamiento():base()
{
aPlaya=new CCola();
aEspacioAux=new CCola();
}

/***************** Otros Metodos ****************/

public void retirarCarrosAEspacioAux(string placa)


{
if (!aPlaya.esVacia())
{
if (!aPlaya.primero().Equals(placa))
{
aEspacioAux.agregar(aPlaya.primero());

}
aPlaya.avanzar();
retirarCarrosAEspacioAux(placa);

public void reIngresar()


{
if (!aEspacioAux.esVacia())
{
aPlaya.agregar(aEspacioAux.primero());

}
aEspacioAux.avanzar();
reIngresar();

public void ingresarCarro()


{
Console.WriteLine("");
Console.WriteLine("Ingresar Carro a la Playa de Estacionamiento:
");

Console.WriteLine("===============================================");

Console.WriteLine("");
Console.WriteLine("Placa: ");
string placa=Console.ReadLine();
aPlaya.agregar(placa);
}

public void retirarCarro()


{
Console.WriteLine("");
Console.WriteLine("Retirar Carro a la Playa de Estacionamiento:
");

Console.WriteLine("===============================================");

Console.WriteLine("");
Console.WriteLine("Placa: ");
string placa = Console.ReadLine();

//Inicializamos el espacio Auxiliar


aEspacioAux = new CCola();

// Retiramos el carro con su respectiva placa, llevando los


otros carros al espacio auxiliar
retirarCarrosAEspacioAux(placa);

// Ingresamos otroa carros al espacio auxiliar en la playa


reIngresar();

public void ListarCarros()


{
//Mostramos los carros de la playa de estacionamiento

Console.WriteLine("");
Console.WriteLine("Carros en la playa de Estacionamiento");
aPlaya.listar();
}

public void escribir(Object objeto)


{
Console.WriteLine(objeto.ToString());
}

//public string LeerTexto()


//{
// BufferedStream teclado;

//teclado=new BufferedStream(new StringReader(System));


//return teclado.readLine();
//}

}
}
CLASE PROGRAM
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CPlayaEstacionamiento
{
class Program
{

static void Main(string[] args)


{
CPlayaEstacionamiento MiPlaya = new CPlayaEstacionamiento();
bool salir = false;

while (!salir)
{
Console.Clear();
Console.WriteLine("Menú Principal");
Console.WriteLine("Opción 1: Ingresar carro a la playa de
estacionamiento");
Console.WriteLine("Opción 2: Retirar carro a la playa de
estacionamiento");
Console.WriteLine("Opcion 3: Mostrar los carros que estan en
la playa de estacionamiento");
Console.WriteLine("Opcion 4: Salir");
Console.Write("Seleccione una opción: ");

int opcion = int.Parse(Console.ReadLine());

switch (opcion)
{
case 1:
Console.WriteLine("Ingrese la placa del carro a
ingresar");
MiPlaya.ingresarCarro();
Console.WriteLine("Presiona cualquier tecla para
continuar...");
Console.ReadKey();
break;

case 2:
Console.WriteLine("");
MiPlaya.retirarCarro();
Console.WriteLine("Presiona cualquier tecla para
continuar...");
Console.ReadKey();
break;

case 3:
Console.WriteLine("");
MiPlaya.ListarCarros();
Console.WriteLine("Presiona cualquier tecla para
continuar...");
Console.ReadKey();
break;

case 4:
salir = true;
break;
default:
Console.WriteLine("Opción inválida. Presiona
cualquier tecla para continuar...");
Console.ReadKey();
break;
}
}

Console.WriteLine("¡Hasta luego!");
}
}
}

También podría gustarte