Pagina 1 di 1

[Java] Esercizio sul sistema di prenotazione di biglietti aerei

MessaggioInviato: giovedì 29 marzo 2007, 16:26
da gabrielluzzo
Ciao a tutti, vorrei una mano (e magari anche un braccio) su un'esercizio che mi sta facendo uscire pazzo. Sono sicuro che sarà una completa idiozia per molti di voi, ma capitemi non riesco a fare completamente un pezzo e su internet non ho trovato nulla in merito.
L'esercizio per chi lo volesse sapere l'ho preso dal D&itel & D&itel di Java ed è il numero 7.18, e il testo è il seguente:

Una piccola compagnia aerea ha appena acquistato un computer da utilizzare per un sistema di prenotazione automatica dei voli. La compagnia ti ha chiesto di programmare questo sistema.
Il tuo compito è quello di scrivere un programma che assegni i posti di ogni volo dell'unico aereo posseduto dalla compagnia (10 posti in tutto). Il tuo programma dovrebbe visualizzare questo menù di opzioni:
- Digitare 1 per "fumatori"
- Digitare 2 per "non fumatori"
Se l'utente digita 1, il programma assegna un posto nella sezione fumatori (posti 1-5).
Se l'utente digita 2, il posto si troverà nella sezione non fumatori (posti 6-10).
Il programma deve visualizzare poi una carta d'imbarco che indichi il numero del posto e se questo si trova nella sezione fumatori o non fumatori.
Utilizza un array unidimensionale per rappresentare i posti dell'aereo. Inizializza tutti gli elementi dell'array a 0, per indicare che all'inizio tutti i posti sono vuoti. Via via che vengono assegnati, imposta i posti occupati a 1.
Il programma, ovviamente, non deve riassegnare un posto già occupato. Quando la sezione fumatori si è riempita, chiedi al passeggero se accetta di andare nella sezione non fumatori (e viceversa). Se dice di sì, assegnagli un posto nell'altra sezione; se dice di no, visualizza "Il prossimo volo parte tra 3 ore."

La parte che mi crea maggiori problemi è quella in cui si controlla se ci sono posti vuoti, e in caso viene occupato il posto e l'elemento dell'array si setta a 1.

AIUTO! ç_ç

Re: [Java] Esercizio sul sistema di prenotazione di biglietti aerei

MessaggioInviato: giovedì 29 marzo 2007, 16:35
da Mr. Dreadsoft
ovviamente, essendo un esercizio, non posso aiutarti, altrimenti ti rovino la sorpresa. Tanto più che la mia conoscenza di java è estremamente superficiale.

Creare codice è un pò come parlare in un'altra lingua. Prima di tutto devi trovare un modo di "visualizzare" il problema. Poi devi aver chiaro quello che vuoi dire. Poi devi tradurlo in codice.

Tu che vuoi fare ? Nel senso: se fossi un assistente di volo sull'aereo, quale sarebbe l'ordine di operazioni che seguiresti ?

suggerimento: un array unidimensionale è un pò come una fila di posti, no ?

Re: [Java] Esercizio sul sistema di prenotazione di biglietti aerei

MessaggioInviato: giovedì 29 marzo 2007, 16:43
da gabrielluzzo
Si esattamente e sul fatto che un'array è simile a una fila di posti ci siamo...
Io avevo pensato di fare un ciclo for di 10 iterazioni per poter riempire i posti, poi due if (il primo per i fumatori e il secondo per i non fumatori) e dentro questi if avrei messo la parte in cui controlla prima se il posto è occupato (e in questo caso slitta di uno) mentre se è libero lo occupa. Ecco sta cosa non ho la minima idea di come scriverla  :-[

Re: [Java] Esercizio sul sistema di prenotazione di biglietti aerei

MessaggioInviato: giovedì 29 marzo 2007, 16:47
da Mr. Dreadsoft
bene, come fai a distinguere un posto da fumatori a un posto da non-fumatori ? Dico all'interno dell'array (o all'interno della fila  ;))

Re: [Java] Esercizio sul sistema di prenotazione di biglietti aerei

MessaggioInviato: giovedì 29 marzo 2007, 16:54
da gabrielluzzo
Perchè se sto maledetto decide di intossicarsi, il primo if risulta vero e quindi dovrebbe andare a finire nei primi 5 posti disponibili della zona fumatori.

Re: [Java] Esercizio sul sistema di prenotazione di biglietti aerei

MessaggioInviato: giovedì 29 marzo 2007, 18:38
da jack84
Giusto per darti un'idea:

inizializza i posti come tutti liberi
se il passeggero è un fumatore
                        scorri l'array da 0 fino a 5
                                se il posto è libero assegnalo
                        se non hai trovato posto
                                chiedi se vuole controllare se c'è posto non fumatori
                                se sì scorri array da 6 a 10
                                        se il posto è libero assegnalo
                                        viceversa stampa prossimo volo tra 3 ore
viceversa se è un non fumatore
                        scorri l'array da 5 fino a 10
                                se il posto è libero assegnalo
                          se non hai trovato posto
                                chiedi se vuole controllare se c'è posto fumatori
                                se sì scorri array da 0 a 5
                                      se il posto è libero assegnalo
                                      viceversa stampa prossimo volo tra 3 ore

Re: [Java] Esercizio sul sistema di prenotazione di biglietti aerei

MessaggioInviato: mercoledì 4 aprile 2007, 10:07
da gabrielluzzo
Ti ringrazio per lo pseudocodice... mi sei stato di moltissimo aiuto.
Ora vedo di scrivere sto benedetto programma ^^

Re: [Java] Esercizio sul sistema di prenotazione di biglietti aerei

MessaggioInviato: mercoledì 4 aprile 2007, 11:35
da jack84
Prego figurati, se c'è qualche dubbio facci sapere :P

Re: [Java] Esercizio sul sistema di prenotazione di bigliett

MessaggioInviato: lunedì 7 gennaio 2019, 16:12
da Giovanni Margotto
Ciao! Potresti scrivermi l'intero programma?

Re: [Java] Esercizio sul sistema di prenotazione di bigliett

MessaggioInviato: lunedì 7 gennaio 2019, 19:11
da giulux
Benvenuto nel forum!
La discussione era ferma da oltre dieci anni, un'era geologica con la velocità di sviluppo in informatica: guardare sempre le date prima di riesumare cadaveri.
Premesso che qui non scriviamo programmi per gli altri ma li aiutiamo volentieri a svilupparli se ci mettono impegno, cerca qualcosa di più attuale e se non trovi apri una nuova discussione, questa la chiudo.
Ciao.