ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ hotel management (v...

48
ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Σπουδαστής: Γεώργιος Μποχωρίδης. Αριθμός μητρώου : 2944 Επιβλέπουσα: Αικατερίνη Μήτσα , Καθηγήτρια Εφαρμογών Hotel Management (V 1.0)

Upload: others

Post on 14-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε.

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Σπουδαστής: Γεώργιος Μποχωρίδης. Αριθμός μητρώου : 2944

Επιβλέπουσα: Αικατερίνη Μήτσα , Καθηγήτρια Εφαρμογών

Hotel Management (V 1.0)

Page 2: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε.

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Σπουδαστής: Γεώργιος Μποχωρίδης. Αριθμός μητρώου : 2944

Επιβλέπουσα: Αικατερίνη Μήτσα , Καθηγήτρια Εφαρμογών

Hotel Management (V 1.0)

2

Page 3: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΠΕΡΙΛΗΨΗ Για την καλύτερη λειτουργία μιας ξενοδοχειακής μονάδας ο ιδιοκτήτης

ζήτησε να δημιουργηθεί μια εφαρμογή στην οποία ο χρήστης θα μπορεί να καταχωρεί

τις κρατήσεις, τα στοιχεία των πελατών και των πρακτορείων που συνεργάζεται.

Επίσης θα δίνεται η δυνατότητα στον χρήστη να μπορεί να δημιουργήσει μόνος του

τον τύπο δωματίων που έχει το ξενοδοχείο του και δεν θα υπάρχει προκαθορισμένος.

Μέσω της εφαρμογής ο χρήστης θα μπορεί να εκτυπώνει τα στοιχεία των

πρακτορείων, πελατών, δωματίων, κρατήσεων και τα οικονομικά στοιχεία αλλά και

να τα εξάγει σε μορφή Excel.

Για να λυθεί το παραπάνω πρόβλημα αρχικά αποφασίστηκε να γίνει η

καταγραφή των απαιτήσεων. Στην συνέχεια δημιουργήθηκε το μοντέλο οντοτήτων

συσχετίσεων τις βάσης δεδομένων.

Τέλος επιλέχθηκαν τα εργαλεία ανάπτυξης που θα χρησιμοποιηθούν και

ξεκίνησε η υλοποίηση του. Για λόγους συμβατότητας και ευκολίας ως integrated

development environment (IDE) επιλέχθηκε το Microsoft Visual Studio 2013 με το

ενσωματωμένο SQL Server 2012 της Microsoft και γλώσσες προγραμματισμού η C#

(C Sharp) και SQL αντίστοιχα.

ΣΥΜΠΕΡΑΣΜΑΤΑ

• Κατά την υλοποίηση της εργασίας αποκομήθηκαν πολύτιμες εμπειρίες όσον

αφορά την εξοικείωση του σπουδαστή με την C# και τον SQL Server της

Microsoft.

• Η εμπειρία της δημιουργίας μιας εφαρμογής βάσης δεδομένων από το μηδέν

έβαλε τις βάσεις για την μετέπειτα επαγγελματική αποκατάσταση του

σπουδαστή.

• Η εφαρμογή μπορεί επάξια να συναγωνιστεί παρόμοιες εφαρμογές που

κυκλοφορούν στο διαδίκτυο ελεύθερα ή επί πληρωμή, ή ακόμη και να τις

ξεπεράσει όσον αφορά την λειτουργικότητα, την χρηστικότητα και την

αξιοπιστία.

3

Page 4: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΠΡΟΛΟΓΟΣ Το έγγραφο αυτό συντάχθηκε στα πλαίσια της πτυχιακής εργασίας του

σπουδαστή της σχολής Μηχανικών Πληροφορικής του Τ.Ε.Ι. Ανατολικής

Μακεδονίας και Θράκης, Μποχωρίδη Γεώργιου.

Η παρούσα πτυχιακή εργασία δημιουργήθηκε με σκοπό ο σπουδαστής να

αποφοιτήσει από το Τμήμα Μηχανικών Πληροφορικής Τ.Ε. του Τεχνολογικού

Εκπαιδευτικού Ιδρύματος Ανατολικής Μακεδονίας και Θράκης. Η Εκπόνηση και η

ολοκλήρωση της πτυχιακής εργασίας έγινε με την πολύτιμη βοήθεια και την

καθοδήγηση της καθηγήτριας εφαρμογών της σχολής κ. Μήτσα Αικατερίνης.

Εν έτει 2014 οι περισσότερες επιχειρήσεις ανα τον κόσμο χρησιμοποιούν τους

ηλεκτρονικούς υπολογιστές για την διαχείριση τους. Αυτό συμβαίνει για λόγους

ευχρηστίας, οικονομίας και καλύτερης οργάνωσης. Έτσι η ανάγκη για την δημιουργία

μιας εφαρμογής που θα μπορεί να εξυπηρετήσει αξιόπιστα της ανάγκες μικρομεσαίων

ξενοδοχειακών επιχειρήσεων και θα καλύψει ή θα αναβαθμίσει τα κενά των ήδη

υπάρχων εφαρμογών με μικρό ή καθόλου κόστος κρίθηκε αναγκαία από τον

σπουδαστή και έτσι η ιδέα μετουσιώθηκε σε πράξη.

Οι απαιτήσεις τις εφαρμογής συγκεντρώθηκαν ερευνώντας τις ήδη

υπάρχουσες εφαρμογές και τις ανάγκες τις αγοράς. Στη συνέχεια αυτού του

εγγράφου, έγινε προσπάθεια να επεξηγηθούν τα βήματα που ακολουθήθηκαν, όσο πιο

αναλυτικά γίνεται.

Για οποιαδήποτε παρατήρηση ή επιπλέον πληροφορία επικοινωνήστε στο

[email protected].

4

Page 5: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΕΥΧΑΡΙΣΤΙΕΣ Η παρούσα πτυχιακή εργασία εκπονήθηκε με στόχο την απόκτηση πτυχίου

από το τμήμα μηχανικών πληροφορικής Τ.Ε. του Τεχνολογικού Εκπαιδευτικού

Ιδρύματος (Τ.Ε.Ι.) Ανατολικής Μακεδονίας και Θράκης.

Θα ήθελα να εκφράσω και από αυτήν εδώ την θέση τις θερμές μου

ευχαριστίες στην Καθηγήτρια εφαρμογών Αικατερίνη Μήτσα για το αμείωτο

ενδιαφέρον, τις γνώσεις, την παροχή πληροφοριών και τις ώρες που αφιέρωσε για να

με καθοδηγήσει και χωρίς την οποία αυτή η πτυχιακή εργασία δεν θα ξεκινούσε ποτέ.

Ευχαριστίες επίσης θα ήθελα να δώσω σε όλους τους εκπαιδευτικούς του

Τ.Ε.Ι για τις γνώσεις που παρείχαν σε εμάς τους φοιτητές καθ’ όλη τη διάρκεια των

σπουδών μας αυτά τα χρόνια. Καθώς και ξεχωριστές ευχαριστίες στον κύριο Παχίδη

Θεόδωρο που χάρη στα μαθήματα του Τεχνολογία λογισμικού και Διαχείριση έργων

λογισμικού μπήκαν οι βάσεις ανάπτυξης και σχεδίασης της παρούσας πτυχιακής.

Στον κύριο Αμανατιάδη Άγγελο που χάρη στο μάθημα του εισαγωγή στις βάσεις

δεδομένων αποκόμισα τις βασικές αρχές για τον σχεδιασμό βάσεων δεδομένων.

Στους κυρίους Ελευθέριο Μωυσιάδη και Γεώργιο Παπακώστα για τα μαθήματα

προγραμματισμού που μας δίδαξαν και μπήκαν οι βάσεις για την ανάπτυξη

εφαρμογών λογισμικού.

Τέλος ευχαριστώ τους γονείς μου Μποχωρίδη Ιωάννη και Γεωργία

Βαντσιούρη για την αμέριστη συμπαράσταση , την αγάπη και την κατανόηση που

έδειξαν όλο αυτό το καιρό.

5

Page 6: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΠΕΡΙΕΧΟΜΕΝΑ Κεφάλαιο 1

Περιήγηση της πτυχιακής εργασίας………………………………………………8

Κεφάλαιο 2

Περιγραφή Πτυχιακής εργασίας…………………………………………………...10

2.1 Αντικείμενο της εφαρμογής……………………………………………...10

2.2 Προβλήματα που θα λύσει η εφαρμογή………………………………….10

2.3 Η περιγραφή της εφαρμογής …………………………………………….11

2.4 Απαιτήσεις εφαρμογής…………………………………………………...17

2.4.1 Λειτουργικές Απαιτήσεις………………………………………17

2.4.2 Μη λειτουργικές απαιτήσεις…………………………………...17

Κεφάλαιο 3

Περιεχόμενο υλικών και Τεχνολογιών υλοποίησης Πτυχιακής Εργασίας………18

3.1 Η C# ……………………………………………………………………..18

3.2 Τι είναι το .NET FRAMEWORK………………………………………..19

3.3 Η γλώσσα SQL…………………………………………………………...19

3.4 Visual C# Ανάπτυξη εφαρμογών σε γραφικό περιβάλλον με το Visual

Studio 2013…………………………………………………………………...20

Κεφάλαιο 4

Δυσκολίες και αποφάσεις κατά την εκπόνηση της εργασίας……………………..22

4.1 Επιλογή πλατφόρμας ανάπτυξης λογισμικού…………………………….22

6

Page 7: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

4.2 Εμφάνιση και φιλικότητα της εφαρμογής προς τον χρήστη……………..22

4.3 Ακεραιότητα δεδομένων…………………………………………………23

Κεφάλαιο 5

Απολογισμός πτυχιακής εργασίας………………………………………………….25

5.1 Σύνοψη…………………………………………………………………...25

5.2 Συμπεράσματα……………………………………………………………25

5.3 Βελτίωση του συστήματος……………………………………………….25

Παράρτημα Α

• Οδηγίες Εγκατάστασης………………………………………………….27

Παράρτημα Β

• Εγχειρίδιο χρήστη……………………………………………………….28

Παράρτημα Γ

• Μοντέλο Οντοτήτων-Συσχετίσεων……………………………………..36

• Λογική σχεδίαση………………………………………………………..36

• Φυσικό σχέδιο…………………………………………………………..43

Παράρτημα Δ

• Ενδιαφέρον Εντολές SQL Που χρησιμοποιήθηκαν στην εφαρμογή…...46

Παράρτημα Ε

• Βιβλιογραφία…………………………………………………………...48

7

Page 8: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Κεφάλαιο 1 ΠΕΡΙΗΓΗΣΗ ΤΗΣ ΠΤΥΧΙΑΚΗΣ

ΕΡΓΑΣΙΑΣ

Με το βιβλίο προγράμματος γίνεται μια προσπάθεια να αναλυθεί και να περιγραφεί πλήρως όλη η διαδικασία που έχει πραγματοποιηθεί στα πλαίσια εκπόνησης της πτυχιακής εργασίας από τον σπουδαστή του τμήματος Μηχανικών Πληροφορικής Μποχωρίδη Γεώργιο. Γίνονται αναφορές και αναλύσεις τόσο στο θεωρητικό, στο σχεδιαστικό όσο και στο προγραμματιστικό κομμάτι της εργασίας.

Στα παρακάτω κεφάλαια και παραρτήματα που ακολουθούν υπάρχουν όσο το δυνατόν πιο αναλυτικές πληροφορίες, γραμμένες έτσι ώστε να είναι εύκολα κατανοητές για την δουλεία και τις μεθόδους που ακολουθήθηκαν κατά τη δημιουργία της εφαρμογής Hotel Management. Παρακάτω ακολουθεί μια περιγραφή του περιεχομένου κάθε κεφαλαίου του βιβλίου προγράμματος.

Αρχικά υπάρχει μία μικρή περίληψη του θέματος, εκεί επιγραμματικά αναφέρεται το πρόβλημα, η λύση που δόθηκε και τα εργαλεία που χρησιμοποιήθηκαν. Στην συνέχεια αναφέρονται τα πιο σημαντικά συμπεράσματα που βγήκαν από την εκπόνηση της παρούσας πτυχιακής εργασίας.

Στην συνέχεια ακολουθεί ο πρόλογος, εκεί γίνεται μια πρώτη γνωριμία με την ιδέα και πώς αυτή πήρε σάρκα και οστά, επίσης αναφέρεται ο λόγος που ξεκίνησε και ολοκληρώθηκε η παρούσα εργασία.

Έπειτα ακολουθούν οι ευχαριστίες, εδώ ο σπουδαστής του τμήματος Μηχανικών Πληροφορικής αναφέρει και ευχαριστεί ανθρώπους που συνέδραμαν στην ολοκλήρωση της παρούσας πτυχιακής εργασίας είτε έμμεσα είτε άμεσα.

Στην συνέχεια ακολουθεί το παρών κεφάλαιο στο οποίο γίνεται μια περιήγηση του βιβλίου προγράμματος.

Στο κεφάλαιο 2 παρουσιάζεται λεπτομερώς το αντικείμενο της πτυχιακής εργασίας. Αναφέρονται τα προβλήματα που καλείται να λύσει η εφαρμογή, περιγράφεται αναλυτικά η λειτουργία της εφαρμογής και αναφέρονται οι απαιτήσεις της.

Στο κεφάλαιο 3 γίνεται μια σύντομη περιγραφή των υλικών και των τεχνολογιών που χρησιμοποιήθηκαν για την ανάπτυξη της εφαρμογής.

Στο κεφάλαιο 4 αναφέρονται οι δυσκολίες που ήρθε αντιμέτωπος ο σπουδαστής κατά την διάρκεια εκπόνησης της εργασίας και οι αποφάσεις που πάρθηκαν έτσι ώστε ή εφαρμογή να ολοκληρωθεί και να λειτουργεί άρτια.

Στο κεφάλαιο 5 γίνεται ο απολογισμός της πτυχιακής εργασίας. Αναφέρονται τα συμπεράσματα που προέκυψαν καθώς και ιδέες ή προτάσεις για μελλοντική βελτίωση του συστήματος.

8

Page 9: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Στο παράρτημα Α υπάρχουν αναλυτικές οδηγίες εγκατάστασης της εφαρμογής, το λειτουργικό σύστημα που υποστηρίζει η εφαρμογή καθώς και ποιες εκδόσεις αυτού. Επίσης γίνεται αναφορά και στα προαπαιτούμενα προγράμματα που χρειάζονται ώστε να τρέξει η εφαρμογή

Στο παράρτημα Β υπάρχει το εγχειρίδιο χρήσης της εφαρμογής. Εδώ περιγράφονται οι λειτουργίες της εφαρμογής και με ποιόν τρόπο αυτές είναι προσβάσιμες.

Στο παράρτημα Γ παρουσιάζεται αναλυτικά όλη η διαδικασία σχεδίασης και υλοποίησης της βάσης δεδομένων.

Στο παράρτημα Δ αναφέρονται σύνθετες και ενδιαφέρουσες εντολές SQL που χρησιμοποιήθηκαν για την υλοποίηση της εφαρμογής Hotel Management.

Τέλος στο παράρτημα Ε αναφέρεται η βιβλιογραφία η οποία συνέδραμε ούτως ώστε να ολοκληρωθεί η παρούσα πτυχιακή εργασία.

9

Page 10: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Κεφάλαιο 2

ΠΕΡΙΓΡΑΦΗ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ

2.1 Αντικείμενο της εφαρμογής

Το αντικείμενο της πτυχιακής εργασίας είναι η διαχείριση μικρών και

μεσαίων ξενοδοχειακών επιχειρήσεων. Η εφαρμογή απευθύνεται στους υπαλλήλους

του ξενοδοχείου. Η υλοποίηση της θα πραγματοποιηθεί με την ανάπτυξη εφαρμογής

με την γλώσσα προγραμματισμού C# σε περιβάλλον Visual Studio 2013 και τον

σχεδιασμό και την υλοποίηση μιας βάσης δεδομένων με τον SQL Server 2012 της

Microsoft. Τα δύο κομμάτια της εφαρμογής, η βάση δεδομένων και το πρόγραμμα

διαχείρισης της σε παραθυρικό περιβάλλον θα συνδέονται με κατάλληλο κώδικα

ώστε να υπάρχει επικοινωνία μεταξύ τους και ακεραιότητα των δεδομένων.

Η εφαρμογή θα μπορεί να χρησιμοποιηθεί από οποιαδήποτε μικρομεσαία

ξενοδοχειακή επιχείρηση το επιθυμεί με προαπαιτούμενα για την λειτουργία της την

ύπαρξη ηλεκτρονικού υπολογιστή με λειτουργικό σύστημα Microsoft Windows 7 ή

μεταγενέστερο. Το όνομα της εφαρμογής είναι Hotel Management.

2.2 Προβλήματα που θα λύσει η εφαρμογή

Παρακάτω γίνεται μια περιγραφή των προβλημάτων που οδήγησαν στην

ανάπτυξη μιας τέτοιας εφαρμογής.

Το πρόβλημα της άμεσης εύρεσης των διαθέσιμων δωματίων και των τιμών

τους ανάλογα την χρονική περίοδο είναι το σημαντικότερο, ο πελάτης θα πρέπει να

ξέρει γρήγορα και με σιγουριά εάν υπάρχει δωμάτιο και πόσο αυτό στοιχίζει μόλις

έρθει σε επαφή με την επιχείρηση.

Το ξενοδοχείο θα μπορεί να αποθηκεύει τα στοιχεία των πελατών του, έτσι

ώστε σε μελλοντική διαμονή να μην χρειάζεται ο πελάτης να δώσει ξανά τα στοιχεία

του αλλά αυτά να υπάρχουν ήδη και έτσι η όλη διαδικασία να είναι γρηγορότερη και

χωρίς πολύ κόπο. Επίσης ο χρήστης της εφαρμογής θα μπορεί να βλέπει παλαιότερες

συναλλαγές που έχει πραγματοποιήσει με τους πελάτες του και να βγάζει

συμπεράσματα για τον κάθε έναν, όπως επίσης και να τους ενημερώνει ηλεκτρονικά

10

Page 11: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ή τηλεφωνικά για προσφορές ή για την κράτηση τους. Το πελατολόγιο της

επιχείρησης θα είναι πολύ καλά οργανωμένο και ο χρήστης θα μπορεί να βρει

διάφορα στοιχεία μέσω αναζήτησης και να τα χρησιμοποιήσει προς εξυπηρέτηση του.

Η επιχείρηση θα μπορεί επίσης να κρατάει τα στοιχεία των πρακτορείων που

συνεργάζεται και να βλέπει το ποσοστό που έχει συμφωνήσει με το καθένα, επίσης

θα μπορεί να βρει όλες τις κρατήσεις που έχουν πραγματοποιηθεί από το κάθε

πρακτορείο.

Ένα επίσης σημαντικό πρόβλημα είναι ο χρήστης να μπορεί να ομαδοποιήσει

τα δωμάτια ανά τύπους και να τα κοστολογήσει έτσι ώστε να μην είναι αναγκαίο

κάθε φορά που δημιουργεί ένα νέο δωμάτιο να προσθέτει τις ίδιες πληροφορίες ξανά

και ξανά και να χάνει πολύτιμο χρόνο.

Τέλος ο χρήστης θα πρέπει να μπορεί να καταχωρεί τα έξοδα της επιχείρησης

έτσι ώστε να γνωρίζει ανά πάσα στιγμή πού ξοδεύτηκε μέχρι και το τελευταίο ευρώ.

Όλα τα παραπάνω στοιχεία θα μπορούν να εκτυπώνονται.

2.3 Η περιγραφή της εφαρμογής

Η εφαρμογή είναι εύκολη στην εγκατάσταση. Η εφαρμογή είναι σχεδιασμένη

για να λειτουργεί σε λειτουργικό σύστημα windows 7 ή μεταγενέστερο και χρειάζεται

το .Net framework 4.5 και το SQL Local DB της Microsoft για να δουλέψει.

Η εφαρμογή είναι σχεδιασμένη ώστε να είναι φιλική προς το χρήστη και να

του προσφέρει βοήθεια με διάφορα μηνύματα που ενεργοποιούνται ανάλογα την

περίσταση.

Με το άνοιγμα της εφαρμογής ο χρήστης βλέπει την καρτέλα των κρατήσεων.

Από εδώ ο χρήστης μπορεί να δημιουργήσει ,να δει και να αναθεωρήσει όλες τις

11

Page 12: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

κρατήσεις.

Για να γίνει μία κράτηση ο χρήστης πρέπει να συμπληρώσει όλα τα

υποχρεωτικά πεδία και όσα από τα μη υποχρεωτικά επιθυμεί. Μόλις διαλέξει

ημερομηνίες και τύπο δωματίου τότε πατώντας πάνω στην επιλογή δωματίου θα του

εμφανίσει όλα τα διαθέσιμα δωμάτια εάν υπάρχουν.

Για τροποποίηση ή διαγραφή μιας κράτησης ο χρήστης πρέπει να επιλέξει την

κράτηση με το ποντίκι του, τότε τα στοιχεία της κράτησης που μπορούν να

τροποποιηθούν, θα φορτωθούν στα αντίστοιχα κουτιά στοιχείων ώστε ο χρήστης να

μπορέσει να τροποποιήσει και να τα ξαναποθηκεύσει ή να διαγράψει τελείως. Από το

μενού «Αρχείο» ο χρήστης μπορεί να προβεί σε εκτύπωση των στοιχείων ή να τα

εξάγει σε αρχείο Excel..

Για να συμβούν όμως όλα τα παραπάνω, ο χρήστης θα πρέπει καταρχήν να

ανατρέξει στο μενού των δωματίων και να δημιουργήσει τους τύπους των δωματίων

που διαθέτει η επιχείρηση του. Παρακάτω βλέπουμε το παράθυρο των τύπων

12

Page 13: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

δωματίου.

Στην συνέχεια ο χρήστης θα πρέπει να κοστολογήσει τους τύπους δωματίων

που έφτιαξε προηγουμένως για τις τρείς περιόδους του χρόνου (Χαμηλή, μεσαία,

υψηλή). Για διαγραφή ή τροποποίηση ενός τύπου δωματίων ο χρήστης θα πρέπει να

επιλέξει με το ποντίκι του τον τύπο που επιθυμεί να διαγράψει ή να τροποποιήσει, τα

στοιχεία θα φορτωθούν αυτόματα στα κουτιά στοιχείων και ο χρήστης θα μπορεί τότε

να προβεί σε διαγραφή ή τροποποίηση τους και να επιβεβαιώσει την ενέργεια του.

Για να γίνει η τιμολόγηση των τύπων δωματίων ο χρήστης πρέπει να ανοίξει

το παράθυρο της τιμολόγησης που βλέπουμε παρακάτω και να συμπληρώσει τα

στοιχεία.

Για διαγραφή ή τροποποίηση των στοιχείων ο χρήστης θα πρέπει να επιλέξει

με το ποντίκι την τιμολόγηση που επιθυμεί, τα στοιχεία θα φορτωθούν στα κουτιά 13

Page 14: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

στοιχείων και τότε θα μπορεί ο χρήστης να τα τροποποιήσει ή να τα διαγράψει

τελείως.

Για να ολοκληρώσει με την οργάνωση των δωματίων της επιχείρησής του θα

πρέπει να ανοίξει το παράθυρο της διαχείρισης δωματίων που βλέπουμε παρακάτω

και να συμπληρώσει τα στοιχεία των δωματίων που διαθέτει η επιχείρηση του.

Για τροποποίηση των στοιχείων θα πρέπει να επιλεγεί το αντίστοιχο δωμάτιο

με την χρήση του ποντικιού, τότε θα φορτωθούν τα στοιχεία στα κουτιά και τότε ο

χρήστης θα μπορεί είτε να τα τροποποιήσει είτε να τα διαγράψει τελείως.

Από το μενού «Αρχείο» ο χρήστης μπορεί να προβεί σε εκτύπωση των στοιχείων ή να

τα εξάγει σε αρχείο Excel.

Για να έχει πρόσβαση στα στοιχεία των πελατών ο χρήστης θα πρέπει να

ανατρέξει στο κατάλληλο παράθυρο που βλέπουμε παρακάτω.

14

Page 15: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Εδώ ο χρήστης μπορεί να δει, να αποθηκεύσει, να διαγράψει και να

τροποποιήσει τα στοιχεία των πελατών. Για τροποποίηση ή διαγραφή των στοιχείων

πρέπει να επιλέξει τον πελάτη που επιθυμεί με δεξί κλικ του ποντικιού. Τα στοιχεία

του πελάτη θα φορτωθούν στα κατάλληλα κουτιά στοιχείων και ο χρήστης θα είναι

τότε σε θέση να τα διαγράψει ή να τα τροποποιήσει. Από το μενού «Αρχείο» ο

χρήστης μπορεί να προβεί σε εκτύπωση των στοιχείων ή να τα εξάγει σε αρχείο

Excel.

Αντίστοιχα το ίδιο μπορεί να συμβεί και με τα πρακτορεία που συνεργάζεται

η επιχείρηση, έτσι ανοίγοντας το παράθυρο των πρακτορείων που βλέπουμε

παρακάτω θα μπορεί να προβεί σε αυτές τις ενέργειες.

15

Page 16: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Και τέλος ο χρήστης ανοίγοντας το παράθυρο των εξόδων που βλέπουμε

παρακάτω μπορεί να δει, να αποθηκεύσει, να διαγράψει και να τροποποιήσει τα

έξοδα της επιχείρησης του.

Κάνοντας κλικ με το δεξί πλήκτρο του ποντικιού πάνω στα στοιχεία που είναι

επιθυμητά, τα στοιχεία φορτώνονται στα αντίστοιχα κουτιά στοιχείων και είναι

διαθέσιμα για διαγραφή ή τροποποίηση. Από το μενού «Αρχείο» ο χρήστης μπορεί να

προβεί σε εκτύπωση των στοιχείων ή να τα εξάγει σε αρχείο Excel.

Μέχρι σήμερα στην αγορά δεν υπήρχε μια εφαρμογή που να καλύπτει όλα τα

παραπάνω αξιόπιστα και δωρεάν. Για αυτόν τον λόγο αύτη η εφαρμογή είναι χρήσιμη

και στοχεύει στο να βοηθήσει τους επαγγελματίες να λύσουν τα προβλήματα

διαχείρισης της ξενοδοχειακής μονάδας τους.

2.4 Απαιτήσεις εφαρμογής

Οι απαιτήσεις που καταγράφονται παρακάτω έχουν δημιουργηθεί από τον

συντάκτη του εγγράφου αφού πρώτα πήρε ιδέες από παρόμοιες εφαρμογές καθώς και

από έρευνα αγοράς που διενεργήθηκε.

16

Page 17: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

2.4.1 Λειτουργικές Απαιτήσεις

Η εφαρμογή θα πρέπει:

• να αποθηκεύει τις κρατήσεις.

• να αποθηκεύει τα στοιχεία των πελατών

• να αποθηκεύει τα στοιχεία των πρακτορείων

• να αποθηκεύει τα στοιχεία των εξόδων

• να δημιουργεί κατηγορίες δωματίων

• να τιμολογεί κατηγορίες δωματίων

• να εκτυπώνει στοιχεία των πρακτορείων

• να εκτυπώνει στοιχεία των πελατών

• να εκτυπώνει στοιχεία των δωματίων

• να εκτυπώνει στοιχεία των κρατήσεων

• να εκτυπώνει οικονομικά στοιχεία

• να εξάγει στοιχεία της βάσης δεδομένων σε μορφή excel

2.4.2 Μη λειτουργικές απαιτήσεις

• Η εφαρμογή θα πρέπει να είναι φιλική προς το χρήστη.

• Πρέπει να υπάρχει εγχειρίδιο χρήσης (Manual).

17

Page 18: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Κεφάλαιο 3

ΠΕΡΙΕΧΟΜΕΝΟ ΥΛΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΩΝ ΥΛΟΠΟΙΗΣΗΣ

ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ

3.1 Η C#

είναι μία ολοκληρωμένη αντικειμενοστραφής γλώσσα προγραμματισμού

σχεδιασμένη για τη δημιουργία λογισμικού σε .Net Framework.

• Τα πάντα στη C# είναι αντικείμενα

• Παρέχει άμεση πρόσβαση σε τεράστιες βιβλιοθήκες κλάσεων του .Net

Framework & ασφάλεια των τύπων της.

Σχεδιάστηκε από τη Microsoft με σκοπό να αποτελέσει τη νέα γλώσσα στην

οποία θα αναπτύσσονται όλες οι εφαρμογές της στο μέλλον και δημιουργήθηκε ώστε

να αποτελέσει την κύρια γλώσσα ανάπτυξης εφαρμογών για την πλατφόρμα .ΝΕΤ. Η

τελευταία έκδοση της γλώσσας είναι η C# V 5.0 Που ξεκίνησε τον Αύγουστο του

2012.

Για την ανάπτυξη εφαρμογών σε C# μπορεί να χρησιμοποιηθεί είτε το Visual

Studio .NET της ίδιας της Microsoft είτε διάφορα ελεύθερα διαθέσιμα εργαλεία.

Το όνομα "C Sharp (Απότομη)" εμπνεύστηκε από την μουσική σημειογραφία

όπου μια απότομη δείχνει ότι μία νότα θα πρέπει να πραγματοποιήσει ένα ημίτονο

υψηλότερο . Αυτό είναι παρόμοιο με το όνομα της γλώσσας της C++ , όπου το "++"

υποδηλώνει ότι μια μεταβλητή θα πρέπει να αυξάνεται κατά 1.

Η C# είναι απευθείας σχετιζόμενη με τη C , C++ και Java και αυτό δεν είναι

τυχαίο καθώς αυτές είναι οι τρεις πιο διαδεδομένες και χρησιμοποιημένες γλώσσες

προγραμματισμού στο κόσμο. Γι’ αυτό η σύνταξη της C# έγινε με κατανοητή

υποδομή, παρεμφερούς της C , C++ και Java έτσι ώστε να προσφέρει έναν βατό 18

Page 19: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

δρόμο μετανάστευσης από αυτές προς εκείνη. Τελικώς η C# εστίασε στις ελλείψεις

που προϋπήρχαν στη γλώσσα προγραμματισμού java και με συγκεκριμένες

βελτιώσεις και καινοτομίες έλυσε τα προβλήματα αυτά.

Συνοψίζοντας αξίζει να σημειωθεί πως η C# προσπαθεί να συνθέσει τη C++

και τη JAVA σε αντίθεση με τη JAVA που ήταν απλά θυγατέρα της C++ γεγονός που

καθιστά τη C# συνδυαστικό αντικαταστάτη των δύο αυτών σύγχρονων γλωσσών

προγραμματισμού.

3.2 Τι είναι το .NET FRAMEWORK

Το .NET FRAMEWORK καθορίζει ένα περιβάλλον που θα παρέχει την

ανάπτυξη και εκτέλεση εφαρμογών. Ενεργοποιεί τη δυνατότητα να λειτουργούν

διαφορετικές γλώσσες προγραμματισμού μαζί και παρέχει ασφάλεια,

προγραμματιστική ευχρηστία και ένα κοινό προγραμματιστικό μοντέλο για τη

πλατφόρμα Windows.

Μέσα από τη σύνδεση της C# το .NET FRAMEWORK προσφέρει δύο

ενδιάμεσες έννοιες. Η πρώτη είναι η Common Language Runtime – CLR. Αυτό είναι

το σύστημα που διευθύνει την εκτέλεση του προγράμματος μαζί με τα επιπρόσθετα

προτερήματα να είναι εύχρηστα ενισχύει τη δυνατότητα ανάμιξης πολλών γλωσσών

προγραμματισμού και παρέχει ασφάλεια.

Η δεύτερη είναι η .NET βιβλιοθήκη κλάσεων. Αυτή δίνει στα προγράμματα

πρόσβαση στο περιβάλλον χρόνου εκτέλεσης (runtime environment) όπως να

εμφανισθεί ένα μήνυμα στην οθόνη.

3.3 Η γλώσσα SQL

• Η δομημένη γλώσσα ερωτημάτων SQL (Structured Query Language)

χρησιμοποιείται για τους χρήστες του ΣΔΒΔ με σκοπό τη δημιουργία, ενημέρωση

ή διαγραφή δεδομένων και τη διατύπωση ερωτημάτων.

• Η αρχική έκδοση της γλώσσας ονομάστηκε SEQUEL (Structured English Query

Language) και σχεδιάσθηκε από ερευνητική ομάδα της IBM στα πλαίσια του

SystemR (1974).

19

Page 20: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

• Η εταιρεία Oracle χρησιμοποίησε για πρώτη φορά τη γλώσσα σε εμπορικό ΣΔΒΔ

το 1979.

Η γλώσσα SQL έχει σημαντικά πλεονεκτήματα με βασικότερα τα εξής:

• υποστηρίζεται από κάθε σχεσιακό σύστημα, οπότε η διατύπωση των ερωτημάτων

είναι ανεξάρτητη του ΣΔΒΔ.

• πολλές γλώσσες προγραμματισμού έχουν επεκταθεί ώστε να υποστηρίζουν

διατύπωση ερωτημάτων σε SQL.

• έχει απλή σύνταξη και αποδεσμεύει το χρήστη από λεπτομέρειες υλοποίησης.

3.4 Visual C# Ανάπτυξη εφαρμογών σε γραφικό περιβάλλον με το Visual Studio 2013

Το Microsoft Visual Studio είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης

(IDE) της Microsoft. Χρησιμοποιείται για την ανάπτυξη εφαρμογών κονσόλας

(Console Applications) καθώς και για εφαρμογές διεπαφής με το χρήστη μαζί με τις

εφαρμογές Windows Forms (Graphics User Interface), ιστοσελίδες, διαδικτυακές 20

Page 21: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

εφαρμογές και υπηρεσίες web για όλες τις πλατφόρμες που υποστηρίζονται από τα

Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET

Compact Framework και το Microsoft Silverlight.

Το Visual Studio περιλαμβάνει ένα πρόγραμμα επεξεργασίας κώδικα

υποστήριξης IntelliSense καθώς και Refactoring κώδικα. Το ολοκληρωμένο

πρόγραμμα εντοπισμού σφαλμάτων λειτουργεί τόσο ως ένα πρόγραμμα εντοπισμού

σφαλμάτων στον πηγαίο κώδικα ως και μια μηχανή σε επίπεδο εντοπισμού

σφαλμάτων. Άλλα ενσωματωμένα εργαλεία περιλαμβάνουν σχεδίαση εντύπων για τη

δημιουργία GUI εφαρμογών, web designer, σχεδίαση κλάσεων, καθώς και σχεδίαση

βάσεων δεδομένων. Δέχεται plug-ins που βελτιώνουν τη λειτουργικότητα σε σχεδόν

κάθε επίπεδο, όπως η προσθήκη υποστήριξης για την πηγή των συστημάτων ελέγχου

(όπως το Subversion και Visual SourceSafe) και την προσθήκη νέων toolsets όπως

editors και οπτικό σχεδιασμό για τον τομέα, συγκεκριμένες γλώσσες ή toolsets για

άλλες πτυχές του κύκλου ανάπτυξης λογισμικού.

Το Visual Studio υποστηρίζει διαφορετικές γλώσσες προγραμματισμού, μέσω

των γλωσσικών υπηρεσιών, οι οποίες επιτρέπουν στον επεξεργαστή κώδικα και στο

πρόγραμμα εντοπισμού σφαλμάτων την υποστήριξη (σε διαφορετικό βαθμό) σχεδόν

σε όλες τις γλώσσες προγραμματισμού. Οι Built-in γλώσσες περιλαμβάνουν C / C + +

(μέσω Visual C + +), VB.NET (μέσω της Visual Basic. NET), C # (μέσω Visual C #),

και F # (όπως του Visual Studio 2013). Υποστήριξη για άλλες γλώσσες, όπως η M,

Python, Ruby και μεταξύ άλλων είναι διαθέσιμες μέσω των υπηρεσιών γλώσσας που

πρέπει να εγκατασταθούν ξεχωριστά. Υποστηρίζει, επίσης, XML / XSLT, HTML /

XHTML, CSS και JavaScript. Επίσης, υπάρχουν στοιχεία τα οποία παρέχουν πιο

περιορισμένες υπηρεσίες γλώσσας για το χρήστη: Microsoft Visual Basic, Visual J #,

Visual C #, και Visual C + +.

Η Microsoft παρέχει "Express" εκδόσεις του Visual Studio 2013 με συστατικά

της Visual Basic, Visual C #, Visual C + +, και Visual Web Developer με κανένα

κόστος. Το Visual Studio 2013, 2012, 2010, 2008 και 2005 σε Professional Εκδόσεις,

μαζί με τις εκδόσεις για συγκεκριμένες γλώσσες (Visual Basic, C + +, C #, J #) του

Visual Studio Express 2013 είναι διαθέσιμο δωρεάν για τους φοιτητές, μέσω του

προγράμματος DreamSpark της Microsoft.

21

Page 22: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Κεφάλαιο 4

ΔΥΣΚΟΛΙΕΣ ΚΑΙ ΑΠΟΦΑΣΕΙΣ ΚΑΤΑ ΤΗΝ ΕΚΠΟΝΗΣΗ ΤΗΣ ΕΡΓΑΣΙΑΣ

4.1 Επιλογή πλατφόρμας ανάπτυξης λογισμικού

Αρχικά έπρεπε να βρεθεί ένας εξολοκλήρου δωρεάν τρόπος λειτουργίας της

εφαρμογής. Για Integrated Development Environment (IDE) με γλώσσα

προγραμματισμού C# επιλέχθηκε το Microsoft visual studio 2013 για λόγους

ευχρηστίας, συμβατότητας και λόγο της πληθώρας βοηθημάτων που παρέχει η

Microsoft στο διαδίκτυο όσον αφορά τις υπηρεσίες και τα εργαλεία του.

Για την βάση δεδομένων και την πλατφόρμα που θα δημιουργηθεί

εξετάστηκαν τρείς δυνατές επιλογές SQL Server, Access, MySQL. Επιλέχθηκε η

πρώτη με βάση το σκεπτικό ότι η βάση αρχικά δεν μας ενδιέφερε να είναι

προσβάσιμη μέσω διαδικτύου έτσι ώστε να έχει μηδενικό κόστος αλλά αφήνετε και

το ενδεχόμενο για περαιτέρω ανάπτυξη μέσω αυτού. Επίσης ένας σημαντικός

παράγοντας ήταν ότι ο SQL server 2012 είναι ενσωματωμένος στο visual studio 2013

και μπορεί να φιλοξενήσει την βάση τόσο τοπικά όσο και στο διαδίκτυο. Επιλέχθηκε

η χρήση τοπικής βάσης δεδομένων για τους λόγους που προαναφέρθηκαν.

4.2 Εμφάνιση και φιλικότητα της εφαρμογής προς τον χρήστη

Εξετάστηκαν τρείς δυνατές επιλογές όσον αφορά τον τρόπο που θα

εμφανιζόταν το μενού πλοήγησης. Ο πρώτος ήταν ως ανεξάρτητα κουμπιά, ο

δεύτερος ως ομαδοποιημένα κουμπιά και ο τρίτος ως γραμμή μενού. Επιλέχθηκε ο

τρίτος για λόγους ευχρηστίας και φιλικότητας προς τον χρήστη.

Όσον αφορά τις καρτέλες με τα διάφορα στοιχεία (πελατών, πρακτορείων,

οικονομικά, κρατήσεις, δωμάτια) εξετάστηκαν δύο δυνατές επιλογές. Η δημιουργία

καρτελών (tabs) ή ξεχωριστά παράθυρα για το κάθε ένα. Επιλέχθηκε ο δεύτερος

22

Page 23: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

τρόπος για λόγους λειτουργικότητας, όπως επίσης και για να δίνετε στον χρήστη η

δυνατότητα εάν το επιθυμεί να έχει ανοιχτά διάφορα παράθυρα και είτε να τα βλέπει

ταυτόχρονα ή να μεταφέρεται από το ένα στο άλλο γρήγορα.

Για τον τρόπο με τον οποίο θα εμφανίζονται τα δεδομένα της βάσης

χρησιμοποιήθηκαν πίνακες δεδομένων. Για λόγους ευχρηστίας και οργάνωσης.

Για την αποθήκευση, τροποποίηση και διαγραφή των στοιχείων από την βάση

χρησιμοποιήθηκαν τρία ανεξάρτητα μεγάλα κουμπιά έτσι ώστε να επιτευχθεί

φιλικότητα προς τον χρήστη.

Όλα τα κουμπιά και τα μενού παρέχουν εκτός από την περιγραφή και εικόνες

που τα συνοδεύουν έτσι ώστε να είναι φιλικά προς τον χρήστη.

4.3 Ακεραιότητα δεδομένων

Για την ακεραιότητα των δεδομένων τις βάσης πριν από οποιαδήποτε ενέργεια

του χρήστη (αποθήκευση, ενημέρωση, διαγραφή) έχει τοποθετηθεί συνάρτηση

ελέγχου, που ελέγχει εάν υπάρχει διπλοεγγραφή, εάν παραβιάζονται οι κανόνες που

έχουν θεσπιστεί ή εάν η συγκεκριμένη αλλαγή θα φέρει ανεπιθύμητα αποτελέσματα

στην βάση. Αφού περάσει τον έλεγχο εάν είναι επιθυμητό το αποτέλεσμα τότε

επιτρέπει στην ενέργεια να εκτελεστεί, ειδάλλως ενημερώνει τον χρήστη με

κατάλληλο μήνυμα. Παραδείγματος χάρη όταν ο χρήστης δεν έχει συμπληρώσει όλα

τα υποχρεωτικά πεδία που εμφανίζονται με κόκκινο αστερίσκο και προσπαθεί να

αποθηκεύσει δεδομένα στην βάση τότε στην οθόνη του εμφανίζεται προειδοποιητικό

μήνυμα ότι πρέπει να συμπληρώσει όλα τα υποχρεωτικά πεδία.

Κάποιες ενέργειες επηρεάζουν περισσότερους από έναν πίνακες τις βάσης

δεδομένων, παραδείγματος χάρη εάν ο χρήστης σβήσει έναν πελάτη τότε αυτόματα

σβήνονται και όλες οι κρατήσεις που έχει κάνει αυτός, για να διατηρηθεί η

ακεραιότητα των δεδομένων. Πριν όμως εκτελεστεί η ενέργεια, η εφαρμογή

ενημερώνει τον χρήστη για το αποτέλεσμα τις επιλογής του με κατάλληλο μήνυμα

και ζητά επιβεβαίωση ή ακύρωση του αιτήματος. Εάν ο χρήστης δεχτεί τότε η εντολή

εκτελείται, εάν ο χρήστης αρνηθεί τότε η βάση δεν επηρεάζεται.

23

Page 24: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Για να αποφευχθούν διπλοκρατήσεις για το ίδιο δωμάτιο σε μια συγκεκριμένη

ημερομηνία έχει γραφτεί μια συνάρτηση ελέγχου SQL που επιτρέπει στον χρήστη να

διαλέξει όλα τα δωμάτια του τύπου που έχει επιλέξει προηγουμένως που δεν είναι

κρατημένα για τις συγκεκριμένες ημερομηνίες που έχει επιλέξει, και ενεργοποιείται

μόλις ο χρήστης πατήσει το βέλος για να δει όλα τα διαθέσιμα δωμάτια. Εάν ο

χρήστης επιλέξει αριθμό δωματίου και μετά προσπαθήσει να αλλάξει ημερομηνίες

άφιξης ή αναχώρησης τότε η εφαρμογή αυτόματα σβήνει την επιλογή δωματίου που

έχει κάνει ο χρήστης και ο χρήστης θα πρέπει να ξαναεπιλέξει ένα από τα διαθέσιμα

δωμάτια για τις καινούργιες ημερομηνίες που έχει επιλέξει ενεργοποιώντας ξανά τον

έλεγχο προς την βάση.

Με το άνοιγμα κάθε φόρμας, όπως και κάθε φορά που τροποποιείται η βάση

(αποθήκευση, ενημέρωση, διαγραφή) εκτελείται η εντολή που φορτώνει τα δεδομένα

του κάθε πίνακα από την βάση στην οθόνη του χρήστη, αυτό συμβαίνει στην κάθε

φόρμα ξεχωριστά. Στην περίπτωση που ο χρήστης έχει πολλαπλά παράθυρα ανοιχτά

και αλλάξει κάποια δεδομένα που είναι εξαρτώμενα από άλλο πίνακα. π.χ. ο χρήστης

διαγράφει έναν πελάτη και αυτόματα διαγράφονται όλες οι κρατήσεις που έχει κάνει,

αλλά ο χρήστης έχει ήδη ανοιχτό το παράθυρο των κρατήσεων, στον πίνακα τον

πελατών εμφανίζονται αυτόματα η αλλαγές, στον πίνακα των κρατήσεων όμως

επειδή η ενέργεια συνέβη σε άλλο παράθυρο δεν τον επηρεάζει. Για αυτόν τον λόγο

δίνεται στον χρήστη και η δυνατότητα να κάνει μόνος του ανανέωση των δεδομένων

πατώντας το κατάλληλο κουμπί.

24

Page 25: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Κεφάλαιο 5

ΑΠΟΛΟΓΙΣΜΟΣ ΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ

5.1 Σύνοψη

Η εφαρμογή Hotel Management αποτελεί μια δοκιμαστική εφαρμογή που έχει

στόχο και σκοπό να διευκολύνει το χρήστη και να κάνει πιο αξιόπιστη την διαχείριση

μικρομεσαίων ξενοδοχειακών μονάδων με μηδενικό κόστος.

5.2 Συμπεράσματα

• Κατά την υλοποίηση της εργασίας αποκομήθηκαν πολύτιμες εμπειρίες όσον

αφορά την εξοικείωση του σπουδαστή με την C# και τον SQL Server της

Microsoft.

• Η εμπειρία της δημιουργίας μιας εφαρμογής βάσης δεδομένων από το μηδέν

έβαλε τις βάσεις για την μετέπειτα επαγγελματική αποκατάσταση του

σπουδαστή.

• Η εφαρμογή μπορεί επάξια να ανταγωνιστεί παρόμοιες εφαρμογές που

κυκλοφορούν στο διαδίκτυο.

• Η εφαρμογή έχει πετύχει τους στόχους που θεσπίστηκαν από την αρχή και

έχει καλύψει όλες τις απαιτήσεις, αλλά αφήνει χώρο για περαιτέρω

αναβάθμιση και βελτίωση του συστήματος.

5.3 Βελτίωση του συστήματος

Η παρούσα εφαρμογή σε νεότερες εκδόσεις θα μπορούσε να εμφανίζει

στατιστικά στοιχεία όσον αφορά τις κρατήσεις:

• Τους μήνες με την μεγαλύτερη ζήτηση.

• Τους μήνες με το μεγαλύτερο κέρδος για το ξενοδοχείο.

25

Page 26: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

• Τους μήνες με την μικρότερη ζήτηση.

Τους πελάτες:

• Με τις περισσότερες κρατήσεις.

• Με τις μεγαλύτερες εισφορές.

Τα πρακτορεία:

• Με τις περισσότερες κρατήσεις.

• Με τις μεγαλύτερες εισφορές.

• Τα ποσά που έχουν δοθεί σε κάθε πρακτορείο συνολικά σαν

προμήθεια.

Επίσης η βάση θα μπορούσε να μεταφερθεί σε κάποιον online ή τοπικό server

με επιπρόσθετο κόστος έτσι ώστε να είναι προσβάσιμη από διαφορετικούς

υπολογιστές. Σε αυτήν την περίπτωση θα πρέπει να ξανασχεδιαστεί η ακεραιότητα

των δεδομένων και να παρθούν σοβαρά μέτρα για την ασφάλεια τους.

Θα μπορούσε επίσης να δημιουργηθούν διάφοροι τύποι χρηστών, όπως

διαχειριστής και υπάλληλος. Με διαφορετικά δικαιώματα για τον καθένα. Π.χ. ο

διαχειριστής να είναι ο μόνος που θα μπορεί να δημιουργήσει, να τροποποιήσει και

να διαγράψει τα δωμάτια και τις τιμολογήσεις τους.

Τέλος πολύ χρήσιμο θα ήταν ο διαχειριστής της εφαρμογής να έχει την

δυνατότητα να δημιουργεί και να εξάγει αντίγραφα της βάσης δεδομένων.

26

Page 27: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΠΑΡΑΡΤΗΜΑ Α

Οδηγίες Εγκατάστασης

Για να εγκατασταθεί και να δουλέψει η εφαρμογή στον Ηλεκτρονικό

υπολογιστή του χρήστη θα πρέπει πρώτα να εγκατασταθεί το Microsoft .Net

Framework 4.5 και ο SQL Local DB τα οποία εάν δεν τα έχει ήδη ο χρήστης,

παρέχονται μαζί με την εφαρμογή στο φάκελο «Προαπαιτούμενα».

Στην συνέχεια ο χρήστης πρέπει να τρέξει το Setup.exe μέσα από τον φάκελο «Hotel

Management Setup». Μόλις ολοκληρωθεί η εγκατάσταση της εφαρμογής, αυτόματα

δημιουργείται ένα εικονίδιο στην επιφάνεια εργασίας του χρήστη.

Εάν ο χρήστης επιθυμεί να δει τον source κώδικα και την βάση δεδομένων

καθώς και να τα τροποποιήσει, τότε θα πρέπει να εγκαταστήσει το Microsoft Visual

Studio 2013 στον υπολογιστή του. Κατά την εγκατάσταση του Visual Studio ο

χρήστης θα πρέπει να κάνει μια πλήρη εγκατάσταση και να μην παραλείψει στοιχεία

όπως o SQL server 2012 και το Office Primary Interop Assemblies ειδάλλως

χαρακτηριστικά της εφαρμογής όπως η βάση δεδομένων ή η επιλογή εξαγωγής

δεδομένων σε αρχεία excel δεν θα δουλεύουν.

Επίσης για να δουλέψει ή συγκεκριμένη βάση δεδομένων σε συνδυασμό με

την συγκεκριμένη εφαρμογή , ο χρήστης μέσω του Visual Studio 2013 πρέπει να

αλλάξει τον τρόπο που εμφανίζονται οι ημερομηνίες στον SQL Server 2012 από US

(USA) μήνας-μέρα-χρόνος σε BR (Britain) μέρα-μήνας-χρόνος. Για να γίνει αυτό ο

χρήστης θα πρέπει να πληκτρολογήσει το συγκεκριμένο Query στον ενσωματωμένο

SQL Server :

EXEC sp_configure "default language", 23;

RECONFIGURE WITH OVERRIDE;

και να κάνει επανεκκίνηση το Visual Studio.

27

Page 28: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΠΑΡΑΡΤΗΜΑ Β Εγχειρίδιο χρήστη

1. Κουτί αναζήτησης. Μόλις ο χρήστης πληκτρολογεί στοιχεία σε αυτό το κουτί

αμέσως η βάση φιλτράρεται και εμφανίζει στον πίνακα στοιχείων μόνο όσα

στοιχεία ταιριάζουν με αυτά που ο ίδιος πληκτρολόγησε.

2. Κεντρικό μενού. Από εδώ ο χρήστης πλοηγείται στην εφαρμογή

3. Πίνακας στοιχείων κρατήσεων. Εδώ εμφανίζονται όλες οι κρατήσεις που είναι

αποθηκευμένες στην βάση.

4. Το κουμπί αυτό υπολογίζει τις μέρες που θα καθίσει ο πελάτης σύμφωνα με

τις ημερομηνίες που επιλέχθηκαν.

5. Το κουμπί που υπολογίζει αυτόματα το κόστος της κράτησης ανάλογα με τα

στοιχεία που δόθηκαν.

6. Με αυτό το κουμπί γίνετε διαγραφή των στοιχείων από την βάση.

7. Με αυτό το κουμπί γίνετε ενημέρωση/τροποποίηση των στοιχείων της βάσης.

8. Με αυτό το κουμπί ο χρήστης προσθέτει μια νέα κράτηση στην βάση.

9. Εδώ ο χρήστης πληκτρολογεί πόσες μέρες θα μείνει ο πελάτης ανά

διαφορετική τιμολογιακή περίοδο. Στο πρώτο κουτί από αριστερά μπαίνουν οι

μέρες που θα μείνει στην χαμηλή περίοδο, στο δεύτερο στην μεσαία και στο

28

Page 29: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

τρίτο στην υψηλή. Εάν η κράτηση ανήκει μόνο σε μία περίοδο τότε οι άλλες

μπορούν να μείνουν κενές.

10. Εδώ ο χρήστης βλέπει το κόστος τις κάθε μέρας ανάλογα τον τύπο δωματίου

που έχει επιλέξει. Στο πρώτο κουτί από αριστερά μπαίνει η τιμή της χαμηλής

περιόδου, στο δεύτερο της μεσαίας και στο τρίτο της υψηλής.

Στην καρτέλα των κρατήσεων ο χρήστης μπορεί να δημιουργήσει, να

τροποποιήσει και να διαγράψει κρατήσεις για την επιχείρηση του.

1. Από αυτό το κουμπί ο χρήστης μπορεί να ζητήσει εκτύπωση, προεπισκόπηση

εκτύπωσης, να εξάγει στοιχεία σε αρχείο excel και να κλείσει την εφαρμογή.

Τα στοιχεία που εκτυπώνονται ή εξάγονται σε αρχείο excel είναι πάντα

ΜΟΝΟ αυτά τα όποια εμφανίζονται στον πίνακα στοιχείων. Εάν ο χρήστης

επιθυμεί να εκτυπώσει κάποια συγκεκριμένα στοιχεία μόνο θα πρέπει να

χρησιμοποιήσει την επιλογή της αναζήτησης και πληκτρολογώντας τα

στοιχεία που επιθυμεί να εμφανιστούν πρώτα στον πίνακα στοιχείων και μετά

να τα τυπώσει/εξάγει.

2. Ανανεώνει τα δεδομένα που εμφανίζονται στον πίνακα στοιχείων.

3. Καθαρίζει όλα τα δεδομένα εκτός από αυτά που εμφανίζονται στον πίνακα

στοιχείων.

4. Διαχείριση πελατών

5. Διαχείριση πρακτορείων

6. Διαχείριση δωματίων

7. Διαχείριση εξόδων.

8. Πληροφορίες και στοιχεία επικοινωνίας με εξειδικευμένο τεχνικό σε

περίπτωση που ο χρήστης επιθυμεί βοήθεια.

29

Page 30: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

1. Μενού πελάτη.

2. Αναζήτηση πελατών.

3. Στοιχεία πελατών.

4. Εισαγωγή στοιχείων πελατών.

5. Διαγραφή στοιχείων πελατών.

6. Ενημέρωση στοιχείων πελατών.

7. Αποθήκευση στοιχείων πελατών.

Στην καρτέλα των πελατών ο χρήστης μπορεί να αποθηκεύσει, να

τροποποιήσει και να διαγράψει στοιχεία των πελατών που συνεργάζεται.

30

Page 31: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

1. Μενού πρακτορείων.

2. Αναζήτηση πρακτορείων.

3. Στοιχεία πρακτορείων.

4. Εισαγωγή στοιχείων πρακτορείων.

5. Διαγραφή στοιχείων πρακτορείων.

6. Ενημέρωση στοιχείων πρακτορείων.

7. Αποθήκευση στοιχείων πρακτορείων.

Στην καρτέλα των πρακτορείων ο χρήστης μπορεί να αποθηκεύσει, να

τροποποιήσει και να διαγράψει στοιχεία των πρακτορείων που συνεργάζεται.

31

Page 32: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

1. Μενού δωματίων.

2. Αναζήτηση δωματίων.

3. Στοιχεία δωματίων.

4. Διαγραφή στοιχείων δωματίων.

5. Ενημέρωση στοιχείων δωματίων.

6. Αποθήκευση στοιχείων δωματίων.

7. Εισαγωγή στοιχείων δωματίων.

Στην καρτέλα διαχείριση δωματίων ο χρήστης μπορεί να δημιουργήσει, να

τροποποιήσει και να διαγράψει τα δωμάτια που αντιστοιχούν στην επιχείρηση του.

32

Page 33: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

1. Μενού τύπων δωματίου.

2. Αναζήτηση τύπων δωματίου.

3. Στοιχεία τύπων δωματίου.

4. Εισαγωγή στοιχείων τύπων δωματίου.

5. Διαγραφή στοιχείων τύπων δωματίου.

6. Ενημέρωση στοιχείων τύπων δωματίου.

7. Αποθήκευση στοιχείων τύπων δωματίου.

Στην καρτέλα τύπων δωματίων ο χρήστης μπορεί να δημιουργήσει, να

τροποποιήσει και να διαγράψει τύπους δωματίων ανάλογα με τις ανάγκες του.

33

Page 34: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

1. Μενού τιμολόγησης δωματίων.

2. Αναζήτηση στοιχείων τιμολόγησης δωματίων.

3. Στοιχεία τιμολόγησης δωματίων.

4. Εισαγωγή στοιχείων τιμολόγησης δωματίων.

5. Διαγραφή στοιχείων τιμολόγησης δωματίων.

6. Ενημέρωση στοιχείων τιμολόγησης δωματίων.

7. Αποθήκευση στοιχείων τιμολόγησης δωματίων.

Στην καρτέλα τιμολόγηση δωματίων ο χρήστης μπορεί να τιμολογήσει τους

εκάστοτε τύπους δωματίων που έχει δημιουργήσει, να τους τροποποιήσει ή να

τους διαγράψει.

34

Page 35: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

1. Μενού εξόδων.

2. Αναζήτηση στοιχείων εξόδων.

3. Στοιχεία εξόδων.

4. Εισαγωγή στοιχείων εξόδων.

5. Διαγραφή στοιχείων εξόδων.

6. Ενημέρωση στοιχείων εξόδων.

7. Αποθήκευση στοιχείων εξόδων.

Στην καρτέλα εξόδων ο χρήστης μπορεί να αποθηκεύσει, να τροποποιήσει και να

διαγράψει τα έξοδα που έχει η επιχείρηση του.

35

Page 36: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΠΑΡΑΡΤΗΜΑ Γ Μοντέλο Οντοτήτων-Συσχετίσεων

Κράτηση

Αριθμός κράτησης

Ημερομηνία άφιξης

Ημερομηνία αναχώρησης

Ενήλικες

Παιδιά

Ποσό

Προκαταβολή

Ημερομηνία προκαταβολής

Υπόλοιπο

Τρόπος πληρωμής

Πώς μας βρήκε Τράπεζα

Πελάτης

ΕπώνυμοΌνομα Πατρώνυμο

Ημερομηνία γέννησης

Φύλο

Κινητό

Τηλέφωνο κατοικίας

Διεύθυνση

Αριθμός ταυτότητας

Email

Φαξ

ΠΕΛ_Α.Φ.Μ.

Δ.Ο.Υ.

Πόλη

Πιστωτική Κάρτα

Ταχυδρομικός Κώδικας

ΧώραΕπωνυμία

Προμήθεια

Διεύθυνση

Πόλη

Ταχυδρομικός Κωδικός

Χώρα

Ιστοσελίδα

ΠΡ_Α.Φ.Μ.

Δ.Ο.Υ.Τηλέφωνο 1

Τηλέφωνο 2

Email

Πρακτορείο

Αριθμός παραστατικού

Α.Φ.Μ.

Επωνυμία

Ποσό

Ημερομηνία

Περιγραφή

Φ.Π.Α. %Έξοδα

Αριθμός δωματίουΔωμάτιο

Κάνει

Κάνει

Γίνεται

Ν

1 1

1

N 1

Εξοφλήθη

όροφος

Κλιματισμός

Τηλεόραση

Ανήκει

Τύπος δωματίου

Αριθμός κλινών

Περιγραφή

1

N

Mini Bar

Θέα

ΤιμολόγησηΈχει

N

1Τιμ_ID

Περίοδος

Από ΗμερομηνίαΕώς

ΗμερομηνίαΤιμή

Τυπ_ID

Λογική σχεδίαση

Όνομα στο ΜΟΣ Όνομα στα Σχεσιακά Σχήματα

Νόημα

Κράτηση Reservation Τύπος οντοτήτων

Κρατήσεων με

χαρακτηριστικά:

Τρόπος πληρωμής Τρόπος πληρωμής Τρόπος πληρωμής της

κράτησης

Ποσό Ποσό Ποσό που κόστισε η

κράτηση

Πώς μας βρήκε Πώς μας βρήκε Πως βρήκε το ξενοδοχείο ο

36

Page 37: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

πελάτης

Παιδιά Παιδιά Πόσα παιδιά θα είναι στο

δωμάτιο

Ενήλικες Ενήλικες Πόσοι ενήλικες θα είναι

στο δωμάτιο

Αριθμός κράτησης Αριθμός Κράτησης Ο αριθμός της κράτησης

(Κλειδί)

Ημερομηνία άφιξης Ημερομηνία άφιξης Ημερομηνία άφιξης του

πελάτη

Ημερομηνία αναχώρησης Ημερομηνία αναχώρησης Ημερομηνία αναχώρησης

του πελάτη

Προκαταβολή Προκαταβολή Προκαταβολή που δόθηκε

για την κράτηση

Ημερομηνία

προκαταβολής

Ημερομηνία

προκαταβολής

Ημερομηνία που δόθηκε η

προκαταβολή

Υπόλοιπο Υπόλοιπο Το υπόλοιπο ποσό που

μένει εώς την εξόφληση

της κράτησης

Τράπεζα Τράπεζα Μέσω ποιας τραπέζης θα

γίνει η πληρωμή

Εξοφλήθη Εξοφλήθη Εάν εξοφλήθη η κράτηση

Πρακτορείο Agency Τύπος οντοτήτων

Πρακτορείων με

χαρακτηριστικά:

Πόλη Πόλη Πόλη που εδρεύει το

πρακτορείο

ΠΡ_Α.Φ.Μ. Α.Φ.Μ. ΑΦΜ του πρακτορείου

(Κλειδί)

Ταχυδρομικός Κωδικός Ταχυδρομικός Κωδικός Ταχυδρομικός κωδικός

Χώρα Χώρα Χώρα προέλευσης

Ιστοσελίδα Ιστοσελίδα Ιστοσελίδα του

πρακτορείου

Επωνυμία Επωνυμία Επωνυμία του πρακτορείου

37

Page 38: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Προμήθεια Προμήθεια Ποσοστό της προμήθειας

που θα λάβει το

πρακτορείο για κάθε

κράτηση

Δ.Ο.Υ. Δ.Ο.Υ. Δ.Ο.Υ. πρακτορείου

Τηλέφωνο 1 Τηλέφωνο 1 Κύριο τηλέφωνο του

πρακτορείου

Τηλέφωνο 2 Τηλέφωνο 2 Δευτερεύον τηλέφωνο του

πρακτορείου

Email Email Διεύθυνση ηλεκτρονικού

ταχυδρομείου του

πρακτορείου

Διεύθυνση Διεύθυνση Διεύθυνση του

πρακτορείου

Πελάτης Customer Τύπος οντοτήτων Πελατών

με χαρακτηριστικά:

Ταχυδρομικός Κώδικας Ταχυδρομικός Κώδικας Ταχυδρομικός κώδικας του

πελάτη

Πόλη Πόλη Πόλη που κατοικεί ο

πελάτης

Δ.Ο.Υ. Δ.Ο.Υ. Δ.Ο.Υ. του πελάτη

ΠΕΛ_Α.Φ.Μ. Α.Φ.Μ Α.Φ.Μ. του πελάτη

(Κλειδί)

Αριθμός ταυτότητας Αριθμός ταυτότητας Αριθμός ταυτότητας του

πελάτη

Όνομα Όνομα Όνομα του πελάτη

Επώνυμο Επώνυμο Επώνυμο του πελάτη

Πατρώνυμο Πατρώνυμο Πατρώνυμο του πελάτη

Ημερομηνία γέννησης Ημερομηνία γέννησης Ημερομηνία γέννησης του

πελάτη

Φύλο Φύλο Φύλο του πελάτη

Διεύθυνση Διεύθυνση Διεύθυνση κατοικίας

Τηλέφωνο κατοικίας Τηλέφωνο κατοικίας Τηλέφωνο κατοικίας

38

Page 39: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Κινητό Κινητό Κινητό τηλέφωνο του

πελάτη

Φαξ Fax Fax του πελάτη

Email Email Διεύθυνση ηλεκτρονικού

ταχυδρομείου του πελάτη

Πιστωτική Κάρτα Πιστωτική Κάρτα Αριθμός πιστωτικής

κάρτας του πελάτη

Χώρα Χώρα Χώρα στην οποία κατοικεί

Έξοδα OutgoingsCheck Τύπος οντοτήτων Εξόδων

με χαρακτηριστικά:

Επωνυμία Επωνυμία Ονομασία της επιχείρησης

που μας παρέχει υπηρεσίες

Περιγραφή Περιγραφή Περιγραφή της υπηρεσίας

που εκτέλεσε

Φ.Π.Α. % Φ.Π.Α. % Φ.Π.Α. τις εκατό που

φορολογήθηκε

Αριθμός παραστατικού Αριθμός παραστατικού Αριθμός του παραστατικού

(Κλειδί)

Α.Φ.Μ. Α.Φ.Μ. Α.Φ.Μ. της επιχείρησης

που μας παρείχε τις

υπηρεσίες

Ποσό Ποσό Ποσό μετά φόρου που

πληρώσαμε για τις

υπηρεσίες

Ημερομηνία Ημερομηνία Ημερομηνία που έγινε η

παροχή υπηρεσιών

Δωμάτιο Room Τύπος οντοτήτων

Δωματίων με

χαρακτηριστικά:

όροφος Όροφος Όροφος που βρίσκεται το

δωμάτιο

Αριθμός δωματίου Αριθμός δωματίου Αριθμός του δωματίου

(Κλειδί)

39

Page 40: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Τηλεόραση Τηλεόραση Εάν έχει τηλεόραση το

δωμάτιο

Κλιματισμός Κλιματισμός Εάν έχει κλιματισμό το

δωμάτιο

Mini Bar Mini Bar Εάν έχει μινι μπάρ το

δωμάτιο

Θέα Θέα Εάν το δωμάτιο έχει θέα

Τύπος δωματίου RoomType Τύπος οντοτήτων Τύπων

Δωματίων με

χαρακτηριστικά:

Περιγραφή Περιγραφή Περιγραφή του τύπου

δωματίων (Κλειδί)

Αριθμός κλινών Αριθμός κλινών Αριθμός κλινών που έχει ο

συγκεκριμένος τύπος

δωματίων

Τιμολόγηση RoomPrice Τύπος οντοτήτων

Τιμολόγησης δωματίων με

χαρακτηριστικά:

Τιμή Τιμή Ποσό κοστίζει ο

συγκεκριμένος τύπος

δωματίου ανα περίοδο

Εώς Ημερομηνία Εώς Μέχρι ποια ημερομηνία

ισχύει η κάθε περίοδος

τιμολόγησης

Από Ημερομηνία Από Ημερομηνία που ξεκινάει η

κάθε περίοδος

τιμολόγησης

Περίοδος Περίοδος Ποια είναι η συγκεκριμένη

περίοδος τιμολόγησης

Τιμ_ID ID Κωδικός τιμολόγησης

(Κλειδί)

40

Page 41: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Στον τύπο οντοτήτων του τύπου δωματίων αφήνεται στην επιλογή του

σπουδαστή εάν θα χρησιμοποιήσει την περιγραφή ή το Τυπ_ID ως κλειδί. Στην δικιά

μας περίπτωση χρησιμοποιούμε την περιγραφή ως κλειδί και το Τυπ_ID δεν το

χρησιμοποιούμε καθόλου.

• Τύπος οντοτήτων τύπου δωματίων.

RoomType {Περιγραφή, Αριθμός κλινών}

Κλειδί: Περιγραφή

• Τύπος οντοτήτων Τιμολόγησης δωματίων.

RoomPrice {ID, Περιγραφή, Περίοδος, Από, Εώς, Τιμή}

Κλειδί: ID

Ξένα κλειδιά: Περιγραφή (RoomType)

• Τύπος οντοτήτων δωματίων.

Room {Αριθμός δωματίου, Όροφος, Τύπος Δωματίου, Τηλεόραση, Κλιματισμός,

Mini Bar, Θέα}

Κλειδί: Αριθμός δωματίου

Ξένα κλειδιά: Τύπος Δωματίου (RoomType)

• Τύπος οντοτήτων κράτησης.

Reservation {Αριθμός Κράτησης, Δωμάτιο, Τύπος Δωματίου, Α.Φ.Μ. Πελάτη,

Α.Φ.Μ. Πρακτορείου, Ημερομηνία άφιξης, Ημερομηνία αναχώρησης, Ενήλικες,

Παιδιά, Πώς μας βρήκε, Ποσό, Προκαταβολή, Ημερομηνία προκαταβολής,

Υπόλοιπο, Εξοφλήθη, Τράπεζα, Τρόπος πληρωμής}

Κλειδί: Αριθμός Κράτησης

Ξένα κλειδιά: Δωμάτιο (Room), Τύπος Δωματίου (RoomType), Α.Φ.Μ. Πελάτη

(Customer), Α.Φ.Μ. Πρακτορείου (Agency)

41

Page 42: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

• Τύπος οντοτήτων εξόδων

OutgoingsCheck {Αριθμός παραστατικού, Α.Φ.Μ., Επωνυμία, Ημερομηνία,

Περιγραφή, Ποσό, Φ.Π.Α. %}

Κλειδί: Αριθμός παραστατικού

• Τύπος οντοτήτων πελατών

Customer {Επώνυμο, Όνομα, Αριθμός ταυτότητας, Πατρώνυμο, Α.Φ.Μ, Δ.Ο.Υ.,

Χώρα, Πόλη, Διεύθυνση, Ταχυδρομικός Κώδικας, Ημερομηνία γέννησης, Φύλο,

Τηλέφωνο κατοικίας, Κινητό, Fax, Email, Πιστωτική Κάρτα}

Κλειδί: Α.Φ.Μ

• Τύπος οντοτήτων πρακτορείων

Agency {Επωνυμία, Α.Φ.Μ., Δ.Ο.Υ., Προμήθεια, Ιστοσελίδα, Τηλέφωνο 1,

Τηλέφωνο 2, Email, Διεύθυνση, Ταχυδρομικός Κωδικός, Πόλη, Χώρα}

Κλειδί: Α.Φ.Μ.

42

Page 43: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

Φυσικό σχέδιο CREATE TABLE [dbo].[Reservation](

[Αριθμός Κράτησης] INTIDENTITY (1, 1) NOT NULL,

[Δωμάτιο] INT NULL,

[Τύπος Δωματίου] NVARCHAR (30) NULL,

[Α.Φ.Μ. Πελάτη] NVARCHAR (20) NULL,

[Α.Φ.Μ. Πρακτορείου] NVARCHAR (25) NULL,

[Ημερομηνία άφιξης] DATE NULL,

[Ημερομηνία αναχώρησης] DATE NULL,

[Ενήλικες] INT NULL,

[Παιδιά] INT NULL,

[Πώς μας βρήκε] NVARCHAR(50) NULL,

[Ποσό] NVARCHAR(30) NULL,

[Προκαταβολή] NVARCHAR(30) NULL,

[Ημερομηνία προκαταβολής] DATE NULL,

[Υπόλοιπο] NVARCHAR(30) NULL,

[Εξοφλήθη] NVARCHAR(5) NULL,

[Τράπεζα] NVARCHAR(30) NULL,

[Τρόπος πληρωμής] NVARCHAR(30) NULL,

PRIMARY KEY CLUSTERED ([Αριθμός Κράτησης] ASC),

CONSTRAINT [FK_Reservation_ToAgencys] FOREIGN KEY ([Α.Φ.Μ.

Πρακτορείου]) REFERENCES [dbo].[Agency]([Α.Φ.Μ.])ON DELETE CASCADE ON

UPDATE CASCADE,

CONSTRAINT [FK_Reservation_ToRooms] FOREIGN KEY ([Δωμάτιο])

REFERENCES [dbo].[Room]([Αριθμός δωματίου])ON DELETE CASCADE ON

UPDATE CASCADE,

CONSTRAINT [FK_Reservation_ToCustomers] FOREIGN KEY ([Α.Φ.Μ. Πελάτη])

REFERENCES [dbo].[Customer]([Α.Φ.Μ])ON DELETE CASCADE ON UPDATE

CASCADE);

CREATE TABLE [dbo].[OutgoingsCheck](

[Αριθμός παραστατικού] INTIDENTITY (1, 1) NOT NULL,

[Α.Φ.Μ.] NVARCHAR (25) NOT NULL,

[Επωνυμία] NVARCHAR (45) NULL,

[Ημερομηνία] DATE NULL,

[Περιγραφή] NVARCHAR (40) NOT NULL,

[Ποσό] NVARCHAR (20) NOT NULL,

[Φ.Π.Α. %] INT NULL,

PRIMARY KEY CLUSTERED ([Αριθμός παραστατικού] ASC));

43

Page 44: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

CREATE TABLE [dbo].[Customer](

[Επώνυμο] NVARCHAR (30) NOT NULL,

[Όνομα] NVARCHAR (20) NOT NULL,

[Αριθμόςταυτότητας] NVARCHAR (20) NOT NULL,

[Πατρώνυμο] NVARCHAR (20) NULL,

[Α.Φ.Μ] NVARCHAR (20) NOT NULL,

[Δ.Ο.Υ.] NVARCHAR (30) NULL,

[Χώρα] NVARCHAR (25) NULL,

[Πόλη] NVARCHAR (20) NULL,

[Διεύθυνση] NVARCHAR (25) NULL,

[Ταχυδρομικός Κώδικας] NVARCHAR (20) NULL,

[Ημερομηνία γέννησης] DATE NULL,

[Φύλο] NVARCHAR (10) NULL,

[Τηλέφωνο κατοικίας] NVARCHAR (25) NULL,

[Κινητό] NVARCHAR (20) NOT NULL,

[Fax] NVARCHAR (20) NULL,

[Email] NVARCHAR (50) NULL,

[Πιστωτική Κάρτα] NVARCHAR (45) NULL,

PRIMARY KEY CLUSTERED ([Α.Φ.Μ] ASC));

CREATE TABLE [dbo].[Agency](

[Επωνυμία] NVARCHAR (35) NOT NULL,

[Α.Φ.Μ.] NVARCHAR (25) NOT NULL,

[Δ.Ο.Υ.] NVARCHAR (30) NULL,

[Προμήθεια] INT NOT NULL,

[Ιστοσελίδα] NVARCHAR (50) NULL,

[Τηλέφωνο 1] NVARCHAR (20) NOT NULL,

[Τηλέφωνο 2] NVARCHAR (20) NULL,

[Email] NVARCHAR (30) NULL,

[Διεύθυνση] NVARCHAR (30) NULL,

[Ταχυδρομικός Κώδικός] NVARCHAR (20) NULL,

[Πόλη] NVARCHAR (25) NULL,

[Χώρα] NVARCHAR (20) NULL,

CONSTRAINT [PK_Agency] PRIMARY KEY CLUSTERED ([Α.Φ.Μ.] ASC)

);

44

Page 45: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

CREATE TABLE [dbo].[Room](

[Αριθμός δωματίου] INT NOT NULL,

[Όροφος] INT NULL,

[Τύπος Δωματίου] NVARCHAR (30) NULL,

[Τηλεόραση] NVARCHAR (10) NULL,

[Κλιματισμός] NVARCHAR (10) NULL,

[Mini Bar] NVARCHAR (10) NULL,

[Θέα] NVARCHAR (10) NULL,

CONSTRAINT [PK_Room] PRIMARY KEY CLUSTERED ([Αριθμός δωματίου] ASC),

CONSTRAINT [FK_Room_ToRoomType] FOREIGN KEY ([Τύπος Δωματίου])

REFERENCES [dbo].[RoomType]([Περιγραφή])ON DELETE CASCADE ON UPDATE

CASCADE

);

CREATE TABLE [dbo].[RoomPrice](

[ID] INT NOT NULL,

[Περιγραφή] NVARCHAR (30) NOT NULL,

[Περίοδος] NVARCHAR (30) NULL,

[Από] NVARCHAR (30) NULL,

[Εώς] NVARCHAR (30) NULL,

[Τιμή] NVARCHAR (20) NULL,

PRIMARY KEY CLUSTERED ([ID] ASC),

CONSTRAINT [FK_RoomPrice_ToRoomType] FOREIGN KEY ([Περιγραφή])

REFERENCES [dbo].[RoomType]([Περιγραφή])ON DELETE CASCADE ON UPDATE

CASCADE

);

CREATE TABLE [dbo].[RoomType](

[Περιγραφή] NVARCHAR (30) NOT NULL,

[Αριθμός κλινών] INT NOT NULL,

PRIMARY KEY CLUSTERED ([Περιγραφή] ASC)

);

45

Page 46: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΠΑΡΑΡΤΗΜΑ Δ Ενδιαφέρον Εντολές SQL Που χρησιμοποιήθηκαν στην εφαρμογή

• φιλτράρισμα στοιχείων πρακτορείων που εμφανίζονται στον πίνακα

στοιχείων.

DV.RowFilter = string.Format("[Επωνυμία] LIKE '%{0}%' OR [Α.Φ.Μ.]

LIKE '%{0}%' OR [Δ.Ο.Υ.] LIKE '%{0}%' OR [Τηλέφωνο 1] LIKE '%{0}%'

OR [Τηλέφωνο 2] LIKE '%{0}%' OR [Email] LIKE '%{0}%' OR [Χώρα]

LIKE '%{0}%' OR [Πόλη] LIKE '%{0}%' OR [Διεύθυνση] LIKE '%{0}%' OR

[Ταχυδρομικός Κώδικός] LIKE '%{0}%' OR [Ιστοσελίδα] LIKE '%{0}%'

", (AgencySearchBox.Text));

• φιλτράρισμα στοιχείων πελατών που εμφανίζονται στον πίνακα στοιχείων.

DV.RowFilter = string.Format("[Επώνυμο] LIKE '%{0}%' OR [Όνομα]

LIKE '%{0}%' OR [Αριθμός ταυτότητας] LIKE '%{0}%' OR [Πατρώνυμο]

LIKE '%{0}%' OR [Α.Φ.Μ] LIKE '%{0}%' OR [Δ.Ο.Υ.] LIKE '%{0}%' OR

[Χώρα] LIKE '%{0}%' OR [Πόλη] LIKE '%{0}%' OR [Διεύθυνση] LIKE

'%{0}%' OR [Ταχυδρομικός Κώδικας] LIKE '%{0}%' OR

Convert([Ημερομηνία γέννησης], System.String) LIKE '%{0}%' OR

[Φύλο] LIKE '%{0}%' OR [Τηλέφωνο κατοικίας] LIKE '%{0}%' OR

[Κινητό] LIKE '%{0}%' OR [Fax] LIKE '%{0}%' OR [Email] LIKE

'%{0}%' OR [Πιστωτική Κάρτα] LIKE '%{0}%' ",

(CustomerSearchbox.Text));

• φιλτράρισμα στοιχείων εξόδων που εμφανίζονται στον πίνακα στοιχείων. DV.RowFilter = string.Format("Convert([Αριθμός παραστατικού],

System.String) LIKE '%{0}%' OR [Α.Φ.Μ.] LIKE '%{0}%' OR [Ποσό]

LIKE '%{0}%' OR Convert([Ημερομηνία], System.String) LIKE '%{0}%'

OR [Επωνυμία] LIKE '%{0}%' OR [Περιγραφή] LIKE '%{0}%'",

(SearchBox.Text));

46

Page 47: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

• φιλτράρισμα στοιχείων δωματίων που εμφανίζονται στον πίνακα στοιχείων.

DV.RowFilter = string.Format("Convert([Αριθμός δωματίου],

System.String) LIKE '%{0}%' OR Convert([Όροφος], System.String)

LIKE '%{0}%' OR [Τύπος Δωματίου] LIKE '%{0}%' ",

(Searchbox.Text));

• φιλτράρισμα στοιχείων τύπων δωματίων που εμφανίζονται στον πίνακα

στοιχείων.

DV.RowFilter = string.Format("Convert([Αριθμός κλινών],

System.String) LIKE '%{0}%' OR [Περιγραφή] LIKE '%{0}%'",

(Searchboxroomtype.Text));

