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



Σχετικά έγγραφα
ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Εφαρμογή κατασκευής Προγράμματος εξεταστικών περιόδων. εφαρμογής

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

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

ΕΓΧΕΙΡΙ ΙΟ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΟΥ E-LEARNING - 2 -

Προαπαιτούμενες Ρυθμίσεις: Για την σωστή εκτύπωση των προσφορών απαιτούνται οι εξής ρυθμίσεις στο φυλλομετρητή (browser) που χρησιμοποιείτε:

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

1. Από το κεντρικό site του Ιδρύματος επιλέγουμε το σύνδεσμο "Γραμματείες Τμημάτων".

Εγχειρίδιο Χρήστη Φάση 1: Καταχώρηση Ειδικοτήτων

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Π.Σ. ΦΟΙΤΗΤΟΛΟΓΙΟΥ- ΓΙΑ ΤΟ ΔΙΔΑΣΚΟΝΤΑ (ClassWeb)

4 η Εργαστηριακή Άσκηση

Οδηγίες χρήσης SoSimple

Ιδρυματικό Αποθετήριο ΤΕΙ ΠΕΙΡΑΙΑ

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ MOODLE

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ OPEN ECLASS

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

Οδηγίες Χρήσης της εφαρμογής Class-Web

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΣΥΣΤΗΜΑΤΟΣ ΑΓΡΟΠΕΡΙΒΑΛΛΟΝΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ. Μέτρο 2.2.1

Σύντομη περιγραφή 5. Για να ξεκινήσετε 6. Οι οθόνες του προγράμματος 8. Εγκατάσταση προγράμματος 6 Δημιουργία κωδικών χρήστη 7

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word

Ερευνητικό Αποθετήριο ΤΕΙ Ηπείρου. Οδηγίες κατάθεσης δημοσίευσης στο σύστημα Ερευνητικού Αποθετηρίου CRIS

Ιδρυματικό Αποθετήριο Τ.Ε.Ι. Κεντρικής Μακεδονίας. Οδηγίες κατάθεσης εργασίας στο σύστημα διαχείρισης αποθετηρίου «Απόθεσις»

Ερευνητικό Αποθετήριο Πανεπιστημίου Πειραία

Τ.Ε.Ι. Κεντρική Μακεδονίας Πύλη Διδακτικού Υλικού. Οδηγίες κατάθεσης διδακτικού υλικού στην Πύλη Διδακτικού Υλικού "Μελετητήριο"

Δικτυοκεντρικά Πληροφοριακά Συστήματα

e-κπαίδευση Πλατφόρµα Ασύγχρονης Τηλε-κπαίδευσης Οδηγίες χρήσης για τους σπουδαστές του ΤΕΙ Αθήνας και τους επισκέπτες της δικτυακής πύλης e-κπαίδευση

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ CLASSWEB Εισαγωγή βαθμολογιών από διδάσκοντες μέσω Διαδικτύου

Εγχειρίδιο Χρήσης Ενημερωτικού Δελτίου Μαθήματος Ο.Π.Σ

2. Εισαγωγή Δεδομένων σε Σχεσιακή Βάση Δεδομένων

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Η εφαρµογή ClassWeb δίνει στους διδάσκοντες χρήστες του συστήµατος τη δυνατότητα πρόσβασης µέσω του ιαδικτύου σε ποικίλες υπηρεσίες, όπως:

ΣΧΕΔΙΑΣΜΟΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΡΓΑΣΤΗΡΙΟ 2

Ιδρυματικό Αποθετήριο ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.

Epsilon Net PYLON Platform

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

ΔΙΩΝΗ Οδηγίες κατάθεσης τεκμηρίων στο Ιδρυματικό Αποθετήριο του Πανεπιστημίου Πειραιώς. ELiDOC Systems & Services

Οδηγός χρήσης για Σύστημα κρατήσεων εργαστηριών

MS SQL 2012 Express (Εγκατάσταση με Advanced Services)

PRISMA Win POS Sync Merge Replication

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

ΟΘΟΝΗ 1. Σελίδα 1 από 14

Διαχείριση Βάσης Δεδομένων (dbadmin)

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Πρόσβαση μέσω webdav. ΚΕ.Δ.Δ. Τ.Ε.Ι. Μεσολογγίου. 3. Στην συνέχεια πληκτρολογούμε το username και το password και πατάμε στο κουμπί Είσοδος.

Οδηγίες χρήσης πλατφόρμας τηλεκατάρτισης

ΑΠΟΤΙΜΗΣΗ ΤΟΥ ΕΡΓΟΥ ΤΟΥ ΤΜΗΜΑΤΟΣ ΣΤΟΧΟΙ ΓΙΑ ΤΗΝ ΠΕΡΙΟΔΟ ΠΑΡΑΡΤΗΜΑ ΧΙ

Οδηγίες χρήσης της εφαρμογής για την δημιουργία Τυποποιημένου Εντύπου Πρότασης για Microsoft Access 2007, 2010 και 2013

ΙΔΡΥΜΑΤΙΚΟ ΑΠΟΘΕΤΗΡΙΟ ΤΕΙ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ

DreamSpark. Τώρα λοιπόν που μάθατε περι τίνος πρόκειται, ας δούμε πώς μπορεί κάποιος να κατεβάσει λογισμικό από το site του DreamSpark.

[συνέχεια του εγγράφου Word 2]

Οδηγίες για τους γονείς Διδακτική περίοδος

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

9η Εργαστηριακή Άσκηση: Stored Procedures - Triggers. Αποθηκευμένες Διαδικασίες (Stored Procedures):

ΤΕΙ Πελοποννήσου Τμήμα Πληροφορικής. Οδηγίες Εγκατάστασης VPN Σύνδεσης στο ΤΕΙ Πελοποννήσου

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Φυσική Απογραφή & Παραστατικά Αποθήκης

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

Οδηγίες Χρήσης της MySQL

ΟΔΗΓΟΣ ΧΡΗΣΗΣ WEBMAIL ΤΕΙ ΚΑΛΑΜΑΤΑΣ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΕΛΑΤΩΝ ELTA Courier. Ιούνιος ELTA Courier Διεύθυνση Πληροφορικής

Από τον κατάλογο Web επιλέγουμε το Page, οπότε στο κυρίως μέρος της οθόνης εμφανίζονται οι σελίδες τις οποίες έχουμε δικαίωμα να ενημερώσουμε.

Διαχείριση Επιλογών Διαμόρφωσης

Ειδικά Θέματα Παραμετροποίηση. Premium HRM web ΕΡΓΑΝΗ. Data Communication A.E.

WORDPRESS. Εικόνα 1. Πατώντας στη «Σύνδεση» γράψτε το Username (όνομα χρήστη) και το Password (συνθηματικό) (εικόνα 2) που σας έδωσε ο διαχειριστής

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΓΙΑ ΣΥΣΤΗΜΑ ΚΡΑΤΗΣΕΩΝ ΕΡΓΑΣΤΗΡΙΩΝ ΥΠΗΡΕΣΙΑ ΠΛΗΡΟΦΟΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΠΣ-ΕΔ/69

Οδηγός Εγκατάστασης

Οδηγίες εγκατάστασης Δορυφορικής κάρτας Technisat

wertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdfg

Διαδικτυακές Υπηρεσίες

Active Directory Users and Computers. Τεχνικός Δικτύων & Τηλεπικοινωνιών - Διαχείριση Δικτύων ΙΙ

Ενημερώσεις λογισμικού Οδηγός χρήσης

Διαχείριση Επαγγελματιών Εταιρίας

Βάσεις Δεδομένων 3η εργαστηριακή άσκηση

Οδηγός Χρήσης Η-Βιβλίων EBSCO ΒΙΒΛΙΟΘΗΚΗ & ΚΕΝΤΡΟ ΠΛΗΡΟΦΟΡΗΣΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΛΕΥΚΩΣΙΑΣ

Σημειώσεις για τις Ιστοσελίδες του Google

Οδηγίες εγκατάστασης και λειτουργίας ERPeshop

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy


ΕΣΔ 232: ΟΡΓΑΝΩΣΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ. Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο. Εργαστηριακή Άσκηση 2 24/01/2012

Περιβάλλον Απογραφικού Δελτίου Μαθήματος Πληροφοριακού Συστήματος ΜΟΔΙΠ

1. Άνοιγμα Και Κλείσιμο Της Εφαρμογής Φυλλομετρητή Ιστού (Internet Explorer)

Οδηγίες για τη Ανάπτυξη Ανοικτών Ψηφιακών Μαθημάτων

Διαχείριση Ωρολογίων Προγραμμάτων Εκπαιδευτικών

Διαχείριση Ωρολογίων Προγραμμάτων

Εγκατάσταση της έκδοσης 5.30

Εγκατάσταση Mozilla Firefox

ΑΝΑΠΑΡΑΓΩΓΗ ΜΑΘΗΣΙΑΚΩΝ ΑΝΤΙΚΕΙΜΕΝΩΝ ΣΤΟ ΦΩΤΟΔΕΝΤΡΟ ΜΑΘΗΣΙΑΚΑ ΑΝΤΙΚΕΙΜΕΝΑ. Οδηγίες για Java

ΟΔΗΓΙΕΣ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗΣ

Σχεδιασμός Βάσεων Δεδομένων

ΠΡΟΣΟΧΗ Η έκδοση 5.40 δεν απαιτεί Convert μετά την εγκατάσταση.

CARDISOFT. User Guide. ClassWeb VERSION 1.1. [February] [2007] Cardisoft Ανώνυµη Εταιρία Παραγωγής Λογισµικού

Εργασία 11 η Πίνακες (βασικές ετικέτες, βασικές ιδιότητες) 1. Στο Σημειωματάριο πληκτρολογήστε τον παρακάτω κώδικα:

Εγκατάσταση Microsoft SQL Server

ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 8 ΝΟΕΜΒΡΙΟΥ 2014

ΟΔΗΓΟΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΠΙΣΤΟΠΟΙΗΤΙΚΟΥ ΑΣΦΑΛΕΙΑΣ WEBMAIL ΤΕΙ ΚΑΛΑΜΑΤΑΣ

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

ΥΠΟΒΟΛΗ ΑΝΑΛΩΣΙΜΩΝ ΥΛΙΚΩΝ

Οδηγίες Καταχώρησης Τεκμηρίου

