sareste così gentili da dare un occhiata a questo piccolo programma e dirmi dove erro?
la traccia è "scrivere un programma sulla gestione dei corsi universitari. si stampino tutti i corsi e dato un docente stampare tutti i corsi da lui tenuti"
codice:CLASSE CORSO import java.io.PrintStream; import java.util.Scanner; public class Corso { private String codFiscale; private String codCorso; private String nomeCorso; private String corsoLaurea; private String descrizione; public Corso(String aCodFiscale, String aCodCorso, String aNomeCorso, String aCorsoLaurea, String aDescrizione){ codFiscale=aCodFiscale; codCorso=aCodCorso; nomeCorso=aNomeCorso; corsoLaurea=aCorsoLaurea; descrizione=aDescrizione; } public String getCodFiscale (){ return codFiscale; } public String getCodCorso (){ return codCorso; } public String getNomeCorso (){ return nomeCorso; } public String getCorsoLaurea (){ return corsoLaurea; } public String getDescrizione (){ return descrizione; } public String toString(){ return "Cod fiscale: " + codFiscale + "\n" + "Cod corso: " + codCorso + "\n" + "Nome corso: " + nomeCorso + "\n" + "Corso laurea: " + corsoLaurea + "\n" + "Descrizione: " + descrizione; } public void print (PrintStream ps){ ps.println(codFiscale); ps.println(codCorso); ps.println(nomeCorso); ps.println(corsoLaurea); ps.println(descrizione); } public static Corso read (Scanner s2){ if(s2.hasNext()) return null; String codFiscale=s2.nextLine(); if(s2.hasNext()) return null; String codCorso=s2.nextLine(); if(s2.hasNext()) return null; String nomeCorso=s2.nextLine(); if(s2.hasNext()) return null; String corsoLaurea=s2.nextLine(); if(s2.hasNext()) return null; String descrizione=s2.nextLine(); Corso c=new Corso(codFiscale, codCorso, nomeCorso, corsoLaurea, descrizione); return c; }
codice:CLASSE DOCENTE import java.io.PrintStream; import java.util.Scanner; public class Docente { private String codFiscale; private String nome; private String cognome; private int dataNascita; private String fascia; private String corsoLaurea; public Docente (String aCodFiscale, String aNome, String aCognome, int aDataNascita, String aFascia, String aCorsoLaurea){ codFiscale=aCodFiscale; nome=aNome; cognome=aCognome; dataNascita=aDataNascita; fascia=aFascia; corsoLaurea=aCorsoLaurea; } public String getCodFiscale(){ return codFiscale; } public String getNome(){ return nome; } public String getCognome(){ return cognome; } public int getDataNascita(){ return dataNascita; } public String getFascia(){ return fascia; } public String getCorsoLaurea(){ return corsoLaurea; } public String toString(){ return "Cod fiscale: " + codFiscale + "\n" + "Nome: " + nome + "\n" + "Cognome: " + cognome + "\n" + "Data nascita: " +dataNascita + "\n" + "Fascia: " + fascia + "\n" +"Corso laurea: " + corsoLaurea; } public void print (PrintStream ps){ ps.println(codFiscale); ps.println(nome); ps.println(cognome); ps.println(dataNascita); ps.println(fascia); ps.println(corsoLaurea); } public static Docente read (Scanner s){ if(!s.hasNext()) return null; String codFiscale=s.nextLine(); if(!s.hasNext()) return null; String nome=s.nextLine(); if(!s.hasNext()) return null; String cognome=s.nextLine(); if(!s.hasNextInt()) return null; int dataNascita=s.nextInt(); if(!s.hasNext()) return null; String fascia=s.nextLine(); if(!s.hasNext()) return null; String corsoLaurea=s.nextLine(); Docente i=new Docente (codFiscale, nome, cognome, dataNascita, fascia, corsoLaurea); return i; } }codice:GESTORE SEGRETERIA import java.util.ArrayList; import java.util.Scanner; public class Segreteria { private ArrayList <Docente> docenti; private ArrayList <Corso> corsi; public Segreteria(Scanner s, Scanner s2){ docenti=new ArrayList <Docente>(); corsi=new ArrayList <Corso> (); while(s.hasNext()){ Docente d=Docente.read(s); docenti.add(d); } while(s2.hasNext()){ Corso c= Corso.read(s2); corsi.add(c); } } public void stampaArchivio(){ for(Docente d: docenti) System.out.println(d); for(Corso c: corsi) System.out.println(c); } public void datoDocenteGetCorso(String codFiscale){ for(Docente d: docenti){ if(codFiscale.equalsIgnoreCase(d.getCodFiscale())) for(Corso c: corsi) if(d.getCodFiscale().equalsIgnoreCase(c.getCodFiscale())) System.out.println(c); }} }codice:TESTER import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.util.Scanner; public class Tester { public static void main(String[] args) throws FileNotFoundException { String percorso="Desktop//Programmazione//DocenteFile.txt"; File f=new File (percorso); FileReader fr=new FileReader(f); Scanner s=new Scanner (fr); String percorso2="Desktop//Programmazione//CorsoFile.txt"; File f2=new File (percorso2); FileReader fr2=new FileReader(f2); Scanner s2=new Scanner (fr2); Segreteria segreteria=new Segreteria (s, s2); segreteria.stampaArchivio(); //segreteria.datoDocenteGetCorso("AG290889"); } }
mi dà un errore di out of memory heap space...
il punto è che non è possibile in quanto i file da cui leggo sono piccolissimi (giusto qualche riga per vedere se funziona il prog) e poi ho provato anche da un altro computer e nemmeno lì funziona. vi prego potete aiutarmi?

Rispondi quotando