Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Dan_SB

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 ... 14
101
Hola de nuevo!

bien hecho con ese if! ejercicio perfecto!

Adelante!!

102
Hola guillerub

Ejercicio perfecto.

Saludos!

103
Lo que sucede es que uso otro IDE, se llama netbeans, es un poco mas robusto para usar para la gente nueva, pero no te preocupes, es casi la misma cosa que blueJ!  :)

104
Hola fede

Has escrito bien tus clases, solo tengo dos comentarios:

El primero es que en tus metodos para calcular el area y demas, podias haber usado el pow de la clase Math como pudiste ver en el curso:

Citar
public double getAreaCirculo(){return (PI * Math.pow(dimensionPrincipal, 2));}

Y el segundo comentario, referente a tu testFigura, quiero que eches un vistazo a esto:



estas lineas amarillas quieren decir que los objetos que estas comparando son incompatibles... esto tiene que ver con esta parte del codigo:

Citar
Cuadrado cuad1 = new Cuadrado (52);
        Cuadrado cuad2 = new Cuadrado (31);
        Cuadrado cuad3 = new Cuadrado (52);
        Circulo circ1 = new Circulo (33);
        Circulo circ2 = new Circulo (33);
        Circulo circ3 = new Circulo (52);

Lo correcto era hacer uso del polimorfismo, al hacer esto, estos warnings o quejas de incompatibilidad de tipos desaparecen:
Citar
        Figura cuad1 = new Cuadrado (52);
        Figura cuad2 = new Cuadrado (31);
        Figura cuad3 = new Cuadrado (52);
        Figura circ1 = new Circulo (33);
        Figura circ2 = new Circulo (33);
        Figura circ3 = new Circulo (52);

El otro detalle, tambien podias agregar todos esos objetos en un arraylist y recorrerlos, pero esta bien todo°

Saludos!

105
Hola de nuevo guille!!

Ejercicio casi perfecto... creo que fue un descuido! jajaja

(diametro<=1.4 && diametro>0.4)

Si el diámetro es superior a 1.4 debe mostrarse por consola el mensaje “La rueda es para un vehículo grande”. Si es menor o igual a 1.4 pero mayor que 0.8 debe mostrarse por consola el mensaje “La rueda es para un vehículo mediano”.

Un descuido jajaja, pero por todo lo demas, perfecto!!

Saludos

106
Hola guillerub

La solución a esto es bien sencillo:

Citar
public void calculoMultiploEdad () {
    System.out.println ("El medico de nombre " + nombre + "con especialidad " + especialidad + " tendra una edad multiplo de 5 dentro de " + (5-(edad%5)) + " años.");

Solo era colocarle un parentesis por fuera y listo, problema resuelto. Cuando quieras concatenar operaciones numericas en el System.out.print, lo recomendado para evitar errores de este tipo es colocarle los parentesis por fuera..

Ademas, tu ejercicio esta correcto! todos los setters y getters correctos, operacion tambien!

Saludos!

107
Buenas noches!

Vengo a hacer entrega del ejercicio 17° del curso "html desde 0", su enunciado es el siguiente:

Crea un documento HTML que conste de las siguientes partes. Un encabezado H1 donde indicaremos “Animales de Africa” como texto a mostrar.

Un encabezado H2 donde indicaremos “Leones” como texto. Dentro de este apartado incluiremos varios párrafos que hablarán sobre los leones y un enlace externo (link) de tipo texto cuyo texto será: “Pulsa aquí para saber más sobre leones” y que llevará con un target blank a la siguiente dirección web de wikipedia: http://es.wikipedia.org/wiki/Panthera_leo

Un encabezado H2 donde indicaremos “Tigres” como texto. Dentro de este apartado incluiremos varios párrafos que hablarán sobre los tigres y una imagen que debe mostrar como tooltip “Pulsa aquí para saber más sobre tigres”. Al pulsar sobre la imagen se llevará al usuario a un target blank dirigido a la dirección web http://es.wikipedia.org/wiki/Panthera_tigris

En la parte inferior incluiremos tres links internos (para lo que tendremos que haber definido las anclas correspondientes) que indicarán: “Ir al inicio – Ir a leones – Ir a tigres (Según el link que pulse el usuario, se le llevará al inicio, al encabezado del apartado de leones o al encabezado del apartado de tigres).


Mi código!
Código: [Seleccionar]
<html>
<head>
<meta charset="utf-8">
<a id = "Inicio"><title>Animales de Africa</title></a>
</head>
<body style = "background-color: gray">
<h1 style = "text-align: center; color: red;">Animales de Africa</h2>
<a id = "Leones"><h2 style = "text-align: left; color: red;">Leones</h2></a>
El león, el llamado rey de la selva, el más famosos de los carnívoros, su cara con melena
es una de los símbolos animales más reconocidos en la cultura humana, así y todo un gran
desconocido, ya que son muchas las curiosidades sobre este gran depredador que no se cuentan
en las historias de Disney. Su nombre científico es Panthera leo, es uno de los cuatro grandes
felinos de su género. Después del tigre, es el felino más grande de la naturaleza, con machos
que llegan a pesar unos 250 kilos. Actualmente sólo viven en reservas del África sub sahariana,
y en el Parque Gir en India. Están en declive poblacional por culpa de la pérdida de su hábitat
y conflictos con los humanos, tan sólo en los últimos veinte años su población se ha reducido en
un 50 porciento.
<a href = "http://es.wikipedia.org/wiki/Panthera_leo" target = "_blank">Pulsa aqui para saber mas sobre leones.</a>
<a id = "Tigres"><h2 style = "text-align: left; color: red;">Tigres</h2></a>
Mucho se ha dicho que el rey es el león, quizá es su elegante melena la que de esa impresión, sin embargo, si de fuerza y habilidad hablamos sería el tigre quien llevaría ese titulo. .
<a href = "http://es.wikipedia.org/wiki/Panthera_tigris" target = "_blank">Pulsa aqui para saber mas sobre tigres.</a>
<h3 style = "text-align: center; color: red;"><a href = #Inicio >Ir a inicio - </a> <a href = #Leones >Ir a Leones - </a> <a href = #Tigres>Ir a Tigres</a></h3>
</body>
</html>

Así se visualiza todo en mi navegador:

http://i.imgur.com/3FjX6F1.png

Espero sus correcciones y comentarios!
Saludos

108
Hola lorenzo!

Le has metido bastante dedicación a este código (se nota!) bien por eso! bueno, como buen compañero del foro te señalo algunos detalles a continuación:

1. En tus interface tienes esto:
Código: [Seleccionar]
abstract public double getSuperficieEdificio();
Código: [Seleccionar]
abstract public String getTipoInstalacion();
¿Sabias tu que todo método declarado en una interface es abstracto y publico por defecto? No necesitas escribir abstract ni public. Si lo escribo así: double getSuperficieEdificio(); java lo tomara por defecto abstracto y publico.

2. En tu clase GestorDeDatos, veo esto:
Citar
String cadena = "";
        do{
            Scanner escaner = new Scanner(System.in);
            cadena = escaner.nextLine();
            escaner.close();
        }while(cadena == "");
        return cadena;

A estas alturas en el curso se pudo ver que String es una clase y no es posible comparar contenidos de objetos Strings con el operador ==. Aqui era usar un equals...

3. Tenias lo siguiente:

private ArrayList <Edificicacion> lista; y tambien Iterator  iter = lista.iterator();

En este metodo:
public void addEdificacion(Edificacion edificacion){ lista.add(edificacion); }

En el switch de la clase test:

switch(numeroMenu){     
             case 1: Polideportivo poli1 = new Polideportivo(entrada1.recogerNombre(),entrada1.recogerTipoPolideportivo(),entrada1.recogerSuperficie() );
                     lista1.addEdificacion(poli1);
                     break;
             case 2: EdificioOficinas edi1 = new EdificioOficinas(entrada1.recogerSuperficie(),entrada1.recogerNumeroOficinas() );
                     lista1.addEdificacion(edi1);
                     break;
             case 3: lista1.listarEdificaciones(); break;           
             case 4: System.out.println("....... Final del programa" ); break;   


Lo correcto era declarar el metodo, objetos, ArrayList y el Iterator de la siguiente manera para sacarle provecho al polimorfismo:

private ArrayList <Edificio> lista; y tambien Iterator <Edificio> iter = lista.iterator();

Método: public void addEdificacion(Edificio edificacion){ lista.add(edificacion); }

switch(numeroMenu){     
             case 1: Edificio poli1 = new Polideportivo(entrada1.recogerNombre(),entrada1.recogerTipoPolideportivo(),entrada1.recogerSuperficie() );
                     lista1.addEdificacion(poli1);
                     break;
             case 2: Edificio edi1 = new EdificioOficinas(entrada1.recogerSuperficie(),entrada1.recogerNumeroOficinas() );
                     lista1.addEdificacion(edi1);
                     break;
             case 3: lista1.listarEdificaciones(); break;           
             case 4: System.out.println("....... Final del programa" ); break;     

4. Por ultimo, vi que usastes un try-catch... esto lo vi en la universidad una vez cuando un compañero expuso en el tablero sobre el tal "try-catch".  Recuerdo que menciono que era para manejar "excepciones"... sinceramente no conozco como utilizarlo aun... pero... mira esto:



Me salio el error siguiente, no me dejaba continuar... hice cambios en la clase GestorDeDatos... Elimine todos esos try-catch y coloque lo siguiente:

Código: [Seleccionar]
package Poli;
import java.util.Scanner;

public class GestorDeDatos {   
    //Constructor
    public GestorDeDatos(){ /*vacio*/ }   
    //Método seleccion menu   
    public int recogerMenu(){ //método que controla la seleccion del menú
        int numero = 0;   
        do{
            System.out.println(" Elige una opción entre 1 y 4 \n ");
            numero = recogerEntero();   
        } while (numero < 1 || numero > 4);
        return numero;
    }
   
    public double recogerSuperficie(){ //método que controla la seleccion del menú
        double numero = 0;   
        do{
            System.out.println(" Introduce la superficie de la edificacion");
            numero = recogerDouble();   
        } while (numero < 0 );
        return numero;
    }
   
    public String recogerNombre(){ System.out.println("Introduce el nombre del polideportivo"); return recogerCadena(); }
   
    public String recogerTipoPolideportivo(){ System.out.println("Introduce el tipo de polideportivo, Estadio, Pista de atletismo... "); return recogerCadena(); }
   
    public int recogerNumeroOficinas(){ System.out.println(" Introduce el numero de oficinas del edificio: "); return recogerEntero(); }
   
    public double recogerDouble(){
        Scanner in = new Scanner(System.in);
        return in.nextDouble();   
    }
       
    public int recogerEntero(){
        Scanner in = new Scanner(System.in);
        return in.nextInt();   
    }   
    public String recogerCadena(){
        Scanner in = new Scanner(System.in);
        return in.nextLine();   
    }
}

De esta manera se me permitió continuar la ejecución:





Recomiendo: Probar tu programa antes de publicarlo en el foro y también, siempre trata de utilizar lo que has aprendido en este foro. Es bueno improvisar (yo lo hago y ya lo he hecho aqui  ::) ), pero trata siempre de utilizar hasta donde te han enseñado!

No he revisado nada del java avanzado, pero puedo jurar que el try-catch es tema de java avanzado xd

Espero haberte ayudado amigo!
Saludos y sigue asi!  :D

109
Listo! muchas gracias mastermind! :)

110
Hola mario,

Así es, quiero darle al html y al CSS lo mas que yo pueda para no perderme con el php  :)

