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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Una ayudita
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Una ayudita  (Leído 2,479 veces)
GhostMati

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Una ayudita
« en: 16 Octubre 2018, 15:34 pm »

Tengo que hacer un programa para mi escuela que permita entrar a un profesor y administrador

ya tengo gran parte echa pero tengo que hacer si el nombre y contraseña están bien,pase a otro menú con otras opciones y si es incorrecto te de 3 oportunidades para poder probar la contraseña o el nombre depende de en que se equivoque
(creo que es con un while o do while pero probé hacer de todo y no puedo)

dejo algo del código por favor alguna ayuda viene muy bien,Gracias.


import java.util.Scanner;

public class proyecto {
   public static void main(String[] args) {
      Scanner leer = new Scanner(System.in);
      String nom = new String("Docente2018");
      String contra = new String("Docente2018");
      String nom2 = new String("Administrador2018");
      String contra2 = new String("Administrador2018");
      System.out.println("1)Profesor");
      System.out.println("2)Administrador");
      int Opcion = leer.nextInt();
      switch (Opcion) {

      case 1:

         System.out.println("Ingrese su nombre de usuario: ");
         String nombre = leer.next();

         System.out.println("Ingrese su coantraseña: ");
         String contraseña = leer.next();

         if(nom.equals(nombre)){
            System.out.println();
         }else{
            System.out.println("Nombre incorrecto");
         }
            if(contra.equals(contraseña)){
               System.out.println();
            }else{
               System.out.println("Contraseña incorrecta");
            }
         
         break;
         
      case 2:
         System.out.println("Ingrese su nombre de usuario: ");
         String nombre2 = leer.next();
         System.out.println("Ingrese su contraseña: ");
         String contraseña2 = leer.next();
         if (contra2.equals(contraseña2)) {
            System.out.println();
         } else {
            System.out.println(" incorrecta");
         }
         if (nom2.equals(nombre2)) {
            System.out.println();

         } else {
            System.out.println("Nombre incorrecto");
            break;
         }
      }
   }
}


En línea

srWhiteSkull


Desconectado Desconectado

Mensajes: 444



Ver Perfil WWW
Re: Una ayudita
« Respuesta #1 en: 16 Octubre 2018, 16:25 pm »

creo que es con un while o do while pero probé hacer de todo y no puedo

y por qué no puedes? Inténtalo y comenta el error que te da y muestra el código, la porción.


En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Una ayudita
« Respuesta #2 en: 18 Octubre 2018, 16:54 pm »


Hola,
La descripción de tu post no es adecuada "Una ayudita"  :-\ , y usa Código GeSHI




