Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - PabloPbl

#81
Java / Re: Invocar metodos desde switch
30 Abril 2015, 04:13 AM
Creo que entendí mal tu pregunta,

No veo ningún método llamado getNombreCompleto() en la clase Persona, quizás si intentas con getNombre() debería funcionar.

PD: Quizás si muestras un poco mas tu code podría ayudarte.
#82
Java / Re: Invocar metodos desde switch
30 Abril 2015, 04:08 AM
Intenta hacerlo de esta forma, en el case 1:
Código (java) [Seleccionar]

case 1:   System.out.println("Ingrese nombre");
     String nombre=lector.nextLine();
     persona.setNombre(nombre);

     System.out.println("Ingrese edad");
     int edad=Integer.parseInt(lector.nextLine());
     persona.setEdad(edad)
     break;
#83
Java / Re: Println en cmd desde .jar
29 Abril 2015, 21:17 PM
Pues estoy en la misma que ustedes, he intentado un montón de formas y no consigo hacerlo. Si hago todo desde la consola manualmente pongo los comandos apropiados para cada función lo hace perfecto, pero cuando quiero ejecutar los comandos desde código java lo hace bien pero hasta cierto punto, la única parte donde no se ejecuta es a la hora de mostrarse la impresión "MUNDO" pero por lo demás va bien, compila bien y me crea el jar bien.

Así me quedo el código la ultima vez que lo ejecute, tuve que crear un Manifest y todo pero no va:
Código (java) [Seleccionar]

import java.io.IOException;

public class ImprimirHola {

   public ImprimirHola() {
       System.out.println("HOLA");
       try {
           Runtime.getRuntime().exec("javac ImprimirMundo.java");
    Runtime.getRuntime().exec("jar cvmf Manifest.txt ImprimirMundo.jar ImprimirMundo.class");
    Runtime.getRuntime().exec("java -jar ImprimirMundo.jar");
       } catch (Exception e) {
e.printStackTrace();
       }
   }
   
   public static void main(String[] args) {
       new ImprimirHola();
   }
}



Estos 2 comandos se ejecutan bien y lo he comprobado:
Código (java) [Seleccionar]

Runtime.getRuntime().exec("javac ImprimirMundo.java");
Runtime.getRuntime().exec("jar cvmf Manifest.txt ImprimirMundo.jar ImprimirMundo.class");


Luego este es el que no se ejecuta, pero si lo hago desde la consola, tecleando manualmente el comando me lo hace perfecto:
Código (java) [Seleccionar]
Runtime.getRuntime().exec("java -jar ImprimirMundo.jar");

Haber si alguien mas se anima a hacerlo y nos cuenta en que estamos fallando, o como se debería hacer.

Un saludo a todos.
#84
Java / Re: Println en cmd desde .jar
29 Abril 2015, 18:29 PM
Pues por lo que veo, con esos comandos estas creando el jar, el cual solo lo deberías compilar y correr el class que te genera para recibir un resultado en la consola:

Inténtalo desde esta manera:

Ahora mismo no me acuerdo como se hacia esto, pero prueba con el comando "javac class.java" y luego ejecútalo como "java class".
#85
Java / Re: [School]Ejercicios POO en Java
29 Abril 2015, 17:08 PM
Buenas, pues creo que ya di bastante tiempo ayer, si aún no has terminado y sigues trabajando en el code, recomiendo no mirar este código hasta que termines o tengas una duda al respecto.

Pues lo único que he hecho, a sido modificar un poco la clase SistemaDeUsuarios, bueno mas que modificar diría agregar. Pues la clase me quedo de la siguiente manera:

Código (java) [Seleccionar]

import java.util.ArrayList;
import java.util.Scanner;

public class SistemaDeUsuarios {
   boolean sesionIniciada = false;
   ArrayList<Usuario> usuarios;
   