Muchas gracias por atender mi post, ya veo que se debe tener un orden con la apertura y cierre de las etiquetas. En cuanto lo del cierre automático del note++ ya lo active, lo que sucedio es que me acorde en un instante sobre el <pre> y despues me volvi un enrredo con el <p>

Saludos

111
Buenas noches! 

Vengo a presentar el ejercicio del capitulo 16 del curso html desde 0. El primero era este:

A modo de ejercicio, reescribe el código de los ejemplos que mostramos a continuación usando la sintaxis basada en estilos y compara los resultados de visualizar ambas formas de escritura en tu navegador.

Ejemplo 1

Franja de grosor 5 píxeles, de un ancho del 50% y alineada al centro.

<hr size="5px" width="50%" align="center" color="red"/>


Corregido seria:
Código: [Seleccionar]
<hr style="size: 5px; width: 50%; align: center; color: red;"></hr>
Ejemplo 2

Franja de grosor  2 píxeles, de ancho 80%, sin sombra y alineada a la derecha.

<hr size="2px" width="80%" noshade="noshade" align="right" />


Corregido sera:
Código: [Seleccionar]
<hr style="size: 2px; width: 80%; noshade: noshade; align: right;"></hr>
Saludos!

112
Hola raga!!

Ejercicio correcto, hizo un buen uso del polimorfismo! Nada mas faltaba que hicieras el ejercicio a su imaginacion (colocando los demas atributos como se pidio xd) pero eso no es importante, el centro era las clases abstractas y metodos 

Saludos!  :)

113
Hola de nuevo fedegaray

La primera pregunta. Correcta, con un casting podemos lograrlo:

Vehiculo carro1 = new Vehiculo();
Taxi taxi1 = new Taxi();

Casting : taxi1 = (Taxi) carro1;

La segunda pregunta también esta bien... en cuanto la tercera pregunta, lee este parrafo:
Citar
en tiempo de ejecución Java está constantemente “buscando” (“ligando” o “despachando”) el método que corresponda en función del tipo dinámico al que apunta una variable. Si el método invocado no se encuentra definido en el tipo dinámico de que se trate, Java busca el método en la superclase para tratar de ejecutarlo.

Yo me estuve preguntando en esa pregunta que pasa, como es, y esto fue lo que capte:

