Foro de elhacker.net

Programación => Java => Mensaje iniciado por: el_otro_yo en 1 Agosto 2012, 00:43 am



Título: EJERCICIO URGENTE
Publicado por: el_otro_yo en 1 Agosto 2012, 00:43 am
.


Título: Re: EJERCICIO URGENTE
Publicado por: leogtz en 1 Agosto 2012, 01:17 am
Cóloca el código con las etiquetas de código, para algo están, es muy tedioso leer código sin las etiquetas.


Título: Re: EJERCICIO URGENTE
Publicado por: reylagarto19 en 1 Agosto 2012, 01:43 am
Si anda porfa enrrollate porque asi como los has puesto se lee muy mal!! :P


Título: Re: EJERCICIO URGENTE
Publicado por: goll9d en 1 Agosto 2012, 03:10 am
Es muy molesto leer codigo asi y ademas si no lo pones te garantizo que nadie va ha ayudarte porque nadie lo va a leer


Título: Re: EJERCICIO URGENTE
Publicado por: ChavalChavito en 1 Agosto 2012, 06:12 am
Código:
public void anadirNota(Nota NuevaNota){
boolean isRepeated = false;
for (int i = 0; i<Notas.size; i++){
if (Notas.get(i).getTitulo().equals(NuevaNota.getTitulo()){
isRepeated = true;
}
}
if (isRepeated == false){
Notas.add(NuevaNota);
System.out.println("Se ha introducido la Nota");
}else{
System.out.println("Ya existe una Nota con este nombre");
}

}

averrr.. el segundo
Código:
public void eliminarNotaPorNumero(int numeroDeNOTA)  {
maximoNumeroNota = Notas.size();
     if ((numeroDeNOTA < 0) || (numeroDeNOTA > maximoNumeroNota))
     {
            // No es un numero valido y no se introduce.
            System.out.println(" Numero de nota no exixte, por favor introduzca  ");
            System.out.println(" un rango entre 0 y " + maximoNumeroNota);
     }
}


Título: Re: EJERCICIO URGENTE
Publicado por: ChavalChavito en 1 Agosto 2012, 06:13 am
toy cansado, pero voy a hacer un esfuerzo y t paso el 3ro ;) dame 5 min


Título: Re: EJERCICIO URGENTE
Publicado por: ChavalChavito en 1 Agosto 2012, 06:16 am
el 3er error igual q añadirNota nada mas q en ves d hacer add(), hace un remove()...
Si tenes alguna duda dl codigo o no funca avisame nomas.. m fijo d nuevo che.. trata d postear el codigo c las etiqetas...


Título: Re: EJERCICIO URGENTE
Publicado por: ChavalChavito en 2 Agosto 2012, 02:23 am
aguanta y esta noche lo veo bien lo compilo y t lo paso


Título: Re: EJERCICIO URGENTE
Publicado por: el_otro_yo en 3 Agosto 2012, 00:03 am
Hola buenas noches, me puedes echar un cable ChavalChavito ??


Título: Re: EJERCICIO URGENTE
Publicado por: el_otro_yo en 4 Agosto 2012, 00:11 am
ChavalChavito puedes ayudarme o no puedes ayudarme?? dime si o no, pero porfavor no me tengas esperando porque me corre mucha prisa, gracias, saludos.


Título: Re: EJERCICIO URGENTE
Publicado por: Pablo Videla en 4 Agosto 2012, 00:18 am
Hola, buenas noches, tengo un error con el metodo de añadir Notas comprobando el Titulo, me da error en .size
es el siguiente en negrita, no se como hacer para que compile bien.

/**
     * Introducción de Notas en la Libreta por su TiTulo.
     */
    public void anadirNota(Nota NuevaNota){
       boolean isRepeated = false;
   for (int i = 0; i<Notas.size; i++)
   {
      if (Notas.get(i).getTiTulo().equals(NuevaNota.getTiTulo()))
      {
         isRepeated = true;
      }
   }
   if (isRepeated == false)
   {
      Notas.add(NuevaNota);
      System.out.println("Se ha introducido la Nota");
    }
    else
    {
       System.out.println("Ya existe una Nota con este nombre");
    }
      
   }

muchas gracias, saludos.

