Creare un login per avviare un programma java

di il
11 risposte

Creare un login per avviare un programma java

Ciao a tutti ragazzi, sono nuovo di qui, mi chiamo Maxim e sto studiando java, sono arrivato ai cicli (do, for, while), vi volevo chiedere se sapete come fare in modo che il programma chieda una password possibilmente NON numerica e poi apra il menù del mio programma? Spero di essermi spiegato, grazie in anticipo

11 Risposte

  • Re: Creare un login per avviare un programma java

    La password di solito è una stringa e quindi può contenere sia numeri che lettere o segni speciali( $,#,£ ecc) poi credo che se non esista qualcosa a me sconosciuto che ti faccia immettere solo lettere e non numeri dovresti fare una verifica sui valori immessi.

    nel tuo programma è prevista una GUI?
  • Re: Creare un login per avviare un programma java

    Per NON numerica, intendevo che era più bello immettere una password composta da sole lettere, per il mio programma non è prevista una GUI, lo lancio direttamente su eclipse, ti metto una parte del codice:
    prendi per scontato che ci sia già il metodo main e tutte le cose iniziali:

    int scelta1, numero1, numero2, risultato;
    int inizio, fine, passo, contatore;
    boolean prova;


    // Creiamo il Menù
    System.out.print("Menù \n");
    System.out.println("1 - Addizione");
    System.out.println("2 - Sottrazione");
    System.out.println("3 - Divisione");
    System.out.println("4 - Moltiplicazione");
    System.out.println("5 - Modulo");
    System.out.println("6 - Pari o Dispari");
    System.out.println("7 - Esempio Do");
    System.out.println("8 - Esempio For");
    System.out.println("9 - Uscita");
    scelta1 = tastiera.nextInt();


    Quello che vorrei fare è dare la possibilità di immettere una certa parola per poter aprire questo menù, grazie in anticipo
  • Re: Creare un login per avviare un programma java

    Ok, chiaro.

    io farei così nel main metterei solo due opzioni:
    1.)inserisci password
    2.)esci

    in inserisci password se la password è giusta ti apre un sottoMenu come quello da te descritto.

    come ti ho detto non credo che ci sia un metodo che ti permetta di inserire solo lettere in una stringa, almeno io non lo conosco.

    L'idea sarebbe far uscire una -ATTENZIONE NON SONO AMMESSI VALORI NUMERICI-
    Inserisci Password:

    Poi ovviamente la password la decidi tu e quindi se inserissi valori numerici sarebbe scorretta a priori.

    P.s. dove pensi di salvare la tua password su cui fare la verifica?

    Spero di essere stato chiaro e di esserti stato d'aiuto.
  • Re: Creare un login per avviare un programma java

    Purtroppo il mio problema è porpio verificare la password, con i numeri potevo farlo, se con lo switch, ma siccome lo switch funziona solo con numeri interi non so proprio come fare con le lettere , ti faccio un esempio:

    int scelta

    System.out.print("1 - Inserisci la password : ");
    System.out.print("Esci");
    scelta = tastiera.nextInt();

    switch (scelta)

    case 1: System.out.print("Menù \n");
    System.out.println("1 - Addizione");
    System.out.println("2 - Sottrazione");
    System.out.println("3 - Divisione");
    System.out.println("4 - Moltiplicazione");
    System.out.println("5 - Modulo");
    System.out.println("6 - Pari o Dispari");
    System.out.println("7 - Esempio Do");
    System.out.println("8 - Esempio For");
    System.out.println("9 - Uscita");


    Però in questo caso basterebbe premere 1 e si apre il menu, non so come preimpostare una password, ho provato con il boolean, i cicli ma niente
  • Re: Creare un login per avviare un programma java

    Se non ricordo male il parametro dello switch può essere una variabile di tipo byte, short, char e int.

    E per la scelta va bene(anche se io uso sempre e cmq if)

    per la password che è un parametro di tipo String userei un if.
  • Re: Creare un login per avviare un programma java

    Mi potresti fare un esempio anche banale per favore? cosi capisco cosa devo scrivere, grazie in anticipo
  • Re: Creare un login per avviare un programma java

    Adesso non so bene com'è l'architettura del tuo programma, io procederei in questo modo

    Non prenderlo come oro colato perché è una cosa fatto così di getto e quindi non so se potrebbe funzionare, ma è giusto per farti capire l'approccio.

    Io farei:

    La classe principale con i vari schermi:
    La classe Password con l'attributo string Password e un metodo getPassword
    La classe Contenitore con i vari metodi

    Questo codice nella classe Principale:
    
    
                    public void esegui() {
    		System.out.println("");
    		System.out.println("---------------------Benvenuto---------------------");
    		System.out.println("");
    		Contenitore contenitore = new Contenitore();
                    Password p= null;
    		boolean continua = true;
    		while (continua) {
    			int scelta = schermoMenu();
    			if (scelta == 1) {
                            P = scermoInserisciPassword();
                            }else if (scelta == 0) {
    				System.out.println("Sicuro di voler uscire s/n");
    				String scelta1 = Console.leggiStringa();
    				if (scelta1.equals("s")) {
    					System.out.println (".....Arrivederci.....");
    					continua = false;
    				}else if(scelta1.equals("n")) {
    					continua = true;
    				}else{
    					System.out.println(" errore la scelta deve essere s o n");
    				}
    			}
    		}
    	}
    
    Ovviamente poi uno schermo :
    
    private Password schermoInserisciPassword(Contenitore contenitore) {
    		
            System.out.println(" Immetti Password ->");
            String Password = Console.leggiStringa();
    		Password p = contenitore.cercaPassword(password);
    		if (p !=null) {
    			System.out.println("Password non Trovate"+" " + p);
    		}else{
    			System.out.println("Password Esatta"); 
                            p= sottoSchermo() // questo è il tuo ex schermoIniziale
    		}
    		return p;
    	}
    
    nella classe contenitore ci va il metodo cercaPassword(password)

    Più una ArrayList di nome listaPassword
    
    public Contenitore cercaPassword(String password) {
    		for (int i=0; i<listaPassword(); i++) {
    			password p = getPassword(i);
    			if(p.getPassword().equals(password)) {
    				return p;
    			}
    		}
    		return null;
    	}
    
    Ah dimenticavo schermoMenu è lo schermo iniziale dove hai solo 1.inserisci password
    0.Esci

    come ti ho già detto non sono sicuro che funzioni al 100% ma il codice su per giù dovrebbe essere questo.
  • Re: Creare un login per avviare un programma java

    L'ho capito cosi e cosi, ma comunque, il codice da te scritto mi porta vari errori in eclipse, tipo: Password cannot be resolved to a type e altri, sicuramente sbaglio io qualcosa, lo studierò più a fondo, grazie 1000
  • Re: Creare un login per avviare un programma java

    Sinceramente ecplipse non l'ho mai usato.

    Ho sempre usato sempre il prompt per i progetti senza GUI e NetBeans per quelli della gui.

    Mi segnali dove ti da l'errore?

    Forse console.leggiStringa a te non funziona, ora che ci penso è un metodo di una libreria esterna.

    Poi come ti ho già detto non so come è organizzato il tuo progetto quindi magari ci sono metodi che non vanno scritti così.

    E non di poco conto, potrebbe essere sbagliato il codice come ti ho detto l'ho scritto di getto e non l'ho compitalo quindi magari ci stanno una marea di errori.

    Però era solo per farti capire quale, secondo me, fosse la strategia giusta e cioè creare più schermi e per la password usare un if invece di switch.
  • Re: Creare un login per avviare un programma java

    Mi da molti errori, e come dici tu alcuni comandi come console.leggiStringa non funzionano, non mi funziona neanche la password, getPassword, listaPassword e tutti i "Contenitore".
    Ma ho afferrato il concetto, grazie
  • Re: Creare un login per avviare un programma java

    GetPassword è un metodo che, ipotizzando tu abbia una classe password dove hai anche

    String password va scritto in questo modo

    public String getPassword() {
    return password;
    }


    mentre per la lista di Password(almeno io ho ipotizzato che tu volessi avere una lista di password e la ricerca se la password fosse giusto o no venisse fatta su quella lista) il codice è questo:

    List listaPassword = new ArrayList(); e va nella Classe contenitore

    Ovviamente alla lista poi vanno aggiunte le password
Devi accedere o registrarti per scrivere nel forum
11 risposte