elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [School]Ejercicios POO en Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [School]Ejercicios POO en Java  (Leído 5,382 veces)
PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [School]Ejercicios POO en Java
« Respuesta #10 en: 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!  ;)


En línea

Lind L. Tailor

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: [School]Ejercicios POO en Java
« Respuesta #11 en: 28 Abril 2015, 17:33 pm »

Hola...

Lo que pasa es que después de ingresar un nuevo usuario lo mando directamente al inicio de sesión ;D, pero si tienes razón, sería mas correcto en cuanto a funcionalidad mandarlo al menú nuevamente, así como validar primeramente el usuario y posteriormente la contraseña.

Estamos al pendiente de las nuevas actividades mientras arreglo esa parte.  :rolleyes:


En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [School]Ejercicios POO en Java
« Respuesta #12 en: 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!  ;)
En línea

PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [School]Ejercicios POO en Java
« Respuesta #13 en: 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
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3.  
  4. public class SistemaDeUsuarios {
  5.    boolean sesionIniciada = false;
  6.    ArrayList<Usuario> usuarios;
  7.  
  8.    public SistemaDeUsuarios() {
  9.        usuarios = new ArrayList<Usuario>();
  10.  
  11.        Scanner scanner = new Scanner(System.in);
  12.  
  13.        while(true) {
  14.            System.out.println("**********************************************Menu principal*******************************************************");
  15.            System.out.println("¿Que deseas hacer?\n1)Crear usuario\n2)Iniciar sesión\n3)Cambiar nombre de usuario\n4)Cambiar contraseña\n5)Salir");
  16.            String eleccion = scanner.nextLine();
  17.  
  18.            if(eleccion.equals("1")) {
  19.                System.out.println("**********Creación de usuarios**********");
  20.                System.out.println("Nombre de usuario:");
  21.                String userName = scanner.nextLine();
  22.  
  23.                System.out.println("Contraseña:");
  24.                String contrasenia = scanner.nextLine();
  25.  
  26.                this.usuarios.add(new Usuario(userName, contrasenia));
  27.                System.out.println("Usuario creado correctamente");
  28.            }
  29.            else if(eleccion.equals("2")) {
  30.                System.out.println("**********Inicio de sesión**********");
  31.                int cantidadDeUsuarios = this.usuarios.size();
  32.                if(cantidadDeUsuarios > 0) {
  33.                    System.out.println("Nombre de usuario:");
  34.                    String userName = scanner.nextLine();
  35.                    boolean existeUsuario = existeUsuario(userName);
  36.  
  37.                    if(existeUsuario) {
  38.                        System.out.println("Contraseña:");
  39.                        String contrasenia = scanner.nextLine();
  40.                        boolean contraseniaCorrecta = contraseniaCorrecta(userName, contrasenia);
  41.  
  42.                        if(contraseniaCorrecta) {
  43.                            System.out.println("Bienvenido usuario");
  44.                        }
  45.                        else{
  46.                            System.out.println("Contraseña incorrecta");
  47.                        }
  48.                    }
  49.                    else{
  50.                        System.out.println("No existe ningún usuario con ese nombre");
  51.                    }
  52.                }
  53.                else{
  54.                    System.out.println("No hay ningun usuario registrado");
  55.                }
  56.            }
  57.            else if(eleccion.equals("3")) {
  58.                System.out.println("**********cambio de nombre de usuario**********");
  59.                System.out.println("Nombre de usuario:");
  60.                String userName = scanner.nextLine();
  61.  
  62.                if(existeUsuario(userName)) {
  63.                    System.out.println("Nombre de usuario nuevo:");
  64.                    String newUserName = scanner.nextLine();
  65.                    cambiarNombreUsuario(userName, newUserName);
  66.                }
  67.                else{
  68.                    System.out.println("No existe ningún usuario con ese nombre");
  69.                }
  70.            }
  71.            else if(eleccion.equals("4")) {
  72.                System.out.println("**********Cambio de contraseña**********");
  73.                System.out.println("Nombre de usuario:");
  74.                String userName = scanner.nextLine();
  75.  
  76.                if(existeUsuario(userName)) {
  77.                    System.out.println("Contraseña actual:");
  78.                    String presentPassword = scanner.nextLine();
  79.                    if(contraseniaCorrecta(userName, presentPassword)) {
  80.                        System.out.println("Contraseña nueva:");
  81.                        String newPassword = scanner.nextLine();
  82.                        cambiarContrasenia(userName, presentPassword, newPassword);
  83.                    }
  84.                    else{
  85.                        System.out.println("Contraseña incorrecta");
  86.                    }
  87.                }
  88.                else{
  89.                    System.out.println("No existe ningún usuario con ese nombre");
  90.                }
  91.            }
  92.            else if(eleccion.equals("5")) {
  93.                System.out.println("Vuelve pronto!");
  94.                break;
  95.            }
  96.            else{
  97.                System.out.println("Has ingresado un valor incorrecto, intentalo de nuevo");
  98.            }
  99.        }
  100.    }
  101.  
  102.    public void sesionIniciada() {}
  103.  
  104.    private void cambiarNombreUsuario(String userName, String newUserName) {
  105.        for(int i = 0; i < this.usuarios.size(); i++) {
  106.            if(userName.equals(usuarios.get(i).getUserName())) {
  107.                usuarios.get(i).setUserName(newUserName);
  108.                System.out.println("Nombre de usuario cambiado correctamente");
  109.                break;
  110.            }
  111.        }
  112.    }
  113.  
  114.    private void cambiarContrasenia(String userName, String oldPassword, String newPassword) {
  115.        for(int i = 0; i < this.usuarios.size(); i++) {
  116.            if(userName.equals(usuarios.get(i).getUserName())) {
  117.                if(oldPassword.equals(usuarios.get(i).getPassword())) {
  118.                    usuarios.get(i).setPassword(newPassword);
  119.                    System.out.println("Contraseña cambiada correctamente");
  120.                    break;
  121.                }
  122.                else{
  123.                    System.out.println("Contraseña incorrecta");
  124.                }
  125.            }
  126.        }
  127.    }
  128.  
  129.    private boolean existeUsuario(String userName) {
  130.        boolean existe = false;
  131.  
  132.        for(int i = 0; i < this.usuarios.size(); i++) {
  133.            System.out.println(usuarios.get(i).getUserName());
  134.            if(userName.equals(usuarios.get(i).getUserName())) {
  135.                existe = true;
  136.                break;
  137.            }
  138.        }
  139.  
  140.        return existe;
  141.    }
  142.  
  143.    private boolean contraseniaCorrecta(String userName, String password) {
  144.        boolean correcta = false;
  145.  
  146.        int index = 0;
  147.  
  148.        for(int i = 0; i < this.usuarios.size(); i++) {
  149.            if(userName.equals(usuarios.get(i).getUserName())) {
  150.                index = i;
  151.            }
  152.        }
  153.  
  154.        String contrasenia = usuarios.get(index).getPassword();
  155.        if(password.equals(contrasenia)) {
  156.            correcta = true;
  157.        }
  158.  
  159.        return correcta;
  160.    }
  161. }
  162.  


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  ;)
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejercicios Java
Ejercicios
Lorena88 1 7,186 Último mensaje 21 Enero 2009, 01:42 am
por Amerikano|Cls
2 ejercicios de java
Java
kay19 1 9,070 Último mensaje 28 Agosto 2009, 20:34 pm
por Caballero Maldito
Ejercicios Java « 1 2 »
Java
rshocush 12 15,354 Último mensaje 10 Marzo 2010, 15:15 pm
por Mai89
Ejercicios en JAVA « 1 2 »
Ejercicios
madpitbull_99 16 41,216 Último mensaje 1 Febrero 2016, 22:53 pm
por sodark
Ejercicios JAVA
Ejercicios
Chuckie 2 2,977 Último mensaje 21 Agosto 2014, 04:37 am
por Chuckie
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines