Μάθημα: Προγραμματισμός Η/Υ ΙI (Θεωρία) Εαρινό Εισηγητής: Παναγιώτης Αδαμίδης Δευτέρα 2 Οκτωβρίου Β Εξεταστική

Σχετικά έγγραφα
ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής

Generics και ArrayLists

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Αντικειµενοστρεφής Προγραµµατισµός

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΕΙΣ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Ιανουάριος 2007 Οι απαντήσεις να είναι καθαρογραμμένες με ευδιάκριτους όλους του χαρακτήρες.

Διδάσκων: Παναγιώτης Ανδρέου

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.

ΚΛΑΣΕΙΣ ΜΕΘΟΔΟΙ - ΑΝΤΙΚΕΙΜΕΝΑ

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, :00-10:00 π.μ.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Οντοκεντρικός Προγραμματισμός

ΘΕΜΑΤΑ ΕΞΕΤΑΣΕΩΝ ΟΜΑΔΑ Α

Εισαγωγή στον Προγ/μό Η/Υ

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

Αντικειμενοστρεφής Προγραμματισμός

Οντοκεντρικός Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 13/12/07

Αντικειµενοστραφής Προγραµµατισµός

Κλάσεις και Αντικείµενα

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

Τεχνικές και Αλγόριθμοι Ταξινόμησης

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

Μάθημα 1 [3/11/2015].

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Βασικά της γλώσσας JAVA

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships)

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 10/1/08

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι String Interning

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Μέθοδοι που επιστρέφουν αντικείμενα Deep and Shallow Copies

2.1 Αντικειµενοστρεφής προγραµµατισµός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου

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

Η λέξη κλειδί this. Γαβαλάς Δαμιανός

Υπερφόρτωση Μεθόδων και Πέρασμα Ορισμάτων

Αντικειμενοστρεφής Προγραμματισμός

02 Αντικειμενοστρεφής Προγραμματισμός

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

CSD Univ. of Crete Φθινόπωρο Άσκηση 1 Εκφώνηση

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Ανάλυση άσκησης. Employee. SalariedEmployee CommissionEmployee HourlyEmployee. BasePlusCommissionEmployee

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

Οντοκεντρικός Προγραμματισμός

Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012

ΕΞΑΙΡΕΣΕΙΣ. Εξαιρέσεις προκαλούνται. από το σύστηµα. από το πρόγραµµα

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors

Oι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπερφόρτωση Αντικείμενα σαν ορίσματα

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 5: Κατασκευαστές (Constructors)

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

Διδάσκων: Παναγιώτης Ανδρέου

Transcript:

