Ho un problema su un programma da cui ho già induviduato l'origine del tipo di errore, forse riguardano le graffe ( intendo la loro disposizione, ma non il numero visto che sono e devono essere sempre un numero pari ) , ma che comunque non ho ancora individuato; il codice del programma e delle relative classi dell'applicazione è questo:
Codice Applicazione;
Codice Classe CD;codice:import java.io.*; class Applicazione{ public static void main(String argv[]) { InputStreamReader input = new InputStreamReader(System.in); BufferedReader tastiera = new BufferedReader(input); int v; System.out.print("\n Inserimento dati canzoni: "); for(int i=0;i<num;i++) { brano[i] = new Canzone(); String nome = new String(); System.out.print("\n Titolo Canzone: "); try{ nome = tastiera.readLine(); } catch(Exception e){ System.out.println("Errore, non è una stringa!"+e); System.exit(-1); } int durata; System.out.print("Durata Canzone: "); try{ String leggiNumero = tastiera.readLine(); durata = Integer.valueOf(leggiNumero).intValue(); } catch (Exception e) { System.out.println("Numero non corretto!. Riprovare"); return; } } String leggiScelta; int scelta; try{ leggiScelta = tastiera.readLine(); scelta = Integer.valueOf(leggiScelta).intValue(); } catch(Exception e) { System.out.println("\n Numero non corretto!. Riprovare"); return; } System.out.print("Seleziona uno dei seguenti metodi: "); do{ switch(scelta){ case 1:ricerca(nome); break; case 2:modifyTitolo(v,nome); break; case 3:modififyDurata(v,durata); break; case 4:searchDurata(v); break; default:System.out.print("Tasto Errato! Riprovare."); break; } }while(!(scelta==0)); }}
Codice Classe Canzone;codice:import java.io.*; class Cd{ private Canzone[]brano = new Canzone[10]; private int num; public void setBrano(Canzone[]b) { brano=b;} public Canzone[] getBrano() { return brano;} public void setNum() { num=0;} public int getNum() { return num;} public Cd() { for(int i=0;i<brano.length;i++) brano[i] = new Canzone(); num=0; } public Cd(Canzone[]b) { brano=b;} public boolean inserimento(String nome,int durata) { if(num<10){ brano[num].setNome(nome); brano[num].setDurata(durata); num++; return(true);} else return(false); } public int ricerca(String nome) { for(int i=0;i<num;i++) { if((brano[i].getNome()).equals(nome)) return i; } return(-1); } public boolean modifyTitolo(String v,String n) { int ind=ricerca(v); if(ind<0) return (false); else{ brano[ind].setNome(n); return (true);} } public boolean modififyDurata(String v,int d) { int ind=ricerca(v); if(ind<0) return(false); else{ brano[ind].setDurata(d); return(true);} } public int searchDurata(String v) { int ind=ricerca(v); if(ind<0)return -1; else return(brano[ind].getDurata());} }
Grazie in anticipo per le risposte, spero che la lunghezza dei vari codici non sia troppo noioso da leggere.codice:class Canzone{ private String nome; private int durata; public void setNome(String n) { nome=n;} public String getNome() { return nome;} public void setDurata(int d) { durata=d;} public int getDurata() { return durata;} public Canzone() { nome=null; durata=0;} public Canzone(String n,int d) { nome=n; durata=d;} }

Rispondi quotando