Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema lettura dati

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    5

    Problema lettura dati

    salve,
    vi spiego il problema che mi affligge da troppo tempo!
    ho 2 file, uno contenente matricola e password chiamato iscritti.txt,l'altro contenente data,matricola e fascia oraria chiamato prenotazioni.txt
    Devo compilare un form con matricola password e fascia oraria e salvarlo e devo rispettare i seguenti vincoli:
    -la matricola deve corrispondere ad una di quelle presente nell'elenco degli iscritti al corso
    -la password indicata deve corrispondere a quella indicata nel medesimo elenco, per il numero di matricola specificato
    -per la giornata richiesta non deve essere presente nessuna prenotazioni in capo al numero di matricola indicato, in qualunque fascia oraria.
    Per i primi 2 punti ci sono.. il terzo mi crea conflitto con i primi 2. in particolare ad esempio se inserisco matricola giusta e password sbagliata mi dice che la prenotazione è già avvenuta, invece vorre che mi dicesse che la password è sbagliata.
    vi posto il codice
    actionperformed del pulsante per salvare

    codice:
    	if(check1()){
    				System.out.println("Check1 ok");
    					if(check2()){
    					System.out.println("Check2 ok");
    					
    					if(check3()){
    					System.out.println("Check3 ok");
    					}
    					else{
    						errore.setText("Sei già registrato per oggi!");	
    					}
    					
    				}
    				else{ 
    				//errore.setText("Matricola o password errata");
    					errore.setText("Matricola o password errata");
    				System.out.println("Check2 errata");
    				}
    			
    		}
    
    check2
    
    for(int i=0; i<mm.getIscritti();i++){
    
    			if(getMatr().getText().equals(mm.getIscritto(i).getMatricola())){
    				errore.setText("Password errata");
    				
    				
    				if(getPass().getText().equals(mm.getIscritto(i).getPassword())){
    					errore.setText(mm.getIscritto(i).getMatricola()+"Registrato! Ore: "+fo.getSelectedItem());
    					
    					return true;
    				}
    			}
    		}
    		return true;
    		
    	}
    public boolean check3(){
    	for(int j=0; j<mm.getPrenotazioni(); j++){
    		String curr_matr=getMatr().getText();
    		if(mm.getPrenotato(j).getMatr().equals(curr_matr)){
    			errore.setText("Prenotazione già avvenuta per oggi!");
    			return false;
    		}
    
    
    		}
    
    return true;
    }
    
    	}
    il check1 controlla l'inserimento di virgole o punti.. se volete posto anche quello.
    Aiuto please!

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2012
    Messaggi
    5
    nessuno mi sa aiutare? se avete dubbi riguardo al codice chiedete

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Originariamente inviato da fleeaaa
    nessuno mi sa aiutare? se avete dubbi riguardo al codice chiedete
    Più che un dubbio, una constatazione... constato che, nonostante te l'abbia detto due volte, continui a non postare il codice usando i tag code... e mica è così difficile:

    [CODE]
    poi incolli il codice
    [/CODE]

    Ci riescono tutti, sono sicuro che ci puoi riuscire anche tu.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Allora per prima cosa quando posti il codice usa i tag code come descritto nel regolamento.
    Il problema sta nel metodo check2 che dovrebbe controllare appunto la corretta associazione tra matricola e password.
    Per come hai dichiarato il metodo esso ritorna sempre true anche in caso la password sia errata
    codice:
    private boolean check2()
    	{
    		for (int i = 0; i < mm.getIscritti(); i++)
    		{
    
    			if (getMatr().getText().equals(mm.getIscritto(i).getMatricola()))
    			{
    				//errore.setText("Password errata");
    
    				if (getPass().getText().equals(mm.getIscritto(i).getPassword()))
    				{
    					errore.setText(mm.getIscritto(i).getMatricola() + "Registrato! Ore: " + fo.getSelectedItem());
    
    					return true;
    				}
    			}
    		}
                    //Se arrivo qui vuol dire che o la matricola o la password è errata
                    //return true;
    		return false;
    
    	}
    Per come ho implementato adesso il metodo esso ti dice solo che o la matricola o la password è errata. Ovviamente se vuoi sapere se è la matricola sbagliata o la password devi rivedere la logica dei controlli del metodo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.