Professional Documents
Culture Documents
Η εργασία σας θα πρέπει να παραδοθεί σε ένα αρχείο .zip με όνομα της μορφής ΑΜ1-ΑΜ2-
ΑΜ3.zip (ΑΜ1, ΑΜ2, ΑΜ3 οι αριθµοί µητρώου των µελών της οµάδας). Το zip αρχείο θα
υποβληθεί µέσω eclass (ανεβάστε το αρχείο στην περιοχή «Εργασίες» στο
https://evdoxos.ds.unipi.gr/) µέχρι τις 25/06/2020, ώρα 23:55. Μετά την παρέλευση της
ημερομηνίας αυτής δεν πρόκειται να γίνουν δεκτές εργασίες.
Βαθμολογία Εργασιών
Για την ανάπτυξη του πηγαίου κώδικα της εργασίας και την εκτέλεση θα χρησιµοποιήσετε το
ολοκληρωµένο περιβάλλον ανάπτυξης Eclipse. Για την εξαγωγή και αποθήκευση του πηγαίου
κώδικα της εργασίας, πρέπει να ακολουθήσετε τα εξής βήµατα µέσα από το Eclipse:
1. Από το µενού του Eclipse (η µπάρα στο πάνω µέρος) επιλέγετε File ->Export.
2. Στο παράθυρο που σας ανοίγει, επιλέγετε από την κατηγορία “General”, την επιλογή
“Archive File” και πατάτε “Next”.
3. Επιλέγετε το project στο πάνω αριστερά µέρος (τικάρετε το κουτάκι στα αριστερά του
ονόµατος) και πατάτε το κουµπί “Browse...” για να επιλέξετε τη διαδροµή που θα
αποθηκευτεί το αρχείο.
4. Τέλος, πατάτε το κουµπί “Finish” για να αποθηκευτεί ο κώδικάς σας σε συµπιεσµένη
µορφή στο zip αρχείο, το οποίο θα αποστείλετε µέσω του eclass.
Περιγραφή Εργασίας
Στο πλαίσιο αυτής της εργασίας θα πρέπει να αναπτυχθεί ένα μηχανογραφικό σύστημα για μια
εταιρία ενοικιάσεως οχημάτων. Η εταιρία αυτή διαθέτει δίκτυο καταστημάτων σε πόλεις της
Ελλάδας, καθένα από τα οποία διαθέτει προς ενοικίαση δίκυκλα και επιβατικά αυτοκίνητα.
1. Κλάση City (Πόλη), η οποία θα περιλαμβάνει τα ακόλουθα πεδία: μοναδικός κωδικός και
όνομα πόλης.
2. Κλάση Store (Κατάστημα), η οποία θα περιλαμβάνει τα ακόλουθα πεδία: μοναδικός
κωδικός, επωνυμία και πόλη στην οποία βρίσκεται.
3. Κλάση Vehicle (Όχημα), η οποία θα περιλαμβάνει τα ακόλουθα πεδία: αριθμός κυκλοφορίας
του (μοναδικός για κάθε αυτοκίνητο), μοντέλο, αν είναι βενζινοκίνητο ή πετρελαιοκίνητο,
τύπος (π.χ. σκούτερ, μοτοσυκλέτα, μικρό ή μεσαίο ή μεγάλο αυτοκίνητο), κυβισμός και
κόστος ενοικίασης ανά ημέρα.
4. Κλάση TwoWheeled (Δίκυκλο), η οποία κληρονομεί από την κλάση Vehicle και περιλαμβάνει
επιπλέον τα πεδία: ύψος καθίσματος και σύστημα αποσκευών που διαθέτει.
5. Κλάση Car (Επιβατικό Αυτοκίνητο), η οποία κληρονομεί από την κλάση Vehicle και
περιλαμβάνει επιπλέον τα πεδία: αριθμός θέσεων που διαθέτει και αριθμός πορτών.
6. Κλάση Client (Πελάτης), η οποία θα περιλαμβάνει τα ακόλουθα πεδία: αριθμός δελτίου
ταυτότητας πελάτη, αριθμός άδειας οδήγησης πελάτη, όνομα και επώνυμο πελάτη καθώς
και τα στοιχεία επικοινωνίας του, δηλαδή διεύθυνση e-mail, διεύθυνση και τηλέφωνο.
7. Κλάση Rental (Κράτηση), η οποία θα περιλαμβάνει τα ακόλουθα πεδία: μοναδικός κωδικός
κράτησης, όχημα που ενοικιάζεται, πελάτης που το ενοικιάζει, κατάστημα απ’ όπου θα
παραληφθεί το όχημα, ημερομηνία και ώρα παραλαβής, κατάστημα όπου θα επιστραφεί το
όχημα (εάν διαφέρει από το κατάστημα παραλαβής), ημερομηνία και ώρα επιστροφής και
συνολικό κόστος της κράτησης.
8. Την εφαρμογή που χρησιμοποιεί ο υπάλληλος κάθε καταστήματος, η οποία θα είναι
ανεπτυγμένη σε γραφικό περιβάλλον. Μέσω της εφαρμογής αυτής:
• θα δημιουργούνται νέα αντικείμενα των παραπάνω κλάσεων,
• θα εμφανίζονται όλα τα ήδη υπάρχοντα αντικείμενα των κλάσεων,
• θα ενημερώνονται συγκεκριμένα στοιχεία των αντικειμένων των κλάσεων ή
• θα διαγράφονται αντικείμενα των κλάσεων.
Η εφαρμογή θα έχει ένα κεντρικό παράθυρο απ’ όπου ο χρήστης θα μπορεί να έχει
πρόσβαση στα παράθυρα όπου θα γίνεται η διαχείριση των κλάσεων City, Store, Vehicle,
Client και Rental όπως φαίνεται στο παρακάτω σχήμα.
Μια ενδεικτική μορφή της κεντρικής οθόνης φαίνεται στο ακόλουθο σχήμα όπου η
μετάβαση στα διάφορα παράθυρα πραγματοποιείται με τη χρήση κουμπιών.
Α. Διαχείριση Πόλεων
Το παράθυρο μέσω του οποίου θα γίνεται η διαχείριση των πόλεων θα έχει έναν πίνακα
όπου θα φαίνονται όλες οι πόλεις στις οποίες υπάρχουν καταστήματα της εταιρίας. Στο
παράθυρο αυτό θα υποστηρίζονται οι ακόλουθες λειτουργίες:
1. Καταχώρηση νέας πόλης. Θα δημιουργείται ένα νέο αντικείμενο της κλάσης City. Ο
μοναδικός κωδικός του αντικειμένου θα υπολογίζεται αυτόματα και δε θα μπορεί να
αλλάξει.
2. Εμφάνιση λίστας πόλεων. Θα εμφανίζεται σε πίνακα η λίστα με τις καταχωρημένες
πόλεις.
3. Τροποποίηση πόλης. Αφορά την αλλαγή του ονόματος μιας πόλης, αφού ο κωδικός
της πόλης δεν μπορεί να αλλάξει. Ο χρήστης θα επιλέγει από τον πίνακα την πόλη
που θέλει να τροποποιήσει ή θα την αναζητά με βάση το όνομα και μετά θα την
επιλέγει από τα αποτελέσματα της αναζήτησης.
4. Διαγραφή πόλης. Ο χρήστης θα μπορεί να επιλέγει από τον πίνακα μια πόλη και να
τη διαγράφει.
Β. Διαχείριση Καταστημάτων
Το παράθυρο μέσω του οποίου θα γίνεται η διαχείριση των καταστημάτων θα έχει έναν
πίνακα όπου θα φαίνονται όλα τα καταστήματα της εταιρίας. Στο παράθυρο αυτό θα
υποστηρίζονται οι ακόλουθες λειτουργίες:
1. Καταχώρηση νέου καταστήματος. Θα δημιουργείται ένα νέο αντικείμενο της κλάσης
Store. Ο μοναδικός κωδικός του αντικειμένου θα υπολογίζεται αυτόματα και δε θα
μπορεί να αλλάξει. Η πόλη στην οποία θα προστεθεί το κατάστημα θα πρέπει να είναι
ήδη καταχωρημένη στη λίστα με τις πόλεις.
2. Εμφάνιση λίστας καταστημάτων. Θα εμφανίζεται σε πίνακα η λίστα με τα
καταχωρημένα καταστήματα.
3. Αναζήτηση καταστημάτων. Θα παρέχεται η δυνατότητα αναζήτησης των
καταστημάτων με βάση την πόλη στην οποία βρίσκονται. Ο χρήστης θα πληκτρολογεί
το όνομα της πόλης και πατώντας ένα κουμπί θα εμφανίζεται στον πίνακα η λίστα με
τα καταστήματα της πόλης.
4. Τροποποίηση καταστήματος. Αφορά την αλλαγή της επωνυμίας ενός καταστήματος
(ο κωδικός του καταστήματος και η πόλη στην οποία βρίσκεται δε θα μπορούν να
αλλάξουν). Ο χρήστης θα επιλέγει από τον πίνακα το κατάστημα που θέλει να
τροποποιήσει ή θα το αναζητά με βάση την πόλη στην οποία βρίσκεται και μετά θα
το επιλέγει από τα αποτελέσματα της αναζήτησης.
5. Διαγραφή καταστήματος. Ο χρήστης θα μπορεί να επιλέγει από τον πίνακα ένα
κατάστημα και να το διαγράφει.
Γ. Διαχείριση Οχημάτων
Το παράθυρο μέσω του οποίου θα γίνεται η διαχείριση των οχημάτων θα έχει έναν πίνακα
όπου θα φαίνεται όλος ο στόλος της εταιρίας. Στο παράθυρο αυτό θα υποστηρίζονται οι
ακόλουθες λειτουργίες:
1. Καταχώρηση νέου οχήματος. Θα δημιουργείται ένα νέο αντικείμενο της κλάσης
Twowheeled ή της κλάσης Car, ανάλογα με το όχημα που επιθυμεί ο χρήστης να
καταχωρίσει. Το είδος του οχήματος θα επιλέγεται από ένα ComboBox (ή radio
buttons) το οποίο θα έχει 2 στατικές τιμές τις: TwoWheeled (εάν θέλουμε να
δημιουργήσουμε νέο αντικείμενο της κλάσης TwoWheeled) και Car (εάν θέλουμε να
δημιουργήσουμε νέο αντικείμενο της κλάσης Car).
2. Εμφάνιση λίστας οχημάτων. Θα εμφανίζεται σε πίνακα η λίστα με τα καταχωρημένα
οχήματα.
3. Αναζήτηση οχημάτων. Θα παρέχεται η δυνατότητα αναζήτησης των οχημάτων με
βάση το είδος τους (δίκυκλα ή αυτοκίνητα). Το είδος του οχήματος θα επιλέγεται από
ένα ComboBox το οποίο θα έχει 2 στατικές τιμές τις: TwoWheeled και Car.
4. Τροποποίηση οχήματος. Αφορά την αλλαγή σε όλα τα δεδομένα του αντικειμένου
εκτός από τον αριθμό κυκλοφορίας του οχήματος, ο οποίος δεν μπορεί να αλλάξει.
Ο χρήστης θα επιλέγει από τον πίνακα το όχημα που θέλει να τροποποιήσει.
5. Διαγραφή οχήματος. Ο χρήστης θα μπορεί να επιλέγει από τον πίνακα ένα όχημα
και να το διαγράφει.
Δ. Διαχείριση Πελατών
Το παράθυρο μέσω του οποίου θα γίνεται η διαχείριση των πελατών θα έχει έναν πίνακα
όπου θα φαίνονται όλοι οι πελάτες της εταιρίας, οι οποίοι έχουν εξυπηρετηθεί σε
οποιοδήποτε κατάστημα της εταιρίας. Στο παράθυρο αυτό θα υποστηρίζονται οι ακόλουθες
λειτουργίες:
1. Καταχώρηση νέου πελάτη. Θα δημιουργείται ένα νέο αντικείμενο της κλάσης Client,
το οποίο θα χαρακτηρίζεται μοναδικά από τον αριθμό δελτίου ταυτότητας και τον
αριθμό άδειας οδήγησης.
2. Εμφάνιση λίστας πελατών: Θα εμφανίζεται σε πίνακα η λίστα με τους
καταχωρημένους πελάτες.
3. Αναζήτηση πελατών: Θα παρέχεται η δυνατότητα αναζήτησης των πελατών με βάση
τον αριθμό δελτίου ταυτότητάς τους.
4. Τροποποίηση πελάτη. Αφορά την αλλαγή σε όλα τα δεδομένα του αντικειμένου
εκτός από τον αριθμό δελτίου ταυτότητας του πελάτη και τον αριθμό της άδειας
οδήγησής τους. Ο χρήστης θα επιλέγει από τον πίνακα τον πελάτη που θέλει να
τροποποιήσει ή θα τον αναζητά με βάση τον αριθμό ταυτότητας και μετά θα τον
επιλέγει από τα αποτελέσματα της αναζήτησης.
5. Διαγραφή πελάτη. Ο χρήστης θα μπορεί να επιλέγει από τον πίνακα έναν πελάτη
και να τον διαγράφει.
Σημειώσεις:
Καλή Επιτυχία!!!