Código
  1. /**
  2.      * Introducción de Notas en la Libreta por su TiTulo.
  3.      */
  4.    public void anadirNota(Nota NuevaNota){
  5. int largoArreglo=0;      
  6. if(Notas!=null){
  7.      int largoArreglo = Notas.size();
  8. }
  9.       boolean isRepeated = false;
  10. for (int i = 0; i<largoArreglo; i++)
  11. {
  12. if (Notas.get(i).getTiTulo().equals(NuevaNota.getTiTulo()))
  13. {
  14. isRepeated = true;
  15. }
  16. }
  17. if (isRepeated == false)
  18. {
  19. Notas.add(NuevaNota);
  20. System.out.println("Se ha introducido la Nota");
  21.    }
  22.    else
  23.    {
  24. System.out.println("Ya existe una Nota con este nombre");
  25.    }
  26.  
  27. }
  28.  

Prueba con el cambio que te acabo de hacer xD

PD: El codigo se puede perfeccionar, debes validar todo, pero si es solo un ejercicio y no te quieres dar la molestia, entonces solo hazle el cambio que te acabo de hacer.


Título: Re: EJERCICIO URGENTE
Publicado por: leogtz en 4 Agosto 2012, 03:08 am
No has ni puesto el código con las etiquetas GeShi ¿cómo esperas que se te ayude?


Título: Re: EJERCICIO URGENTE
Publicado por: el_otro_yo en 4 Agosto 2012, 12:34 pm
Primero dime como se pone el codigo con las etiquetas GeShi, porque no tengo ni idea de lo que me dices, soy novato, lo siento.


Título: Re: EJERCICIO URGENTE
Publicado por: el_otro_yo en 4 Agosto 2012, 16:44 pm
Porfavor hay alguien en este forooooo????? que quiera ayudarme???? por favor???


Título: Re: EJERCICIO URGENTE
Publicado por: leogtz en 4 Agosto 2012, 17:42 pm
Si no te tomas la molestia de colocar el código(GeShi, ahí donde escribes los mensajes, selecciona el código y luego selecciona el lenguaje ) de manera correcta nadie te va a ayudar.


Título: Re: EJERCICIO URGENTE
Publicado por: [L]ord [R]NA en 4 Agosto 2012, 17:43 pm
Si pones el codigo entre sus etiquetas, con gusto te ayudamos

Código:
[code=java] *CODIGO AQUI* [/code ]
[/code]


Título: Re: EJERCICIO URGENTE
Publicado por: Pablo Videla en 5 Agosto 2012, 02:36 am
Ahora si, me equivoque un detalle la declaracion de la variable estaba dos veces  :xD
Código
  1.  
  2. /**
  3.      * Introducción de Notas en la Libreta por su TiTulo.
  4.      */
  5.    public void anadirNota(Nota NuevaNota){
  6. int largoArreglo=0;      
  7. if(Notas!=null){
  8.       largoArreglo = Notas.size();
  9. }
  10.       boolean isRepeated = false;
  11. for (int i = 0; i<largoArreglo; i++)
  12. {
  13. if (Notas.get(i).getTiTulo().equals(NuevaNota.getTiTulo()))
  14. {
  15. isRepeated = true;
  16. }
  17. }
  18. if (isRepeated == false)
  19. {
  20. Notas.add(NuevaNota);
  21. System.out.println("Se ha introducido la Nota");
  22.    }
  23.    else
  24.    {
  25. System.out.println("Ya existe una Nota con este nombre");
  26.    }
  27.  
  28. }
  29.  


Título: Re: EJERCICIO URGENTE
Publicado por: el_otro_yo en 6 Agosto 2012, 19:37 pm
Muchas gracias compañero


Título: Re: EJERCICIO URGENTE
Publicado por: Pablo Videla en 7 Agosto 2012, 00:18 am
Podrías arreglar el codigo geshi xD

lo arreglo yo para mejor lectura de los demas

PD: Cuando tenga tiempo lo veo. Saludos.

