Con gli array credo di non avere problemi.Mi cercavo di sforzare a farlo con un unico vettore, dato che esso è sempre un array ma di dimensione indefinita. Ma forse non si può.
class Studente {
private String nome;
private String cognome;
private int voto;
public String setNome(String nome)
{
this.nome=nome;
return nome;
}
public String setCognome(String cognome)
{
this.cognome=cognome;
return cognome;
}
public int setVoto(int voto)
{
this.voto=voto;
return voto;
}
public int getVoto()
{
return voto;
}
public void stampa()
{
System.out.printf("%-15s %-15s %n",nome,cognome);
System.out.printf("%4d %n",voto);
}
}
import java.util.Vector;
class Pagella {
private Vector pagella;
private Vector voti;
public Pagella()
{
pagella = new Vector (1,1);
voti = new Vector (1,1);
}
public void aggiungiStudente (Studente s)
{
pagella.addElement(s);
}
public void aggiungiVoto (Studente v)
{
voti.addElement(v);
}
public void visualizza()
{
Studente s;
Studente v;
System.out.println("\n\t\t\t*** Studente ***");
for (int i=0; i<pagella.size(); i++)
{
for(int n=0; n<voti.size(); n++) {
s=(Studente) pagella.elementAt(i);
v=(Studente) voti.elementAt(i);
v.stampa();
s.stampa();}
}
}
}
import java.util.Scanner;
public class ProgStudenti {
private Scanner stdIn = new Scanner (System.in);
private static final int AGGIUNTA = 1;
private static final int ADDVOTO = 1;
private static final int RITORNO = 2;
private static final int VISUALIZZAZIONE = 2;
private String fine;
private static final int INDIETRO = 3;
private Pagella pagella = new Pagella();
public static void main(String[] args) {
ProgStudenti progStudenti = new ProgStudenti();
progStudenti.immissione();
}
private void immissione()
{
int opzione;
do {
opzione=leggiOpzione();
switch(opzione) {
case AGGIUNTA: addStudente();break;
case VISUALIZZAZIONE: visualizza();break;
}
}while(opzione!=3);
}
private void mostraMenu()
{
System.out.println();
System.out.println("\n\t\t\t *** MENU ***");
System.out.println();
System.out.println("1\tInserisci studente");
System.out.println("2\tVisualizza");
System.out.println("3\tEsci");
}
private void mostraSubMenu()
{
System.out.println("1\tInserisci voti prova di matematica");
System.out.println("2\tRitorna al menù precedente");
}
private void addStudente()
{
Studente s = new Studente();
Studente v = new Studente ();
String cognome = leggiCognome();
s.setNome(cognome);
String nome = leggiNome();
s.setCognome(nome);
// int voto = leggiVoto();
// s.setVoto(voto);
pagella.aggiungiStudente(s);
pagella.aggiungiVoto(v);
// mostraSubMenu();
int selezione;
// do {
selezione=leggiSelezione();
switch(selezione) {
case ADDVOTO: do {int voto=leggiVoto();v.setVoto(voto);}while(leggiVoto()!=00);break;
case RITORNO: int opzione; opzione=leggiOpzione();break;
}
// System.out.print("Inserisci il voto:");
// int voto=leggiVoto();
// s.setVoto(voto);
// pagella.aggiungiStudente(s);
// }while(selezione!=INDIETRO);
}
private String leggiCognome()
{
System.out.print("Inserisci il cognome:");
String cognome=stdIn.nextLine();
return cognome;
}
private String leggiNome()
{
System.out.print("Inserisci il nome:");
String nome=stdIn.nextLine();
return nome;
}
/* private void addVoto()
{
mostraSubMenu();
Studente s = new Studente();
int selezione;
do {
selezione=leggiSelezione();
System.out.print("Inserisci il voto:");
int voto=leggiVoto();
s.setVoto(voto);
pagella.aggiungiStudente(s);
}while(selezione!=INDIETRO);
}*/
private int leggiVoto()
{
System.out.print("Inserisci voti della prova:");
int voto;
voto=stdIn.nextInt();
stdIn.nextLine();
return voto;
}
private int leggiOpzione()
{
mostraMenu();
System.out.println("Seleziona opzione");
int opzione;
//System.out.print("Premere 1 per aggiungere uno studente, qualsiasi altro numero per terminare l'immissione dei dat: ");
opzione=stdIn.nextInt();
stdIn.nextLine();
return opzione;
}
private int leggiSelezione()
{
mostraSubMenu();
System.out.println("Selezione opzione");
int selezione;
selezione=stdIn.nextInt();
stdIn.nextLine();
return selezione;
}
private void visualizza()
{
pagella.visualizza();
System.exit(0);
}