La gestione studenti deve fornire le seguenti funzionalita':
Usare la gestione studenti per:
Per sviluppare un programma e' bene seguire un approccio incrementale, ovvero scrivere una classe, testarla in modo indipendente, integrarla con le altre. Questo approccio e' piu' efficace dell'approccio 'big bang', in cui si scrivono tutte le classi e si testano in una fase sola. In concreto i passi da seguire in questo caso sono:
Scrivere un main(), all'interno di una classe Prova, che usa la classe Student. Ad esempio definire due istanze di Student, s1 e s2, chiamare il costruttore, stampare s1 e s2.
Scrivere la classe StudentSet in un altro file. Compilare la classe.
Scrivere la classe Manager (vedi sotto), ovvero un main che usa sia Student
che StudentSet. Compilare e testare il programma completo.
Scheletro delle classi da completare:
package it.polito.lab1; class Student{ /* * ATTRIBUTI */ String nome; //nome String cognome; //cognome int code; //matricola double mark; //media Student next = null; //successivo nella lista /* * METODI */ //costruttore public Student(String first, String last, int code, double mark){ } //setters void setMark(double mark){ this.mark = mark} // s1.setmark --> s1== this // s3.setmark --> this == s3 void setNext(Student s){ } //getters int getCode(){} Student getNext(){} //stampa void print(){} //attacca un nuovo studente a "next" void append(Student s){} } class StudentSet{ /* * ATTRIBUTI */ private Student head = null; //primo elem della lista /* * METODI */ //funzionalita' public void add(Student s){ } public boolean update(int code, double newMark){} public void print(int code){} public void print(){ } }
Programma di prova:
package it.polito.lab1.test; import it.polito.lab1.*; public class Manager{ public static void main(String args[]){ StudentSet ss = new StudentSet(); ss.add(new Student("Mario", "Rossi", 254, 27.5)); ss.add(new Student("Luca", "Bianchi", 9876, 20.9)); ss.add(new Student("Anna", "Verdi", 7546, 28.0)); ss.update(7546, 28.3); ss.print(9876); ss.print(); } }