Este es tu código algo modificado para que funcione pero se hacia largo y aun faltaba comparar  :-(

Código
  1. import java.util.Scanner;
  2.  
  3. public class ProfeAdmin {
  4.  
  5.    public static void main(String[] args) {
  6.  
  7.        Scanner leer = new Scanner(System.in);
  8.        String nom = new String("Docente2018");
  9.        String contra = new String("Docente2018");
  10.        String nom2 = new String("Administrador2018");
  11.        String contra2 = new String("Administrador2018");
  12.        System.out.println("1)Profesor");
  13.        System.out.println("2)Administrador");
  14.        int Opcion = leer.nextInt();
  15.  
  16.  
  17.        int count = 1; // uso de contador para contrar la oportunidades que son 3
  18.  
  19.        switch (Opcion) {
  20.  
  21.            case 1:
  22.  
  23.                System.out.println("Ingrese su nombre de usuario: ");
  24.                String nombre = leer.next();
  25.  
  26.                System.out.println("Ingrese su contraseña: ");
  27.                String contraseña = leer.next();
  28.  
  29.  
  30.                // establecer 3 oportunidades si se equivoca en el nombre o la contraseña
  31.  
  32.                if (nom.equals(nombre) && contra.equals(contraseña)) {
  33.                    mostrar("Correcto access granted");
  34.  
  35.                } else {
  36.                    if (!nom.equals(nombre)) { // se lee, "si nom no es igual a nombre" , dara true
  37.                        System.out.println("Nombre incorrecto");
  38.                        int countO = 3;
  39.                        while (count <= 3) {
  40.                            ShowData.showLn("Oportunidad " + (countO--));
  41.                            ShowData.showLn("Ingrese Nombre");
  42.                            final String newName = leer.next();
  43.  
  44.                            if (newName.equals(nom)) {
  45.                                ShowData.showLn("Nombre Correcto");
  46.                                break;
  47.                            } else {
  48.                                count++;
  49.                                continue;
  50.                            }
  51.  
  52.                        }
  53.                        count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
  54.                                   // xq no entrara mas en el while
  55.  
  56.                    } else if (!contra.equals(contraseña)) { //si la contra no es igual a contraseña, dara true
  57.  
  58.                        System.out.println("Contraseña incorrecta");
  59.                        int countO = 3;
  60.                        while (count <= 3) {
  61.                            mostrar("Oportunidad " + (countO--)); // decremento del count0 en 1
  62.                            mostrar("Ingrese contraseña");
  63.                            final String newPass = leer.next();
  64.  
  65.                            if (newPass.equals(contra)) {
  66.                                mostrar("Contraseña correcta");
  67.  
  68.                                /*
  69.                                 Aqui introducir siguente menu
  70.                                  */
  71.  
  72.                                break;
  73.                            } else {
  74.                                count++;
  75.                                continue;
  76.                            }
  77.  
  78.                        }
  79.                        count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
  80.                                    // xq no entrara mas en el while
  81.  
  82.                    }
  83.  
  84.                }
  85.  
  86.                break;
  87.  
  88.            case 2:
  89.                System.out.println("Ingrese su nombre de usuario: ");
  90.                String nombre2 = leer.next();
  91.                System.out.println("Ingrese su contraseña: ");
  92.                String contraseña2 = leer.next();
  93.  
  94.  
  95.                if (nom2.equals(nombre2) && contra2.equals(contraseña2)) {
  96.                    mostrar("Correcto access granted");
  97.                } else {
  98.                    if (!nom2.equals(nombre2)) { // se lee, "si nom no es igual a nombre" , dara true
  99.                        System.out.println("Nombre incorrecto");
  100.                        int countO = 3;
  101.                        while (count <= 3) {
  102.                            mostrar("Oportunidad " + (countO--));
  103.                            mostrar("Ingrese Nombre");
  104.                            final String newName = leer.next();
  105.  
  106.                            if (newName.equals(nom2)) {
  107.                                mostrar("Nombre Correcto");
  108.                                break;
  109.                            } else {
  110.                                count++;
  111.                                continue;
  112.                            }
  113.  
  114.                        }
  115.                        count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
  116.                        // xq no entrara mas en el while
  117.  
  118.                    } else if (!contra2.equals(contraseña2)) { //se lee, la contra no es igual a contraseña, dara true
  119.  
  120.                        System.out.println("Contraseña incorrecta");
  121.                        int countO = 3;
  122.                        while (count <= 3) {
  123.                            mostrar("Oportunidad " + (countO--)); // decremento del count0 en 1
  124.                            mostrar("Ingrese contraseña");
  125.                            final String newPass = leer.next();
  126.  
  127.                            if (newPass.equals(contra2)) {
  128.                                mostrar("Contraseña correcta");
  129.  
  130.                                /*
  131.                                 Aqui introducir siguente menu
  132.                                  */
  133.  
  134.                                break;
  135.                            } else {
  136.                                count++;
  137.                                continue;
  138.                            }
  139.  
  140.                        }
  141.                        count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
  142.                        // xq no entrara mas en el while
  143.  
  144.                    }
  145.  
  146.                }
  147.  
  148.                break;
  149.        }
  150.    }
  151.  
  152.    private static void mostrar(final String s) {
  153.        System.out.println(s);
  154.    }
  155.  
  156.    //establecer oportunidades, son 3, creamos un metodo
  157.    private void filtrar() {
  158.  
  159.    }
  160. }
  161.  
  162.  


tu código original carece de métodos, uso de contructor, de variables de instancia, variables de clase, es bueno que le des un vistazo y refactorises tu código con eso., y ahora con este codigo se nota algo de diferencia con respecto a la reducción de líneas, solo que usamos tipos enum aquí

para las sentencias switch puedes usar enum  >:D ver linea 50 el método
Código
  1. getUsersByID()




Código
  1. package foro;
  2.  
  3. import javax.swing.*;
  4. import java.util.EnumSet;
  5. import java.util.NoSuchElementException;
  6. import java.util.Scanner;
  7.  
  8. enum Users {
  9.  
  10.    DOCENTE(1),
  11.    ADMINISTRADOR(2);
  12.  
  13.    private Integer id;
  14.  
  15.    Users(final Integer id) {
  16.        this.id = id;
  17.    }
  18.    public Integer getId() {
  19.        return id;
  20.    }
  21.  
  22.    //buscando los usarios
  23.    public static Users getUsersByID(final Integer id) {
  24.        return EnumSet.allOf(Users.class)
  25.                .stream()
  26.                .filter(object -> id.equals(object.id))
  27.                .findFirst() //detienela busqueda de las lista con la primera conincidencia
  28.                .get(); // retorna un NoSuchElementException en caso que no exista dicho id
  29.    }
  30.  
  31. }
  32.  
  33.  
  34. public class ProfeAdmin2 {
  35.  
  36.    private static final Scanner LEER = new Scanner(System.in);
  37.    private static final String ACCESS_GRANTED = "Access Granted.";
  38.    private static final String DATOS_INCORRECTOS = "Datos incorrectos.";
  39.  
  40.    private String nom = new String("Docente2018");
  41.    private String contra = new String("Docente2018");
  42.    private String nom2 = new String("Administrador2018");
  43.    private String contra2 = new String("Administrador2018");
  44.  
  45.    public ProfeAdmin2() {
  46.        System.out.println("1)Profesor");
  47.        System.out.println("2)Administrador");
  48.        final int opcion = LEER.nextInt();
  49.        try {
  50.            final Users users = Users.getUsersByID(opcion);
  51.            switch (users) {
  52.                case DOCENTE:
  53.                    process(nom,contra); // pasando parametros correspondientes al metodo process para reutilizarlo
  54.                    break;
  55.                case ADMINISTRADOR:
  56.                    process(nom2,contra2); // pasando parametros correspondientes al metodo process para reutilizarlo
  57.                    break;
  58.            }
  59.        }catch (final NoSuchElementException ex) {
  60.            JOptionPane.showMessageDialog(null,"No se encuentra el usuario " + opcion);
  61.            mostrar("Saliendo de la aplicacion");
  62.            System.exit(0);
  63.        }
  64.  
  65.    }
  66.  
  67.    private void process(final String paramNom, final String paramPass) {
  68.        System.out.println("Ingrese su nombre de usuario: ");
  69.        final String nombre = LEER.next();
  70.  
  71.        System.out.println("Ingrese su contraseña: ");
  72.        final String contraseña = LEER.next();
  73.  
  74.        // establecer 3 oportunidades si se equivoca en el nombre o la contraseña
  75.        int count = 0;
  76.        if (nombre.equals(paramNom) && contraseña.equals(paramPass)) {
  77.            mostrar(ACCESS_GRANTED);
  78.            /*
  79.             Pasar a otro menu aqui
  80.              */
  81.        } else {
  82.  
  83.            if(!nombre.equals(paramNom) && !contraseña.equals(paramPass)) {
  84.                mostrar(DATOS_INCORRECTOS);
  85.                ingresarNombre("", paramNom);
  86.                ingresarPass("", paramPass);
  87.                mostrar(ACCESS_GRANTED);
  88.            }
  89.  
  90.            else if (!nombre.equals(paramNom)) { // se lee, "si nom no es igual a paramNom" , dara true
  91.                ingresarNombre("Nombre incorrecto",paramNom);
  92.            } else if (!contraseña.equals(paramPass)) { //si la contra no es igual a paramPass, dara true
  93.                ingresarPass("Contraseña incorrecta",paramPass);
  94.            }
  95.        }
  96.    }
  97.  
  98.    private void ingresarNombre(final String msg,final String paramNom) {
  99.        System.out.println(msg);
  100.        int countO = 3;
  101.        int count = 0;
  102.        while (count <= 3) {
  103.            mostrar("Oportunidad " + (countO--));
  104.            mostrar("Ingrese Nombre");
  105.            final String newName = LEER.next();
  106.            if (newName.equals(paramNom)) {
  107.                mostrar("Nombre Correcto");
  108.  
  109.                break;
  110.            } else {
  111.                count++;
  112.                continue;
  113.            }
  114.        }
  115.        count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
  116.        // xq no entrara mas en el while
  117.    }
  118.    private void ingresarPass(final String msg, final String paramPass) {
  119.        System.out.println(msg);
  120.        int countO = 3;
  121.        int count = 0;
  122.        while (count <= 3) {
  123.            mostrar("Oportunidad " + (countO--)); // decremento del count0 en 1
  124.            mostrar("Ingrese contraseña");
  125.            final String newPass = LEER.next();
  126.            if (newPass.equals(paramPass)) {
  127.                mostrar("Contraseña correcta");
  128.  
  129.                break;
  130.            } else {
  131.                count++;
  132.                continue;
  133.            }
  134.        }
  135.        count = 0; // seteando el contador a cero, sin eso el comportamiento no sera el adecuado
  136.        // xq no entrara mas en el while
  137.    }
  138.  
  139.    private <T> void mostrar(final T s) {
  140.        System.out.println(s);
  141.    }
  142.    public static void main(String ..._0x52) {
  143.        new ProfeAdmin2();
  144.    }
  145.  
  146. }
  147.  

« Última modificación: 24 Octubre 2018, 16:18 pm por rub'n » En línea

rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
TonyHL

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Una ayudita
« Respuesta #3 en: 23 Octubre 2018, 23:01 pm »

Yo hice un proyecto parecido solo que el mío en el login ace confección con una base de datos mediante  xampp y SQL te lo podría enviar por si te sirve
En línea

GhostMati

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Una ayudita
« Respuesta #4 en: 24 Octubre 2018, 16:15 pm »

Gracias por toda la ayuda y el como utilizar de mejor manera la pagina, lo agradezco.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
uNA AYUDITA PLZ
Software
_km3loth_ 1 1,989 Último mensaje 30 Abril 2005, 22:26 pm
por Randomize
Una ayudita...
Diseño Gráfico
PhorSeth 7 3,466 Último mensaje 24 Mayo 2005, 12:31 pm
por + enrique ZP
ayudita ^^
Programación Visual Basic
Lambda 2 1,533 Último mensaje 2 Abril 2006, 18:56 pm
por Robokop
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines