L'esercizio è quasi completo, ovviamente ci sono errori nel codice.
Il procedimento da seguire:
1. Capire il codice
2. Fai il Debug
Una volta che hai risolto, pubblica di nuovo il codice e devi spiegare come hai trovato la soluzione giusta.
Azienda Sanitaria:
package azienda.sanitaria;
import java.util.ArrayList;
public class AziendaSanitaria {
private ArrayList<Medico> medici;
private ArrayList<Pazienti> pazienti;
public AziendaSanitaria(ArrayList<Medico> medici, ArrayList<Pazienti> pazienti) {
this.medici = medici;
this.pazienti = pazienti;
}
public AziendaSanitaria() {
medici = new ArrayList<>();
pazienti = new ArrayList<>();
}
public ArrayList<Medico> getMedici() {
return medici;
}
public void setMedici(ArrayList<Medico> medici) {
this.medici = medici;
}
public ArrayList<Pazienti> getPazienti() {
return pazienti;
}
public void setPazienti(ArrayList<Pazienti> pazienti) {
this.pazienti = pazienti;
}
public boolean aggiungiPaziente(int numeroTesseraSanitaria, Medico medico) {
boolean controllo = true;
// Aggiungi Paziente
if (controllo) {
if((controllaMedico(medico) == true) && (Pazientiduplicati(numeroTesseraSanitaria) == true)) {
System.out.println("Il medico è presente nella lista");
System.out.println("Valori non duplicati");
}
System.out.println("Il Paziente è inserito nella lista Medici!");
pazienti.add(new Pazienti(medico));
} else {
controllo = false;
System.out.println("Il Paziente non è inserito nella lista Medici!");
}
return controllo;
}
// Verifica il Medico se è presente nella lista
public boolean controllaMedico(Medico medico) {
for (int i = 0; i < medici.size(); i++) {
if (medici.get(i).getMatricolaMedico() == medico.getMatricolaMedico())
return true;
else {
System.out.println("Il Medico non è presente nella lista");
}
}
return false;
}
// Verifica Pazienti duplicati
public boolean Pazientiduplicati(int numeroTesseraSanitaria) {
Pazienti mPazienti = new Pazienti();
mPazienti.setTesseraSanitaria(numeroTesseraSanitaria);
for (Pazienti pazienti : pazienti) {
if (pazienti.getTesseraSanitaria() == mPazienti.getTesseraSanitaria()) {
return false;
} else {
System.out.println("Il paziente non è presente nella lista");
break;
}
}
return true;
}
// Aggiungi Medico
public boolean aggiungiMedico(Medico medico) {
boolean controllo = true;
// Aggiungi Medico
if (controllo) {
if(mediciDuplicati(medico.getMatricolaMedico())) {
System.out.println("Medico: Valore duplicato");
System.exit(1);
}
medici.add(medico);
System.out.println("Il Medico è inserito nella lista!");
} else {
controllo = false;
System.out.println("Il Medico non è inserito nella lista!");
}
return controllo;
}
// Verifica Medici duplicati
public boolean mediciDuplicati(int matricolaMedico) {
for (Medico medico : medici) {
if (medico.getMatricolaMedico() == matricolaMedico) {
return true;
} else
System.out.println("Valore non duplicato");
}
return false;
}
// Lista Medici per Pazienti
public void listaMedici(Medico mioMedico) {
for (int i = 0; i < pazienti.size(); i++) {
if(pazienti.get(i).getMedico().equals(mioMedico)) {
System.out.println("Lista Pazienti: " + pazienti.get(i).getTesseraSanitaria());
}
else
System.out.println("Nessuna Lista Presente!!");
}
}
//Medici con Maggior Numero di Pazienti
public void statMedico(ArrayList<Medico> mListmedico) {
int max = 0;
for (int i = 0; i < pazienti.size(); i++) {
if(pazienti.get(i).getMedico().equals(mListmedico))
max = pazienti.get(i).getTesseraSanitaria();
}
System.out.println("Num.Pazienti: " + max);
}
}
Medico:
package azienda.sanitaria;
public class Medico {
private String nomeMedico;
private String cognomeMedico;
private int matricolaMedico;
public Medico(String nomeMedico, String cognomeMedico, int matricolaMedico) {
this.nomeMedico = nomeMedico;
this.cognomeMedico = cognomeMedico;
this.matricolaMedico = matricolaMedico;
}
public Medico() {
this.nomeMedico = "";
this.cognomeMedico = "";
this.matricolaMedico = 0;
}
public String getNomeMedico() {
return nomeMedico;
}
public void setNomeMedico(String nomeMedico) {
this.nomeMedico = nomeMedico;
}
public String getCognomeMedico() {
return cognomeMedico;
}
public void setCognomeMedico(String cognomeMedico) {
this.cognomeMedico = cognomeMedico;
}
public int getMatricolaMedico() {
return matricolaMedico;
}
public void setMatricolaMedico(int matricolaMedico) {
this.matricolaMedico = matricolaMedico;
}
}
Pazienti:
package azienda.sanitaria;
public class Pazienti {
private int tesseraSanitaria;
private Medico medico;
public Pazienti(int tesseraSanitaria, Medico medico) {
this.tesseraSanitaria = tesseraSanitaria;
this.medico = medico;
}
public Pazienti() {
this.tesseraSanitaria = 0;
this.medico = new Medico();
}
public Pazienti(Medico medico) {
this.medico = medico;
}
public int getTesseraSanitaria() {
return tesseraSanitaria;
}
public void setTesseraSanitaria(int tesseraSanitaria) {
this.tesseraSanitaria = tesseraSanitaria;
}
public Medico getMedico() {
return medico;
}
public void setMedico(Medico medico) {
this.medico = medico;
}
}