hola...mira te aporto el mio ta echo a mi manera..jajajja..espero que te sirva..
consigna
Realizar la clase abstracta Vehiculo que posea como atributos protegidos:
• patente (string - solo lectura)
• cantRuedas (Byte)
• marca (enum Marcas, con los siguientes enumerados: Honda, Ford, Zanella y Fiat)
Y los siguientes métodos:
• void Mostrar (abstracto)
• void AcelerarHasta(Byte) (virtual)
• Vehiculo(string, Byte, Marcas) (sin sobrecargas)
Además se pide:
Crear dos clases (Auto y Moto) que hereden de Vehiculo y que posean cantidadAsientos (int) y Cilindrada (int) como atributos respectivamente. Cada una de estas clases deberá implementar el método Mostrar para poder visualizar desde consola todos sus atributos.
Por último se desea construir la clase Lavadero que tendrá una lista genérica de Vehiculos, un atributo cantidadVehiculos (int), precioAuto (float) y precioMoto (float), que se inicializaran desde su constructor.
Los métodos que tendrá Lavadero son:
• MostrarTotalFacturado: devolverá la ganancia del lavadero (Double), dicho método tendrá una sobrecarga que reciba como parámetro la enumeración Vehiculos (con Auto y Moto como enumerados) y retornará la ganancia del Lavadero por tipo de vehículo.
• El método IngresarAlLavadero (que recibe como único parámetro un Vehiculo), agregará a la lista dicho objeto e incrementara su contador de vehículos en uno.
namespace EjParcial2009
{
enum Emarca { Fiat, Zanela, Honda, Chevrolet }
abstract class Vehiculo
{
protected String Patente;
protected Byte CantRuedas;
protected Emarca Marc;
public String paten
{
get { return Patente; }
}
public Vehiculo(String Pat,Byte Rued,Emarca Marca)
{
this.Patente = Pat;
this.CantRuedas = Rued;
this.Marc = Marca;
}
public abstract void Mostrar();
public virtual void AcelerarHasta(Byte a) { }
}
}
namespace EjParcial2009
{
class Auto:Vehiculo
{
int CantAsiento;
public Auto(int asien, String paten, Byte Rued, Emarca marc)
: base(paten, Rued, marc)
{
this.CantAsiento = asien;
}
public override void Mostrar()
{
Console.WriteLine(" Vehiculo Auto ");
Console.WriteLine("asientos: {0}",CantAsiento);
Console.WriteLine("patente: {0}",paten);
Console.WriteLine("Ruedas: {0}",CantRuedas);
Console.WriteLine("Marca: {0}",Marc);
Console.WriteLine("");
}
}
}
class Moto:Vehiculo
{
int Cilindrada;
public Moto(int cil, String paten, Byte Rued, Emarca marc)
: base(paten, Rued, marc)
{
this.Cilindrada = cil;
}
public override void Mostrar()
{
Console.WriteLine(" Vehiculo Moto ");
Console.WriteLine("Cilindrada: {0}",Cilindrada);
Console.WriteLine("patente: {0}",paten);
Console.WriteLine("Ruedas: {0}",CantRuedas);
Console.WriteLine("Marca: {0}",Marc);
Console.WriteLine("");
}
}
}
namespace EjParcial2009
{
enum Evehiculo { auto,moto}
class Lavadero
{
List<Vehiculo> MiLista = new List<Vehiculo>();
int CantidadVehiculos;
float PrecioAuto;
float PrecioMoto;
float total;
float totalM;
float totalA;
public Lavadero(float PreAuto, float PreMoto)
{
this.PrecioAuto = PreAuto;
this.PrecioMoto = PreMoto;
}
public void IngresarAlLavadero(Vehiculo z)
{
MiLista.Add(z);
if (z is Moto)
{
totalM = totalM + PrecioMoto;
}
if (z is Auto)
{
totalA = totalA + PrecioAuto;
}
CantidadVehiculos = CantidadVehiculos + 1;
}
public Double MostrarTotalFacturado()
{
Double x=0;
total = totalA + totalM;
Console.WriteLine("Total Ganancia: {0}$",total);
x = total;
return x;
}
public Double MostrarTotalFacturado(Evehiculo vehiculo)
{
Double x=0;
if (vehiculo == Evehiculo.auto)
{
Console.WriteLine("Total Por Autos: {0}$",totalA);
x = totalA;
}
if (vehiculo == Evehiculo.moto)
{
Console.WriteLine("Total Por Motos: {0}$", totalM);
x = totalM;
}
return x;
}
}
}
namespace EjParcial2009
{
class Program
{
static void Main(string[] args)
{
Auto A1 = new Auto(4, "fjt655", 4, Emarca.Chevrolet);
Auto A2 = new Auto(8, "are124", 4, Emarca.Fiat);
Moto M1 = new Moto(1100, "ert21", 2, Emarca.Honda);
Moto M2 = new Moto(110, "qwr41", 2, Emarca.Zanela);
Lavadero Lav = new Lavadero(25, 12);
Lav.IngresarAlLavadero(A1);
Lav.IngresarAlLavadero(A2);
Lav.IngresarAlLavadero(M1);
Lav.IngresarAlLavadero(M2);
A1.Mostrar();
A2.Mostrar();
M1.Mostrar();
M2.Mostrar();
Lav.MostrarTotalFacturado();
Lav.MostrarTotalFacturado(Evehiculo.auto);
Lav.MostrarTotalFacturado(Evehiculo.moto);
Console.ReadKey();
}
}
}
saludos..suerte