Salvattaggio delle risposte e dei codici primari di test

This commit is contained in:
Mr SL1D3R 2025-03-06 11:26:16 +01:00
parent 44d7fb4598
commit 927e2181af
2 changed files with 64 additions and 38 deletions

View File

@ -27,7 +27,7 @@ Perché il main stampa 16 volte "Film non trovato"? Quale è l'errore? Individua
- [x] fatto, ho aggiunto postiTotali e postiDisponibili.
- setPosti mette il massimo dei posti disponibili.
- [ ] Ho dei dubbi... ma solo perchè sono stanco e non capisco bene.
- [x] Risolto. Andando a mettere due variabili ovvero postiRimasti & postiTotali.
- Poi serve un vendiBiglietti (int num) che deve fare dei controlli per vedere se ce ne sono disponibili e restituire true o false a seconda che l'operazione sia possibile (e allora cambia il numero di posti ) o no (e allora non modifica nulla).
- [x] fatto, ho aggiunto il metodo vendiBiglietti(int num) che restituisce true se la vendita è andata a buon fine, altrimenti restituisce false.
@ -47,12 +47,13 @@ Perché il main stampa 16 volte "Film non trovato"? Quale è l'errore? Individua
- prenotaPosti: if (this.film[i] == film) { (vedi sopra) Poi usa vendiBiglietti di Film per cambiare il numero di posti, così eviti possibili errori. Deve restituire true o false, non void. Non deve stampare nulla a video (documentare cosa fa). A video deve stampare il main in base all'esito.
- [x] fatto, ho sistemato il metodo prenotaPosti, ora restituisce un booleano, e non stampa nulla a video, ma restituisce un booleano, in base all'esito dell'operazione.
- filmPiuLungo deve restituire (una copia, se vuoi fare le cose fatte bene) del film, il main poi chiama il metodo toString del film restituito
- [x] fatto, ho sistemato il metodo filmPiuLungo, ora restituisce una copia del film più lungo.
- percentualePostiOccupati così come è non ha senso. pensaci meglio
- [x] fatto, ho sistemato il metodo percentualePostiOccupati, ora calcola la percentuale di posti occupati in base al numero di posti totali e posti disponibili.
- rimuoviFilm ha il solito problema

View File

@ -1,3 +1,10 @@
/**
* Classe Cinema che va a rappresentare un cinema
*
* @autor Ciausu Angelo
* @version 1.1.5
* */
public class Cinema {
private String nome;
@ -14,11 +21,13 @@ public class Cinema {
}
/*
* Aggiungo un film all'array
* Vado a controllare se l'array è vuoto e se il film è diverso da null
* Se l'array è vuoto e il film è diverso da null vado ad aggiungere il film
* Vado a controllare che il film non sia già presente nell'array
/**
* Aggiunge un film all'array di film.
*
* Questo metodo cerca un posto libero nell'array di film e aggiunge il film
* se non è già presente.
*
* @param f il film da aggiungere
*/
public void aggiungiFilm(Film f) {
for (int i = 0; i < film.length; i++) {
@ -32,51 +41,67 @@ public class Cinema {
}
}
/*
* Preno i posti per un film, vado a controllare se il film è presente nell'array
* Se il film è presente vado a controllare se ci sono abbastanza posti
* Se ci sono abbastanza posti vado a decrementare i posti
* Altrimenti stampo un messaggio di errore
*
* @param Posti
* @param film
* */
public void prenotaPosti(int Posti, Film film){
/**
* Prenota il numero specificato di posti per un determinato film.
*
* Questo metodo cerca dentro l'array di film per trovare il film specificato.
* Se il film viene trovato, tenta di prenotare il numero specificato di posti utilizzando
* il metodo vendiBiglietti della classe Film. Il metodo restituisce true se
* la prenotazione ha successo, altrimenti restituisce false.
*
* @param Posti il numero di posti da prenotare
* @param film il film per cui prenotare i posti
* @return `true se i posti sono stati prenotati con successo, `false` altrimenti
*/
public boolean prenotaPosti(int Posti, Film film) {
for (int i = 0; i < this.film.length; i++) {
if (this.film[i] == film) {
if (this.film[i].getPosti() >= Posti) {
this.film[i].setPosti(this.film[i].getPosti() - Posti);
} else {
System.out.println("Posti non disponibili");
}
}else {
System.out.println("Film non trovato");
if (this.film[i] != null && this.film[i].equals(film)) {
return this.film[i].vendiBiglietti(Posti);
}
}
return false;
}
/*
* Vado a controllare tutti i film presenti nell'array e vado a stampare il film più lungo
* Vado a controllare se il film attuale è maggiore del film precedente
* */
public void filmPiùLungo() {
Film film = this.film[0];
/**
* Restituisce una copia del film con la durata maggiore.
*
* Questo metodo itera attraverso l'array di film per trovare il film con la durata maggiore.
* Se il film viene trovato, restituisce una nuova istanza del film con gli stessi attributi.
*
* @return una copia del film con la durata maggiore
*/
public Film filmPiùLungo() {
Film filmPiuLungo = this.film[0];
for (int i = 0; i < this.film.length; i++) {
if (this.film[i] != null) {
if (this.film[i].getDurata() > film.getDurata()) {
film = this.film[i];
if (this.film[i].getDurata() > filmPiuLungo.getDurata()) {
filmPiuLungo = this.film[i];
}
}
}
System.out.println("Il film più lungo è: " + film.getTitolo());
return new Film(filmPiuLungo.getTitolo(), filmPiuLungo.getDurata(), filmPiuLungo.getSala(), filmPiuLungo.getPostiDisponibili());
}
public void percentualePostiOccupati(Film film){
/**
* Calcola e stampa la percentuale di posti occupati per un determinato film.
*
* Questo metodo cerca il film specificato nell'array di film e calcola la percentuale
* di posti occupati rispetto al totale dei posti disponibili.
*
* @param film il film per cui calcolare la percentuale di posti occupati
*/
public void percentualePostiOccupati(Film film) {
for (int i = 0; i < this.film.length; i++) {
if (this.film[i] == film) {
System.out.println("Percentuale posti occupati: " + (film.getPosti() * 100) / film.getPosti());
if (this.film[i] != null && this.film[i].equals(film)) {
int postiTotali = this.film[i].getPostiTotali();
int postiDisponibili = this.film[i].getPostiDisponibili();
int postiOccupati = postiTotali - postiDisponibili;
double percentuale = (double) postiOccupati / postiTotali * 100;
System.out.println("Percentuale posti occupati: " + percentuale + "%");
return;
}
}
System.out.println("Film non trovato");
}
public void rimuoviFilm(Film film){