Desarrollar un programa Java que proponga una solución orientada a objetos al siguiente enunciado.“Se desea realizar un pr...
ContadorIDS.javapackage es.java.mentor.actividad2global.productos;public final class ContadorIDS {       public static int...
Arbol.javapackage es.java.mentor.actividad2global.productos;public class Arbol extends Producto {       //Atributos       ...
PlantaExterior.javapackage es.java.mentor.actividad2global.productos;public class PlantaExterior extends Planta{       //A...
Vivero.javapackage es.java.mentor.actividad2global.viveros;import es.java.mentor.actividad2global.trabajadores.Trabajador;...
public void mostrarInfo(){       System.out.println("================================================================");  ...
gestionViveros.javapackage es.java.mentor.actividad2global.viveros;import java.util.ArrayList;import java.util.Iterator;pu...
testViveros.javapackage es.java.mentor.actividad2global.pruebas;import es.java.mentor.actividad2global.productos.*;import ...
Diagrama de clases UML                         bitCoach::Juan Bautista Cascallar Lorenzo::Página 9
Próxima SlideShare
Cargando en…5
×

Programa Java que gestiona los productos que comercializan varios viveros

5.236 visualizaciones

Publicado el

Programa Java que gestiona los productos que comercializan varios viveros.

0 comentarios
3 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
5.236
En SlideShare
0
De insertados
0
Número de insertados
1.696
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
3
Insertados 0
No insertados

No hay notas en la diapositiva.

Programa Java que gestiona los productos que comercializan varios viveros

  1. 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. 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. 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. 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. 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. 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. 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. 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. 9. Diagrama de clases UML bitCoach::Juan Bautista Cascallar Lorenzo::Página 9

×