Código
  1. import java.util.ArrayList;
  2. public class GestorLibretas
  3. {
  4.    //declaracion de atributos.
  5.    private ArrayList<Libreta> Libretas;
  6.    private ArrayList<Nota> Notas;
  7.    int i=0;
  8.    public GestorLibretas()
  9.    {
  10.         Libretas= new ArrayList <Libreta>();
  11.         Notas= new ArrayList <Nota>();
  12.    }  
  13.    public ArrayList<Libreta> getLibretas()
  14.    {
  15.         return Libretas;
  16.    }  
  17.    public ArrayList<Nota> getNotas()
  18.    {
  19.         return Notas;
  20.    }  
  21.     /**
  22.      * Inicializacion de GestorLibretas.
  23.      */
  24.      public void setLibreta (ArrayList<Libreta> Libretas)
  25.    {
  26.         this.Libretas = Libretas;
  27.         this.Notas = Notas;
  28.    }
  29.    /**
  30.      * @return El numero de Libretas que tiene actualmente el Gestor.
  31.      */
  32.     public int numeroDeLibretas()
  33.     {
  34.        return Libretas.size();
  35.    }
  36.    /**
  37.      * @return El numero de Notas que tiene actualmente el Gestor.
  38.      */
  39.     public int numeroDeNotas()
  40.     {
  41.        return Notas.size();
  42.    }
  43.     /**
  44.      * Introducción de Libretas en el Gestor por su TiTulo.
  45.      */
  46.      public void anadirLibreta(Libreta NuevaLibreta){
  47.      int largoArreglo=0;      
  48.       if(Libretas!=null){
  49.       largoArreglo = Libretas.size();
  50.      }
  51.       boolean isRepeated = false;
  52.  for (int i = 0; i<largoArreglo; i++)
  53.  {
  54. if (Libretas.get(i).getTituloLibreta().equals(NuevaLibreta.getTituloLibreta()))
  55. {
  56. isRepeated = true;
  57. }
  58.      }
  59.  if (isRepeated == false)
  60.  {
  61. Libretas.add(NuevaLibreta);
  62. System.out.println("Se ha introducido la Libreta de Titulo:   " +NuevaLibreta.getTituloLibreta());
  63.      }
  64.      else
  65.      {
  66. System.out.println("Ya existe una Libreta con ese TiTulo:       " +NuevaLibreta.getTituloLibreta());
  67.      }
  68.  
  69. }
  70. /** Añade Notas a ArrayList "Notas", mediante la introduccion del TiTulo de la Nota y el Titulo de Libreta.
  71.      * Comprueba que no existe una Nota de igual nombre.
  72.      * Si no existe ese nombre devuelve "True", en caso de que ya existiera devuelve "False" y
  73.      * un mensaje de error.
  74.      */
  75.       public void anadirNota(Nota TiTulo,Libreta TituloLibreta)
  76.     {
  77.       if(Libretas.contains(TituloLibreta)== false && Notas.contains(TiTulo) == false)
  78.       {
  79.          System.out.println("Este titulo de libreta y/o de Nota no existe");
  80.       }
  81.       else
  82.       {
  83.          System.out.println("Se ha añadido la Nota");
  84.          Notas.add(TiTulo);
  85.       }
  86.    }
  87.    /**
  88.      * Elimina Notas por su TiTulo y por el Titulo de Libreta.
  89.      */
  90.      public void eliminarNota(Nota TiTulo,Libreta TituloLibreta)  
  91.      {
  92.       if(Libretas.contains(TituloLibreta)== false && Notas.contains(TiTulo) == false)
  93.       {
  94.          System.out.println("El Titulo de libreta y/o de Nota no existe");
  95.       }
  96.       else
  97.       {
  98.          System.out.println("Se ha borrado la Nota");
  99.          Notas.remove(TiTulo);
  100.       }
  101.    }
  102.    /** Este metodo elimina una Libreta por su Titulo.
  103.      *
  104.      */
  105.    public void eliminarLibreta(Libreta EliminaLibreta){
  106.     int largoArreglo=0;      
  107.       if(Libretas!=null){
  108.       largoArreglo = Libretas.size();
  109.      }
  110. boolean isRepeated = false;
  111. for (int i = 0; i<largoArreglo; i++)
  112. {
  113. if (Libretas.get(i).getTituloLibreta().equals(EliminaLibreta.getTituloLibreta()))
  114. {
  115. isRepeated = true;
  116. Libretas.remove(EliminaLibreta);
  117.    System.out.println("Se ha borrado la Libreta de Titulo:   " +EliminaLibreta.getTituloLibreta());
  118. }
  119. else
  120. {
  121.    System.out.println("La Libreta no existe");
  122. }
  123.    }
  124.    }
  125.     /**
  126.      * Muestra un listado de las Libretas del GestorLibretas y su Titulo de libreta.
  127.      */
  128.      public void verListaLibretasPorTitulo()
  129.      {  
  130.       for (int i = 0; i<Libretas.size(); i++)
  131.        {
  132.           Libreta unaLibreta = Libretas.get(i);
  133.           System.out.println("Libreta nº:" +i );
  134.           System.out.println("Titulo:"+unaLibreta.getTituloLibreta());
  135.        }
  136.         System.out.println("--------------------------");
  137.    }  
  138.     /**Muestra una libreta por Titulo.
  139.      */
  140.       public ArrayList<Libreta> getLibretaPorTitulo(Libreta TituloLibreta)
  141.      {
  142.         //Se crea una lista vacía  
  143.         ArrayList<Libreta> resultado = new ArrayList<Libreta>();
  144.         for (int i=0; i<Libretas.size(); i++)
  145.         {
  146.            Libreta Lib1 = Libretas.get(i);
  147.            //Compara el nombre buscado con los nombres de las libretas existentes.
  148.            if (Lib1.getTituloLibreta().equals(TituloLibreta))
  149.            {
  150.               resultado.add(Lib1);
  151.            }
  152.         }
  153.            //devuelve la lista de coincidencias.
  154.         return resultado;
  155.    }
  156.     /**Busca el contenido de una Libreta por su Titulo de libreta.
  157.      * Introduzca el Titulo de Libreta.
  158.      */
  159.      public void getContenido(Libreta TituloLibreta)
  160.      {
  161.         //Se crea una lista vacía  
  162.         ArrayList<Libreta> resultado = new ArrayList<Libreta>();
  163.         for (int i=0; i<Libretas.size(); i++)
  164.         {
  165.            Libreta lib1 = Libretas.get(i);
  166.             //compara el titulo buscado con los titulos existentes.
  167.            if (lib1.getTituloLibreta().equals(TituloLibreta))
  168.            {
  169.               resultado.add(lib1);
  170.            }
  171.            lib1.imprimirContenidoLibreta();
  172.         }
  173.  
  174.    }    
  175.     /**Busca una Titulo de una Nota por un Titulo de Libreta.
  176.      * Introduzca el Titulo de Libreta.
  177.      */
  178.      public void getTiTuloNota(Libreta TituloLibreta)
  179.    {
  180.         //Se crea una lista vacía  
  181.         ArrayList<Libreta> resultado = new ArrayList<Libreta>();
  182.         for (int i=0; i<Libretas.size(); i++)
  183.         {
  184.            Libreta lib1 = Libretas.get(i);
  185.            Nota unaNota = Notas.get(i);
  186.             //compara el titulo buscado con los titulos existentes.
  187.          if(Libretas.contains(TituloLibreta) == false)
  188.          {
  189.               System.out.println("Esta Libreta no existe");
  190.          }
  191.          else
  192.          {
  193.               System.out.println("Titulo de Notas:"+unaNota.getTiTulo());
  194.          }  
  195.         }
  196.    }
  197.     /**Busca una Titulo de una Libreta por un Titulo de Nota.
  198.      * Introduzca el Titulo de Nota.
  199.      */
  200.      public void getTituloLibreta(Nota TiTuloNota)
  201.      {
  202.         //Se crea una lista vacía  
  203.         ArrayList<Libreta> resultado = new ArrayList<Libreta>();
  204.         for (int i=0; i<Libretas.size(); i++)
  205.         {
  206.            Libreta lib1 = Libretas.get(i);
  207.            Nota unaNota = Notas.get(i);
  208.             //compara el titulo buscado con los titulos existentes.
  209.          if(Notas.contains(TiTuloNota) == false)
  210.          {
  211.               System.out.println("Esta Nota no existe");
  212.          }
  213.          else
  214.          {
  215.               System.out.println("Titulo de Libreta:"+lib1.getTituloLibreta());
  216.          }  
  217.         }
  218.    }
  219.     /**
  220.      * Imprimir por pantalla el contenido del GestorLibretas.
  221.      */
  222.    public void imprimirContenidoGestorLibretas()
  223.    {
  224.        System.out.println("##########################################");
  225.        System.out.println("# Libreta/s:" +Libretas);
  226.        System.out.println("# Nota/s:" +Notas);
  227.        System.out.println("##########################################");
  228.    }
  229.    /**
  230.      * Imprimir por pantalla las estadisticas del Gestor.
  231.      */
  232.    public void EstadisticasGestor()
  233.    {
  234.        int indice=Libretas.size();
  235.        {
  236.            System.out.println("El Gestor  contiene  " +  indice  + "  Libretas");
  237.        }
  238.    }
  239. }

