//Si el precio total del cajon supera los 55 pesos, se disparará el evento EventoPrecio. //Diseñarlo (de acuerdo a las convenciones vistas) en la clase cajon. //Crear el manejador necesario para que se imprima en un archivo de texto: //la fecha (con hora, minutos y segundos) y el total del precio del cajón en un nuevo renglón.(en el escritorio del cliente) private void btnPunto5_Click(object sender, EventArgs e) { //Asociar manejador de eventos y crearlo en la clase Manejadora (de instancia). Manejadora <Banana> manejadora = new Manejadora <Banana>(); this.c_bananas.eventoPrecio += new PrecioExcedido(manejadora.Manejador); this.c_bananas += new Banana("verde", 2, "argentina"); this.c_bananas += new Banana("amarilla", 4, "ecuador"); }
public static bool ImprimirTicket(this Cajon <Platano> c, string path) { try { StreamWriter sw = new StreamWriter(path); sw.Write(DateTime.Now + " Precio total: " + c.PrecioTotal); sw.Close(); return(true); } catch (Exception) { return(false); } }
public bool Deserializar() { try { XmlSerializer xml = new XmlSerializer(typeof(Cajon <T>)); StreamReader sr = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + this.RutaArchivo); Cajon <T> m = (Cajon <T>)xml.Deserialize(sr); sr.Close(); return(true); } catch (Exception) { return(false); } }
//Si se intenta agregar frutas al cajón y se supera la cantidad máxima, se lanzará un CajonLlenoException, //cuyo mensaje explicará lo sucedido. private void btnPunto4_Click(object sender, EventArgs e) { //implementar estructura de manejo de excepciones try { this.c_duraznos += this._durazno; } catch (CajonLlenoException exc) { MessageBox.Show(exc.Message); } }
//Crear la clase Cajon<T> //atributos: _capacidad:int, _elementos:List<T> y _precioUnitario:double (todos protegidos) //Propiedades //Elementos:(sólo lectura) expone al atributo de tipo List<T>. //PrecioTotal:(sólo lectura) retorna el precio total del cajón (precio * cantidad de elementos). //Constructor //Cajon(), Cajon(int), Cajon(double, int); //El por default: es el único que se encargará de inicializar la lista. //Métodos //ToString: Mostrará en formato de tipo string, la capacidad, la cantidad total de elementos, el precio total //y el listado de todos los elementos contenidos en el cajón. Reutilizar código. //Sobrecarga de operador //(+) Será el encargado de agregar elementos al cajón, siempre y cuando no supere la capacidad del mismo. private void btnPunto2_Click(object sender, EventArgs e) { this.c_manzanas = new Cajon <Manzana>(1.58, 3); this.c_bananas = new Cajon <Banana>(15.96, 4); this.c_duraznos = new Cajon <Durazno>(21.5, 1); this.c_manzanas += new Manzana("roja", 1, "neuquen"); this.c_manzanas += this._manzana; this.c_manzanas += new Manzana("amarilla", 3, "san juan"); this.c_bananas += new Banana("verde", 3, "brasil"); this.c_bananas += this._banana; this.c_duraznos += this._durazno; MessageBox.Show(this.c_manzanas.ToString()); MessageBox.Show(this.c_bananas.ToString()); MessageBox.Show(this.c_duraznos.ToString()); }