primero buscara en Taxi, si no encuentra dicho metodo en Taxi, prosigue buscando en las superclases subclases... y así sucesivamente...

Espero haberte ayudado en algo! saludos!

114
Buenas tardes!!

Vengo a resolver el ejercicio 15° del curso de html desde 0, el enunciado es el siguiente:

Crea una página web que conste de lo siguiente: un encabezado h1 que ponga “Las fotos de mi viaje”. A continuación un párrafo explicando un viaje. A continuación un encabezado h2 que indique “Fotos de la primera parte del viaje” y a continuación 2 fotos. Seguidamente un encabezado h2 que indique “Fotos de la segunda parte del viaje” y a continuación 2 fotos. Finalmente usando las etiquetas pre haz que aparezca este texto en la parte inferior usando espacios y tabuladores:

Aqui mi codigo:
Código: [Seleccionar]
<html>
<body>
<head><title>Mi viaje!</title></head>
<meta charset="utf-8">
 <h1>Las fotos de mi viaje!</h1>
<p Style = "text-align: left;font-size: 14; color: black">
En el dia de ayer viaje a la provincia de chiriqui. Cuando llegamos, al bajar senti el clima muy frio.
Nos quedamos en el hotel bambito, cenamos pollo y patacones, hablamos un rato y descansamos. A la mañana
siguiente, salimos a desayunar al restaurante "las lajitas" a comer bacalao y tortillas. Al salir, exploramos chiriqui, paseamos por
cerro punta, pude comer una manzana del mismo arbol y zarzamoras. Recorrimos el volcan baru y fue una
experiencia placentera..!

Lo unico malo, es que en las mañanas al bañarnos... sentiamos el agua congelada!!!
<h2>Fotos de la primera parte del viaje</h2>
<img src="http://images.bestday.com/_lib/vimages/Chiriqui/Hotels/Hotel-Bambito-Resort/Gallery/Chiriqui-Hotel-Bambito-Resort-Entrada.jpg" width="400" height="300">
<img src="http://fotos.muchoviaje.com/images/HB/13_135890_135890a_hb_w_004.jpg" width="400" height="300">
<h2>Fotos de la segunda parte del viaje</h2>
<img src="http://thepanamaportal.com/wp-content/uploads/2012/06/Cerro-Punta.jpg" width="400" height="300">
<img src="http://media-cdn.tripadvisor.com/media/photo-s/04/c7/2a/82/hacienda-las-nubes.jpg" width="400" height="300">
<pre>

<p Style = "text-align: center; font-size: 15;">
Los viajes                     ...son libertad
                                        ...son amistad
                       ...son crecimiento personal

  ¡No desaproveches una oportunidad!</pre></p>
</p>
</body>
</html>

Así es como se ve desde mi pc:



Y el ultimo mensaje (que lio para colocarlo igual eh? xd):


Esperare sus comentarios!
Saludos

115
Hola pablsky!!

La pregunta 1 esta bien respondida.

Citar
b) ¿Existiría relación de identidad cuando creemos un objeto TripulacionAvion entre los tres atributos si no se inicializaran en el constructor?

Si existiría aunque no se inicializaran, porque existe una relacion identidad en null, ya que si no inicializamos los 3 objetos, los 3 apuntan a null.

La ultima pregunta tambien esta bien contestada, objeto vacio, objeto null.

Deberias leerte aqui los detalles para llenar la segunda respuesta:
https://www.aprenderaprogramar.com/foros/index.php?topic=1964

Salu2!

116
Hola fede!

Tu ejercicio es correcto! bien hecho!

Te comento un pequeño truco por cierto, que ocurriría si escribes esta parte del código así? (pruebe a ver...):

Clase Profesor:
Código: [Seleccionar]
public double obtenerSalarioBase(){return 725 + (añosConsolidados * 33.25);}
Clase ProfesorEmerito:
Código: [Seleccionar]
public double obtenerSalarioBase(){return super.obtenerSalarioBase() + (47.80* getAñosEmerito());}
Vas a ver que funcionara igual! y no es necesario invocar variables double
Saludos!

117
Vi el código, lo veo bien, hiciste un buen uso del polimorfismo, pero... veo figuras... y en el enunciado del ejercicio leo "Edificio, polideportivo"... era esto lo que nos querías compartir?



Huelo una confusion aqui.. a mi me ha pasado esto con trabajos de la U, quedo entregando otra cosa q no era xdd (El trabajo impreso me queda salvando <.<)

118
Se me olvido colocar la clase main (Que es exactamente igual por cierto):
Código: [Seleccionar]
package Discos;
public class Main {
    public static void main(String[]args){
        Menu main = new Menu();
        main.MenuPrincipal();
    }
}