DonVidela tengo estos errores en la clase GestorLibretas si puedes ayudarme te lo agradezco de verdad.
 
GestorLibretas: El gestor de libretas tiene ArrayList tanto de Libretas como de Notas
A dicha lista de Notas solo se le añaden notas en anadirNota(), pero dicho método solo añade notas si ya estan en la lista.
anadirLibreta() compara objetos, no títulos.
anadirNota() nunca funcionará, como se ha explicado antes.
"Elimina Notas por su TiTulo y por el Titulo de Libreta" realmente elimina por objeto.
Lo mismo en el metodo de "Elimina una Libreta por su Titulo"
En getContenido(Libreta TituloLibreta) se imprime todo, no solo cuando coincide el título. Aparte se define un ArrayList "resultado" que no se usa para nada (esto último pasa en muchos otros métodos).
La busqueda de libretas que contengan una nota dada no devuelve nada (está definida como void)
Falta un metodo que imprima las estadísticas pedidas. El método que da el total de notas no funciona, ya que simplemente lista las notas del atributo "Notas", no la suma de notas de todas las libretas.
Faltan los métodos que lista todos los libros/discos/etc de una libreta del gestor.


Título: Re: EJERCICIO URGENTE
Publicado por: el_otro_yo en 8 Agosto 2012, 00:55 am
Perdon pero me equivoque con el color rojo al final,¿¿¿ se entiende chicos???