Transcript:

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΑΚΑΔΗΜΑΙΚΟ ΕΤΟΣ 2009 2010 ΘΕΜΑ: «Εφαρμογή κατασκευής προγράμματος εξεταστικών περιόδων» ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ του ΜΟΛΛΑ Μ. ΑΧΜΕΤ Α.Μ.1528 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: Δρ. ΚΩΝΣΤΑΝΤΙΝΟΣ ΑΝΤΩΝΗΣ ΛΑΜΙΑ 2009 Πρόλογος 1

Περιεχόμενα Πίνακας Εικόνων και σχημάτων... 3 Πρόλογος... 4 Περίληψη... 5 Σχεδιασμός του συστήματος... 6 Τα ζητούμενα από την εφαρμογή και τα κριτήρια... 6 Περιγραφή του αλγορίθμου της εφαρμογής... 6 Η Βάση Δεδομένων... 8 Γενικό ER (Entity Relationship) Διάγραμμα Βάσης Δεδομένων... 8 Ανάλυση Οντοτήτων της Βάσεις Δεδομένων... 10 Αποθηκευμένες διαδικασίες (Stored Procedures)... 15 Προδιαγραφές και Απαιτήσεις Συστήματος... 17 Τοπική πρόσβαση στην εφαρμογή... 17 Εγκατάσταση της Βάσεις Δεδομένων στο SQL Server... 18 Ανακεφαλαίωση βημάτων που πρέπει να γίνουν για την εκτέλεση εφαρμογής... 22 Απομακρυσμένη πρόσβαση στην εφαρμογή μέσω WEB... 22 Οδηγίες Χρήσεως... 24 Κεντρική σελίδα της εφαρμογής... 24 Σελίδα διαχείρισης καθηγητών... 25 Τεκμηρίωση του Κώδικα... 37 Βοηθητικά αρχεία κώδικα... 85 Αρχείο διαμόρφωσης... 114 Επιπλέον βιβλιοθήκες που χρησιμοποιήθηκαν... 115 ΠΑΡΑΡΤΗΜΑ Ι... 116 Εγκατάσταση Internet Information Services (IIS)... 116 Ρυθμίσεις του IIS... 119 Βιβλιογραφία... 124 Πρόλογος 2

Πίνακας Εικόνων και σχημάτων ΕΙΚΟΝΑ 1 ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ ΑΛΓΟΡΙΘΜΟΥ... 7 ΕΙΚΟΝΑ 2 ΓΕΝΙΚΟ ER ΔΙΑΓΡΑΜΜΑ... 8 ΕΙΚΟΝΑ 3 ΣΧΗΜΑ ΒΑΣΗΣ ΜΕΣΑ ΣΤΟ SQL SERVER... 9 ΕΙΚΟΝΑ 4 ΛΙΣΤΑ STORED PROCEDURE ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΗΘΗΚΑΝ ΣΤΗΝ ΕΦΑΡΜΟΓΗ... 16 ΕΙΚΟΝΑ 5 ΕΠΑΝΑΦΟΡΑ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΑΠΟ BACKUP ΑΡΧΕΙΟ... 21 ΕΙΚΟΝΑ 6 ΕΠΙΛΟΓΗ ΤΗΣ ΔΙΑΔΡΟΜΗΣ ΤΗΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΣΤΟΝ ΔΙΣΚΟ... 21 ΕΙΚΟΝΑ 7 ΚΕΝΤΡΙΚΗ ΣΕΛΙΔΑ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 24 ΕΙΚΟΝΑ 8 ΣΕΛΙΔΑ ΔΙΑΧΕΙΡΙΣΗΣ ΚΑΘΗΓΗΤΩΝ... 25 ΕΙΚΟΝΑ 9 ΣΕΛΙΔΑ ΔΙΑΧΕΙΡΙΣΗΣ ΜΑΘΗΜΑΤΩΝ... 26 ΕΙΚΟΝΑ 10 ΣΕΛΙΔΑ ΔΙΑΧΕΙΡΙΣΗΣ ΑΙΘΟΥΣΩΝ... 27 ΕΙΚΟΝΑ 11 ΣΕΛΙΔΑ ΑΝΤΙΣΤΟΙΧΗΣΗΣ ΜΑΘΗΜΑΤΩΝ ΜΕ ΤΟΥΣ ΔΙΔΑΣΚΟΝΤΕΣ ΚΑΘΗΓΗΤΕΣ... 28 ΕΙΚΟΝΑ 12 ΣΕΛΙΔΑ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ 1 Ο ΒΗΜΑ... 29 ΕΙΚΟΝΑ 13 ΣΕΛΙΔΑ ΕΙΣΑΓΩΓΗΣ ΗΜΕΡΟΜΗΝΙΩΝ ΕΞΕΤΑΣΗΣ 2 Ο ΒΗΜΑ... 30 ΕΙΚΟΝΑ 14 ΣΕΛΙΔΑ ΕΙΣΑΓΩΓΗΣ ΜΑΘΗΜΑΤΩΝ ΣΤΟ ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΗΣ 3 Ο ΒΗΜΑ... 31 ΕΙΚΟΝΑ 15 ΣΕΛΙΔΑ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΕΧΕΙΑ... 32 ΕΙΚΟΝΑ 16 ΣΕΛΙΔΑ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΥΝΕΧΕΙΑ... 33 ΕΙΚΟΝΑ 17 ΣΕΛΙΔΑ ΕΚΤΥΠΩΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ... 34 ΕΙΚΟΝΑ 18 ΔΗΜΙΟΥΡΓΙΑ PDF ΑΡΧΕΙΟΥ... 35 ΕΙΚΟΝΑ 19 PDF ΑΡΧΕΙΟ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ... 36 ΕΙΚΟΝΑ 20 ΔΗΜΙΟΥΡΓΙΑ SITE ΣΤΑ WINDOWS XP PROFESSIONAL... 122 ΕΙΚΟΝΑ 21 ΟΡΙΣΜΟΣ ΚΑΤΑΛΟΓΟΥ ΑΡΧΕΙΩΝ ΤΗΣ ΕΦΑΡΜΟΓΗΣ ΣΤΑ WINDOWS XP PROFESSIONAL... 122 ΕΙΚΟΝΑ 22 ΟΡΙΣΜΟΣ ΦΑΚΕΛΟΥ ΣΤΑ WINDOWS XP PROFESSIONAL ΣΥΝΕΧΕΙΑ... 122 ΕΙΚΟΝΑ 23 ΟΡΙΣΜΟΣ ΔΙΚΑΙΩΜΑΤΩΝ ΠΡΟΣΒΑΣΗΣ ΣΤΑ WINDOWS XP PROFESSIONAL, ΕΠΙΛΕΓΟΥΜΕ ΟΛΑ ΤΑ CHECK BOX. 123 ΕΙΚΟΝΑ 24 ΤΕΛΟΣ ΔΙΑΔΙΚΑΣΙΑΣ ΡΥΘΜΙΣΕΩΝ IIS ΣΤΑ WINDOWS XP PROFESSIONAL... 123 Πρόλογος 3

Πρόλογος Η ραγδαία ανάπτυξη του Internet και των τεχνολογιών που υλοποιούνται μέσα από αυτό, έχει οδηγήσει τα τελευταία χρόνια στη δημιουργία της Κοινωνίας της Πληροφορίας. Σήμερα έχουμε την ικανότητα να επικοινωνούμε και να ανταλλάσσουμε πληροφορίες γρήγορα και οικονομικά, από και προς οποιοδήποτε σημείο του πλανήτη. Υπηρεσίες όπως το ηλεκτρονικό ταχυδρομείο, οι ηλεκτρονικές εφημερίδες, η μετάδοση εικόνας και ήχου οδηγούν προς μία κοινωνία στην οποία όλες οι λειτουργίες αυτοματοποιούνται. Είναι μια τεχνολογία που εξελίσσεται συνέχεια και υπάρχουν πλέον δυνατότητες ανάπτυξης αξιόπιστων και πολύπλοκων εφαρμογών που χρησιμοποιούν τεχνολογίες βασιζόμενα στο WWW όπως τραπεζικές συναλλαγές μέσω internet (e-banking), κρατικές υπηρεσίες όπως καταβολή φορολογικών δηλώσεων, ΦΠΑ κτλ μέσω του internet, και έτσι λοιπόν δημιουργήθηκε η ιδέα κατασκευής τέτοιας εφαρμογής που να βοηθάει τους υπεύθυνους καθηγητές να κατασκευάσουν το πρόγραμμα των εξεταστικών περιόδων της σχολής χρησιμοποιώντας αυτή την τεχνολογία και να έχουν πρόσβαση στην εφαρμογή κάθε στιγμή και να δημιουργούν το πρόγραμμα της εξεταστικής περιόδου και να είναι δημοσιοποιημένο κιόλας για τον ενδιαφερόμενο φοιτητή και καθηγητή στο internet άμεσα. Για την κατασκευή αυτής της εφαρμογής στα πλαίσια της πτυχιακής εργασίας αφιερώθηκε πολύς χρόνος και κόπος για να γίνει σωστή δουλειά ώστε να ικανοποιούνται οι απαιτήσεις του για την εργασία αυτή, Πιστεύω ότι καλύφθηκαν σε ικανοποιητικό βαθμό τα ζητούμενα της εργασίας αυτής και θα ήταν μεγάλη χαρά να χρησιμοποιείται η εφαρμογή αυτής της πτυχιακής εργασίας στην πράξη. Τελειώνοντας αυτόν τον σύντομο πρόλογο ήθελα να ευχαριστήσω τους γονείς μου που χωρίς την υποστήριξη τους δεν θα είχα την δυνατότητα να περατώσω τις σπουδές μου καθώς επίσης ευχαριστώ πολύ θερμά τον κ. Δρ. Κωνσταντίνο Αντωνή που μου έδωσε την δυνατότητα αυτή και για τις υποδείξεις του, η προσωπικότητα του οποίου θα είναι ένα πρότυπο για εμένα στην ζωή μου όπως επίσης και του κ. Δρ. Κωνσταντίνο Αναστασίου που δεν θα τους ξεχάσω ποτέ. Τέλος ευχαριστώ όλους που με βοήθησαν στην συγγραφή του κώδικα της εφαρμογής. Κομοτηνή Νοέμβριος 2009 Αχμέτ Μολλά Μ. Πρόλογος 4

