Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Java

    Buongiorno sono nuovo nel forum quindi mi scuserete se non rispetto alla perfezione le regole…Allora ho un programma da consegnare a breve al professore e ho molti problemi…qui il testo:

    Gestione ordini

    Realizzare un sistema che tratta ordini relativi a clienti e fornitori.
    Classi e interfacce si trovano nel package ordini, gli esempi nel package di default.

    R1 Anagrafica

    La classe principale è Ordini, il metodo readAnagrafica() legge dal parametro, che è il nome di un file testuale, le informazioni sui prodotti, i clienti e i fornitori, organizzate in righe che iniziano con i caratteri P, C o F. Una riga di prodotto (ad esempio "P,divano2pT,200") contiene il carattere P, il codice del prodotto (String) e il prezzo (int) separati da una virgola. Una riga di cliente (ad esempio "C,Bianchi") contiene il carattere C e il codice del cliente (String) separati da una virgola. Una riga di fornitore (ad esempio "F,BetaMobili,divano2pP,poltronaP") contiene il carattere F, il codice del fornitore e i codici dei prodotti trattati dal fornitore separati da una virgola.
    Il metodo legge il file in una struttura dati interna da definire. La struttura del file è sintatticamente corretta però possono esserci dei codici duplicati o indefiniti; in tal caso, la riga errata è ignorata e la lettura prosegue. Ad es. nel file AnagraficaE l’ultima riga P è ignorata perché il codice divano2pT è già stato definito nella prima riga P e l’ultima riga F è ignorata perché mensola non è un codice di prodotto.

    I metodi getCodiciProdotti, getCodiciClienti e getCodiciFornitori danno la lista dei codici dei prodotti, clienti e fornitori ordinati alfabeticamente. Il metodo getCodiciProdottiFornitore (String codice) dà la lista dei codici dei prodotti del fornitore ordinati alfabeticamente. Il fornitore è identificato dal suo codice; se non esiste un fornitore con quel codice il metodo lancia un’eccezione di tipo CodiceInesistente.

    Nota sul controllo dei codici: se un codice passato come parametro ad un metodo non corrisponde a nessun oggetto del tipo richiesto - un prodotto, un cliente, un fornitore, un ordine cliente, un ordine fornitore - il metodo lancia un’eccezione di tipo CodiceInesistente.



    e la mia soluzione è questa ma effetuando i test dati dal professore c'è un errore sul metodo getCodiciProdottiFornitore
    codice:
            TreeMap<String, Prodotto> prodotti = new TreeMap<String, Prodotto>();
    	TreeMap<String, Cliente> clienti = new TreeMap<String, Cliente>();
    	TreeMap<String, Fornitore> fornitori = new TreeMap<String, Fornitore>();
    
            int od = 0;
    	int i = 0;
    
    	// Anagrafica
    	@SuppressWarnings("resource")
    	public void readAnagrafica(String fileName) {
    
    		try {
    			BufferedReader in = new BufferedReader(new FileReader(fileName));
    			String line1 = in.readLine();
    			while (line1 != null) {
    				try {
    					Scanner sc = new Scanner(line1).useDelimiter(";");
    					String n = sc.next();
    					if (n.equals("P")) {
    						String codiceP = sc.next();
    						int Prezzo = sc.nextInt();
    						Prodotto p = new Prodotto(codiceP, Prezzo);
    						prodotti.put(codiceP, p);
    					}
    					if (n.equals("C")) {
    						String CodiceCl = sc.next();
    						Cliente c = new Cliente(CodiceCl);
    						clienti.put(CodiceCl, c);
    					}
    					if (n.equals("F")) {
    						String[] codcl1 = new String[100];
    						String CodiceF = sc.next();
    						for (int i = 0; i < 100; i++) {
    							codcl1[i] = sc.next();
    							// String codcl2 = sc.next();
    							Fornitore f = new Fornitore(CodiceF, codcl1);
    							fornitori.put(CodiceF, f);
    						}
    					}
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    				line1 = in.readLine();
    			}
    			;
    			in.close();
    		} catch (Exception e) { // e.printStackTrace(); }
    		}
    	}
    
    	public ArrayList<String> getCodiciClienti() {
    		ArrayList<String> list = new ArrayList<String>(clienti.keySet());
    		Collections.sort(list);
    		return list;
    	}
    
    	public ArrayList<String> getCodiciProdotti() {
    		ArrayList<String> list = new ArrayList<String>(prodotti.keySet());
    		Collections.sort(list);
    		return list;
    	}
    
    	public ArrayList<String> getCodiciFornitori() {
    		ArrayList<String> list = new ArrayList<String>(fornitori.keySet());
    		Collections.sort(list);
    		return list;
    	}
    
    	public ArrayList<String> getCodiciProdottiFornitore(String codice)
    			throws CodiceInesistente {
    		Fornitore f = fornitori.get(codice);
    		if (f == null)
    			throw new CodiceInesistente();
    		ArrayList<String> list = new ArrayList<String>();
    		for (String s : fornitori.keySet()) {
    			if (fornitori.get(s).equals(codice))
    				list.add(s);
    		}
    		Collections.sort(list);
    
    		return list;
    	}
    formato del file da Leggere:
    codice:
    Anagrafica.txt
          P,divano2pT,200
    P,divano2pP,400
    P,poltronaT,150
    P,poltronaP,250
    P,libreria,300
    P,scaffale,120
    P,mensola,40
    C,Bianchi
    C,Rossi
    C,Verdi
    F,AlfaMobili,divano2pT,poltronaT,libreria
    F,BetaMobili,divano2pP,poltronaP
    F,TuttoMobili,divano2pT,poltronaT,divano2pP,poltronaP,libreria,scaffale,mensola

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Java

    Che errore?
    Qual è l'output atteso e qual è il tuo output?

    ps:

    catch (Exception e) { // e.printStackTrace(); }


    Mai uccidere le eccezioni!

    ps2:

    usa il tag CODE per il codice, altrimenti non si capisce nulla!
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    scusi Alex..hai un email ti mando tutto il programma…?

  4. #4

    Moderazione

    Benvenuto sul forum! Ti ricordo che:
    • come ti è già stato detto, il codice va specificato tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione;
    • il titolo dovrebbe contenere una breve descrizione del problema;
    • infine, normalmente sarebbe preferibile caricare il codice su qualche sito di file hosting e postare il link sul forum piuttosto che mandarlo via mail ad un utente specifico, in modo che anche altri ci possano dare un'occhiata per aiutarti.


    Ora correggo io; nel frattempo ti consiglio di dare un'occhiata al regolamento.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    ok Scusate … il programma intero fatto da me eccolo per favore qualcuno che trova l'errore me lo faccia sapere mi stringe il tempo;

    https://www.dropbox.com/s/fha43d02u8...ioneOrdini.zip … eccolo

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da martin_berry
    ok Scusate … il programma intero fatto da me eccolo per favore qualcuno che trova l'errore me lo faccia sapere mi stringe il tempo;

    https://www.dropbox.com/s/fha43d02u8...ioneOrdini.zip … eccolo
    Dici che "effetuando i test dati dal professore c'è un errore sul metodo getCodiciProdottiFornitore"
    Che errore? Un eccezione?
    Hai provato a debuggare?

    Ripeto:

    Originariamente inviato da Alex'87
    Qual è l'output atteso e qual è il tuo output?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    No non ho debuggato…anche quando eseguo il main non mi esce il risultato…ed effettuando i test mi escono solo dei failures e non so dov'è sbagliato il mio programma..!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.