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.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
public class Esame{
|
public class Esame{
|
||||||
|
|
||||||
public Esame(String nome, int voto, int mat){
|
public Esame(int matricola, String nomeEsame, String data, int voto){
|
||||||
this.nome=nome;
|
this.nomeEsame=nomeEsame;
|
||||||
this.voto=voto;
|
this.voto=voto;
|
||||||
this.mat=mat;
|
this.matricola=matricola;
|
||||||
|
this.data=data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getVoto(){
|
public int getVoto(){
|
||||||
return voto;
|
return voto;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMat(){
|
public int getMatricola(){
|
||||||
return mat;
|
return matricola;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getNome(){
|
public String getNomeEsame(){
|
||||||
return nome;
|
return nomeEsame;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean lookUp(int mat){
|
public String getData(){
|
||||||
if(this.mat==mat)
|
return data;
|
||||||
return true;
|
}
|
||||||
return false;
|
|
||||||
|
public String toString(){
|
||||||
|
return matricola + " " + nomeEsame + " " + data + " " + voto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void print(PrintStream ps){
|
||||||
|
ps.println(toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Esame read(Scanner sc) throws Exception{
|
public static Esame read(Scanner sc) throws Exception{
|
||||||
String nome;
|
String nomeEsame;
|
||||||
int voto;
|
int voto;
|
||||||
int mat;
|
int matricola;
|
||||||
if(sc.hasNext()){
|
String data;
|
||||||
nome=sc.next();
|
|
||||||
if(sc.hasNextInt()){
|
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();
|
voto=sc.nextInt();
|
||||||
if(sc.hasNextInt()){
|
|
||||||
mat=sc.nextInt();
|
return new Esame(matricola, nomeEsame, data, voto);
|
||||||
return new Esame(nome, voto, mat);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String nome;
|
private String nomeEsame;
|
||||||
|
private String data;
|
||||||
private int voto;
|
private int voto;
|
||||||
private int mat;
|
private int matricola;
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,6 @@
|
|||||||
Chimica
|
1313 Chimica 24-10-2016 18
|
||||||
18
|
1212 Economia 25-12-2016 25
|
||||||
1313
|
1414 Economia 16-09-2016 30
|
||||||
Economia
|
1212 Chimica 12-12-2016 30
|
||||||
25
|
1212 Cucina 03-04-2016 30
|
||||||
1212
|
1313 Cucina 12-06-2016 27
|
||||||
Economia
|
|
||||||
30
|
|
||||||
1414
|
|
||||||
Chimica
|
|
||||||
30
|
|
||||||
1212
|
|
||||||
|
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.util.Scanner;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
public class Studente{
|
public class Studente{
|
||||||
|
|
||||||
public Studente(String nome, String cnome, int mat){
|
public Studente(String nome, String cnome, int matricola){
|
||||||
this.nome=nome;
|
this.nome=nome;
|
||||||
this.cnome=cnome;
|
this.cnome=cnome;
|
||||||
this.mat=mat;
|
this.matricola=matricola;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMat(){
|
public int getMatricola(){
|
||||||
return mat;
|
return matricola;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getNomeCognome(){
|
public String getNomeCognome(){
|
||||||
return nome.concat(" ").concat(cnome);
|
return nome.concat(" ").concat(cnome);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean lookUp(String nome, String cnome){
|
public boolean equals(String nome, String cnome){
|
||||||
if(this.nome.equals(nome) && this.cnome.equals(cnome))
|
return this.nome.equals(nome) && this.cnome.equals(cnome);
|
||||||
return true;
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Studente read(Scanner sc) throws Exception{
|
public static Studente read(Scanner sc) throws Exception{
|
||||||
String nome;
|
String nome;
|
||||||
String cnome;
|
String cnome;
|
||||||
int mat;
|
int matricola;
|
||||||
if(sc.hasNext()){
|
|
||||||
|
if(!sc.hasNext()) return null;
|
||||||
nome=sc.next();
|
nome=sc.next();
|
||||||
if(sc.hasNext()){
|
if(!sc.hasNext()) return null;
|
||||||
cnome=sc.next();
|
cnome=sc.next();
|
||||||
if(sc.hasNextInt()){
|
if(!sc.hasNextInt()) return null;
|
||||||
mat=sc.nextInt();
|
matricola=sc.nextInt();
|
||||||
return new Studente(nome, cnome, mat);
|
|
||||||
|
return new Studente(nome, cnome, matricola);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
return nome + " " + cnome + " " + matricola;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return null;
|
public void print(PrintStream ps){
|
||||||
|
ps.println(toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String nome;
|
private String nome;
|
||||||
private String cnome;
|
private String cnome;
|
||||||
private int mat;
|
private int matricola;
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
Walter
|
Walter White 1212
|
||||||
White
|
Jesse Pinkman 1313
|
||||||
1212
|
Gustavo Fring 1414
|
||||||
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