   public SistemaDeUsuarios() {
       usuarios = new ArrayList<Usuario>();
       
       Scanner scanner = new Scanner(System.in);
       
       while(true) {
           System.out.println("**********************************************Menu principal*******************************************************");
           System.out.println("¿Que deseas hacer?\n1)Crear usuario\n2)Iniciar sesión\n3)Cambiar nombre de usuario\n4)Cambiar contraseña\n5)Salir");
           String eleccion = scanner.nextLine();
           
           if(eleccion.equals("1")) {
               System.out.println("**********Creación de usuarios**********");
               System.out.println("Nombre de usuario:");
               String userName = scanner.nextLine();
               
               System.out.println("Contraseña:");
               String contrasenia = scanner.nextLine();
               
               this.usuarios.add(new Usuario(userName, contrasenia));
               System.out.println("Usuario creado correctamente");
           }
           else if(eleccion.equals("2")) {
               System.out.println("**********Inicio de sesión**********");
               int cantidadDeUsuarios = this.usuarios.size();
               if(cantidadDeUsuarios > 0) {
                   System.out.println("Nombre de usuario:");
                   String userName = scanner.nextLine();
                   boolean existeUsuario = existeUsuario(userName);

                   if(existeUsuario) {
                       System.out.println("Contraseña:");
                       String contrasenia = scanner.nextLine();
                       boolean contraseniaCorrecta = contraseniaCorrecta(userName, contrasenia);

                       if(contraseniaCorrecta) {
                           System.out.println("Bienvenido usuario");
                       }
                       else{
                           System.out.println("Contraseña incorrecta");
                       }
                   }
                   else{
                       System.out.println("No existe ningún usuario con ese nombre");
                   }
               }
               else{
                   System.out.println("No hay ningun usuario registrado");
               }
           }
           else if(eleccion.equals("3")) {
               System.out.println("**********cambio de nombre de usuario**********");
               System.out.println("Nombre de usuario:");
               String userName = scanner.nextLine();
               
               if(existeUsuario(userName)) {
                   System.out.println("Nombre de usuario nuevo:");
                   String newUserName = scanner.nextLine();
                   cambiarNombreUsuario(userName, newUserName);
               }
               else{
                   System.out.println("No existe ningún usuario con ese nombre");
               }
           }
           else if(eleccion.equals("4")) {
               System.out.println("**********Cambio de contraseña**********");
               System.out.println("Nombre de usuario:");
               String userName = scanner.nextLine();
               
               if(existeUsuario(userName)) {
                   System.out.println("Contraseña actual:");
                   String presentPassword = scanner.nextLine();
                   if(contraseniaCorrecta(userName, presentPassword)) {
                       System.out.println("Contraseña nueva:");
                       String newPassword = scanner.nextLine();
                       cambiarContrasenia(userName, presentPassword, newPassword);
                   }
                   else{
                       System.out.println("Contraseña incorrecta");
                   }
               }
               else{
                   System.out.println("No existe ningún usuario con ese nombre");
               }
           }
           else if(eleccion.equals("5")) {
               System.out.println("Vuelve pronto!");
               break;
           }
           else{
               System.out.println("Has ingresado un valor incorrecto, intentalo de nuevo");
           }
       }
   }

   public void sesionIniciada() {}
   
   private void cambiarNombreUsuario(String userName, String newUserName) {
       for(int i = 0; i < this.usuarios.size(); i++) {
           if(userName.equals(usuarios.get(i).getUserName())) {
               usuarios.get(i).setUserName(newUserName);
               System.out.println("Nombre de usuario cambiado correctamente");
               break;
           }
       }
   }
   
   private void cambiarContrasenia(String userName, String oldPassword, String newPassword) {
       for(int i = 0; i < this.usuarios.size(); i++) {
           if(userName.equals(usuarios.get(i).getUserName())) {
               if(oldPassword.equals(usuarios.get(i).getPassword())) {
                   usuarios.get(i).setPassword(newPassword);
                   System.out.println("Contraseña cambiada correctamente");
                   break;
               }
               else{
                   System.out.println("Contraseña incorrecta");
               }
           }
       }
   }
   
   private boolean existeUsuario(String userName) {
       boolean existe = false;
       
       for(int i = 0; i < this.usuarios.size(); i++) {
           System.out.println(usuarios.get(i).getUserName());
           if(userName.equals(usuarios.get(i).getUserName())) {
               existe = true;
               break;
           }
       }
       
       return existe;
   }
   
   private boolean contraseniaCorrecta(String userName, String password) {
       boolean correcta = false;
       
       int index = 0;
       
       for(int i = 0; i < this.usuarios.size(); i++) {
           if(userName.equals(usuarios.get(i).getUserName())) {
               index = i;
           }
       }
       
       String contrasenia = usuarios.get(index).getPassword();
       if(password.equals(contrasenia)) {
           correcta = true;
       }
       
       return correcta;
   }
}



En un rato subiré la última actividad con este código que llevamos. Se que había dicho que iba a hacer actividades de POO, pero creo que la lógica también es divertida e importante xD. Pues en siguientes actividades haré un par mas de POO, en donde practicaremos un poco mas la herencia, uno de los pilares fundamentales de la POO.

Ok gente, cualquier duda ya saben que hacer.

Un saludo a todos  ;)
#86
Java / Re: [School]Ejercicios POO en Java
28 Abril 2015, 23:43 PM
Pues como dije antes, en esta segunda actividad, seguiremos trabajando con el code de la actividad anterior, agregaremos nuevas funcionalidades a nuestro programa.

Hasta ahora solo teníamos 2 funcionalidades, creación de usuarios y inicio de sesión, en esta actividad agregaremos un par de funciones mas:

  • Cuando el usuario le de a iniciar sesión, que se fije si existe algún usuario, sino existe que le avise con un mensaje, que no hay ningún usuario registrado para iniciar sesión.
  • Agregaremos también para que el usuario pueda cambiar el nombre de usuario, el cual le pediremos el nombre de usuario viejo y el nuevo nombre de usuario que quiere cambiar. Entonces cuando nosotros tengamos que iniciar sesión, iniciaremos con el nuevo nombre.
  • Haremos lo mismo pero con la contraseña, pero acá lo haremos un poco mas real. Primero le pediremos el nombre de usuario al cual se quiere cambiar la contraseña, luego le pediremos la contraseña actual, y luego haremos una comprobación para ver si es que el usuario puso bien su contraseña actual y si es así, procedemos a pedirle su nueva contraseña.

Si saben usar bien los métodos y cuando hacerlos y usarlos, esto no les debería llevar mucho tiempo. Los métodos no muerden.

En la siguiente actividad que se sera la última con el código que llevamos, haremos que se parezca aún mas a un sistema de usuarios de verdad.

Bueno gente les deseo suerte. Mañana colgare lo que yo hice. Ya saben cualquier duda acá estoy.

Un saludo a todos!  ;)
#87
Java / Re: [School]Ejercicios POO en Java
28 Abril 2015, 16:52 PM
Hola. Pues acabo de ver tu código y desde mi punto de vista, lo veo bastante limpio. Sobre todo me gusta la parte en donde el usuario interactua con la consola  ;-).

Si nos metemos un poco mas en las funcionalidades del programa, pues estoy viendo que al darle a iniciar sesión, me pide el nombre de usuario y la password perfecto como debería ser, pero si ingreso algún usuario que no existe, no hace nada, me sigue preguntando. Pues hay si te animas, lo que podrías hacer es que al momento de que ponga el nombre de usuario que haga una validación, y si el usuario existe, que le pida la clave si no, no.

Pues otra cosa que estoy viendo, es que al crear el usuario, este lo hace bien, pero luego me vuelve a pedir el nombre de usuario y contraseña. Pues hay en vez de que te vuelva a pedir el nombre de usuario y contraseña, haz que aparezca el menú de vuelta.

Pues si te animas hazlo y después me cuentas que tal te fue.

Un saludo!  ;)
#88
Java / Re: [School]Ejercicios POO en Java
28 Abril 2015, 02:56 AM
Pues acá les dejo mi code, para que lo comparen con el de ustedes y mas o menos se den un idea, de como pueden hacer la actividad que pongo arriba:

Clase Main:
Código (java) [Seleccionar]

public class Main {
   
    public static void main(String[] args) {
        new SistemaDeUsuarios();
    }
   
}



Clase Usuario:
Código (java) [Seleccionar]

public class Usuario {

    private String userName;
    private String password;
   
    public Usuario() {
    }
   
    public Usuario(String userName, String password) {
        this.userName = userName;
        this.password = password;
    }
   
    public void setUserName(String newUserName) {
        this.userName = newUserName;
    }
   
    public String getUserName() {
        return this.userName;
    }
   
    public void setPassword(String newPassword) {
        this.password = newPassword;
    }
   