Bueno, aquí la ejecución:

Este es el menu inicial. Como se puede ver, para continuar con el programa, debo teclear un "Si", y para salir, teclear "Salir".


Continuamente se nos piden los ID's de los discos (Si  es primera vez):


Al terminar pasamos al menu con las siguientes opciones:


Voy a cargar datos, asi que elegi la A. Seguidamente nos pregunta cual disco vamos a ingresarle los datos, tenemos que ingresar su ID:


Lo demás funciona exactamente igual como pueden ver.


Cargue datos  a los 3 objetos, ahora quiero ver los datos del disco 2, y aquí se muestran:


Y si apretamos la opcion C, se imprimiran todos los datos de cada objeto:


Cosas que ocurren si hacemos algo incorrecto:

Escribir algo fuera de "Si" o "Salir" al inicio:


Repetir un ID:


Colocar una opción fuera del menú de operaciones:


Colocar un ID desconocido (cadena de caracteres que no hayas ingresado):


Intentar ingresar en un disco mas de 20 temas musicales:


El redondeo no funciono a la perfección... es algo que me quedara de tarea, pero me siento bien con estos resultados :)

Dejo claro otra vez que esto es temporal, no es que abandonare el foro, solo es Java. Quiero explorar eso del html y el CSS, y claro... espero que me vuelvan apoyar con su paciencia!  :P

Esta demás decir que colaborare en lo que pueda de mi parte!
Saludos!  ;)

119
Muy buenas tardes!

Primero que nada, muchas gracias a todas las personas y moderadores que tuvieron la paciencia para corregir mis códigos y enseñarme muchísimas cosas nuevas sobre Java, créanme que ahora soy totalmente distinto de que cuando entre a esta pagina por primera vez. Vengo a mostrar en esta tarde mi ultimo código de java (temporalmente, claro ;) ) que estaba pendiente... algo que empezó como una metida de pata y propuse remediarlo mas adelante..!

Les mostrare mi versión final de DiscMan, las cosas nuevas que verán ahora son:
1. Cada disco (o objeto), tendrá un ID especifico que lo identifique, así es, se trata de un atributo nuevo de la clase DiscoMusical.
2. 3 métodos nuevos en la clase DiscoMusical.
3. Experimente con algo que no conocia antes, el System.exit(0); . . .

Lo que mas me dejo satisfecho ahora, es que ya no necesito repetir código para cada objeto. . . puedo tener 25 objetos, y realizar lo que yo deseo sin repeticiones como códigos anteriores...

Este era el antiguo:
Citar
switch(elige){
                case 1:
                    System.out.println("--------------------------------------------");
                    System.out.println("Has elegido el disco 1!: ");
                    MenuOperaciones();
                    if(opcion == 'A'||opcion == 'a'){Disco1.setNombreDisco(); Disco1.setAutor(); Disco1.setFormato(); Disco1.setCanciones();}
                    else if(opcion == 'B'||opcion == 'b'){
                    System.out.println("Nombre del disco: " + Disco1.getNombreDisco());
                    System.out.println("Nombre del autor: " + Disco1.getAutor());
                    System.out.println("Nombre del formato: " + Disco1.getFormato());
                    System.out.println("Canciones: ");
                    Disco1.getCanciones();}
                    else if(opcion == 'C'||opcion == 'c'){ System.out.println("Saliendo... "); sal1 = true;}
                    else
                        System.out.println("Opcion desconocida. Intente de nuevo.");
                        System.out.println("                                     ");
                    System.out.println("--------------------------------------------");
                break;
                case 2:
                    System.out.println("--------------------------------------------");
                    System.out.println("Has elegido el disco 2!: ");
                    MenuOperaciones();
                    if(opcion == 'A'||opcion == 'a'){Disco2.setNombreDisco(); Disco2.setAutor(); Disco2.setFormato(); Disco2.setCanciones();}
                    else if(opcion == 'B'||opcion == 'b'){
                    System.out.println("Nombre del disco: " + Disco2.getNombreDisco());
                    System.out.println("Nombre del autor: " + Disco2.getAutor());
                    System.out.println("Nombre del formato: " + Disco2.getFormato());
                    System.out.println("Canciones: ");
                    Disco2.getCanciones();}
                    else if(opcion == 'C'||opcion == 'c'){ System.out.println("Saliendo... "); sal1 = true;}
                    else
                        System.out.println("Opcion desconocida. Intente de nuevo.");
                        System.out.println("                                     ");
                    System.out.println("--------------------------------------------");
                break;
                case 3:
                    System.out.println("--------------------------------------------");
                    System.out.println("Has elegido el disco 3!: ");
                    MenuOperaciones();
                    if(opcion == 'A'||opcion == 'a'){Disco3.setNombreDisco(); Disco3.setAutor(); Disco3.setFormato(); Disco3.setCanciones();}
                    else if(opcion == 'B'||opcion == 'b'){
                    System.out.println("Nombre del disco: " + Disco3.getNombreDisco());
                    System.out.println("Nombre del autor: " + Disco3.getAutor());
                    System.out.println("Nombre del formato: " + Disco3.getFormato());
                    System.out.println("Canciones: ");
                    Disco3.getCanciones();
                    }
                    else if(opcion == 'C'||opcion == 'c'){ System.out.println("Saliendo... "); sal1 = true;}
                    else
                        System.out.println("Opcion desconocida. Intente de nuevo.");
                        System.out.println("                                     ");
                    System.out.println("--------------------------------------------");
                break;
                default:
                    System.out.println("No se reconoce la opcion insertada. Intente de nuevo.");
                    System.out.println("                                                     ");
                break;
            }

