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?