    public String getPassword() {
        return this.password;
    }
}




Y la clase SistemaDeUsuarios:
Código (java) [Seleccionar]
import java.util.ArrayList;
import java.util.Scanner;

public class SistemaDeUsuarios {
    boolean sesionIniciada = false;
    ArrayList<Usuario> usuarios;
   
    public SistemaDeUsuarios() {
        usuarios = new ArrayList<Usuario>();
       
        Scanner scanner = new Scanner(System.in);
       
        while(true) {
            System.out.println("**************************************************************");
            System.out.println("¿Que deseas hacer?\n1)Crear usuario\n2)Iniciar sesión\n3)Salir");
            String eleccion = scanner.nextLine();
           
            if(eleccion.equals("1")) {
                System.out.println("Nombre de usuario:");
                String userName = scanner.nextLine();
               
                System.out.println("Contraseña:");
                String contrasenia = scanner.nextLine();
               
                this.usuarios.add(new Usuario(userName, contrasenia));
                System.out.println("Usuario creado correctamente");
            }
            else if(eleccion.equals("2")) {
                System.out.println("Nombre de usuario:");
                String userName = scanner.nextLine();
                boolean existeUsuario = existeUsuario(userName);
               
                if(existeUsuario) {
                    System.out.println("Contraseña:");
                    String contrasenia = scanner.nextLine();
                    boolean contraseniaCorrecta = contraseniaCorrecta(userName, contrasenia);
                   
                    if(contraseniaCorrecta) {
                        System.out.println("Bienvenido usuario");
                    }
                    else{
                        System.out.println("Contraseña incorrecta");
                    }
                }
                else{
                    System.out.println("No existe ningún usuario con ese nombre");
                }
            }
            else if(eleccion.equals("3")) {
                System.out.println("Vuelve pronto!");
                break;
            }
            else{
                System.out.println("Has ingresado un valor incorrecto, intentalo de nuevo");
            }
        }
    }

    public boolean existeUsuario(String userName) {
        boolean existe = false;
       
        for(int i = 0; i < this.usuarios.size(); i++) {
            System.out.println(usuarios.get(i).getUserName());
            if(userName.equals(usuarios.get(i).getUserName())) {
                existe = true;
                break;
            }
        }
       
        return existe;
    }
   
    public boolean contraseniaCorrecta(String userName, String password) {
        boolean correcta = false;
       
        int index = 0;
       
        for(int i = 0; i < this.usuarios.size(); i++) {
            if(userName.equals(usuarios.get(i).getUserName())) {
                index = i;
            }
        }
       
        String contrasenia = usuarios.get(index).getPassword();
        if(password.equals(contrasenia)) {
            correcta = true;
        }
       
        return correcta;
    }
}


Bueno gente, si quieren que haga mas ejercicios de estos haganmelo saber abajo en los comments.

Un saludo a todos  ;)
#89
Java / Re: [School]Ejercicios POO en Java
27 Abril 2015, 19:19 PM
Ok, pues por lo que voy tienes 2 main???  :o
Déjale el main a la clase main, la cual sera la que se ejecute en primera instancia.

Ademas te recomendaría que la clase Usuario solo tenga 4 métodos ademas del constructor, los cuales serán para acceder al nombre del usuario y a la contraseña. Haz los típicos métodos get y set para acceder a cada uno.

Una vez que tengas la clase usuario de esa forma:
En cuanto a guardar los nombres y contraseñas, lo que puedes hacer es crear un ArrayList y de allí ir guardando los objetos que vas creando.

Y para interactuar con el usuario deja la clase main, y hay le preguntaras que desea hacer y harás algo en consecuencia, pues si desea crear un nuevo usuario, crearas un nuevo objeto de la clase Usuario y lo agregaras al ArrayList de usuarios.

Ok, cualquier duda acá estoy, o si alguien mas quiere participar, bienvenido.
#90
Java / Re: [School]Ejercicios POO en Java
27 Abril 2015, 17:38 PM
Al menos a alguien le interesa xD  ;D.
Si tienes alguna duda, aunque lo dudo xD, hazla saber abajo en los comments.
Recuerda no borrar el código, por que iremos agregándole mas funcionalidades al mismo, por ende complicándola aún mas.

Un saludo Thryks.