Περίληψη Η εφαρμογή αυτής της πτυχιακής εργασίας έχει σκοπό να βοηθήσει τον κάθε υπεύθυνο καθηγητή για την δημιουργία προγράμματος των εξεταστικών περιόδων. Η εφαρμογή αυτή βοηθάει στον χρήστη του να κατασκευάσει με εύκολο τρόπο το πρόγραμμα εξεταστικών περιόδων. Για την κατασκευή του προγράμματος απαιτείται να καταχωρηθούν τα ονόματα όλων των καθηγητών που διδάσκουν στο τμήμα και για τους ωρομίσθιους καθηγητές απαιτείται η καταχώρηση και των συνολικών ωρών που διδάσκουν μάθημα ανά εβδομάδα, για να γίνεται έλεγχος με τις ώρες πού θα επιτηρούν κάποιο μάθημα, καθώς επίσης καταχωρούνται και όλα τα μαθήματα του τμήματος, ώστε να γίνεται από την εφαρμογή αντιστοίχηση μαθημάτων με τον διδάσκοντα καθηγητή, και καταχωρούνται και οι διαθέσιμες αίθουσες, αμφιθέατρα κτλ του τμήματος που διεξάγονται οι εξετάσεις μαθημάτων. Μετά την αρχική φάση καταχώρησης των απαραίτητων στοιχείων ο χρήστης της εφαρμογής προχωράει στην φάση κατασκευής του προγράμματος, στο πρώτο βήμα εισάγει τα στοιχεία της εξεταστικής περιόδου (ακαδημαϊκό έτος, εξεταστική περίοδος Α ή Β, και το εξάμηνο χειμερινό ή εαρινό) και στο δεύτερο βήμα ο χρήστης επιλέγει από το ημερολόγιο τις ημέρες διεξαγωγής των εξετάσεων και τις καταχωρεί στη βάση δεδομένων. Στο τρίτο και τελευταίο βήμα επιλέγοντας το εξάμηνο σπουδών εμφανίζονται τα αντίστοιχα μαθήματα του κάθε εξαμήνου και αντίστοιχα εμφανίζονται τα στοιχεία του μαθήματος και ο χρήστης επιλέγει την ημερομηνία και την ώρα που επιθυμεί να γίνει η διεξαγωγή της εξέτασης του κάθε μαθήματος και εισάγει τις αίθουσες και τους επιτηρητές που θα επιτηρήσουν το μάθημα στις αντίστοιχες λίστες. Τέλος επιλέγει αποθήκευση και ολοκληρώνεται η διαδικασία καταγραφής του μαθήματος στο πρόγραμμα της εξεταστικής. Περίληψη 5

Σχεδιασμός του συστήματος Τα ζητούμενα από την εφαρμογή και τα κριτήρια Τα ζητούμενα από την εφαρμογή είναι: 1. Να ελέγχει τις συνολικές ώρες των ωρομίσθιων ή συμβασιούχων καθηγητών που διδάσκουν την εβδομάδα και θα είναι επιτηρητές σε κάποιο μάθημα, να μην υπερβαίνει τις ώρες που διδάσκουν την εβδομάδα, για παράδειγμα ένας καθηγητής που διδάσκει 8 ώρες μάθημα την εβδομάδα το μέγιστο και πρέπει να επιτηρεί κάποιο μάθημα είναι 8 ώρες, σε διαφορετική περίπτωση γίνεται παράβαση της σύμβασης και δεν αμείβεται. 2. Την ίδια ημέρα να μην προγραμματίζεται εξέταση μαθήματος του ίδιου εξαμήνου εκτός αν είναι διαφορετικής κατεύθυνσης Περιγραφή του αλγορίθμου της εφαρμογής Η εφαρμογή βασίζεται στις εξής κύριες οντότητες Καθηγητής, Μάθημα, Αίθουσα, Καθηγητής: Χρειάζεται το όνομα και το επώνυμο του καθηγητή, την κατηγορία του δηλαδή αν είναι μόνιμος διορισμένος καθηγητής,ή αν είναι ωρομίσθιος που στην περίπτωση αυτή χρειάζεστε και τις συνολικές ώρες που διδάσκει την εβδομάδα. Τις πληροφορίες αυτές τις χρειάζεστε επειδή σύμφωνα με τον εσωτερικό κανονισμό της σχολής οι μόνιμοι καθηγητές δεν επιτηρούν κάποιο μάθημα, ο κώδικας τις εφαρμογής βασίζεται σε αυτό το κριτήριο για τον διαχωρισμό των επιτηρητών και για τις ώρες που θα επιτηρήσουν την εβδομάδα. Μάθημα: Γίνεται, καταχώρηση του κωδικού του μαθήματος, που στην πράξη χρησιμεύει ως κλειδί στην βάση δεδομένων ενώ δεν έχει κάποιο λειτουργικό χαρακτήρα μέσα στην εφαρμογή, και έτσι εισάγετε το όνομα του μαθήματος και το εξάμηνο του και το δυναμικό, πόσα άτομα παρακολουθούν το μάθημα για να γίνει σωστή ανάθεση αιθουσών., Επίσης καταχωρείται και η κατεύθυνση των μαθημάτων που στην έκδοση αυτής της εφαρμογής αυτό το κριτήριο δεν αξιοποιήθηκε o Αντιστοίχηση καθηγητή με μάθημα : στο σημείο αυτό από την λίστα καταχωρημένων καθηγητών γίνεται αντιστοίχηση με τα μαθήματα της λίστας που έχουν καταχωρηθεί πριν. Αίθουσα: χρειάζεστε το όνομα της αίθουσας την χωρητικότητα ατόμων που μπορεί να δεχτεί για εξέταση και τις απαιτήσεις από επιτηρητές. Σχεδιασμός του συστήματος 6

Η εφαρμογή λαμβάνοντας αυτά τα δεδομένα βοηθάει στην κατασκευή του προγράμματος εξεταστικής στα παρακάτω σημεία: Αφαίρεση της ημερομηνίας από την λίστα ημερομηνιών όταν τοποθετηθεί το μάθημα στο πρόγραμμα. Αποτρέπεται να γίνει ανάθεση μαθήματος για εξέταση του ίδιου εξαμήνου την ίδια ημέρα. Αφαίρεση δυο ωρών 1 ανά επιτήρηση από το σύνολο ωρών διδασκαλίας του επιτηρητή την εβδομάδα. Αποτρέπεται να γίνει υπέρβαση ωρών στις επιτηρήσεις. ΑΡΧΗ ΚΑΘΗΓΗΤΕΣ ΜΑΘΗΜΑΤΑ ΕΊΝΑΙ ΩΡΟΜΙΣΘΙΟΣ ΚΑΘΗΓΗΤΗΣ ; ΝΑΙ ΕΙΣΑΓΩΓΗ ΣΥΝΟΛΟ ΩΡΩΝ ΠΟΥ ΔΙΔΑΣΚΕΙ ΤΗΝ ΕΒΔΟΜΑΔΑ ΕΠΙΤΗΡΗΤΗΣ ΟΧΙ ΔΙΔΑΣΚΑΛΙΑ ΜΑΘΗΜΑΤΟΣ ΕΛΕΓΧΟΣ ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ ΩΡΕΣ ΕΠΙΤΗΡΗΣΗΣ ΌΧΙ ΥΠΕΡΒΑΣΗ ΕΠΙΤΗΡΗΣΗ ΕΞΕΤΑΣΗΣ ΗΜΕΡΟΜΗΝΙΑ ΚΑΙ ΩΡΑ ΕΞΕΤΑΣΗΣ ΥΠΕΡΒΑΣΗ ΤΕΛΟΣ Εικόνα 1 Διάγραμμα ροής αλγορίθμου 1 Σημ.: Η διάρκεια εξέτασης κάποιου μαθήματος είναι δύο ώρες και οι επιτηρήσεις διαρκούν όσο και η διάρκεια εξέτασης Σχεδιασμός του συστήματος 7

Η Βάση Δεδομένων Η βάση δεδομένων που χρησιμοποιείται για την αποθήκευση των δεδομένων στην εφαρμογή είναι η Microsoft SQL, και γίνεται χρήση αποθηκευμένων διαδικασιών (Stored Procedures) 2 και απαιτείται η εφαρμογή Microsoft SQL Server 2005 ή νεότερη έκδοση της. Γενικό ER (Entity Relationship) Διάγραμμα Βάσης Δεδομένων Όνομα Κωδικός Όνομα Επώνυμο Κατηγορία Ώρες Διδασκαλίας Κωδικός Κωδικός Μαθήματος Κωδικός Καθηγητη Ημέρα Ώρα Αίθουσα Διδασκαλίας Κωδικός Εξάμηνο Κατεύθυνση Εισηγητής Δυναμικό ΚΑΘΗΓΗΤΗΣ 1 ΔΙΔΑΣΚΕΙ N ΜΑΘΗΜΑ Κωδικός Επιτηριτή Κωδικός Ημερομηνία 1 N ΕΠΙΤΗΡΕΙ Κωδικός Εξέτασης Ημέρα Ώρα 1 Κωδικός Ακαδημαϊκό Έτος ΕΞΕΤΑΣΤΙΚΗ Εξεταστική Περίοδος 1 Εξάμηνο Κωδικός Κωδικός Εξαμήνου Εξεταστικής Κωδικός Εξεταστικής Κωδικός Εξεταστικής ΕΞΑΜΗΝΟ ΕΞΕΤΑΣΤΙΚΗΣ Όνομα Εξαμήνου Εξεταστικής Εξεταζόμενο Μάθημα ΕΞΕΤΑΣΗ 1 ΗΜΕΡΟΜΗΝΙΑ ΕΞΕΤΑΣΗΣ Ημερομηνία Κωδικός Εξαμήνου Εξεταστικής Εισηγητής Επόπτης Ημέρες Εξεταστικής Ν Κωδικός Εξέτασης ΑΙΘΟΥΣΑ ΕΞΕΤΑΣΗΣ Κωδικός Αίθουσας 1 Κωδικός Όνομα ΑΙΘΟΥΣΑ Δυναμικό Απαιτήσεις Επιτηρητών Εικόνα 2 Γενικό ER διάγραμμα 2 Στο επόμενο κεφάλαιο γίνεται εκτενής αναφορά για την χρήση τους, για περισσότερες πληροφορίες για την λειτουργία τους μπορείτε ανατρέξετε στις ιστοσελίδες : http://en.wikipedia.org/wiki/stored_procedure http://msdn.microsoft.com/en-us/library/ms190669.aspx http://msdn.microsoft.com/en-us/library/ms345415.aspx Σχεδιασμός του συστήματος 8

Εικόνα 3 Σχήμα βάσης μέσα στο SQL Server Σχεδιασμός του συστήματος 9