Título: Re: EJERCICIO URGENTE
Publicado por: Pablo Videla en 8 Agosto 2012, 15:30 pm
Código
  1. /** Este metodo devuelve una Libreta por su Titulo.
  2.      *
  3.      */
  4.      public Libreta devolverLibreta(String TituloLibreta)
  5.    {
  6. Libreta nuevaLibreta = null;
  7.  
  8.    for (int i = 0; i<Libretas.size(); i++){
  9. if (Libretas.get(i).getTituloLibreta().equals(TituloLibreta))
  10. {
  11.   nuevaLibreta= Libretas.get(i);
  12. }
  13.  
  14.      }
  15. if(nuevaLibreta==null){
  16. System.out.println("La Libreta no existe");
  17. }
  18. return nuevaLibreta;
  19.  

Prueba con eso.

El error es que el return lo tienes dentro de un if, lo debes colocar siempre al final de la sentencia ya que debe devolver algo si o si.


Título: Re: EJERCICIO URGENTE
Publicado por: Pablo Videla en 8 Agosto 2012, 16:53 pm
Igual es valido, saludos.


Título: Re: EJERCICIO URGENTE
Publicado por: s00rk en 8 Agosto 2012, 22:04 pm
Para lo ultimo que mencionas ocupas agregar en la clase Libreta un metodo que te regrese las Notas de esa libreta:

Código
  1. public ArrayList<Nota> getNotas()
  2.    {
  3.     return Notas;
  4.    }
  5.  

Luego el codigo para eso seria asi:
Código
  1. public Libreta devolverTituloLibreta(String TiTuloNota)
  2.     {
  3.       Libreta lib = null;
  4.       for (int i=0; i<Libretas.size(); i++)
  5.       {
  6.       for(int ii = 0; ii < Libretas.get(i).getNotas().size(); ii++)
  7.       {
  8.       if(Libretas.get(i).getNotas().get(ii).getTiTulo().equals(TiTuloNota))
  9.       {
  10.       lib = Libretas.get(i);
  11.               lib.getTituloLibreta();
  12.       }
  13.       }
  14.       if(lib == null)
  15.           System.out.println("La Nota no existe");    
  16.  
  17.       }
  18.       return lib;
  19.     }
  20.  


Título: Re: EJERCICIO URGENTE
Publicado por: Pablo Videla en 8 Agosto 2012, 22:12 pm
Podrias publicar la clase Notas y la Clase Libretas para ver bien sus atributos y metodos?


Título: Re: EJERCICIO URGENTE
Publicado por: Pablo Videla en 8 Agosto 2012, 23:34 pm
Publica las clases que te mencione, Quiero ver los atributos de los objetos.


Título: Re: EJERCICIO URGENTE
Publicado por: s00rk en 9 Agosto 2012, 09:42 am

Ahorita esta ordenado de mas antigua a mas reciente diferente es que estes recorriendo de mas vieja a reciente si deceas recorrer de mas nueva a vieja hazlo asi

Código
  1. for(int i = Notas.size()-1; i >= 0; i--;)
  2. {
  3.    system.out.println(Notas.get(i).getTitulo());
  4. }
  5.  

Puede que el codigo tenga algo mal ya que lo escribi desde el celular hehe

Publica las clases que te mencione, Quiero ver los atributos de los objetos.

Esas clases las encuentras en el primer tema de ahi las obtube yo en la segunda pagina lo que puso fue el GestorLibreta.


Título: Re: EJERCICIO URGENTE
Publicado por: Pablo Videla en 9 Agosto 2012, 15:41 pm
Ok gracias Soork, a ver si el compañero logra solucionar el tema con lo que le dijiste, estaremos atento a cualquier cosa.


Título: Re: EJERCICIO URGENTE
Publicado por: el_otro_yo en 9 Agosto 2012, 23:40 pm
Hola, creo que no estoy haciendo algo bien aqui..............

 


Título: Re: EJERCICIO URGENTE
Publicado por: el_otro_yo en 9 Agosto 2012, 23:55 pm
Muchas gracias ya lo tengo hecho!!!!!

No hagan caso al anterior metodo que envie para nada, no sirven los anteriores mensajes que os envie porque estan mal, pero ya lo consegui.

gracias a todos.


Título: Re: EJERCICIO URGENTE
Publicado por: Pablo Videla en 9 Agosto 2012, 23:55 pm
Perfecto, saludos.


Título: Re: EJERCICIO URGENTE
Publicado por: el_otro_yo en 10 Agosto 2012, 00:21 am
un segundo.....no lo hace bien.....ahora lo que hace con ese codigo que me dijo s00rk es mostrarme las notas pero a la inversa.... pero no las ordena por antiguedad de fecha....no se que hacer...


Título: Re: EJERCICIO URGENTE
Publicado por: s00rk en 10 Agosto 2012, 09:19 am
Primero que nada deberias dejar de hacer doble-post, osea comentar dos veces seguidas con una basta hasta que alguien venga y lo lea ...


Y si lo siento, no lei bien mi codigo no hace lo que pides heheh para hacer eso ocuparas un nuevo metodo que los ordene y luego ya podras mostrarlos con el codigo que te puse, simplemente primero llama al metodo Ordenar, y luego usa el codigo que te puse hehe

Aqui te dejo el codigo Ordenar, faltara que agregues un
import java.util.Date;
Código
  1. private static void Ordenar()
  2. {
  3. ArrayList<Date> fechas = new ArrayList<Date>();
  4. for(int i = 0; i < Notas.size(); i++)
  5. fechas.add(new Date(Notas.get(i).getanocreacion(), Notas.get(i).getmescreacion(), Notas.get(i).getdiacreacion() ));
  6.  
  7. for(int i=0;i<fechas.size();i++)
  8. {
  9. for(int j=0;j<fechas.size();j++)
  10. {
  11. if(fechas.get(i).before(fechas.get(j)))
  12. {
  13. Date aux=fechas.get(i);
  14. fechas.set(i, fechas.get(j));
  15. fechas.set(j, aux);
  16. Nota n = Notas.get(i);
  17. Notas.set(i, Notas.get(j));
  18. Notas.set(j, n);
  19. }
  20. }
  21. }
  22. }
  23.