Bueno, aquí las clases del programa:
Clase Lectores: No cambio absolutamente nada.
Código: [Seleccionar]
package Discos;
import java.util.Scanner;

public class Lectores {     
    public Lectores(){} 
    public String LeerCadena(){
        Scanner in = new Scanner(System.in);       
        return in.nextLine();
    }
   
    public Double LecturaDecimal(){
        Scanner in = new Scanner(System.in);
        return in.nextDouble();
    }
   
    public int LecturaEntero(){
        Scanner in = new Scanner(System.in);
        return in.nextInt();
    }
   
    public char LecturaChar(){
        Scanner in = new Scanner(System.in);
        return in.next().charAt(0);
    }
}

Clase DiscoMusical: Se les agrego atributo ID_DISCO, el metodo equals, las funciones redondear y toString.
Código: [Seleccionar]
package Discos;

public class DiscoMusical{
 private String nombreDisco, autor, formato, nombreCancion[]= new String[19], ID_DISCO;
    private double duracion, duracionCancion[] = new double[19];
    private int numeroCanciones;
   
    public DiscoMusical(){
        nombreDisco = "";
        autor = "";
        formato = "";
        duracion = 0;
        ID_DISCO = "";
        numeroCanciones = 0;
        nombreCancion = new String[]{"","","","","","","","","","","","","","","","","","","",""};
        duracionCancion = new double[]{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};     
    }   
   
     public void setNombreDisco(){
        System.out.println("--------------------------------------------");
        Lectores leer = new Lectores();
        System.out.println("Ingrese el nombre del disco: ");
        nombreDisco = leer.LeerCadena();
    }
     
     public void setAutor(){
         Lectores leer = new Lectores();
         System.out.println("Ingrese el nombre del autor de este disco: ");
         autor = leer.LeerCadena();
     }
     
     public void setFormato(){
         Lectores leer = new Lectores();
         System.out.println("Ingrese el formato del disco: ");
         formato = leer.LeerCadena();
     }
     
     public void setID_Disco(){
         Lectores leer = new Lectores();
         System.out.println("Ingrese el ID del disco: ");
         ID_DISCO = leer.LeerCadena();
     }
     
     public void setCanciones(){
         Lectores leer = new Lectores();
         do{
         System.out.println("¿Cuantas canciones son?: ");
         numeroCanciones = leer.LecturaEntero();
         if(numeroCanciones > 20){System.out.println("Solo se pueden ingresar hasta 20 temas musicales. \nIntente de nuevo.");
         System.out.println("                                     ");
         }
         }while(numeroCanciones > 20);
         for (int i = 0, j = 1; i < numeroCanciones; i++, j++){
         System.out.println("Ingrese el nombre de la cancion numero " + j + ": ");
         nombreCancion[i] = leer.LeerCadena();       
         System.out.println("Ingrese la duracion de la cancion numero " + j + ": ");
         duracionCancion[i] = leer.LecturaDecimal();
         duracion = duracion + duracionCancion[i];
     }
         System.out.println("Datos Listos!.");
         System.out.println("--------------------------------------------");
     }
     
     public boolean Equals(Object obj){
         if(obj instanceof DiscoMusical){
         DiscoMusical temp = (DiscoMusical)obj;
         if(this.ID_DISCO.equals(temp.ID_DISCO)) return true;
         else return false;
         }
         else return false;
     }
             
     public String getNombreDisco(){return nombreDisco;}   
     public String getAutor(){return autor;}   
     public String getFormato(){return formato;}   
     public String getID_Disco(){return ID_DISCO;}
     