Μάθημα: Προγραμματισμός Η/Υ ΙI (Θεωρία) Εαρινό 2005-06 Εισηγητής: Παναγιώτης Αδαμίδης Δευτέρα 2 Οκτωβρίου 2006 Β Εξεταστική ΘΕΜΑ 1 (3 μονάδες) 1. Εξηγείστε γιατί συμφωνείτε ή διαφωνείτε με τις παρακάτω προτάσεις; «Δεν είναι δυνατό να υπερβούμε (override) μεθόδους static» «Μέθοδοι static δεν είναι δυνατό να δηλωθούν και ως final.»; «Οι τοπικές μεταβλητές δεν μπορούν να δηλωθούν final.» «Μία abstract τάξη δεν μπορεί να είναι και final.» 2. Εξηγείστε την έξοδο του παρακάτω προγράμματος: class Base { class Derived extends Base { public class Exam1_2 { public static void method(base b) { System.out.println("In the base method..."); public static void method(derived d) { System.out.println("In the derived method..."); public static void test(base b) { if (b instanceof Derived) System.out.print("Derived: "); else System.out.print("Base: "); method(b); public static void main(string args[]) { Base b = new Base(); Derived d = new Derived(); System.out.println("test calls."); test(b); test(d); 3. Αιτιολογείστε το αποτέλεσμα της μεταγλώττισης και εκτέλεσης του παρακάτω προγράμματος. Αν θεωρείτε ότι υπάρχουν λάθη μεταγλώττισης, προτείνετε διόρθωση των λαθών (όχι αφαίρεσή τους από τον κώδικα) και εξηγείστε την έξοδο. class Equipment { Equipment(){ public void meth(){system.out.println ("Some Equipment."); class ElecEquip extends Equipment { ElecEquip(){ public void meth() { System.out.println ("Electronic equipment."); class Computer extends ElecEquip{ Computer(){

public void meth() { System.out.println ("Data processing "); class Notebook extends Computer{ Notebook() { public void meth() { System.out.println ("Portable computer."); public class Exam1_3 { public static void main(string args[]){ Object obj = new Equipment (); Equipment eqp = new ElecEquip (); ElecEquip eleq = new Computer(); Computer comp = new Notebook(); eqp.meth(); eleq.meth(); comp.meth(); obj.meth(); obj=eqp; obj.meth(); eqp=comp; eqp.meth(); ΘΕΜΑ 2 (3 μονάδες) 1. Ταξινομήστε σε αύξουσα σειρά τον πίνακα: «10, 1, 19, 4, 8, 15, 7» με τις μεθόδους: bubble sort, ταξινόμηση με εισαγωγή (insertion sort), ταξινόμηση με επιλογή (selection sort), και γρήγορη ταξινόμηση (quicksort) εμφανίζοντας τους αριθμούς μετά από κάθε πέρασμα. Προσοχή: ΟΧΙ κώδικας 1.6μον. 2. Εξηγείστε την έξοδο του παρακάτω προγράμματος: class Exam2_2 { public static void main(string[] args) { ClassX obj1 = new ClassX(); ClassY obj2 = new ClassY(obj1); obj2.meth(2); class ClassX { public void meth(int x) { System.out.println(x+2); 1.4 μον. class ClassY { private ClassX xx; ClassY(ClassX who) { xx=who; public void meth(int x) { if (x < 5) { meth(++x); xx.meth(x); meth(++x); System.out.println(x);

ΘΕΜΑ 3 (4 μονάδες) Στο Παράρτημα δίνεται η περιγραφή της άσκησης της προηγούμενης εξεταστικής περιόδου, καθώς και μία ενδεικτική υλοποίηση των τάξεων Melos, Spoudastis, Dokimos και Taktikos. Προσθέστε την τάξη Epitimos η οποία περιγράφει ένα επίτημο μέλος. Το επίτημο μέλος δεν πληρώνει συνδρομή και λαμβάνει μόνο το επίσημο περιοδικό του συλλόγου. Ένα «επίτημο μέλος» δεν έχει δικαίωμα να ψηφίζει και να θέτει υποψηφιότητα σε όλες τις επιτροπές του συλλόγου. Να γραφεί πρόγραμμα διαχείρισης του Συλλόγου με μέγιστο αριθμό μελών 200. Θα πρέπει να δίνονται οι δυνατότητες: α) Εγγραφής ενός νέου μέλους: Το νέο μέλος μπορεί να ανήκει σε οποιαδήποτε κατηγορία. Προσοχή: Κατά την εισαγωγή των στοιχείων του νέου μέλους το ποσό της ετήσιας συνδρομής δεν δίνεται από το πληκτρολόγιο αλλά υπολογίζεται. Το έτος εγγραφής δίνεται από το πληκτρολόγιο. Με δεδομένο ότι ο Σύλλογος ιδρύθηκε το 1980, εάν δοθεί λανθασμένο έτος εγγραφής (πριν το 1980 ή μετά το 2006) τότε να προκαλείται η εξαίρεση IllegalArgumentException. β) Εμφάνιση των στοιχείων όλων των μελών: Για κάθε μέλος εμφανίζονται τα εξής: Όνομα (μεταβλητή), κατηγορία μέλους(κλάση), έτος εγγραφής (μεταβλητή), αριθμός ετών που είναι μέλος (μέθοδος), ποσό ετήσιας συνδρομής (μεταβλητή) όταν δεν είναι μηδενική. Επιπλέον για: o τα μέλη σπουδαστές, η σχολή η οποία φοιτούν o τα τακτικά μέλη, οι τίτλοι των 2 ακόμη περιοδικών που λαμβάνουν γ) Μεταβολής των στοιχείων ενός μέλους: Για όλα τα μέλη δίνεται η δυνατότητα μεταβολής των στοιχείων: Όνομα και Έτος Εγγραφής στο Σύλλογο. Ειδικότερα για τα μέλη σπουδαστές δίνεται και η δυνατότητα μεταβολής της σχολής φοίτησης ενώ για τα τακτικά μέλη δίνεται επίσης και η δυνατότητα μεταβολής των περιοδικών που λαμβάνουν. Αρχικά δίνεται το όνομα του μέλους του οποίου τα στοιχεία θα μεταβληθούν. Εάν το μέλος βρεθεί συνεχίζουμε με την μεταβολή των στοιχείων, αλλιώς εμφανίζεται το μήνυμα «Δεν υπάρχει μέλος με όνομα <ΟΝΟΜΑ>». Τα νέα στοιχεία εισάγονται από το πληκτρολόγιο. Η Διαχείριση θα πρέπει να γίνεται μέσω της χρήσης μενού, π.χ. ********Programma diaxeirisis Syllogoy******** 1.Eggrafi neou melous 2.Emfanisi stoixeiwn olwn twn melwn 3. Metaboli stoixeiwn enos melous 0.Exodos... ----------------------------------------------- Epilogi:_ Yπόοδειξη: Φτιάξτε μια τάξη "Syllogos" που έχει ένα πίνακα τύπου Melos και τουλάχιστον τις μεθόδους για την εισαγωγή νέου μέλους, εμφάνιση στοιχείων των μελών και μεταβολή των στοιχείων ενός μέλους. Διάρκεια εξέτασης: 2 ώρες Τα θέματα μπορείτε να τα πάρετε Κ Α Λ Η Ε Π Ι Τ Υ Χ Ι Α

Προγραμματισμός Η/Υ ΙΙ Εαρινό Εξάμηνο 2005-06 Β Εξεταστική ΠΑΡΑΡΤΗΜΑ Εκφώνηση 3 ου Θέματος, Α Εξεταστικής, Εαρ. 2005-06 Ένας επιστημονικός και επαγγελματικός σύλλογος προσφέρει στα μέλη του διάφορες υπηρεσίες. Ο Σύλλογος εκδίδει ένα επίσημο περιοδικό και ακόμη 5 περιοδικά σε εξειδικευμένες επιστημονικές περιοχές. Ο Σύλλογος έχει μέλη τα οποία ανήκουν στις παρακάτω κατηγορίες: α) Μέλος σπουδαστής, β) δόκιμο μέλος, και γ) τακτικό μέλος. Ένα «σπουδαστικό μέλος» πρέπει να είναι εγγεγραμμένο σε κάποιο πρόγραμμα σπουδών, πληρώνει συνδρομή 10, λαμβάνει το επίσημο περιοδικό του συλλόγου, αλλά δεν έχει δικαίωμα να ψηφίζει ή να θέτει υποψηφιότητα στις επιτροπές του συλλόγου. Το μέλος μπορεί να παραμείνει σε αυτή την κατηγορία για 8 έτη. Μετά θα πρέπει να γίνει δόκιμο μέλος ή να διαγραφεί. Ένα «δόκιμο μέλος» πρέπει να έχει πτυχίο ή σημαντική επαγγελματική εμπειρία σε κάποια από τα επιστημονικά πεδία του συλλόγου, πληρώνει το 50% της ετήσιας συνδρομής του τακτικού μέλους, λαμβάνει το επίσημο περιοδικό του συλλόγου, έχει δικαίωμα να ψηφίζει αλλά δεν μπορεί να θέτει υποψηφιότητα στις επιτροπές του συλλόγου. Μετά από 5 έτη παραμονής σε αυτή τη κατηγορία αιτείται την μετάβασή του στην επόμενη βαθμίδα του τακτικού μέλους. Ένα «τακτικό μέλος» έχει δικαίωμα να ψηφίζει και να θέτει υποψηφιότητα σε όλες τις επιτροπές του συλλόγου. Λαμβάνει το επίσημο περιοδικό του συλλόγου και ακόμη 2 περιοδικά από τα υπόλοιπα 5 περιοδικά του συλλόγου. Η ετήσια συνδρομή του υπολογίζεται ανάλογα με τα έτη που είναι μέλος του συλλόγου. Η βασική συνδρομή είναι 20. Για κάθε πλήρη διετία από τότε που έγινε τακτικό μέλος, η συνδρομή αυξάνεται κατά 2 σύμφωνα με τον τύπο: Συνδρομή = 20 + (Έτη/2) * 2 Προσοχή η συνδρομή για κάθε κατηγορία υπολογίζεται ή τίθεται μόνο με τον τρόπο που λέει η εκφώνηση. Να γραφεί πρόγραμμα διαχείρισης του Συλλόγου με μέγιστο αριθμό μελών 200. Θα πρέπει να δίνονται οι δυνατότητες: α) Εγγραφής ενός νέου μέλους: Το νέο μέλος μπορεί να ανήκει σε οποιαδήποτε κατηγορία. Προσοχή: Κατά την εισαγωγή των στοιχείων του νέου μέλους το ποσό της ετήσιας συνδρομής δεν δίνεται από το πληκτρολόγιο και το έτος έναρξης τίθεται επίσης αυτόματα και όχι από το πληκτρολόγιο. Την τιμή του τρέχοντος έτους μπορούμε να την πάρουμε με χρήση της κλάσης Calendar αφού δημιουργήσουμε ένα αντικείμενο (πχ το rightnow), ως εξής: Calendar rightnow = Calendar.getInstance(); int year = rightnow.get(calendar.year); β) Εμφάνιση των στοιχείων όλων των μελών: Για κάθε μέλος εμφανίζονται τα εξής: Όνομα (μεταβλητή), Κατηγορία μέλους(κλάση), Έτος εγγραφής (μεταβλητή), Αριθμός ετών που είναι μέλος (μέθοδος), Ποσό ετήσιας συνδρομής (μεταβλητή) Επιπλέον για: o τα μέλη σπουδαστές, η σχολή η οποία φοιτούν o τα τακτικά μέλη, οι τίτλοι των 2 ακόμη περιοδικών που λαμβάνουν

γ) Εμφάνιση μελών προς διαγραφή: Εμφανίζει τα μέλη (σπουδαστές και δόκιμα μέλη) τα οποία έχουν ξεπεράσει το χρονικό όριο παραμονής στην αντίστοιχη κατηγορία. Η Διαχείριση θα πρέπει να γίνεται μέσω της χρήσης μενού, π.χ. ********Programma diaxeirisis Syllogoy******** 1.Eggrafi neou melous 2.Emfanisi stoixeion olon ton melwn 3. Emfanisi stoixeiwn twn melwn pros diagrafi 0.Exodos... ----------------------------------------------- Epilogi:_ Επιπλέον υποδείξεις: 1. Φτιάξτε μια κλάση Melos με χαρακτηριστικά: Όνομα, Έτος Εγγραφής στο Σύλλογο, Ποσό ετήσιας συνδρομής. 2. Οι κλάσεις Spoudastis, Dokimos και Taktikos επεκτείνουν την κλάση Melos με νέα χαρακτηριστικά η/και μεθόδους όπου χρειάζονται. 2. Φτιάξτε μια τάξη "Syllogos" που έχει ένα πίνακα τύπου Melos και μεθόδους για την εισαγωγή νέου μέλους, εμφάνιση στοιχείων των μελών και εμφάνιση των στοιχείων των μελών προς διαγραφή. Ενδεικτική ανάπτυξη των τάξεων Melos, Spoudastis, Dokimos και Taktikos import java.io.*; import java.util.calendar; abstract class Melos { private String onoma; private int EE; private double syndromi; public String getonoma() { return onoma; public void setonoma(string n) { onoma = n; public int getee() { return EE; public void setee() { Calendar rightnow = Calendar.getInstance(); EE=rightNow.get(Calendar.YEAR); public int years() { Calendar rightnow = Calendar.getInstance(); int curyear = rightnow.get(calendar.year); return (curyear - EE); public void setee(int etos) { EE = etos; public double getsyndromi() { return syndromi; abstract public void setsyndromi(); Διάρκεια εξέτασης: 2 ώρες Τα θέματα μπορείτε να τα πάρετε Κ Α Λ Η Ε Π Ι Τ Υ Χ Ι Α

public void setsyndromi(double syn) { syndromi = syn; public Melos() { setsyndromi(); setee(); public Melos(String n, int etos) { onoma = n; EE = etos; public Melos(String n, int etos, double syn) { onoma = n; EE = etos; syndromi = syn; String s = "Onoma: " + onoma + "\tetos eggrafis: " + EE; s+="\tposo Syndromis: " + syndromi; // class Melos class Spoudastis extends Melos { private String sxoli; public String getsxoli() { return sxoli; public void setsxoli(string n) { sxoli = n; public void setsyndromi(){ setsyndromi(10); public Spoudastis() { public Spoudastis(String n, int etos, String sx) { super(n, etos); setsyndromi(10); sxoli = sx; String s = "Katigoria melous: Spoudastis\n"; s+=super.tostring(); s+="\nsxoli: " + sxoli; // class Spoudastis class Dokimos extends Melos { public void setsyndromi(){ int dieties = years()/2; double synd = 0.5*(20+dieties*2); setsyndromi(synd); String s = "Katigoria melous: Dokimos\n"; s+=super.tostring();

// class Dokimos class Taktikos extends Melos { private String journal1, journal2; public String getjournal1() { return journal1; public void setjournal1(string journal) { journal1 = journal; public String getjournal2() { return journal2; public void setjournal2(string journal) { journal2 = journal; public void setsyndromi(){ int dieties = years()/2; double synd = 20+dieties*2; setsyndromi(synd); public Taktikos() { public Taktikos(String n, int etos, String j1, String j2) { super(n, etos); journal1=j1; journal2=j2; String s = "Katigoria melous: Taktikos\n"; s+=super.tostring(); s+="\nperiodiko 1: " + journal1; s+="\tperiodiko 2: " + journal2; // class Taktikos Διάρκεια εξέτασης: 2 ώρες Τα θέματα μπορείτε να τα πάρετε Κ Α Λ Η Ε Π Ι Τ Υ Χ Ι Α