Ανάλυση Οντοτήτων της Βάσεις Δεδομένων ΟΝΤΟΤΗΤΑ : ΟΝΟΜΑ: Καθηγητής Kathigitis ΠΕΡΙΓΡΑΦΗ: Καταγράφονται τα στοιχεία των καθηγητών που διδάσκουν μάθημα Κλειδί Ιδιότητα Τύπος Δεδομένων Περιγραφή Καταχωρείται αυτόματα ένας PK Κωδικός INT κωδικός καθηγητή, δεν απαιτείται από τον χρήστη εισαγωγή κωδικού Όνομα NVARCHAR(MAX) Καταχωρείται το όνομα του διδάσκοντος καθηγητή Επώνυμο NVARCHAR(MAX) Καταχωρείται το επώνυμο του διδάσκοντος καθηγητή Κατηγορία NVARCHAR(MAX) Καταχωρείται αν είναι μόνιμος ή Ώρες διδασκαλίας INT ωρομίσθιος καθηγητής στο τμήμα Αν ο καθηγητής είναι ωρομίσθιος, καταχωρείται σύνολο ωρών που διδάσκει την εβδομάδα ΟΝΤΟΤΗΤΑ : ΟΝΟΜΑ: Μάθημα Mathima ΠΕΡΙΓΡΑΦΗ: Καταγράφονται τα απαραίτητα στοιχεία των θεωρητικών μαθημάτων που διδάσκονται Κλειδί Ιδιότητα Τύπος Δεδομένων Περιγραφή Καταχωρείται ο κωδικός του PK Κωδικός NVARCHAR(4) μαθήματος, απαιτείται από τον χρήστη η εισαγωγή του κωδικού Καταχωρείται το όνομα του Όνομα NVARCHAR(MAX) μαθήματος π.χ. Λειτουργικά Συστήματα Ι Εξάμηνο NVARCHAR(50) Καταχωρείται το εξάμηνο στο οποίο διδάσκεται το μάθημα Κατεύθυνση NVARCHAR(50) Καταχωρείται η κατεύθυνση του μαθήματος αν υπάρχει Καταχωρούνται πόσα άτομα Δυναμικό INT παρακολουθούν ή έχουν δηλώσει το μάθημα Σχεδιασμός του συστήματος 10

ΟΝΤΟΤΗΤΑ : ΟΝΟΜΑ: Αίθουσα Aithousa ΠΕΡΙΓΡΑΦΗ: Καταγράφονται τα απαραίτητα στοιχεία των αιθουσών του τμήματος Κλειδί Ιδιότητα Τύπος Δεδομένων Περιγραφή Καταχωρείται αυτόματα ένας PK Κωδικός INT κωδικός αίθουσας, δεν απαιτείται από τον χρήστη εισαγωγή κωδικού Όνομα NVARCHAR(50) Καταχωρείται το όνομα της αίθουσας Δυναμικό INT Καταχωρείται ο συνολικός αριθμός φοιτητών που μπορεί να εξυπηρετήσει η αίθουσα για την εξέταση του μαθήματος Απαιτήσεις Καταχωρείται ο αριθμός των INT επιτηρητών επιτηρητών που απαιτεί η αίθουσα ΟΝΤΟΤΗΤΑ : ΟΝΟΜΑ: ΠΕΡΙΓΡΑΦΗ: Κλειδί Ιδιότητα Εξεταστική Exetastiki Καταγράφονται τα στοιχεία της εξεταστικής περιόδου Τύπος Περιγραφή Δεδομένων Καταχωρείται αυτόματα ένας κωδικός εξεταστικής περιόδου, δεν απαιτείται από τον χρήστη PK Κωδικός INT Ακαδημαϊκό έτος Εξεταστική περίοδος Εξάμηνο NCHAR(10) NCHAR(10) NCHAR(10) εισαγωγή κωδικού Καταχωρείται το ακαδημαϊκό έτος διδασκαλίας π.χ. 2009-2010 Καταχωρείται η περίοδος εξετάσεων, πρώτη ή δεύτερη εξεταστική π.χ. Α ή Β Καταχωρείται η περίοδος του εξαμήνου Εαρινό ή Χειμερινό εξάμηνο Σχεδιασμός του συστήματος 11

ΟΝΤΟΤΗΤΑ : ΟΝΟΜΑ: Ημερομηνία εξέτασης ExetastikiDates Καταγράφονται οι ημερομηνίες στις οποίες θα ΠΕΡΙΓΡΑΦΗ: πραγματοποιούνται εξετάσεις κάποιου μαθήματος Τύπος Κλειδί Ιδιότητα Περιγραφή Δεδομένων Καταχωρείται αυτόματα ένας PK Κωδικός INT βοηθητικός κωδικός από το SQL FK Κωδικός εξεταστικής περιόδου Ημερομηνία INT DATETIME server Καταχωρείται ο κωδικός της οντότητας εξεταστική για να γίνετε διαχωρισμός των εξεταστικών περιόδων και ωρών εξέτασης κάθε εξεταστικής περιόδου Καταχωρούνται οι ημερομηνίες εξέτασης της εξεταστικής περιόδου ΟΝΤΟΤΗΤΑ : ΟΝΟΜΑ: Εξέταση Exetasi Στην οντότητα αυτή καταχωρούνται τα στοιχεία του μαθήματος ΠΕΡΙΓΡΑΦΗ: που αφορούν την εξέταση του Τύπος Κλειδί Ιδιότητα Περιγραφή Δεδομένων Καταχωρείται αυτόματα ένας κωδικός εξέτασης από το SQL PK Κωδικός INT Server και δεν απαιτείται από τον FK FK Κωδικός εξεταστικής Κωδικός ημερομηνίας εξεταστικής Εξεταζόμενο μάθημα Ημερομηνία INT INT NVARCHAR(MAX) NVARCHAR(MAX) χρήστη εισαγωγή κωδικού Καταχωρείται ο κωδικός της εξεταστικής περιόδου από την οντότητα εξεταστική Καταχωρείται ο κωδικός της ημερομηνίας εξέτασης του μαθήματος Καταχωρείται το μάθημα που θα εξεταστεί σε κάποια ημερομηνία που ορίστηκε στο προηγούμενο πεδίο Καταχωρείται η ημερομηνία εξέτασης του μαθήματος, η ημερομηνία αυτή προέρχεται από την οντότητα Ημερομηνία Σχεδιασμός του συστήματος 12

Ημέρα Ώρα Εισηγητής Επόπτης NCHAR(10) NCHAR(10) NVARCHAR(MAX) NVARCHAR(MAX) εξέτασης, είναι η ημερομηνία που αντιστοιχεί στον κωδικό της ημερομηνίας Καταχωρείται το όνομα της ημέρας που θα γίνει η εξέταση του μαθήματος Καταχωρείται η ώρα που θα διεξαχθεί η εξέταση του μαθήματος Καταχωρείται το επώνυμο του εισηγητή του μαθήματος Καταχωρείται το επώνυμο του επόπτη του μαθήματος (είναι ίδιο με το όνομα του εισηγητή) ΟΝΤΟΤΗΤΑ : Εξάμηνο Εξεταστικής ΟΝΟΜΑ: ExetastikiExaminos ΠΕΡΙΓΡΑΦΗ: Καταγράφεται το εξάμηνο του εξεταστικού προγράμματος π.χ. για το πρόγραμμα του Α εξάμηνου, του Β εξάμηνο κτλ Κλειδί Ιδιότητα Τύπος Δεδομένων Περιγραφή Καταχωρείται αυτόματα ένας PK Κωδικός INT βοηθητικός κωδικός από το SQL FK Κωδικός εξεταστικής περιόδου Όνομα εξαμήνου INT NVARCHAR(MAX) server Καταχωρείται ο κωδικός της οντότητας εξεταστική για να γίνετε διαχωρισμός των εξεταστικών περιόδων και των εξαμήνων κάθε περιόδου Καταχωρούνται οι ημερομηνίες εξέτασης της εξεταστικής περιόδου Σχεδιασμός του συστήματος 13

ΟΝΤΟΤΗΤΑ : ΟΝΟΜΑ: ΠΕΡΙΓΡΑΦΗ: Κλειδί Διδάσκει Didaskei Στην οντότητα αυτή γίνετε αντιστοίχηση του καθηγητή με το μάθημα που διδάσκει επίσης γίνεται καταχώρηση της ημερομηνίας και ώρας διδασκαλίας του μαθήματος Ιδιότητα Τύπος Δεδομένων PK Κωδικός INT FK FK Κωδικός καθηγητή Κωδικός μαθήματος Ημέρα Ώρα INT INT NCHAR(10) NCHAR(10) Περιγραφή Καταχωρείται αυτόματα ένας βοηθητικός κωδικός διδασκαλίας από το SQL Server και δεν απαιτείται από τον χρήστη εισαγωγή κωδικού Καταχωρείται το ξένο κλειδί (FK) της οντότητας καθηγητής για τον εντοπισμό του καθηγητή και μαθήματος που διδάσκει Καταχωρείται ο κωδικός του μαθήματος για να γίνει αντιστοίχηση με των κωδικό του καθηγητή Καταχωρείται η ημέρα διδασκαλίας του μαθήματος από τον καθηγητή Καταχωρείται η ώρα διδασκαλίας του μαθήματος από τον καθηγητή ΟΝΤΟΤΗΤΑ : ΟΝΟΜΑ: ΠΕΡΙΓΡΑΦΗ: Κλειδί FK FK Ιδιότητα Επιτηρεί Epitirei Στην οντότητα αυτή καταγράφονται οι επιτηρήσεις που κάνουν οι καθηγητές Τύπος Περιγραφή Δεδομένων Κωδικός επιτηρητή Κωδικός εξέτασης INT INT Καταχωρείται ο κωδικός του καθηγητή που επιτηρεί κάποια εξέταση μαθήματος Καταχωρείται ο κωδικός εξέτασης από την οντότητα εξέταση για ν γίνει αντιστοίχηση του καθηγητή με το μάθημα που επιτηρεί Σχεδιασμός του συστήματος 14

