• Save
Programa Java que gestiona los productos que comercializan varios viveros
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Programa Java que gestiona los productos que comercializan varios viveros

on

  • 4,385 views

Programa Java que gestiona los productos que comercializan varios viveros.

Programa Java que gestiona los productos que comercializan varios viveros.

Statistics

Views

Total Views
4,385
Views on SlideShare
2,950
Embed Views
1,435

Actions

Likes
2
Downloads
0
Comments
0

6 Embeds 1,435

http://bitcoach.wordpress.com 1404
http://www.slideshare.net 19
url_unknown 5
http://webcache.googleusercontent.com 5
http://www.docseek.net 1
http://www.docshut.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Programa Java que gestiona los productos que comercializan varios viveros Document Transcript

  • 1. Desarrollar un programa Java que proponga una solución orientada a objetos al siguiente enunciado.“Se desea realizar un programa que gestione los productos que comercializan varios viveros. De cadavivero nos interesa saber su nombre y localización. Además, el programa almacenará el nombre y NIF desus trabajadores.Cada uno de los viveros comercializa plantas y árboles, los cuales poseen un identificador de producto, unnombre y un precio. Además, las plantas poseen un tipo de flor (gamopétalas, dialipétalas, etc.), que debeser contemplado por la aplicación. También, las plantas pueden clasificarse en plantas de interior y exterior.De las primeras nos interesa saber la sensibilidad de luz (valor entero) y humedad ideal, mientras que las deexterior, la temperatura ideal de conservación y humedad ideal. Por otro lado, los árboles poseerán lainformación sobre el tipo de tronco que tienen y el diámetro del mismo (en cms).Paralelamente a este sistema de información, se pretende crear un sistema inteligente que permita regar acada producto con una determinada cantidad de agua. Para ello, todos deberán responder a la acción deregar con un valor entero que represente la cantidad de agua public int calcularCantidadAgua() quenecesitan.La implementación del método regar se realizará teniendo en cuenta las siguientes fórmulas.Árboles -> corteza de corcho= 4 * diámetro; otra corteza = 2 * diámetroPlantas Interior -> sensibilidad de luz * 3 * humedadPlantas Exterior -> temperatura * 2 * humedad”Se pide: • Crear dos viveros y agregar varios tipos de productos a cada uno (no tiene un número predeterminado de productos). • A continuación, se realizarán las siguientes acciones independientemente del número y el tipo de objetos creados, es decir, del punto anterior: • Mostrar la información de todos los viveros. • Obtener los valores de agua para regar todos los productos del vivero “X” e iniciar el proceso automático de regadío invocando al método public void riega(Regable r) de la clase SistemaRegadio. El método de esta clase se limitará a imprimir por pantalla la cantidad de agua que está utilizando para el parámetro r. • Mostrar el tipo de flor de las plantas del vivero “X”. • Los productos que comercializa cada vivero deberán estar ordenador por identificador de producto. • Nos interesa mantener el orden de creación de los viveros. • Estructurar el programa en paquetes. bitCoach::Juan Bautista Cascallar Lorenzo::Página 1
  • 2. ContadorIDS.javapackage es.java.mentor.actividad2global.productos;public final class ContadorIDS { public static int id = 0;}Producto.javapackage es.java.mentor.actividad2global.productos;public abstract class Producto { //Atributos private int idProducto; private String nombre; private double precio; //Constructor public Producto(String nomb, double prec){ ContadorIDS.id++; idProducto = ContadorIDS.id; nombre = nomb; precio = prec; } //GETTERS public int getIdProducto(){ return idProducto; } public String getNombre(){ return nombre; } public double getPrecio(){ return precio; } //Otros métodos public abstract int calcularCantidadAgua();}Planta.javapackage es.java.mentor.actividad2global.productos;public abstract class Planta extends Producto { //Atributos private String tipoFlor; //Constructor public Planta(String nomb, double prec, String tFlor){ super(nomb,prec); tipoFlor = tFlor; } //GETTERS public String getTipoFlor(){ return tipoFlor; } //Otros métodos public abstract int calcularCantidadAgua();} bitCoach::Juan Bautista Cascallar Lorenzo::Página 2
  • 3. Arbol.javapackage es.java.mentor.actividad2global.productos;public class Arbol extends Producto { //Atributos private String tipoCorteza; private int diametroTronco; //Constructor public Arbol(String nomb, double prec, String tCorteza, int diamTronco){ super(nomb,prec); tipoCorteza = tCorteza; diametroTronco = diamTronco; } //Getters public String getTipoTronco(){ return tipoCorteza; } public int getDiametroTronco(){ return diametroTronco; } //Otros métodos public int calcularCantidadAgua(){ //Árboles -> corteza de corcho = 4 * diámetro; otra corteza = 2 * diámetro if(tipoCorteza.equalsIgnoreCase("CORCHO") == true){ return (4 * diametroTronco); }else{ return (2 * diametroTronco); } }}PlantaInterior.javapackage es.java.mentor.actividad2global.productos;public class PlantaInterior extends Planta { //Atributos private int sensibilidad_luz; //Valor entero private int humedad_ideal; //Porcentaje (ej.30%) //Constructor public PlantaInterior(String nomb, double prec, String tFlor, int sluz, int humedad){ super(nomb,prec,tFlor); sensibilidad_luz = sluz; humedad_ideal = humedad; } //Getters public int getSensibilidadLuz(){ return sensibilidad_luz; } public int getHumedad(){ return humedad_ideal; } //Otros métodos public int calcularCantidadAgua(){ //Plantas Interior -> sensibilidad de luz * 3 * humedad return (sensibilidad_luz * 3 * humedad_ideal); }} bitCoach::Juan Bautista Cascallar Lorenzo::Página 3
  • 4. PlantaExterior.javapackage es.java.mentor.actividad2global.productos;public class PlantaExterior extends Planta{ //Atributos private int tempConservacion; //Temperatura ideal de conservación private int humedad_ideal; //Porcentaje (ej.30%) //Constructor public PlantaExterior(String nomb, double prec, String tFlor, int tConservacion, inthumedad){ super(nomb,prec,tFlor); tempConservacion = tConservacion; humedad_ideal = humedad; } //GETTERS public int getTempConservacion(){ return tempConservacion; } public int getHumedadIdeal(){ return humedad_ideal; } //Otros métodos public int calcularCantidadAgua(){ //Plantas Exterior -> temperatura * 2 * humedad” return (tempConservacion * 2 * humedad_ideal); }}Trabajador.javapackage es.java.mentor.actividad2global.trabajadores;public class Trabajador { //Atributos private String nif; private String nombre; //Constructor public Trabajador(String nf, String nomb){ nif = nf; nombre = nomb; } //GETTERS public String getNif(){ return nif; } public String getNombre(){ return nombre; }}SistemaRegadio.javapackage es.java.mentor.actividad2global.Riego;import java.util.ArrayList;import java.util.Iterator;public class SistemaRegadio { //Atributos private int cantidadAgua = 0; public void riega(ArrayList<Integer> r){ Iterator<Integer> it = r.iterator(); while(it.hasNext()){ cantidadAgua += it.next(); } System.out.println("Cantidad de agua a utilizar: " + cantidadAgua); }} bitCoach::Juan Bautista Cascallar Lorenzo::Página 4
  • 5. Vivero.javapackage es.java.mentor.actividad2global.viveros;import es.java.mentor.actividad2global.trabajadores.Trabajador;import es.java.mentor.actividad2global.productos.*;import es.java.mentor.actividad2global.Riego.*;import java.util.ArrayList;import java.util.Iterator;public class Vivero { //Atributos private String nombre; private String localizacion; private ArrayList<Trabajador> trabajadores = new ArrayList<Trabajador>(); private ArrayList<Object> productos = new ArrayList<Object>(); //CONSTRUCTOR public Vivero(String nomb, String loc){ nombre = nomb; localizacion = loc; } //GETTERS public String getNombre(){ return nombre; } public String getLocalizacion(){ return localizacion; } //OTROS MÉTODOS public void altaTrabajador(Trabajador t){ trabajadores.add(t); } public void altaProducto(Object p){ productos.add(p); } public void regarProductos(){ ArrayList<Integer> cantidadesDeAgua = new ArrayList<Integer>(); if(productos.isEmpty()==true){ System.out.println("No hay productos..."); }else{ System.out.println("Regando los productos del vivero: " + this.nombre + "-" +this.localizacion); Iterator<Object> it = productos.iterator(); while(it.hasNext()){ Producto po = (Producto)it.next(); cantidadesDeAgua.add(po.calcularCantidadAgua()); } //--- Regar --- SistemaRegadio sr = new SistemaRegadio(); sr.riega(cantidadesDeAgua); //------------- } } public void mostrarTipoFlor_Plantas(){ if(productos.isEmpty() == true){ System.out.println("No hay productos..."); }else{ Iterator<Object> it = productos.iterator(); System.out.println("Tipos de Flor de las plantas del vivero: " + this.nombre); while(it.hasNext()){ Producto pr = (Producto)it.next(); if(pr instanceof Planta){ System.out.println("--- PLANTA ------------"); System.out.println("ID: " + pr.getIdProducto()); System.out.println("NOMBRE: " + pr.getNombre()); System.out.println("TIPO DE FLOR: " + ((Planta)pr).getTipoFlor()); System.out.println("-----------------------"); } } } } bitCoach::Juan Bautista Cascallar Lorenzo::Página 5
  • 6. public void mostrarInfo(){ System.out.println("================================================================"); System.out.println("INFORMACIÓN DEL VIVERO " + nombre + "-" + localizacion); System.out.println("================================================================"); //--- Trabajadores --- if(trabajadores.isEmpty() == true){ System.out.println("- No tiene trabajadores."); }else{ Iterator<Trabajador> it = trabajadores.iterator(); while(it.hasNext()){ Trabajador tr = it.next(); System.out.println("--- TRABAJADOR --------"); System.out.println("NIF: " + tr.getNif()); System.out.println("NOMBRE: " + tr.getNombre()); System.out.println("-----------------------"); } } //--- Productos --- if(productos.isEmpty() == true){ System.out.println("- No tiene productos."); }else{ Iterator<Object> it = productos.iterator(); while(it.hasNext()){ Producto pr = (Producto)it.next(); System.out.println("--- PRODUCTO ----------"); //--- Común a todos los productos --- System.out.println("ID: " + pr.getIdProducto()); System.out.println("NOMBRE: " + pr.getNombre()); System.out.println("PRECIO: " + pr.getPrecio()); //--- Común a todos los productos --- if(pr instanceof PlantaInterior){ System.out.println("TIPO DE FLOR: " + ((PlantaInterior)pr).getTipoFlor()); System.out.println("SENSIBILIDAD DE LUZ: " + ((PlantaInterior)pr).getSensibilidadLuz()); System.out.println("HUMEDAD IDEAL: " + ((PlantaInterior)pr).getHumedad()); }else if(pr instanceof PlantaExterior){ System.out.println("TIPO DE FLOR: " + ((PlantaExterior)pr).getTipoFlor()); System.out.println("TEMPERATURA CONSERVACIÓN: " +((PlantaExterior) pr).getTempConservacion()); System.out.println("HUMEDAD IDEAL: " + ((PlantaExterior)pr).getHumedadIdeal()); }else if(pr instanceof Arbol){ System.out.println("TIPO CORTEZA: " + ((Arbol)pr).getTipoTronco()); System.out.println("DIÁMETRO TRONCO: " + ((Arbol)pr).getDiametroTronco()); } System.out.println("-----------------------"); } } }} bitCoach::Juan Bautista Cascallar Lorenzo::Página 6
  • 7. gestionViveros.javapackage es.java.mentor.actividad2global.viveros;import java.util.ArrayList;import java.util.Iterator;public class gestionViveros { //Atributos private ArrayList<Vivero> viveros = new ArrayList<Vivero>(); //Otros métodos public void altaVivero(Vivero v){ viveros.add(v); } public void mostrarInfoViveros(){ if(viveros.isEmpty() == true){ System.out.println("No hay ningún vivero."); }else{ Iterator<Vivero> it = viveros.iterator(); while(it.hasNext()){ Vivero v = it.next(); v.mostrarInfo(); } } } public void regarProductosDelViveroX(String nomb){ if(viveros.isEmpty() == true){ System.out.println("No hay ningún vivero."); }else{ boolean existe = false; Iterator<Vivero> it = viveros.iterator(); while(it.hasNext()){ Vivero v = it.next(); if(v.getNombre().equalsIgnoreCase(nomb) == true){ v.regarProductos(); existe = true; break; } } if(existe == false){ System.out.println("No existe el vivero: " + nomb); } } }}//Fin clase. bitCoach::Juan Bautista Cascallar Lorenzo::Página 7
  • 8. testViveros.javapackage es.java.mentor.actividad2global.pruebas;import es.java.mentor.actividad2global.productos.*;import es.java.mentor.actividad2global.viveros.*;import es.java.mentor.actividad2global.trabajadores.*;public class testViveros { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //--- Crea dos Viveros --- //Vivero(String nomb, String loc) gestionViveros gv = new gestionViveros(); Vivero v01 = new Vivero("VIVERO_N1","ZONA NORTE"); Vivero v02 = new Vivero("VIVERO_N2","ZONA SUR"); gv.altaVivero(v01); gv.altaVivero(v02); //--- Trabajadores --- Trabajador tr01 = new Trabajador("44556656-T","José Luis Almadro"); Trabajador tr02 = new Trabajador("65423552-B","Alberto Martínez Santos"); //--- Productos --- //PlantaInterior(String nomb, double prec, String tFlor, int sluz, int humedad) PlantaInterior pi01 = new PlantaInterior("PLANTA INTERIOR01",20.5,"GAMOPÉTALA",3,10); PlantaInterior pi02 = new PlantaInterior("PLANTA INTERIOR02",30.5,"DIALIPÉTALA",7,20); //PlantaExterior(String nomb, double prec, String tFlor, int tConservacion, inthumedad) PlantaExterior pe01 = new PlantaExterior("PLANTA EXTERIOR01",12.5,"DIALIPÉTALA",10,25); PlantaExterior pe02 = new PlantaExterior("PLANTA EXTERIOR 02",12,"GAMOPÉTALA",8,15); //Arbol(String nomb, double prec, String tCorteza, int diamTronco) Arbol arb01 = new Arbol("ARBOL 01",40.5,"CORCHO",20); Arbol arb02 = new Arbol("ARBOL 02",30.5,"OTRA CORTEZA",30); //--- Construir v01 --- v01.altaTrabajador(tr01); v01.altaProducto(pi01); v01.altaProducto(pe01); v01.altaProducto(arb01); //--- Construir v02 --- v02.altaTrabajador(tr02); v02.altaProducto(pi02); v02.altaProducto(pe02); v02.altaProducto(arb02); //MOSTAR INFORMACIÓN DE TODOS LOS VIVEROS gv.mostrarInfoViveros(); //REGAR TODOS LOS PRODUCTOS DEL VIVERO V01 Y DEL VIVERO V02 gv.regarProductosDelViveroX("VIVERO_N1"); gv.regarProductosDelViveroX("VIVERO_N2"); //TIPOS DE FLOR DE LAS PLANTAS DEL VIVERO V01 Y DEL VIVERO V02 v01.mostrarTipoFlor_Plantas(); v02.mostrarTipoFlor_Plantas(); }} bitCoach::Juan Bautista Cascallar Lorenzo::Página 8
  • 9. Diagrama de clases UML bitCoach::Juan Bautista Cascallar Lorenzo::Página 9