Git Product home page Git Product logo

oop-2's Introduction

OOP-2

Προσομοίωση λειτουγίας σχολείου με έμφαση στο αντικειμενοστραφές μοντέλο, inheritance, virtual classes, abstract classes

Ασκηση 2η: Εκφώνηση στα έγγραφα

Εντολή μεταγλώττισης: g++ -std=c++11 infrastructures.cpp student.cpp main.cpp -o main Όταν δωθεί η εντολη για να τρεξει το προγραμμα, θα πρεπει να δωθουν και 4 ακεραιοι ως ορίσματα απο την γραμμη εντολων(πχ main ./10 10 10 10)

Χρειάστηκε η c++11 μονο για την συναρτηση to_string() στην main.

Περιγραφή Υλοποιησης, επιλογης Classes και inheritance.

Περιγραφή υλοποιησης των ανθρωπων.

<class Human>:
    Αρχικα υπαρχει μια abstract κλαση η "Human". Η Human αναπαριστα έναν άνθρωπο.
    Εχει σαν μέλος ενα string που δηλωνει το όνομα του και ειναι private γιατι δεν 
    πρεπει να αλλάζει.

<class Academic>:
    Η κλάση "Academic" ειναι υποκλάση της human. Πρακτικά κατηγοριοποιει έναν "Human"
    Κάθε "Academic" χαρακτηρίζεται απο τα στοιχεία της τάξης του , μια ένδειξη για το
    αν είναι μέσα σε αυτή και εναν ακεραιο που δηλωνει την κούραση του Academic. Επίσης ABSTRACT κλάση.

<class Student> / class <Teacher>:
    Οι κλάσεις  "Student" και "Teacher" είναι υποκλάσεις της "Academic". 
    Πρακτικά κατηγοριοποιουν έναν "Academic" ανάλογα με το πόστο του. Δηλαδή,
    αν είναι δάσκαλος ή μαθητής.
   
    

<class Junior>/ <class senior>:
    Οι κλάσεις  "Junior" και "Senior" είναι υποκλάσεις του "Student". 
    Πρακτικά κατηγοριοποιουν έναν "Student" ανάλογα με την ιδιότητα του. Δηλαδή,
    αν είναι senior ή junior.
    
Επέλεξα τα Lt, Ls, Lj να ειναι μέλη των κλασεων Tacher, Senior, Junior αντιστοιχα.
Αυτο ώστε αν αργοτερα αποφασιστει για καποιον λογο ο ρυθμος κουρασης του Student/senior/junior, 
να οριζεται με διαφορετικο τροπο , να μην επηρεαστει το υπολοιπο προγραμμα



##  Περιγραφή υλοποιησης των χώρων.

<class Space>:
    Αρχικά υπαρχει μια abstract κλαση η "Space". Η space αναπαριστά ενα χωρο.
    Καθε χώρος εχει καποιες ιδιότητες. Φιλοξενεί μέσα του μαθητές <Student> που μπαίνουν ΚΑΙ
    βγαίνουν απο αυτο τον χώρο. Τους μαθητές τους κρατάει μέσα σε μια λίστα.
    Συμφωνα με την παρουσα ασκηση , στα schoolyard,stairs,corridor, δεν θα κολλησει ποτε μαθητής
    σε κάποιο χώρο. 
    Παρολα αυτα,  ειναι πιο ευκολα επεκτασιμο και τροποποιησιμο με λίστα ,καθως δεν 
    χρειαζεται αλλαγή, σε περίπτωση που αποφασισουμε στα schoolyard/corridor/stairs να αλλάξουμε
    υλοποιηση καποια αλλη στιγμη.Πχ να μπαινει περιορισμενος αριθμος μαθητων.


<class Trasplace>:
    Abstract κλάση. Εχει την έννοια ενος σταδίου. Σε αυτο μπορουν MONO να μπαινουν μαθητες και καθηγητες
    και ΟΧΙ να βγαίνουν. Αυτο το σταδιο εχει κοινες μεθοδους τις:
        enter
        operate
        place
        print
    Δηλαδή, βάζει μαθητές στο κτήριο, λειτουργεί το κτηριο για καποιες ωρες, τοποθετει
    δασκαλους και εκτυπώνει μυνηματα.
    

<class School>: 
    Ειναι υποκλάση του χώρου Trasplace.  Κάθε σχολείο έχει (has a) Yard, Stairs, Floors.
    
<class Yard>
    Η κλάση αυτη είναι υποκλάση της κλάσης "Space". Αυτο γιατι αναπαριστα χώρο
    που μπαίνουν και βγαίνουν μαθητές.

<class Stairs>
    Η κλάση αυτη είναι υποκλάση της κλάσης "Space". Αυτο γιατι αναπαριστα χώρο
    που μπαίνουν και βγαίνουν μαθητές.


<class Corridor>    
    Η κλάση αυτη είναι υποκλάση της κλάσης "Space". Αυτο γιατι αναπαριστα χώρο
    που μπαίνουν και βγαίνουν μαθητές.

<class Classroom>:
    H κλαση "classroom" ειναι και αυτη υποκλάση της Space, καθώς αναπαριστά ένα χώρο που
    μπαίνουν μαθητές. Ωστοσο έχει μια μεταβλητη επιπλεον που ειναι δεικτης σε δάσκαλο
    καθώς σε κάθε τάξη μπαινει καποιος δάσκαλος.

< class Floor >:
    Δεν εχει υποκλάσεις. H κλάση floor αποτελείται απο (has a) διαδρόμο και σχολική αιθουσα.

oop-2's People

Contributors

theofrag avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.