ΟΝΤΟΤΗΤΑ : ΟΝΟΜΑ: Αίθουσα εξέτασης AithousaExetasi Καταγράφεται η αίθουσα που διεξάγεται η εξέταση κάποιου ΠΕΡΙΓΡΑΦΗ: μαθήματος, είναι μια βοηθητική οντότητα που κρατάει τον κωδικό της αίθουσας και της εξέτασης Τύπος Κλειδί Ιδιότητα Περιγραφή Δεδομένων Κωδικός Καταχωρείται ο κωδικός της FK INT FK αίθουσας Κωδικός εξέτασης INT αίθουσας της οντότητας αίθουσα Καταχωρείται ο κωδικός εξέτασης της οντότητας εξέταση Αποθηκευμένες διαδικασίες (Stored Procedures) Στην υλοποίηση της εφαρμογής χρησιμοποιήθηκαν Stored Procedures, είναι αρχεία που περιέχουν ερωτήματα SQL για εισαγωγή, τροποποίηση, και για άντληση δεδομένων από την βάση δεδομένων είναι αποθηκευμένες στην μεριά της βάσεις δεδομένων στο SQL Server και καλούνται μέσα από τον κώδικα της εφαρμογής όπου χρειάζονται. Παρακάτω περιλαμβάνεται ένα παράδειγμα περιεχομένου αυτών των αρχείων και η λίστα με τις Stored Procedures που χρησιμοποιήθηκαν. Κάθε ενδιαφερόμενος πρέπει να ανατρέξει αυτή την λίστα μέσα από το SQL Server στον ειδικό φάκελο, για την δημιουργία και για την τροποποίηση τους απαιτείται στοιχειώδη γνώση σύνταξη SQL ερωτημάτων. USE [exetastiki] GO /****** Object: StoredProcedure [dbo].[kathigitisget] Script Date: 9/19/2009 13:54:28 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[kathigitisget] @Kodikos int as SELECT [Kodikos],[Onoma],[Eponymo],[Katigoria],[OresDidaskalias] FROM Kathigitis WHERE Kodikos=@Kodikos Παράδειγμα Stored Procedure Σχεδιασμός του συστήματος 15

Εικόνα 4 Λίστα Stored Procedure που χρησιμοποιήθηκαν στην εφαρμογή 16

Προδιαγραφές και Απαιτήσεις Συστήματος Για την ανάπτυξη αυτής της εφαρμογής χρησιμοποιήθηκε η πλατφόρμα προγραμματισμού Microsoft Visual Studio 2008 και για την υποστήριξη της βάσης δεδομένων χρησιμοποιήθηκε η Microsoft SQL Server 2008 η εφαρμογή βασίζεται σε WEB τεχνολογία ASP.NET και χρησιμοποιήθηκε η γλώσσα προγραμματισμού C# για την εκτέλεση των λειτουργιών στις ιστοσελίδες. Τοπική πρόσβαση στην εφαρμογή Η εφαρμογή για να εκτελεστή τοπικά στο μηχάνημα του χρήστη απαιτείται να είναι εγκατεστημένη η εφαρμογή IIS (Internet Information Services) της Microsoft που είναι μία επιπλέων δυνατότητα των λειτουργικών συστημάτων της Microsoft το IIS χρησιμεύει στην μεταγλώττιση του κώδικα της εφαρμογής (για οδηγίες εγκατάστασης και για τις ρυθμίσεις βλέπε παράρτημα Ι ). Επιπλέων για να έχουμε πρόσβαση στην βάση δεδομένων της εφαρμογής χρειαζόμαστε την εφαρμογή Microsoft SQL Server είναι μια εμπορική εφαρμογή της εταιρία Microsoft για να έχουμε επιπλέων δυνατότητες εξυπηρετητή κτλ χρειάζεται η αγορά του προϊόντος ωστόσο η εταιρία διαθέτει μία δωρεάν έκδοση αυτού του προϊόντος με τις απαραίτητες δυνατότητες που μπορεί να χρησιμοποιηθεί για ανάπτυξη εφαρμογών και για παροχή πρόσβασης στις βάσεις δεδομένων. μπορείτε να κατεβάσετε και να εγκαταστήσετε δωρεάν την έκδοση SQL Server 2005 Express Edition SP3 από την διεύθυνση http://www.microsoft.com/sqlserver/2005/en/us/express-down.aspx Για την εύκολη διαχείριση των βάσεων δεδομένων συνιστάται να κατεβάσετε και να εγκαταστήσετε την εφαρμογή SQL Server Management Studio Express από την ίδια διεύθυνση της εταιρίας. Μετά την εγκατάσταση των προαπαιτούμενων εφαρμογών απαιτείται να φορτωθεί η βάση δεδομένων στο SQL Server. Η διαδικασία αυτή περιγράφεται παρακάτω Προδιαγραφές και Απαιτήσεις Συστήματος 17

Εγκατάσταση της Βάσεις Δεδομένων στο SQL Server Για να διαχειριστείτε εύκολα την βάση δεδομένων σας χρησιμοποιείτε την βοηθητική εφαρμογή SQL Server Management Studio. Για να εκτελέσετε την εφαρμογή πηγαίνετε Start > All Programs > Microsoft SQL Server 20XX > SQL Server Management Studio. Μετά την εισαγωγή στοιχείων πρόσβασης στο σύστημα πηγαίνουμε στο Object Explorer επιλέγουμε Databases και με το δεξί κλικ επιλέγουμε Attach. Προδιαγραφές και Απαιτήσεις Συστήματος 18

Στο παράθυρο που σας εμφανίζεται επιλέγετε το κουμπί Add και βρίσκετε την διαδρομή της βάσης δεδομένων μας (η βάση δεδομένων της εφαρμογής είναι το αρχείο exetastiki.mdf ). Στο τελευταίο παράθυρο που σας εμφανίζεται επιλέγετε ΟΚ. Προδιαγραφές και Απαιτήσεις Συστήματος 19

Έτσι λοιπόν έχετε φορτώσει την βάση δεδομένων της εφαρμογής στο SQL Server και είναι έτοιμο για κάθε χρήση Προδιαγραφές και Απαιτήσεις Συστήματος 20

Μία άλλη διαφορετική λύση είναι να φορτώσουμε την βάση δεδομένων από backup αρχείο από τον Object Explorer επιλέγουμε Databases και με το δεξί κλικ επιλέγουμε Restore Database στο παράθυρο που εμφανίζεται από το μενού Source for restore επιλέγετε From device και εισάγετε την διαδρομή της βάσεις δεδομένων επιλέγοντας το πλήκτρο με της τελείες, θα εμφανιστεί το παράθυρο της Εικόνας 6 προσέχετε να είναι επιλεγμένη All Files στην επιλογή File of type. Εικόνα 5 Επαναφορά βάσεις δεδομένων από Backup αρχείο Εικόνα 6 Επιλογή της διαδρομής της βάσεις δεδομένων στον δίσκο Η εφαρμογή της εξεταστικής είναι όμως πλέον έτοιμη για να τρέξει; Η απάντηση είναι όχι! Σας μένει ένα βασικό σημείο ακόμα, χρειάζεται να ρυθμίσετε το αρχείο διαμόρφωσης της εφαρμογής για να μπορέσει να επικοινωνεί με την βάση δεδομένων της, Το αρχείο αυτό λέγεται Web.config και βρίσκεται μέσα στον φάκελο της εφαρμογής και πρέπει να το ανοίξετε με κάποιο κειμενογράφο και να παρέμβετε στα σημεία Data Source, Initial Catalog, User ID,και Password αυτά τα στοιχεία τα ορίζετε κατά την εγκατάσταση του SQL server, ενώ περισσότερες πληροφορίες για το αρχείο αυτό θα βρείτε στο κεφάλαιο «Αρχείο διαμόρφωσης». Προδιαγραφές και Απαιτήσεις Συστήματος 21

Ανακεφαλαίωση βημάτων που πρέπει να γίνουν για την εκτέλεση εφαρμογής Εγκατάσταση του IIS και κατάλληλη ρύθμιση του Εγκατάσταση SQL Server 2005 ή νεώτερη έκδοση SQL Server Management Studio ή Express έκδοση Εγκατάσταση της βάσεις δεδομένων στο SQL Server Τελευταίο και βασικό ρύθμιση του αρχείου διαμόρφωσης Και τέλος πληκτρολογούμε την διεύθυνση http://localhost σε οποιαδήποτε browser για να τρέξει η εφαρμογή Μετά από όλα αυτά τα βήματα ίσως θα αναρωτιέστε ότι τελικά δεν είναι και τόσο απλό να γίνει η εγκατάσταση της εφαρμογής και να τρέχει, ίσως έχετε δίκιο αλλά αυτή η διαδικασία είναι τυπική και πρέπει να γίνει για οποιαδήποτε εφαρμογή που χρησιμοποιεί βάση δεδομένων MS SQL και αν ασχολείστε με την ανάπτυξη ιστοσελίδων με τεχνολογία ASP (Active Server Pages) i είναι απαραίτητη διαδικασία. Και μην ξεχνάτε ότι η διαδικασία αυτή γίνεται μία φορά και μπορείτε να τρέξετε όσες ιστοσελίδες και εφαρμογές θέλετε. Παρόμοια διαδικασία ακολουθείται και για εγκατάσταση στο WEB Server.Στην περίπτωση αυτή ο τελικός χρήστης δεν χρειάζεται να κάνει τίποτε από τα παραπάνω παρά να πληκτρολογήσει την διεύθυνση της τοποθεσίας WEB σε έναν browser. Απομακρυσμένη πρόσβαση στην εφαρμογή μέσω WEB Επειδή η εφαρμογή βασίζεται στην WEB τεχνολογία είναι σε μορφή ιστοσελίδων και μπορεί να εκτελεστεί από οποιαδήποτε σημείο του κόσμου μέσω του Internet και έτσι επιτυγχάνεται η φορητότητα του συστήματος δηλαδή οποιοδήποτε υπολογιστής που έχει πρόσβαση στο Internet χρησιμοποιώντας οπουδήποτε φυλλομετρητή (browser) όπως π.χ. Microsoft Internet Explorer, Mozilla FireFox ή Apple Safari κ.α. μπορεί να έχει πρόσβαση στην εφαρμογή ενώ δεν υπάρχουν περιορισμοί και από πλευράς λειτουργικού συστήματος. Προδιαγραφές και Απαιτήσεις Συστήματος 22

Μπορείτε να έχετε πρόσβαση και από την σελίδα του κατασκευαστεί από την παρακάτω διεύθυνση: http://www.amolla.gr H εφαρμογή αυτή δοκιμάστηκε με του παρακάτω φυλλομετρητές (Web Browsers) Microsoft Internet Explorer 7, 8 Mozilla FireFox 3.5.5 Apple Safari 4.0.4 Και συνιστάται ανάλυση οθόνης τουλάχιστον 1024 Χ 768 Στην βάση δεδομένων της εφαρμογής είναι καταχωρημένα τα στοιχεία των καθηγητών και των μαθημάτων του τμήματος Πληροφορικής και Τεχνολογίας Υπολογιστών ΤΕΙ Λαμίας του ακαδημαϊκού έτος 2009-2010. 23

Οδηγίες Χρήσεως Κεντρική σελίδα της εφαρμογής Εικόνα 7 Κεντρική σελίδα της εφαρμογής Μετά την εκτέλεση των βημάτων που περιγράφονται στο προηγούμενο κεφάλαιο η εφαρμογή των εξεταστικών περιόδων είναι έτοιμη να τρέξει. Στον browser μας πληκτρολογείτε την διεύθυνση http://localhost ή αν δεν είναι προεπιλεγμένο site καλείτε την εφαρμογή με το όνομα της πχ http://localhost/exetastiki. έτσι λοιπόν ανοίγει η κεντρική σελίδα της εφαρμογής. Στην επάνω μπάρα υπάρχουν υπερσύνδεσμοι links που μπορείτε να μεταβούμε στα αντίστοιχα κεφάλαια της εφαρμογής όπως Καθηγητές, Μαθήματα, Αίθουσες κτλ. Οδηγίες Χρήσεως της Εφαρμογής 24

Σελίδα διαχείρισης καθηγητών Εικόνα 8 Σελίδα διαχείρισης καθηγητών Στην σελίδα αυτή καταχωρούνται όλοι οι καθηγητές που διδάσκουν οποιοδήποτε μάθημα (εργαστήριο ή θεωρία) στα πεδία Όνομα και Επώνυμο συμπληρώνονται τα στοιχεία των καθηγητών και στο πεδίο κατηγορία επιλέγετε αν ο καθηγητής είναι μόνιμος ή ωρομίσθιος στην περίπτωση του ωρομίσθιου καθηγητή συμπληρώνετε και τις ώρες που διδάσκει ο καθηγητής την εβδομάδα. Μετά την εισαγωγή στοιχείων του καθηγητή επιλέγετε το κουμπί καταχώρηση και έτσι πραγματοποιείται η καταχώρηση του καθηγητή στην βάση δεδομένων και εμφανίζεται στον παρακάτω πίνακα. Ο πίνακας αυτός δίνει την δυνατότητα τροποποίησης των στοιχείων του καθηγητή και την διαγραφή τους επιλέγοντας το αντίστοιχο καθηγητή. Οδηγίες Χρήσεως της Εφαρμογής 25

Εικόνα 9 Σελίδα διαχείρισης μαθημάτων Στην σελίδα αυτή καταχωρούνται τα μαθήματα που διδάσκονται στο τμήμα και εξετάζονται, στο πεδίο Κωδικός καταχωρείται ο κωδικός του μαθήματος και στο Όνομα μαθήματος το όνομα του π.χ. Άλγεβρα στο πεδίο εξάμηνο επιλέγετε το εξάμηνο διδασκαλίας του μαθήματος και στο πεδίο κατεύθυνση επιλέγετε την κατεύθυνση του μαθήματος αν υπάρχει στο πεδίο δυναμικό μαθήματος εισάγετε τον αριθμό σπουδαστών που παρακολουθούν το μάθημα Τα μαθήματα που καταχωρούνται εισάγονται στον παρακάτω πίνακα και από τις επιλογές Τροποποίησης και Διαγραφής έχουμε την δυνατότητα αλλαγής στοιχείων του μαθήματος και την διαγραφή τους από την βάση δεδομένων αντίστοιχα. Οδηγίες Χρήσεως της Εφαρμογής 26

Εικόνα 10 Σελίδα διαχείρισης αιθουσών Στην σελίδα αυτή της εφαρμογής γίνεται εισαγωγή αιθουσών που διαθέτει η σχολή για την διεξαγωγή εξετάσεων στο πεδίο όνομα αίθουσας γράφουμε το χαρακτηριστικό όνομα της αίθουσας στην Χωρητικότητα εισάγουμε πόσα άτομα από σπουδαστές μπορεί να εξυπηρετήσει για την εξέταση κάποιου μαθήματος και στο πεδίο απαιτήσεις επιτηρητών εισάγουμε τον αριθμό επιτηρητών που χρειάζεται για την επιτήρηση κάποιου μαθήματος. Οι αίθουσες που καταχωρούνται εισάγονται στον παρακάτω πίνακα και από τις επιλογές Τροποποίησης και Διαγραφής έχουμε την δυνατότητα αλλαγής στοιχείων της αίθουσας και την διαγραφή τους από την βάση δεδομένων αντίστοιχα. Οδηγίες Χρήσεως της Εφαρμογής 27

Εικόνα 11 Σελίδα αντιστοίχησης μαθημάτων με τους διδάσκοντες καθηγητές Στην σελίδα αυτή γίνεται αντιστοίχηση των καθηγητών με τα μαθήματα που διδάσκουν τα μαθήματα που αντιστοιχίζονται εισάγονται στον παρακάτω πίνακα και από τις επιλογές Τροποποίησης και Διαγραφής έχουμε την δυνατότητα αλλαγής μαθήματος και καθηγητή που διδάσκει και την διαγραφή τους από την βάση δεδομένων αντίστοιχα. Οδηγίες Χρήσεως της Εφαρμογής 28

Εικόνα 12 Σελίδα κατασκευής προγράμματος 1 ο βήμα Στην σελίδα αυτή εισάγουμε το ακαδημαϊκό έτος του προγράμματος που θέλετε να κατασκευάσουμε το πρόγραμμα Α ή Β εξεταστικής περιόδου και την περίοδο εαρινού ή χειμερινού εξαμήνου έπειτα επιλέγουμε επόμενο βήμα. Οδηγίες Χρήσεως της Εφαρμογής 29

Εικόνα 13 Σελίδα εισαγωγής ημερομηνιών εξέτασης 2 ο βήμα Στην σελίδα αυτή εισάγετε τις ημερομηνίες που θέλετε να διεξαχθούν οι εξετάσεις μαθημάτων, από το ημερολόγιο επιλέγετε την επιθυμητή ημερομηνία και επιλέγετε το πλήκτρο Επιλογή, Η επιλεγμένη ημερομηνία καταχτείται στην διπλανή μπάρα σε περίπτωση εσφαλμένης επιλογής από την μπάρα ημερομηνιών επιλέγετε την ημερομηνία που θέλουμε να διαγραφεί και επιλέγετε Αφαίρεση Ημερομηνίας. Οδηγίες Χρήσεως της Εφαρμογής 30

Εικόνα 14 Σελίδα εισαγωγής μαθημάτων στο πρόγραμμα εξέτασης 3 ο βήμα Στην σελίδα αυτή επιλέγετε το εξάμηνο που θέλετε να κατασκευάσετε το πρόγραμμα του και επιλέγετε Αποθήκευση. Οδηγίες Χρήσεως της Εφαρμογής 31

Εικόνα 15 Σελίδα κατασκευής προγράμματος συνέχεια Βλέπετε ότι το πλήκτρο της Αποθήκευσης απενεργοποιήθηκε. Από την στήλη ημερομηνία επιλέγετε την επιθυμητή ημερομηνία διεξαγωγής εξέτασης του μαθήματος και από την στήλη ώρας την επιθυμητή ώρα, επιλέγετε και το μάθημα που θα γίνει εξέταση του. Μετά την επιλογή μαθήματος συμπληρώνονται αυτόματα τα πεδία εισηγητής και επόπτης (η εφαρμογή δεν επιτρέπει παρέμβαση σε αυτά), μετά επιλέγετε τις αίθουσες που θα χρησιμοποιηθούν για την διεξαγωγή της εξέτασης του μαθήματος και στο πεδίο επιτηρητές επιλέγετε τα ονόματα των καθηγητών που θα επιτηρήσουν το μάθημα, εδώ γίνεται και έλεγχος των συνολικών ωρών που διδάσκουν την εβδομάδα και αφαιρούνται από το σύνολο των ωρών και όταν οι ώρες τους μηδενιστούν ο καθηγητής δεν εμφανίζεται στην λίστα, επίσης και οι ημερομηνίες που εισάγονται στο πρόγραμμα δεν εμφανίζονται δεύτερη φορά. Πατάτε Αποθήκευση για να αποθηκευτεί το μάθημα. Οδηγίες Χρήσεως της Εφαρμογής 32

Εικόνα 16 Σελίδα κατασκευής προγράμματος συνέχεια Ακολουθείτε την ίδια διαδικασία με την προηγούμενη μέχρι να τελειώσουν τα μαθήματα του εξαμήνου ή να αλλάξετε εξάμηνο και να συνεχίσετε με τα μαθήματα του άλλου εξαμήνου και μετά να επιτρέψετε. (δίνεται η δυνατότητα εναλλαγής μεταξύ εξαμήνων). Τα μαθήματα που εισάγονται καταχωρούνται στον παρακάτω πίνακα, και σε περίπτωση λανθασμένης εισαγωγής υπάρχει δυνατότητα διόρθωσης επιλέγοντας διαγραφή και έπειτα εισαγωγή του μαθήματος από την λίστα μαθημάτων εκ νέου στο πρόγραμμα. Οδηγίες Χρήσεως της Εφαρμογής 33

Εικόνα 17 Σελίδα εκτύπωσης προγράμματος Στην σελίδα Εκτύπωση εμφανίζονται τα προγράμματα των εξεταστικών περιόδων ανά εξάμηνο επιλέγοντας την αντίστοιχη εξεταστική περίοδο, δίνεται στον χρήστη η δυνατότητα δημιουργίας PDF αρχείου του προγράμματος ή να διαγράψει την εξεταστική περίοδο. Οδηγίες Χρήσεως της Εφαρμογής 34

Εικόνα 18 Δημιουργία PDF αρχείου Επιλέγοντας το πλήκτρο PDF κατασκευάζεται το αρχείο PDF του προγράμματος. Οδηγίες Χρήσεως της Εφαρμογής 35

Εικόνα 19 PDF αρχείο του προγράμματος Οδηγίες Χρήσεως της Εφαρμογής 36

Τεκμηρίωση του Κώδικα 37

ΟΝΟΜΑ ΙΣΤΟΣΕΛΙΔΑΣ: Καθηγητές Tutors.aspx Κώδικας Μορφοποίησης 38

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Tutors.aspx.cs" Inherits="Tutors" Title="[E-EXAM]-Καθηγητές " %> <asp:content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <center> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <td style="width: 100px" align="center"> <br /> <table bgcolor="#3399ff" border="0" cellpadding="0" cellspacing="0"> <td> <table border="0" align="left"> <td class="style6" colspan="2" style="text-align: center; font-weight: bold; font-size: x-large; fontfamily: Georgia;"> Καταχώρηση Καθηγητών </td> <td class="style4" style="text-align: left; width: 163px;"> <asp:label ID="lblonoma" runat="server" Text="Όνομα: " CssClass="dataentrylabels"></asp:Label> </td> <td class="style4" style="text-align: left"> <asp:textbox ID="onoma" runat="server" CssClass="style3" Width="190px" Font-Size="Medium"></asp:TextBox> </td> <td class="style5" style="text-align: left; width: 163px;"> <asp:label ID="lbleponymo" runat="server" Text="Επώνυμο: " CssClass="dataentrylabels"></asp:Label> </td> <td class="style5" style="text-align: left"> <asp:textbox ID="eponymo" runat="server" CssClass="style3" Width="190px" Font-Size="Medium"></asp:TextBox> </td> <td class="style4" style="text-align: left; width: 163px;"> <asp:label ID="lblkatigoria_kath" runat="server" Text="Kατηγορία:" CssClass="dataentrylabels"></asp:Label> </td> <td class="style4" style="text-align: left"> <asp:dropdownlist ID="katigoria_kath" runat="server" AutoPostBack="True" OnSelectedIndexChanged="katigoria_kath_SelectedIndexChanged" CssClass="dataentrylabels"> <asp:listitem>μόνιμος</asp:listitem> <asp:listitem>ωρομίσθιος</asp:listitem> </asp:dropdownlist> </td> <td class="style4" style="text-align: left; width: 163px;"> <asp:label ID="lblores_didaskalias" runat="server" Text="Ώρες που διδάσκει:" Visible="False" CssClass="dataentrylabels"></asp:Label> </td> <td class="style4" style="text-align: left"> <asp:textbox ID="ores_didaskalias" runat="server" CssClass="style3" Visible="False" Width="46px" Font-Size="Medium" MaxLength="2"></asp:TextBox> </td> <td class="style4" style="text-align: left; height: 34px; width: 163px;"> 39

<asp:button ID="kataxorisi" runat="server" OnClick="kataxorisi_Click" Text="Καταχώρηση" Width="190px" CssClass="dataentrylabels" Height="32px" Font- Size="Large" /> <asp:button ID="btnUpdate" runat="server" CssClass="dataentrylabels" Text="Τροποποίηση" Visible="False" Width="190px" OnClick="btnUpdate_Click" Height="32px" Font-Size="Large" /></td> <td class="style4" style="text-align: left; height: 34px;"> <asp:button ID="katharismos" runat="server" OnClick="katharismos_Click" Text="Ακύρωση " Width="221px" CssClass="dataentrylabels" Height="32px" Font- Size="Large" /></td> </table> </td> </table> </center> <br /> <br /> </td> <td style="width: 100px" align="center"> <asp:gridview ID="dgTutors" runat="server" Caption="Λίστα Καθηγητών " CellPadding="4" Font-Names="Verdana" Font-Size="10pt" AutoGenerateColumns="False" OnRowCommand="dgTutors_RowCommand" Width="80%" OnRowDataBound="dgTutors_RowDataBound" ForeColor="#333333" GridLines="None" style="font-size: small"> <RowStyle BackColor="#EFF3FB" /> <FooterStyle BackColor="#507CD1" ForeColor="White" Font-Bold="True" /> <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> <Columns> <asp:boundfield DataField="Eponymo" HeaderText="Επώνυμο " > <HeaderStyle HorizontalAlign="Left" /> <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" /> </asp:boundfield> <asp:boundfield DataField="Onoma" HeaderText="Όνομα " > <HeaderStyle HorizontalAlign="Left" /> <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" /> </asp:boundfield> <asp:boundfield DataField="Katigoria" HeaderText="Κατηγορία " > <HeaderStyle HorizontalAlign="Left" /> <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" /> </asp:boundfield> <asp:boundfield DataField="OresDidaskalias" HeaderText="Ώρες Διδασκαλίας " > <HeaderStyle Width="30px" /> <ItemStyle Width="30px" /> </asp:boundfield> <asp:templatefield ShowHeader="False" HeaderText="Λεπτομέρειες "> <ItemTemplate> <asp:linkbutton ID="lbtnShowTutor" runat="server" CausesValidation="false" CommandName="ShowTutor" CommandArgument='<%# DataBinder.Eval( Container.DataItem, "Kodikos") %>' Text="Τροποποίηση" ></asp:linkbutton> </ItemTemplate> <HeaderStyle Width="30px" /> <ItemStyle Width="30px" /> </asp:templatefield> <asp:templatefield ShowHeader="False" HeaderText="Διαγραφή "> <ItemTemplate> <asp:linkbutton ID="lbtnDeleteTutor" runat="server" CausesValidation="false" CommandName="DeleteTutor" CommandArgument='<%# DataBinder.Eval( Container.DataItem, "Kodikos") %>' Text="Διαγραφή "></asp:linkbutton> 40

</ItemTemplate> <HeaderStyle Width="30px" /> <ItemStyle Width="30px" /> </asp:templatefield> </Columns> <EditRowStyle BackColor="#2461BF" /> <AlternatingRowStyle BackColor="White" /> </asp:gridview> </td> </table> <br /> <br /> </asp:content> Κώδικας Λειτουργιών Όνομα αρχείου: using System; using System.Data; using System.Data.Sql; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using Tng.Library.DataAccessLayer; using System.Data.SqlClient; Tutors.aspx.cs public partial class Tutors : System.Web.UI.Page protected static int TutorsID = 0; protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) GetTutorsList(); private void GetTutorsList() SqlDataReader dr = null; try dr = SqlHelper.ExecuteReader(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(), "KathigitisList"); this.dgtutors.datasource = dr; this.dgtutors.databind(); 41

catch (Exception exc) protected void dgtutors_rowcommand(object sender, GridViewCommandEventArgs e) if (e.commandname.equals("showtutor")) GetTutorDetails(Convert.ToInt32(e.CommandArgument)); this.btnupdate.visible = true; this.kataxorisi.visible = false; if (e.commandname.equals("deletetutor")) DeleteTutor(Convert.ToInt32(e.CommandArgument)); private void DeleteTutor(int TutorID) try SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(), "KathigitisDelete", TutorID); GetTutorsList(); catch (Exception exc) private void GetTutorDetails(int TutorID) TutorsID = TutorID; SqlDataReader dr = null; try dr = SqlHelper.ExecuteReader(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(), "KathigitisGet", TutorID); while (dr.read()) this.onoma.text = dr["onoma"].tostring(); this.eponymo.text = dr["eponymo"].tostring(); this.ores_didaskalias.text = Convert.ToInt32(dr["OresDidaskalias"].ToString())!=0?dr["OresDidaskalias"].ToString():""; this.katigoria_kath.selectedvalue = dr["katigoria"].tostring(); if (this.katigoria_kath.selecteditem.text.equals("ωρομίσθιος")) this.lblores_didaskalias.visible = true; this.ores_didaskalias.visible = true; else this.lblores_didaskalias.visible = false; this.ores_didaskalias.visible = false; catch (Exception exc) 42

finally if (!dr.isclosed) dr.close(); protected void katigoria_kath_selectedindexchanged(object sender, EventArgs e) if (this.katigoria_kath.selecteditem.text.equals("ωρομίσθιος")) this.lblores_didaskalias.visible = true; this.ores_didaskalias.visible = true; else this.lblores_didaskalias.visible = false; this.ores_didaskalias.visible = false; protected void katharismos_click(object sender, EventArgs e) this.onoma.text = ""; this.eponymo.text = ""; this.ores_didaskalias.text = ""; this.btnupdate.visible = false; this.kataxorisi.visible = true; protected void kataxorisi_click(object sender, EventArgs e) if (this.onoma.text!= "" && this.eponymo.text!="") try SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(), "KathigitisInsert", this.onoma.text, this.eponymo.text, this.katigoria_kath.selecteditem.text, Convert.ToInt32((this.ores_didaskalias.Text)!= ""? this.ores_didaskalias.text : "0")); this.onoma.text = ""; this.eponymo.text = ""; this.ores_didaskalias.text = ""; GetTutorsList(); catch (Exception exc) Response.Redirect("Error.aspx", false); protected void btnupdate_click(object sender, EventArgs e) SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(), "KathigitisUpdate", TutorsID, this.onoma.text, this.eponymo.text, 43

"0")); this.katigoria_kath.selecteditem.text, Convert.ToInt32((this.ores_didaskalias.Text)!= ""? this.ores_didaskalias.text : this.onoma.text = ""; this.eponymo.text = ""; this.ores_didaskalias.text = ""; GetTutorsList(); protected void dgtutors_rowdatabound(object sender, GridViewRowEventArgs e) if (e.row.findcontrol("lbtndeletetutor")!= null) ((LinkButton)e.Row.FindControl("lbtnDeleteTutor")).Attributes.Add("onClick", "return confirm('είστε σίγουρος /σίγουρη για να διαγράψτε τον επιλεγμένο καθηγητή ; ')"); ΟΝΟΜΑ ΙΣΤΟΣΕΛΙΔΑΣ: Μαθήματα Lessons.aspx 44

Κώδικας Μορφοποίησης <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Lessons.aspx.cs" Inherits="Lessons" Title="[E-EXAM]-Μαθήματα " %> <asp:content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <table border="0" cellpadding="0" cellspacing="0" align="center"> <td align="center" style="width: 1341px"> <br /> <br /> <table bgcolor="#3399ff" border="0" align="center"> <td align="center" class="dataentrylabels" colspan="2" style="font-size: x-large; font-family: Georgia;"> Καταχώρηση μαθημάτων</td> <td class="dataentrylabels" style="text-align: left; "> Κωδικός:</td> <td class="style6" align="left" style="width: 127px"> <asp:textbox ID="txtKoidkosMathimatos" runat="server" CssClass="style3" Width="190px" Font-Size="Medium"></asp:TextBox> </td> <td class="dataentrylabels" style="text-align: left; "> Όνομα μαθήματος: </td> <td class="style8" align="left" style="width: 127px"> <asp:textbox ID="txtOnomaMathimatos" runat="server" CssClass="style3" Width="190px" Font-Size="Medium"></asp:TextBox> </td> <td class="dataentrylabels" style="text-align: left; "> Εξάμηνο: </td> <td align="left" style="width: 127px"> <asp:dropdownlist ID="cboExamino" runat="server" CssClass="dataentrylabels" Width="190px" Font-Size="Large" onselectedindexchanged="cboexamino_selectedindexchanged"> <asp:listitem>α' Εξάμηνο</asp:ListItem> <asp:listitem>β' Εξάμηνο</asp:ListItem> <asp:listitem>γ' Εξάμηνο</asp:ListItem> <asp:listitem>δ' Εξάμηνο</asp:ListItem> <asp:listitem>ε' Εξάμηνο</asp:ListItem> <asp:listitem>στ' Εξάμηνο</asp:ListItem> <asp:listitem>ζ' Εξάμηνο</asp:ListItem> </asp:dropdownlist> </td> <td class="dataentrylabels" style="text-align: left; "> Κατεύθυνση: </td> <td class="style10" align="left" style="width: 127px"> <asp:dropdownlist ID="cboKatevsinsi" runat="server" CssClass="dataentrylabels" Width="190px" Font-Size="Large"> <asp:listitem>όχι</asp:listitem> <asp:listitem>α' ομάδα</asp:listitem> <asp:listitem>β' ομάδα</asp:listitem> </asp:dropdownlist> 45

</td> <td class="dataentrylabels" style="text-align: left; " align="center"> Δυναμικό μαθήματος: </td> <td align="left" class="style8" style="width: 127px"> <asp:textbox ID="txtDinamikoMathimatos" runat="server" Style="text-align: left" Width="70px" Font-Size="Medium" MaxLength="3"></asp:TextBox> </td> <td style="text-align: left; "> </td> <td style="width: 127px"> </td> <td class="style4" style="text-align: left; height: 138px;"> <asp:button ID="btnAdd" runat="server" CssClass="dataentrylabels" Height="32px" Text="Καταχώρηση" Width="190px" OnClick="btnAdd_Click" /> <asp:button ID="btnUpdate" runat="server" CssClass="dataentrylabels" Height="32px" OnClick="btnUpdate_Click" Text="Τροποποίηση " Visible="False" Width="190px" /></td> <td style="height: 138px; width: 127px;"> <asp:button ID="btnClearCancel" runat="server" CssClass="dataentrylabels" Height="31px" Text="Ακύρωση" Width="209px" OnClick="btnClearCancel_Click" /></td> </table> <br /> </td> <td align="center" style="width: 1341px"> <asp:gridview ID="dgLessons" runat="server" AutoGenerateColumns="False" Caption="Λίστα Mαθημάτων" CellPadding="4" Font-Names="Verdana" Font-Size="10pt" Width="97%" OnRowDataBound="dgLessons_RowDataBound" OnRowCommand="dgLessons_RowCommand" ForeColor="#333333" GridLines="None" style="font-size: small"> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> <FooterStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="True" /> <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> <Columns> <asp:boundfield DataField="Kodikos" HeaderText="Κωδικός" /> <asp:boundfield DataField="Onoma" HeaderText="Όνομα "> <HeaderStyle HorizontalAlign="Left" /> <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" /> </asp:boundfield> <asp:boundfield DataField="Examino" HeaderText="Εξάμηνο"> <HeaderStyle HorizontalAlign="Left" /> <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" /> </asp:boundfield> <asp:boundfield DataField="Katefthinsi" HeaderText="Kατεύθυνση"> <HeaderStyle HorizontalAlign="Left" /> <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" /> </asp:boundfield> <asp:boundfield DataField="Dynamiko" HeaderText="Δυναμικό "> <HeaderStyle Width="30px" /> <ItemStyle Width="30px" /> </asp:boundfield> <asp:templatefield HeaderText="Τροποποίηση" ShowHeader="False"> 46

<ItemTemplate> <asp:linkbutton ID="lbtnShowLesson" runat="server" CausesValidation="false" CommandArgument='<%# DataBinder.Eval( Container.DataItem, "Kodikos") %>' CommandName="ShowLesson" Text="Τροποποίηση"></asp:LinkButton> </ItemTemplate> <HeaderStyle Width="30px" /> <ItemStyle Width="30px" /> </asp:templatefield> <asp:templatefield HeaderText="Διαγραφή " ShowHeader="False"> <ItemTemplate> <asp:linkbutton ID="lbtnDeleteLesson" runat="server" CausesValidation="false" CommandArgument='<%# DataBinder.Eval( Container.DataItem, "Kodikos") %>' CommandName="DeleteLesson" Text="Διαγραφή "></asp:linkbutton> </ItemTemplate> <HeaderStyle Width="30px" /> <ItemStyle Width="30px" /> </asp:templatefield> </Columns> <EditRowStyle BackColor="#999999" /> <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> </asp:gridview> </td> </table> </asp:content> Όνομα αρχείου: Κώδικας Λειτουργιών Lessons.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using Tng.Library.DataAccessLayer; public partial class Lessons : System.Web.UI.Page protected static string LessonId=""; protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) GetLessonList(); private void GetLessonList() SqlDataReader dr = null; try dr = 47

SqlHelper.ExecuteReader(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(), "MathimaList"); this.dglessons.datasource = dr; this.dglessons.databind(); catch (Exception exc) protected void btnupdate_click(object sender, EventArgs e) try SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(), "MathimaUpdate", this.txtkoidkosmathimatos.text, this.txtonomamathimatos.text, this.cboexamino.selecteditem.value, this.cbokatevsinsi.selecteditem.value, Convert.ToInt32(this.txtDinamikoMathimatos.Text) ); GetLessonList(); catch (Exception exc) protected void btnclearcancel_click(object sender, EventArgs e) this.txtdinamikomathimatos.text = ""; this.txtkoidkosmathimatos.text = ""; this.txtonomamathimatos.text = ""; this.btnupdate.visible = false; this.btnadd.visible = true; protected void btnadd_click(object sender, EventArgs e) try SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(), "MathimaInsert", this.txtkoidkosmathimatos.text, this.txtonomamathimatos.text, this.cboexamino.selecteditem.value, this.cbokatevsinsi.selecteditem.value, DBNull.Value, DBNull.Value, Convert.ToInt32(this.txtDinamikoMathimatos.Text) ); GetLessonList(); catch (Exception exc) protected void dglessons_rowdatabound(object sender, GridViewRowEventArgs e) if (e.row.findcontrol("lbtndeletelesson")!= null) 48

((LinkButton)e.Row.FindControl("lbtnDeleteLesson")).Attributes.Add("onClick", "return confirm('είστε σίγουρος /σίγουρη για να διαγράψτε τον επιλεγμένο Μάθημα ; ')"); protected void dglessons_rowcommand(object sender, GridViewCommandEventArgs e) if (e.commandname.equals("showlesson")) GetLessonDetails(e.CommandArgument.ToString()); this.btnupdate.visible = true; this.btnadd.visible = false; if (e.commandname.equals("deletelesson")) DeleteLesson(e.CommandArgument.ToString()); GetLessonList(); private void DeleteLesson(string p) try SqlHelper.ExecuteNonQuery(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(), "MathimaDelete", p); catch (Exception exc) private void GetLessonDetails(string p) SqlDataReader dr = null; LessonId = p; try dr = SqlHelper.ExecuteReader(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString(), "MathimaGet", LessonId); while (dr.read()) this.txtkoidkosmathimatos.text = dr["kodikos"].tostring(); this.txtonomamathimatos.text = dr["onoma"].tostring(); this.txtdinamikomathimatos.text = dr["dynamiko"].tostring(); this.cboexamino.selectedvalue = dr["examino"].tostring(); this.cbokatevsinsi.selectedvalue = dr["katefthinsi"].tostring(); catch (Exception exc) protected void cboexamino_selectedindexchanged(object sender, EventArgs e) 49

ΟΝΟΜΑ ΙΣΤΟΣΕΛΙΔΑΣ: Διδασκαλία Didaski.aspx Κώδικας Μορφοποίησης <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Didaski.aspx.cs" Inherits="Didaski" Title="Untitled Page" %> <asp:content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <br /> <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"> <td align="center"> <br /> <table bgcolor="#3399ff" border="0" style="width: 624px; height: 127px"> <td class="dataentrylabels" colspan="2" style="font-size: xx-large"> <span style="font-size: x-large" class="style8">καθηγητές - Μαθήματα</span> </td> <td align="right" class="dataentrylabels"> Όνομα Καθηγητή: </td> <td style="height: 23px; width: 208px;" align="right"> <asp:dropdownlist ID="cboKathigites" runat="server" AutoPostBack="True" CssClass="dataentrylabels" Width="344px" onselectedindexchanged="cbokathigites_selectedindexchanged"> 50

</asp:dropdownlist></td> <td align="right" class="dataentrylabels"> 'Ονομα Μαθήματος: </td> <td align="right" style="width: 208px"> <asp:dropdownlist ID="cboMathimata" runat="server" AutoPostBack="True" CssClass="dataentrylabels" Width="344px"> </asp:dropdownlist></td> <td align="right" class="dataentrylabels"> </td> <td align="left" style="width: 208px"> <asp:dropdownlist ID="cboDays" runat="server" CssClass="dataentrylabels" Width="195px" AutoPostBack="True" Visible="False"> <asp:listitem>δευτέρα</asp:listitem> <asp:listitem>τρίτη</asp:listitem> <asp:listitem>τετάρτη</asp:listitem> <asp:listitem>πέμπτη</asp:listitem> <asp:listitem>παρασκευή</asp:listitem> </asp:dropdownlist></td> <td align="right" class="dataentrylabels"> </td> <td style="width: 208px;" align="left"> <asp:dropdownlist ID="cboOra" runat="server" CssClass="dataentrylabels" Width="195px" AutoPostBack="True" Visible="False"> <asp:listitem>08-10</asp:listitem> <asp:listitem>10-12</asp:listitem> <asp:listitem>12-14</asp:listitem> <asp:listitem>14-16</asp:listitem> <asp:listitem>16-18</asp:listitem> <asp:listitem>18-20</asp:listitem> </asp:dropdownlist></td> <td class="style4" style="width: 471px; height: 22px; text-align: left"> <asp:button ID="btnInsert" runat="server" CssClass="dataentrylabels" Height="32px" OnClick="btnInsert_Click" Text="Καταχώρηση " Width="190px" /> <asp:button ID="btnUpdate" runat="server" CssClass="dataentrylabels" Height="32px" OnClick="btnUpdate_Click" Text="Τροποποίηση " Visible="False" Width="190px" /></td> <td style="height: 22px; width: 208px;"> <asp:button ID="btnClearCancel" runat="server" CssClass="dataentrylabels" Height="32px" OnClick="btnClearCancel_Click" Text="Ακύρωση " Width="205px" /></td> </table> <br /> <br /> </td> <td align="center"> <asp:gridview ID="dgDidaskalia" runat="server" AutoGenerateColumns="False" CellPadding="4" Font-Names="Verdana" Font-Size="10pt" OnRowCommand="dgClasses_RowCommand" OnRowDataBound="dgClasses_RowDataBound" Width="80%" ForeColor="#333333" GridLines="None" style="font-size: small"> <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 51