Nuova tipologia di ricerca
This commit is contained in:
parent
a12e3db815
commit
6903e571a0
Binary file not shown.
@ -1,49 +1,59 @@
|
||||
import java.util.Scanner;
|
||||
import java.io.PrintStream;
|
||||
|
||||
public class Esame{
|
||||
|
||||
public Esame(String nome, int voto, int mat){
|
||||
this.nome=nome;
|
||||
public Esame(int matricola, String nomeEsame, String data, int voto){
|
||||
this.nomeEsame=nomeEsame;
|
||||
this.voto=voto;
|
||||
this.mat=mat;
|
||||
this.matricola=matricola;
|
||||
this.data=data;
|
||||
}
|
||||
|
||||
public int getVoto(){
|
||||
return voto;
|
||||
}
|
||||
|
||||
public int getMat(){
|
||||
return mat;
|
||||
public int getMatricola(){
|
||||
return matricola;
|
||||
}
|
||||
|
||||
public String getNome(){
|
||||
return nome;
|
||||
public String getNomeEsame(){
|
||||
return nomeEsame;
|
||||
}
|
||||
|
||||
public boolean lookUp(int mat){
|
||||
if(this.mat==mat)
|
||||
return true;
|
||||
return false;
|
||||
public String getData(){
|
||||
return data;
|
||||
}
|
||||
|
||||
public String toString(){
|
||||
return matricola + " " + nomeEsame + " " + data + " " + voto;
|
||||
}
|
||||
|
||||
public void print(PrintStream ps){
|
||||
ps.println(toString());
|
||||
}
|
||||
|
||||
public static Esame read(Scanner sc) throws Exception{
|
||||
String nome;
|
||||
String nomeEsame;
|
||||
int voto;
|
||||
int mat;
|
||||
if(sc.hasNext()){
|
||||
nome=sc.next();
|
||||
if(sc.hasNextInt()){
|
||||
voto=sc.nextInt();
|
||||
if(sc.hasNextInt()){
|
||||
mat=sc.nextInt();
|
||||
return new Esame(nome, voto, mat);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
int matricola;
|
||||
String data;
|
||||
|
||||
if(!sc.hasNextInt()) return null;
|
||||
matricola=sc.nextInt();
|
||||
if(!sc.hasNext()) return null;
|
||||
nomeEsame=sc.next();
|
||||
if(!sc.hasNext()) return null;
|
||||
data=sc.next();
|
||||
if(!sc.hasNextInt()) return null;
|
||||
voto=sc.nextInt();
|
||||
|
||||
return new Esame(matricola, nomeEsame, data, voto);
|
||||
}
|
||||
|
||||
private String nome;
|
||||
private String nomeEsame;
|
||||
private String data;
|
||||
private int voto;
|
||||
private int mat;
|
||||
private int matricola;
|
||||
}
|
||||
|
@ -1,12 +1,6 @@
|
||||
Chimica
|
||||
18
|
||||
1313
|
||||
Economia
|
||||
25
|
||||
1212
|
||||
Economia
|
||||
30
|
||||
1414
|
||||
Chimica
|
||||
30
|
||||
1212
|
||||
1313 Chimica 24-10-2016 18
|
||||
1212 Economia 25-12-2016 25
|
||||
1414 Economia 16-09-2016 30
|
||||
1212 Chimica 12-12-2016 30
|
||||
1212 Cucina 03-04-2016 30
|
||||
1313 Cucina 12-06-2016 27
|
||||
|
Binary file not shown.
@ -1,43 +0,0 @@
|
||||
import java.util.Scanner;
|
||||
import java.io.*;
|
||||
|
||||
public class Main{
|
||||
public static void main(String [] args) throws Exception{
|
||||
File srcStudenti = new File("Studenti.dati");
|
||||
File srcEsami = new File("Esami.dati");
|
||||
Scanner sc = new Scanner(System.in);
|
||||
Esame e;
|
||||
Studente s;
|
||||
int i=0;
|
||||
double media=0;
|
||||
String nome, cnome;
|
||||
|
||||
System.out.println("Inserisci il nome dello studente");
|
||||
nome=sc.nextLine();
|
||||
System.out.println("Inserisci il cognome dello studente");
|
||||
cnome=sc.nextLine();
|
||||
|
||||
sc=new Scanner(srcStudenti);
|
||||
s=Studente.read(sc);
|
||||
while(s!=null){
|
||||
if(s.lookUp(nome, cnome)){
|
||||
sc=new Scanner(srcEsami);
|
||||
e=Esame.read(sc);
|
||||
while(e!=null){
|
||||
if(e.lookUp(s.getMat())){
|
||||
media+=e.getVoto();
|
||||
i++;
|
||||
}
|
||||
e=Esame.read(sc);
|
||||
}
|
||||
break;
|
||||
}
|
||||
s=Studente.read(sc);
|
||||
}
|
||||
|
||||
if(s!=null)
|
||||
System.out.println("lo studente "+s.getNomeCognome()+" ha la media di: "+media/i);
|
||||
else
|
||||
System.out.println("Impossibile trovare delle corrispondenze.");
|
||||
}
|
||||
}
|
105
src/Studenti-Esami/Segreteria.java
Normal file
105
src/Studenti-Esami/Segreteria.java
Normal file
@ -0,0 +1,105 @@
|
||||
import java.util.Scanner;
|
||||
import java.util.ArrayList;
|
||||
import java.io.*;
|
||||
|
||||
public class Segreteria{
|
||||
|
||||
public Segreteria(String srcEsami, String srcStudenti) throws Exception{
|
||||
esami = new ArrayList<Esame>();
|
||||
studenti = new ArrayList<Studente>();
|
||||
Esame e;
|
||||
Studente s;
|
||||
|
||||
Scanner sc = new Scanner(new File(srcEsami));
|
||||
e=Esame.read(sc);
|
||||
while(e!=null){
|
||||
esami.add(e);
|
||||
e=Esame.read(sc);
|
||||
}
|
||||
|
||||
sc = new Scanner(new File(srcStudenti));
|
||||
s=Studente.read(sc);
|
||||
while(s!=null){
|
||||
studenti.add(s);
|
||||
s=Studente.read(sc);
|
||||
}
|
||||
}
|
||||
|
||||
private Segreteria(ArrayList<Esame> esami, ArrayList<Studente> studenti){
|
||||
this.esami=esami;
|
||||
this.studenti=studenti;
|
||||
}
|
||||
|
||||
public void print(PrintStream ps){
|
||||
for(Studente s: studenti)
|
||||
s.print(ps);
|
||||
|
||||
for(Esame e: esami)
|
||||
e.print(ps);
|
||||
}
|
||||
|
||||
public Segreteria filtroMaggioreVoto(int voto){
|
||||
ArrayList<Esame> esami = new ArrayList<Esame>();
|
||||
|
||||
for(Esame e: this.esami){
|
||||
if(e.getVoto()>=voto)
|
||||
esami.add(e);
|
||||
}
|
||||
|
||||
if(esami.size()==0) return null;
|
||||
return new Segreteria(esami, this.studenti);
|
||||
}
|
||||
|
||||
public Segreteria filtroMinoreVoto(int voto){
|
||||
ArrayList<Esame> esami = new ArrayList<Esame>();
|
||||
|
||||
for(Esame e: this.esami){
|
||||
if(e.getVoto()<voto)
|
||||
esami.add(e);
|
||||
}
|
||||
|
||||
if(esami.size()==0) return null;
|
||||
return new Segreteria(esami, this.studenti);
|
||||
}
|
||||
|
||||
public Segreteria filtroMatricola(int matricola){
|
||||
ArrayList<Esame> esami = new ArrayList<Esame>();
|
||||
ArrayList<Studente> studenti = new ArrayList<Studente>();
|
||||
int i=0;
|
||||
boolean trovato=false;
|
||||
|
||||
for(Esame e: this.esami){
|
||||
if(e.getMatricola()==matricola)
|
||||
esami.add(e);
|
||||
}
|
||||
|
||||
while(i<this.studenti.size() && !trovato){
|
||||
if(this.studenti.get(i).getMatricola()==matricola){
|
||||
studenti.add(this.studenti.get(i));
|
||||
trovato=true;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
if(!trovato) return null;
|
||||
return new Segreteria(esami, studenti);
|
||||
|
||||
}
|
||||
|
||||
public int getMatricola(String nome, String cnome){
|
||||
int i=0;
|
||||
boolean trovato=false;
|
||||
|
||||
while(i<this.studenti.size() && !trovato){
|
||||
if(this.studenti.get(i).equals(nome, cnome))
|
||||
trovato=true;
|
||||
i++;
|
||||
}
|
||||
|
||||
if(!trovato) return 0;
|
||||
return this.studenti.get(i-1).getMatricola();
|
||||
}
|
||||
|
||||
private ArrayList<Esame> esami;
|
||||
private ArrayList<Studente> studenti;
|
||||
}
|
Binary file not shown.
@ -1,45 +1,50 @@
|
||||
import java.util.Scanner;
|
||||
import java.io.PrintStream;
|
||||
|
||||
public class Studente{
|
||||
|
||||
public Studente(String nome, String cnome, int mat){
|
||||
public Studente(String nome, String cnome, int matricola){
|
||||
this.nome=nome;
|
||||
this.cnome=cnome;
|
||||
this.mat=mat;
|
||||
this.matricola=matricola;
|
||||
}
|
||||
|
||||
public int getMat(){
|
||||
return mat;
|
||||
public int getMatricola(){
|
||||
return matricola;
|
||||
}
|
||||
|
||||
public String getNomeCognome(){
|
||||
return nome.concat(" ").concat(cnome);
|
||||
}
|
||||
|
||||
public boolean lookUp(String nome, String cnome){
|
||||
if(this.nome.equals(nome) && this.cnome.equals(cnome))
|
||||
return true;
|
||||
return false;
|
||||
public boolean equals(String nome, String cnome){
|
||||
return this.nome.equals(nome) && this.cnome.equals(cnome);
|
||||
}
|
||||
|
||||
public static Studente read(Scanner sc) throws Exception{
|
||||
String nome;
|
||||
String cnome;
|
||||
int mat;
|
||||
if(sc.hasNext()){
|
||||
nome=sc.next();
|
||||
if(sc.hasNext()){
|
||||
cnome=sc.next();
|
||||
if(sc.hasNextInt()){
|
||||
mat=sc.nextInt();
|
||||
return new Studente(nome, cnome, mat);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
int matricola;
|
||||
|
||||
if(!sc.hasNext()) return null;
|
||||
nome=sc.next();
|
||||
if(!sc.hasNext()) return null;
|
||||
cnome=sc.next();
|
||||
if(!sc.hasNextInt()) return null;
|
||||
matricola=sc.nextInt();
|
||||
|
||||
return new Studente(nome, cnome, matricola);
|
||||
}
|
||||
|
||||
public String toString(){
|
||||
return nome + " " + cnome + " " + matricola;
|
||||
}
|
||||
|
||||
public void print(PrintStream ps){
|
||||
ps.println(toString());
|
||||
}
|
||||
|
||||
private String nome;
|
||||
private String cnome;
|
||||
private int mat;
|
||||
private int matricola;
|
||||
}
|
||||
|
@ -1,9 +1,3 @@
|
||||
Walter
|
||||
White
|
||||
1212
|
||||
Jesse
|
||||
Pinkman
|
||||
1313
|
||||
Gustavo
|
||||
Fring
|
||||
1414
|
||||
Walter White 1212
|
||||
Jesse Pinkman 1313
|
||||
Gustavo Fring 1414
|
||||
|
27
src/Studenti-Esami/Test.java
Normal file
27
src/Studenti-Esami/Test.java
Normal file
@ -0,0 +1,27 @@
|
||||
import java.io.*;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Test{
|
||||
public static void main(String [] args) throws Exception{
|
||||
Scanner sc = new Scanner(System.in);
|
||||
PrintStream ps = new PrintStream(System.out);
|
||||
Segreteria segreteria = new Segreteria("Esami.dati", "Studenti.dati");
|
||||
Segreteria filtro;
|
||||
int matricola, x=20, y=27;
|
||||
|
||||
ps.println("Inserisci il nome e cognome dello studente.");
|
||||
matricola=segreteria.getMatricola(sc.next(), sc.next());
|
||||
|
||||
if(matricola==0)
|
||||
ps.println("Errore");
|
||||
else{
|
||||
filtro = segreteria.filtroMatricola(matricola);
|
||||
ps.println("Esami sostenuti dallo studente ");
|
||||
filtro.print(ps);
|
||||
}
|
||||
|
||||
filtro = segreteria.filtroMatricola(matricola).filtroMaggioreVoto(x).filtroMinoreVoto(y);
|
||||
ps.println("Esami con voti compresi tra " + x + " e " + y + " sostenuti dallo studente ");
|
||||
filtro.print(ps);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user