Buonasera, ho un esame a breve e sto cercando di risolvere vecchie prove di esame del professore.
Questa non riesco completamente a farla perchè non so bene come gestire collections dentro collections (in particolare una list dentro una queue).
Vi mando il testo dell'esercizio e le 4 classi che sto provando a fare (non c'è il main ma in quello pensavo semplicemente di fare uno switch che richiama i vari metodi).
Ho provato a creare un costruttore nella super classe che contiene una lista ma non sono sicuro della legalità della cosa(?)
Scusate la bassa qualità della foto del testo e vi ringrazio in anticipo.
Questa non riesco completamente a farla perchè non so bene come gestire collections dentro collections (in particolare una list dentro una queue).
Vi mando il testo dell'esercizio e le 4 classi che sto provando a fare (non c'è il main ma in quello pensavo semplicemente di fare uno switch che richiama i vari metodi).
Ho provato a creare un costruttore nella super classe che contiene una lista ma non sono sicuro della legalità della cosa(?)
Scusate la bassa qualità della foto del testo e vi ringrazio in anticipo.
Java:
import java.util.ArrayList;
import java.util.List;
public class Esame {
private int codP;
private String data;
List<Esame> lista_esami=new ArrayList<>();
public Esame(int codP, String data) {
this.setCodP(codP);
this.setData(data);
}
public Esame() {
}
public Esame(int codP, String data, List lista_esame) {
this.setCodP(codP); //Credo che non sia tanto legale questo costruttore ma non so in che altro modo farlo
this.setData(data);
}
/**
* @return the codP
*/
public int getCodP() {
return codP;
}
/**
* @param codP the codP to set
*/
public void setCodP(int codP) {
this.codP = codP;
}
/**
* @return the data
*/
public String getData() {
return data;
}
/**
* @param data the data to set
*/
public void setData(String data) {
this.data = data;
}
public String toString() {
return("Id paziente: " +codP + "Data: " +data);
}
}
Java:
public class EsameS extends Esame {
private int cod_esame;
private double risultato;
public EsameS(int codP, String data, int cod_esame, double risultato) {
super(codP, data);
this.setCod_esame(cod_esame);
risultato=0.0;
}
public EsameS(int cod_esame, int risultato) {
this.setCod_esame(cod_esame);
risultato=0;
}
public EsameS() {
}
/**
* @return the cod_esame
*/
public int getCod_esame() {
return cod_esame;
}
/**
* @param cod_esame the cod_esame to set
*/
public void setCod_esame(int cod_esame) {
if(cod_esame>=1 && cod_esame<=100){
this.cod_esame = cod_esame;
}
else {
System.out.println("Esame non valido");
}
}
/**
* @return the risultato
*/
public double getRisultato() {
return risultato;
}
/**
* @param risultato the risultato to set
*/
public void setRisultato(double risultato) {
this.risultato = risultato;
}
public String toString() {
return(super.toString() +"Codice Esame: " +cod_esame +"Risultato: " +risultato);
}
}
Java:
public class Radiografia extends Esame {
private String tipo, referto;
public Radiografia(int codP, String data, String tipo, String referto){
super(codP, data);
this.setTipo(tipo);
this.referto="null";
}
public Radiografia(String tipo, String referto) {
this.setTipo(tipo);
referto="null";
}
/**
* @return the tipo
*/
public String getTipo() {
return tipo;
}
/**
* @param tipo the tipo to set
*/
public void setTipo(String tipo) {
this.tipo = tipo;
}
/**
* @return the referto
*/
public String getReferto() {
return referto;
}
/**
* @param referto the referto to set
*/
public void setReferto(String referto) {
this.referto = referto;
}
@Override
public String toString() {
return(super.toString() +"Tipo esame: " +tipo +"Risultato: " +referto);
}
}
Java:
import java.util.*;
//QUESTA CLASSE E' INCOMPLETA
public class Analisi {
Queue<Esame> ricette= new LinkedList<>();
List<Esame> esamiP= new ArrayList<>();
List<Esame> esami= new ArrayList<>();
public void aggiungiRicetta(Scanner s) throws InputMismatchException {
System.out.println("Inserisci codice paziente");
int codP=s.nextInt();
System.out.println("Inserisci data");
String data=s.next();
int selezione=0 ;
while(selezione!=-1) {
System.out.println("Scegli il tipo di esame: ");
System.out.println("1. Esame del Sangue");
System.out.println("2. Radiografia");
System.out.println("-1. Fine inserimento");
selezione=s.nextInt();
switch(selezione) {
case 1:
System.out.println("Inserire codice esame (da 1 a 100)");
int cod_esame=s.nextInt();
int risultato=0;
esami.add(new EsameS(cod_esame, risultato));
break;
case 2:
System.out.println("Inserire tipologia esame");
String tipo= s.next();
String referto="null";
esami.add(new Radiografia(tipo, referto));
break;
case -1:
break;
default:
System.out.println("Valore non valido");
break;
}
}
ricette.add(new Esame(codP, data, esami));
}
//Preleva ricetta da "ricette", set referto o risultato da "esami", inserire in esamiP
public void aggiungiPronta(Scanner s) {
for(int i=0; i<esami.size(); i++){
//Sto cercando di accedere al referto/risultato dentro la lista esami ma non so come
ricette.element().esami.getRisultato();
}
}
}