SlideShare une entreprise Scribd logo
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 cada
vivero nos interesa saber su nombre y localización. Además, el programa almacenará el nombre y NIF de
sus trabajadores.

Cada uno de los viveros comercializa plantas y árboles, los cuales poseen un identificador de producto, un
nombre y un precio. Además, las plantas poseen un tipo de flor (gamopétalas, dialipétalas, etc.), que debe
ser 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 de
exterior, la temperatura ideal de conservación y humedad ideal. Por otro lado, los árboles poseerán la
informació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 a
cada producto con una determinada cantidad de agua. Para ello, todos deberán responder a la acción de
regar con un valor entero que represente la cantidad de agua public int calcularCantidadAgua() que
necesitan.

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ámetro
Plantas Interior -> sensibilidad de luz * 3 * humedad
Plantas 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
ContadorIDS.java

package es.java.mentor.actividad2global.productos;

public final class ContadorIDS {
       public static int id = 0;
}


Producto.java

package 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.java

package 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
Arbol.java

package 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.java

package 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
PlantaExterior.java
package 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, int
humedad){
              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.java

package 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.java

package 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
Vivero.java
package 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
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
gestionViveros.java

package 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
testViveros.java

package 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 INTERIOR
01",20.5,"GAMOPÉTALA",3,10);
               PlantaInterior pi02 = new PlantaInterior("PLANTA INTERIOR
02",30.5,"DIALIPÉTALA",7,20);
               //PlantaExterior(String nomb, double prec, String tFlor, int tConservacion, int
humedad)
               PlantaExterior pe01 = new PlantaExterior("PLANTA EXTERIOR
01",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
Diagrama de clases UML




                         bitCoach::Juan Bautista Cascallar Lorenzo::Página 9

Contenu connexe

Tendances

Tendances (20)

Labs Jogos Java
Labs Jogos JavaLabs Jogos Java
Labs Jogos Java
 
Google Guava for cleaner code
Google Guava for cleaner codeGoogle Guava for cleaner code
Google Guava for cleaner code
 
Apache Geode Meetup, London
Apache Geode Meetup, LondonApache Geode Meetup, London
Apache Geode Meetup, London
 
50 programas pseudocódigo y diagramas de flujo
50 programas pseudocódigo y diagramas de flujo50 programas pseudocódigo y diagramas de flujo
50 programas pseudocódigo y diagramas de flujo
 
Classes and objects
Classes and objectsClasses and objects
Classes and objects
 
Dts x dicoding #4 memulai pemrograman kotlin
Dts x dicoding #4 memulai pemrograman kotlinDts x dicoding #4 memulai pemrograman kotlin
Dts x dicoding #4 memulai pemrograman kotlin
 
JDBC
JDBCJDBC
JDBC
 
Collections Framework
Collections FrameworkCollections Framework
Collections Framework
 
Java Input Output and File Handling
Java Input Output and File HandlingJava Input Output and File Handling
Java Input Output and File Handling
 
Class or Object
Class or ObjectClass or Object
Class or Object
 
JAVA OOP
JAVA OOPJAVA OOP
JAVA OOP
 
Pandas
PandasPandas
Pandas
 
Lect 1-class and object
Lect 1-class and objectLect 1-class and object
Lect 1-class and object
 
C++
C++C++
C++
 
Data Structures Using C Practical File
Data Structures Using C Practical File Data Structures Using C Practical File
Data Structures Using C Practical File
 
Thread model in java
Thread model in javaThread model in java
Thread model in java
 
ArrayList in JAVA
ArrayList in JAVAArrayList in JAVA
ArrayList in JAVA
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLI
 
Packages and interfaces
Packages and interfacesPackages and interfaces
Packages and interfaces
 
Kotlin - Better Java
Kotlin - Better JavaKotlin - Better Java
Kotlin - Better Java
 

En vedette

Java Applet:::Pelota que rebota en un recinto.
Java Applet:::Pelota que rebota en un recinto.Java Applet:::Pelota que rebota en un recinto.
Java Applet:::Pelota que rebota en un recinto.
jubacalo
 
Java ArrayList Iterator
Java ArrayList IteratorJava ArrayList Iterator
Java ArrayList Iterator
jubacalo
 
Java HashMap
Java HashMapJava HashMap
Java HashMap
jubacalo
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva page
jubacalo
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
jubacalo
 
Proyecto JSP
Proyecto JSPProyecto JSP
Proyecto JSP
jubacalo
 
Java Thread Cronometro
Java Thread CronometroJava Thread Cronometro
Java Thread Cronometro
jubacalo
 
Sincronizar Threads
Sincronizar ThreadsSincronizar Threads
Sincronizar Threads
jubacalo
 
Java::Acceso a Bases de Datos
Java::Acceso a Bases de DatosJava::Acceso a Bases de Datos
Java::Acceso a Bases de Datos
jubacalo
 

En vedette (20)

Java AWT Calculadora
Java AWT CalculadoraJava AWT Calculadora
Java AWT Calculadora
 
Java Applet:::Pelota que rebota en un recinto.
Java Applet:::Pelota que rebota en un recinto.Java Applet:::Pelota que rebota en un recinto.
Java Applet:::Pelota que rebota en un recinto.
 
Java ArrayList Iterator
Java ArrayList IteratorJava ArrayList Iterator
Java ArrayList Iterator
 
Java HashMap
Java HashMapJava HashMap
Java HashMap
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva page
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DB
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundo
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
 
Proyecto JSP
Proyecto JSPProyecto JSP
Proyecto JSP
 
Elementos de script en JSP
Elementos de script en JSPElementos de script en JSP
Elementos de script en JSP
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTML
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servlet
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
 
Java AWT Tres en Raya
Java AWT Tres en RayaJava AWT Tres en Raya
Java AWT Tres en Raya
 
Java Thread Cronometro
Java Thread CronometroJava Thread Cronometro
Java Thread Cronometro
 
Sincronizar Threads
Sincronizar ThreadsSincronizar Threads
Sincronizar Threads
 
Java::Acceso a Bases de Datos
Java::Acceso a Bases de DatosJava::Acceso a Bases de Datos
Java::Acceso a Bases de Datos
 
jQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogo
 
Práctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptPráctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScript
 
jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.
 

Similaire à Programa Java que gestiona los productos que comercializan varios viveros

Instituto tecnológico de matehuala
Instituto  tecnológico  de  matehualaInstituto  tecnológico  de  matehuala
Instituto tecnológico de matehuala
Esperanza Alvarez
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
luis freddy
 
P R A C T I C A2
P R A C T I C A2P R A C T I C A2
P R A C T I C A2
climancc
 

Similaire à Programa Java que gestiona los productos que comercializan varios viveros (20)

Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Metodos 2
Metodos 2Metodos 2
Metodos 2
 
Herencia encapsulación polimorfismo
Herencia encapsulación polimorfismoHerencia encapsulación polimorfismo
Herencia encapsulación polimorfismo
 
Metodos,variables, pasodeparametros
Metodos,variables, pasodeparametrosMetodos,variables, pasodeparametros
Metodos,variables, pasodeparametros
 
Package operaciones
Package operacionesPackage operaciones
Package operaciones
 
Programas de Java en BlueJ
Programas de Java en BlueJProgramas de Java en BlueJ
Programas de Java en BlueJ
 
Instituto tecnológico de matehuala
Instituto  tecnológico  de  matehualaInstituto  tecnológico  de  matehuala
Instituto tecnológico de matehuala
 
Patrones utiles para solid
Patrones utiles para solidPatrones utiles para solid
Patrones utiles para solid
 
JavaScript no es Vietnam
JavaScript no es VietnamJavaScript no es Vietnam
JavaScript no es Vietnam
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
MéTodos
MéTodosMéTodos
MéTodos
 
MéTodos
MéTodosMéTodos
MéTodos
 
MéTodos
MéTodosMéTodos
MéTodos
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
 
Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5Introducción a la programación y la informática. Tema 5
Introducción a la programación y la informática. Tema 5
 
P R A C T I C A2
P R A C T I C A2P R A C T I C A2
P R A C T I C A2
 
Guia5 java
Guia5 javaGuia5 java
Guia5 java
 
C# calculadora
C# calculadoraC# calculadora
C# calculadora
 
Tareas agrupadas
Tareas agrupadasTareas agrupadas
Tareas agrupadas
 
Tareas agrupadas
Tareas agrupadasTareas agrupadas
Tareas agrupadas
 

Plus de jubacalo (16)

MIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en ImagenMIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en Imagen
 
Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2
 
App Android MiniBanco
App Android MiniBancoApp Android MiniBanco
App Android MiniBanco
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Android
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oracle
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
 
Escenarios
EscenariosEscenarios
Escenarios
 
Matrices02
Matrices02Matrices02
Matrices02
 
Gráficos
GráficosGráficos
Gráficos
 
Tabla Dinámica
Tabla DinámicaTabla Dinámica
Tabla Dinámica
 
Tabla de Datos
Tabla de DatosTabla de Datos
Tabla de Datos
 
Textura de agua
Textura de aguaTextura de agua
Textura de agua
 
Funciones lógicas y condicionales
Funciones lógicas y condicionalesFunciones lógicas y condicionales
Funciones lógicas y condicionales
 
Solver
SolverSolver
Solver
 
Word VBA
Word VBAWord VBA
Word VBA
 
Java Thread Cronometro
Java Thread CronometroJava Thread Cronometro
Java Thread Cronometro
 

Dernier

Tema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptxTema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptx
Noe Castillo
 
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdfPresentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
juancmendez1405
 

Dernier (20)

ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docxENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
ENUNCIADOS CUESTIONARIO S9 GEOLOGIA Y MINERALOGIA - GENERAL.docx
 
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOSTRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
 
Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
 
Poemas de Beatriz Giménez de Ory_trabajos de 6º
Poemas de Beatriz Giménez de Ory_trabajos de 6ºPoemas de Beatriz Giménez de Ory_trabajos de 6º
Poemas de Beatriz Giménez de Ory_trabajos de 6º
 
Tema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptxTema 14. Aplicación de Diagramas 26-05-24.pptx
Tema 14. Aplicación de Diagramas 26-05-24.pptx
 
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdfPresentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
 
3.Conectores uno_Enfermería_EspAcademico
3.Conectores uno_Enfermería_EspAcademico3.Conectores uno_Enfermería_EspAcademico
3.Conectores uno_Enfermería_EspAcademico
 
ESTEREOTIPOS DE GÉNERO A LAS PERSONAS? (Grupo)
ESTEREOTIPOS DE GÉNERO A LAS PERSONAS? (Grupo)ESTEREOTIPOS DE GÉNERO A LAS PERSONAS? (Grupo)
ESTEREOTIPOS DE GÉNERO A LAS PERSONAS? (Grupo)
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )
 
PLAN DE TRABAJO CONCURSO NACIONAL CREA Y EMPRENDE.docx
PLAN DE TRABAJO CONCURSO NACIONAL CREA Y EMPRENDE.docxPLAN DE TRABAJO CONCURSO NACIONAL CREA Y EMPRENDE.docx
PLAN DE TRABAJO CONCURSO NACIONAL CREA Y EMPRENDE.docx
 
Cuadro Sinóptico Arquitectura Barroca Historia
Cuadro Sinóptico Arquitectura Barroca HistoriaCuadro Sinóptico Arquitectura Barroca Historia
Cuadro Sinóptico Arquitectura Barroca Historia
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
Power Point: Luz desde el santuario.pptx
Power Point: Luz desde el santuario.pptxPower Point: Luz desde el santuario.pptx
Power Point: Luz desde el santuario.pptx
 
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
 
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
📝 Semana 09 - Tema 01: Tarea - Redacción del texto argumentativo
 
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
IMPLICACIONES BIOÉTICAS ANTE EL TRANSHUMANISMO A PARTIR DEL PENSAMIENTO FILOS...
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...
 
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
32 LECTURAS CORTAS PARA NIÑOS.pdf · versión 1.pdf
 
Descripción anatómica de los músculos de la cabeza de equino y bovino (6).pdf
Descripción anatómica de los músculos de la cabeza de equino y bovino (6).pdfDescripción anatómica de los músculos de la cabeza de equino y bovino (6).pdf
Descripción anatómica de los músculos de la cabeza de equino y bovino (6).pdf
 

Programa Java que gestiona los productos que comercializan varios viveros

  • 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 cada vivero nos interesa saber su nombre y localización. Además, el programa almacenará el nombre y NIF de sus trabajadores. Cada uno de los viveros comercializa plantas y árboles, los cuales poseen un identificador de producto, un nombre y un precio. Además, las plantas poseen un tipo de flor (gamopétalas, dialipétalas, etc.), que debe ser 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 de exterior, la temperatura ideal de conservación y humedad ideal. Por otro lado, los árboles poseerán la informació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 a cada producto con una determinada cantidad de agua. Para ello, todos deberán responder a la acción de regar con un valor entero que represente la cantidad de agua public int calcularCantidadAgua() que necesitan. 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ámetro Plantas Interior -> sensibilidad de luz * 3 * humedad Plantas 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.java package es.java.mentor.actividad2global.productos; public final class ContadorIDS { public static int id = 0; } Producto.java package 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.java package 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.java package 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.java package 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.java package 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, int humedad){ 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.java package 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.java package 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.java package 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.java package 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.java package 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 INTERIOR 01",20.5,"GAMOPÉTALA",3,10); PlantaInterior pi02 = new PlantaInterior("PLANTA INTERIOR 02",30.5,"DIALIPÉTALA",7,20); //PlantaExterior(String nomb, double prec, String tFlor, int tConservacion, int humedad) PlantaExterior pe01 = new PlantaExterior("PLANTA EXTERIOR 01",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