• Δημιουργία προσωρινού πίνακα SQL (RESULTS) που αποθηκεύει τους

αριθμούς των δωματίων τα οποία είναι ελεύθερα για τις ημερομηνίες που έχει

επιλέξει ο χρήστης.

cmd.CommandText = "CREATE TABLE #RESULTS ([Αριθμός δωματίου]

INT,[Τύπος Δωματίου] NVARCHAR (30),[Ημερομηνία άφιξης]

DATE,[Ημερομηνία αναχώρησης] DATE);INSERT INTO #RESULTS select

Room.[Αριθμός δωματίου],Room.[Τύπος Δωματίου],

Reservation.[Ημερομηνία άφιξης], Reservation.[Ημερομηνία

αναχώρησης] from Room full join Reservation on

Reservation.Δωμάτιο = Room.[Αριθμός δωματίου] EXCEPT (select

Room.[Αριθμός δωματίου],Room.[Τύπος Δωματίου],

Reservation.[Ημερομηνία άφιξης], Reservation.[Ημερομηνία

αναχώρησης] from Room full join Reservation on

Reservation.Δωμάτιο = Room.[Αριθμός δωματίου] where

([Ημερομηνία άφιξης] < @outD and [Ημερομηνία αναχώρησης] >

@inD));select distinct [Αριθμός δωματίου] from #RESULTS where

[Τύπος Δωματίου] = @roomtyp; Drop table #RESULTS;";

cmd.Parameters.AddWithValue("inD", checkindate.Text);

cmd.Parameters.AddWithValue("outD", checkoutdate.Text);

cmd.Parameters.AddWithValue("roomtyp", roomtypetxt.Text);

47

Page 48: ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Hotel Management (V 1.0)digilib.teiemt.gr/jspui/bitstream/123456789/1627/1/... · 2015-05-11 · Στον κύριο Αμανατιάδη Άγγελο

ΠΑΡΑΡΤΗΜΑ Ε Βιβλιογραφία

Η C#: http://studentguru.gr/w/tutorials/c0-c/revision/1.aspx

Visual C# Ανάπτυξη εφαρμογών σε γραφικό περιβάλλον με το Visual Studio

2013: http://en.wikipedia.org/wiki/Microsoft_Visual_Studio

Η γλώσσα SQL : delab.csd.auth.gr/courses/dpmsdb/sql.ppt

48