public override object Clone() { Coche nuevo = new Gasolina(); Clonar(nuevo); return(nuevo); }
/// <summary> /// Dados dos coches asegurados con un pago en la poliza, y con criterio anual, semestral, etc.. /// Nos devuelve el número de kilomestros que hay que hacer para que compense el seguro diesel /// con respeto el gasolina /// </summary> /// <param name="gasolina"></param> /// <param name="diesel"></param> /// <returns>kilometros</returns> public static int ResolverKilometrosSeguroPorPago(Gasolina gasolina, Diesel diesel) { double diferenciaSeguro = diesel._precioSeguro - gasolina._precioSeguro; Gasolinera repostaje = Gasolinera.GetInstance(); //calculo del coste por kilometro double costeDiesel = repostaje.PrecioDiesel * diesel.Consumo / 100; double costeGasolina = repostaje.PrecioGasolina * gasolina.Consumo / 100; double diferenciaCosteKm = costeGasolina - costeDiesel; return (int)Math.Round(diferenciaSeguro / diferenciaCosteKm); }
/// <summary> /// Obtiene la cantidad de kilómetros a partir del cual, la versión del motor diesel es mas /// rentable que el gasolina. /// </summary> /// <param name="gasolina"></param> /// <param name="diesel"></param> /// <returns>kilometros</returns> public static int ResolverObtenerKilometros(Gasolina gasolina, Diesel diesel) { double diferenciaPrecio = diesel.Precio - gasolina.Precio; Gasolinera repostaje = Gasolinera.GetInstance(); //calculo del coste por kilometro double costeDiesel = repostaje.PrecioDiesel * diesel.Consumo / 100; double costeGasolina = repostaje.PrecioGasolina * gasolina.Consumo / 100; double diferenciaCosteKm = costeGasolina - costeDiesel; return((int)Math.Round(diferenciaPrecio / diferenciaCosteKm)); }
/// <summary> /// Obtiene el número de kilometros necesarios que hay que realizar para que el coche diesel /// sea mas rentable que el gasolina. /// </summary> /// <param name="gasolina"></param> /// <param name="diesel"></param> /// <param name="financiacionEquitativa">Forma de pago mediante crédito</param> /// <returns>numero de kilometros</returns> public static int ResolverObtenerKilometros(Gasolina gasolina, Diesel diesel, Financiacion financiacionEquitativa) { double beneficioBancoDiesel = Pagos.beneficio(diesel.Precio - financiacionEquitativa.Entrada, financiacionEquitativa.Interes, financiacionEquitativa.Años); double beneficioBancoGasolina = Pagos.beneficio(gasolina.Precio - financiacionEquitativa.Entrada, financiacionEquitativa.Interes, financiacionEquitativa.Años); Gasolina nuevoGasolina = (Gasolina)gasolina.Clone(); nuevoGasolina.Precio = gasolina.Precio + beneficioBancoGasolina; Diesel nuevoDiesel = (Diesel)diesel.Clone(); nuevoDiesel.Precio = diesel.Precio + beneficioBancoDiesel; return(ResolverObtenerKilometros(nuevoGasolina, nuevoDiesel)); }
public override object Clone() { Coche nuevo = new Gasolina(); Clonar(nuevo); return nuevo; }
/// <summary> /// Obtiene el número de kilometros necesarios que hay que realizar para que el coche diesel /// sea mas rentable que el gasolina. /// </summary> /// <param name="gasolina"></param> /// <param name="diesel"></param> /// <param name="financiacionEquitativa">Forma de pago mediante crédito</param> /// <returns>numero de kilometros</returns> public static int ResolverObtenerKilometros(Gasolina gasolina, Diesel diesel, Financiacion financiacionEquitativa) { double beneficioBancoDiesel = Pagos.beneficio(diesel.Precio - financiacionEquitativa.Entrada, financiacionEquitativa.Interes, financiacionEquitativa.Años); double beneficioBancoGasolina = Pagos.beneficio(gasolina.Precio - financiacionEquitativa.Entrada, financiacionEquitativa.Interes, financiacionEquitativa.Años); Gasolina nuevoGasolina = (Gasolina)gasolina.Clone(); nuevoGasolina.Precio = gasolina.Precio + beneficioBancoGasolina; Diesel nuevoDiesel = (Diesel)diesel.Clone(); nuevoDiesel.Precio = diesel.Precio + beneficioBancoDiesel; return ResolverObtenerKilometros(nuevoGasolina, nuevoDiesel); }
static void Main(string[] args) { Financiacion pago = new Financiacion(); pago.Años = 5; pago.Entrada = 3000; pago.Interes = 11.5; Gasolinera punto = Gasolinera.GetInstance(); punto.PrecioGasolina = 1.08; punto.PrecioDiesel = 0.99; Gasolina fiesta13 = new Gasolina(); fiesta13.Caballos = 70; fiesta13.Consumo = 8.1; fiesta13.Precio = 13030.0; Diesel fiesta14 = new Diesel(); fiesta14.Caballos = 68; fiesta14.Consumo = 5.8; fiesta14.Precio = 13635.0; System.Console.WriteLine(Coche.ResolverObtenerKilometros(fiesta13, fiesta14, pago)); Gasolina fiesta16 = new Gasolina(); fiesta16.Caballos = 100; fiesta16.Consumo = 8.8; fiesta16.Precio = 14635.0; Diesel fiesta16g = new Diesel(); fiesta16g.Caballos = 90; fiesta16g.Consumo = 5.2; fiesta16g.Precio = 14935.0; System.Console.WriteLine(Coche.ResolverObtenerKilometros(fiesta16, fiesta16g, pago)); XmlDataDocument doc = new XmlDataDocument(); doc.Load("../../../CochesRentables/BaseCoches.xml"); foreach (XmlNode marcas in doc.FirstChild.NextSibling.ChildNodes) { foreach (XmlElement modelos in marcas.ChildNodes) { foreach (XmlElement motor in modelos.ChildNodes) { string versionmotor=motor.Name.ToLower(); if (versionmotor.Equals("gasolina")) { foreach (XmlElement versiones in motor.ChildNodes) { Coche c = new Gasolina(versiones); } } else if(versionmotor.Equals("diesel")){ } else{ } } } } XmlNodeList personas = doc.GetElementsByTagName("Gasolina"); System.Console.ReadLine(); }