Γράψτε ένα πρόγραμμα σε Γλώσσα προγραμματισμού ΓΛΩΣΣΑ για την αυτόματη κράτηση θέσεων μιας μικρής αεροπορικής εταιρίας. Η εταιρία έχει μόνο ένα αεροπλάνο 20 θέσεων. Το πρόγραμμα θα πρέπει να κάνει κράτηση θέσεων σε κάθε πτήση της αεροπορικής εταιρίας.
Το πρόγραμμα θα πρέπει να δίνει τις εξής εναλλακτικές:
Παρακαλώ πληκτρολογήστε 1 για "Πρώτη θέση".
Παρακαλώ πληκτρολογήστε 2 για "Οικονομική θέση".
Παρακαλώ πληκτρολογήστε 0 για έξοδο από το πρόγραμμα.
Σε περίπτωση που προχωρήσει ο χρήστης σε διαδικασία κράτησης θέσης, το πρόγραμμα θα ζητάει αρχικά τα προσωπικά στοιχεία του πελάτη (όνομα, επώνυμο, διεύθυνση, τηλέφωνο, e-mail).
Αν ο χρήστης πληκτρολογεί 1, τότε το πρόγραμμα θα πρέπει να δεσμεύει μία θέση στην "Πρώτη θέση" (θέσεις 1-5). Αν ο χρήστης πληκτρολογεί 2, τότε το πρόγραμμα θα πρέπει να δεσμεύει μία θέση στην "Οικονομική θέση" (θέσεις 6-20). Το πρόγραμμα θα δέχεται από τον χρήστη τον αριθμό της θέσης που θα δεσμευτεί.
Στη συνέχεια το πρόγραμμα θα πρέπει να εκτυπώνει τα στοιχεία της κάρτας επιβίβασης, δηλαδή τα στοιχεία του επιβάτη, καθώς και τον αριθμό της θέσης που δεσμεύτηκε και την κατηγορία της θέσης ("Πρώτη" ή "Οικονομική").
Προφανώς το πρόγραμμα δεν θα πρέπει ποτέ να δεσμεύει θέση η οποία έχει ήδη κρατηθεί. Σε περίπτωση που ο χρήστης πληκτρολογεί 1, δηλαδή επιθυμεί θέση στην "Πρώτη θέση", αλλά όλες οι θέσεις της "Πρώτης θέσης" είναι δεσμευμένες, το πρόγραμμα θα πρέπει να ρωτάει (με κατάλληλο μήνυμα) το χρήστη εάν θέλει θέση στην "Οικονομική θέση". Αντίστοιχα, στην περίπτωση που ο χρήστης πληκτρολογεί 2, δηλαδή επιθυμεί θέση στην "Οικονομική θέση", αλλά όλες οι θέσεις της "Οικονομικής θέσης" είναι δεσμευμένες, το πρόγραμμα θα πρέπει να ρωτάει τον χρήστη αν θέλει θέση στην "Πρώτη θέση". Ανάλογα με την απάντηση, το πρόγραμμα είτε θα δεσμεύει θέση στην κατάλληλη κατηγορία είτε θα τυπώνει το μήνυμα "Η επόμενη πτήση είναι σε 4 ώρες".
Η παραπάνω διαδικασία θα επαναλαμβάνεται συνεχώς μέχρι να γεμίσουν όλες οι θέσεις ή να πληκτρολογηθεί το 0. Πριν τον τερματισμό του προγράμματος θα πρέπει να τυπώνεται το σύνολο των θέσεων που έχουν κρατηθεί σε κάθε κατηγορία, όπως στο παράδειγμα:
Στην "Πρώτη θέση" έχουν δεσμευτεί 3 θέσεις.
Στην "Οικονομική θέση" έχουν δεσμευτεί 3 θέσεις.
Bonus υποερώτημα: Να τυπώνεται, τέλος, η λίστα επιβατών όπως στο παρακάτω παράδειγμα, όπου έχουν γίνει 3 κρατήσεις συνολικά:
Θέση 1 (Πρώτη): Παπαδόπουλος Σπύρος
Θέση 3 (Πρώτη): Σταυροπούλου Βίκη
Θέση 15 (Οικονομική): Geek Mostel
Σημείωση: Θεωρείστε ότι τα προσωπικά στοιχεία των πελατών θα είναι πάντα αποδεκτά. Για όλα τα υπόλοιπα δεδομένα να πραγματοποιήσετε έλεχο δεδομένων και να εμφανίζετε κατάλληλα μηνύματα λάθους σε περίπτωση μη αποδεκτών δεδομένων.