     public double Redondear(double numero,int digitos){
      int cifras=(int) Math.pow(10,digitos);
      return Math.rint(numero*cifras)/cifras;
}   
     public void getCanciones(){
         System.out.println("\nCanciones del disco: ");
         for (int i = 0, j = 1; i < numeroCanciones; i++, j++){
             System.out.println(j + ". " + nombreCancion[i] + " (Duracion: " + Redondear(duracionCancion[i],2) + ").");
         }
         System.out.println("*************************************************************************");
         System.out.println("Duracion total del disco: " + Redondear(duracion,2));
         System.out.println("-------------------------------------------------------------------------");
     }
     public String toString(){
         return "ID del disco: ".concat(ID_DISCO).concat("\nNombre del disco: ").concat(nombreDisco).concat("\nAutor: ").concat(autor).concat("\nFormato: ").concat(formato);
     }
}


Clase Menú: El único que recibió un cambio drástico...
Código: [Seleccionar]
package Discos;
import java.util.Iterator;
import java.util.ArrayList;

public class Menu {
    Lectores leer = new Lectores();
    DiscoMusical Disco1 = new DiscoMusical();
    DiscoMusical Disco2 = new DiscoMusical();
    DiscoMusical Disco3 = new DiscoMusical();
    ArrayList <DiscoMusical> listaDisco = new ArrayList <>();
    int elige; String opcion; boolean ingresoInicial = false;
   
    public void MenuPrincipal(){
        listaDisco.add(Disco1); listaDisco.add(Disco2); listaDisco.add(Disco3);
        while(true){
        System.out.println("Bienvenido a la ultima version de DISCMAN!!\nEscriba Si continuar, de lo contrario, escriba Salir.");                 
        opcion = leer.LeerCadena();
        if(opcion.equalsIgnoreCase("Si")){           
            if(ingresoInicial == false){
            int num = 1, cont = 0;
            System.out.println("Para continuar, se necesita ingresar el ID del disco: ");           
            for(DiscoMusical aux1: listaDisco){             
                System.out.println("Disco numero " + num++ + ":");               
                do{
                aux1.setID_Disco(); cont = 0;
                for(int i =0; i < listaDisco.size(); i++){
                    if(aux1.Equals(listaDisco.get(i))){cont++;}}
                if(cont > 1) System.out.println("Ha ingresado un ID repetido, ingrese otro diferente.");
                }while(cont != 1);}
            }
            ingresoInicial = true;
            MenuOperaciones();
            }   
        else if(opcion.equalsIgnoreCase("Salir")){ System.out.println("Hasta luego!"); System.exit(0);}
        else System.out.println("Caracter desconocido, intente de nuevo.");             
}}
   
    public void MenuOperaciones(){       
        while(opcion.equalsIgnoreCase("D") == false){
            System.out.println("\n¿Que accion deseas ejecutar?:");
            System.out.println("A)Ingresar datos a un disco.\nB)Imprimir datos de un disco.\nC)Imprimir todos los datos de los discos.\nD)Salir de este menu.");
            opcion = leer.LeerCadena();
            switch(opcion){
                case "a":
                case "A": boolean detectado = false;
                    System.out.println("Escriba el ID del disco al que se le va a ingresar datos: ");
                    while(detectado != true){
                        opcion = leer.LeerCadena();
                        for(int i = 0; i<listaDisco.size(); i++){
                            if(listaDisco.get(i).getID_Disco().equals(opcion)){
                                listaDisco.get(i).setNombreDisco(); listaDisco.get(i).setAutor(); listaDisco.get(i).setFormato(); listaDisco.get(i).setCanciones();
                                detectado = true;
                            }
                        }if(detectado == false){System.out.print("No se ha encontrado el ID ingresado, intente de nuevo: ");}}
                    System.out.println();
                break;
                case "b":
                case "B": detectado = false;
                    System.out.println("Escriba el ID del disco para mostrar sus datos: ");
                    while(detectado != true){
                    opcion = leer.LeerCadena();
                    for(int i = 0; i<listaDisco.size(); i++){
                        if(listaDisco.get(i).getID_Disco().equals(opcion)){
                            System.out.println(listaDisco.get(i).toString());
                            listaDisco.get(i).getCanciones(); detectado = true;
                        }
                    }if(detectado == false){System.out.print("No se ha encontrado el ID ingresado, intente de nuevo: ");}}
                    System.out.println();
                break;
                case "c":
                case "C":
                    Iterator <DiscoMusical> recorre = listaDisco.iterator();
                    while(recorre.hasNext()){
                        DiscoMusical temp = recorre.next();
                        System.out.println(temp.toString()); temp.getCanciones();
                        System.out.println();
                    }
                break;
                case "d":
                case "D": System.out.println("Saliendo . . . \n"); MenuPrincipal(); break;
                default: System.out.println("Opcion desconocida."); break;
            }
        }
    }     
}

Para el menú como se ve, ahora cada acción que quiera realizar, tengo que escribir el ID del disco que quiero modificar. Con el método equals evito la repetición de ID's en el programa y ahorrarme un crash:
Citar
do{
                aux1.setID_Disco(); cont = 0;
                for(int i =0; i < listaDisco.size(); i++){
                    if(aux1.Equals(listaDisco.get(i))){cont++;}}
                if(cont > 1) System.out.println("Ha ingresado un ID repetido, ingrese otro diferente.");
                }while(cont != 1);}

Esta parte compara cada objeto con otro con un for, obviamente conseguirá un ID igual porque llegara un momento que va a comparar con el mismo objeto, mi solución para eso fue colocarle un contador que cuente las veces que los ID fueron iguales. Si el contador conto 2 veces una repetición, el programa avisara que hay un ID repetido... y como la condición del while sigue cumpliéndose (cont es distinto a 1..), retornara de nuevo al inicio (contador vuelve a ser igual a 0) y el usuario tendra que ingresar otro ID.

Los redondeos ahora se valen, puedo redondear ahora con 2 cifras, el metodo toString() ahora se incorpora para imprimir los datos de cada objeto!

Ya lo demás funciona exactamente igual como antes, publico una prueba rápida en breve!

120
Interface Edificio

Código: [Seleccionar]
package Deportivo;

public interface Edificio {
    double getSuperficieEdificio();
    String toString();
}


Interface InstalacionDeportiva

Código: [Seleccionar]
package Deportivo;
public interface InstalacionDeportiva {
    int getTipoInstalacion();
}


Clase Polideportivo:

Código: [Seleccionar]
package Deportivo;

public class Polideportivo implements Edificio,InstalacionDeportiva{
    private String nombrePoli, tipo;
    private int tipoInstalacion;
    private double ancho, largo;
    public Polideportivo(String nombrePoli, int tipoInstalacion, double ancho, double largo){
        this.nombrePoli = nombrePoli;
        this.tipoInstalacion = tipoInstalacion;
        this.ancho = ancho;
        this.largo = largo;
    }
    public void setNombre(String dato){nombrePoli = dato;}
    public void setTipoInstalacion(int num){tipoInstalacion = num;}
    public void setSuperficieEdificio(double dato1, double dato2){ancho = dato1; largo = dato2;}
    public double getSuperficieEdificio(){return (ancho * largo);}
    public int getTipoInstalacion(){return tipoInstalacion;}
    public String toString(){
        return "Nombre del Establecimiento: "+nombrePoli+"\nTipo De Instalacion: "+tipoInstalacion+"\nSuperficie: "+Math.round(getSuperficieEdificio())+"m^2\n";
    }
}



Clase EdificioOficina:

Código: [Seleccionar]
package Deportivo;

public class EdificioOficina implements Edificio {
    private int numeroOficinas;
    private double ancho, largo;
    public EdificioOficina(int numeroOficinas, double ancho, double largo){this.numeroOficinas = numeroOficinas; this.ancho = ancho; this.largo = largo;}
    public void setNumeroOficina(int dato){numeroOficinas = dato;}
    public void setSuperficieEdificio(double dato1, double dato2){ancho = dato1; largo = dato2;}
    public int getNumeroOficina(){return numeroOficinas;}
    public double getSuperficieEdificio(){return (ancho * largo);}
    public String toString(){
        return "Numero de oficinas: "+numeroOficinas+"\nSuperficie: "+Math.round(getSuperficieEdificio())+"m^2\n";
    }
}


Clase Main

Código: [Seleccionar]
package Deportivo;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;

public class Main {
    public static void main(String[]args){
        Edificio polideportivo1 = new Polideportivo("Balboa",2,30.50,20.56);
        Edificio polideportivo2 = new Polideportivo("Espinar",1,14.150,25.75);
        Edificio polideportivo3 = new Polideportivo("Margarita",3,50.345,20.39);
        Edificio EdificioOficina1 = new EdificioOficina(35,70.34,80.54);
        Edificio EdificioOficina2 = new EdificioOficina(25,50.35,34.45);
        List <Edificio> lista = new ArrayList <Edificio>();
        lista.add(polideportivo1);
        lista.add(polideportivo2);
        lista.add(polideportivo3);
        lista.add(EdificioOficina1);
        lista.add(EdificioOficina2);
        Iterator<Edificio> recorre = lista.iterator();
        while(recorre.hasNext()){
            Edificio aux = recorre.next();
            System.out.println(aux.toString());
        }
    }
}

Saludos y gracias por el curso! muy bueno!!

Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 ... 14

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".