{"id":25417617,"url":"https://github.com/tech-gian/school_simulation_java","last_synced_at":"2025-05-05T21:33:40.825Z","repository":{"id":78433155,"uuid":"322731220","full_name":"tech-gian/School_Simulation_java","owner":"tech-gian","description":"👨‍🎓📚🏫 A simple school simulation made with Object-Oriented Programming principles in Java.","archived":false,"fork":false,"pushed_at":"2021-04-13T15:39:37.000Z","size":44,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-01-29T20:50:28.739Z","etag":null,"topics":["java","oop","oop-java","oop-principles","school","school-project","simulation"],"latest_commit_sha":null,"homepage":"https://gianniszapantis.azurewebsites.net/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tech-gian.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-12-19T00:02:07.000Z","updated_at":"2021-09-29T09:41:50.000Z","dependencies_parsed_at":"2023-04-05T08:50:22.899Z","dependency_job_id":null,"html_url":"https://github.com/tech-gian/School_Simulation_java","commit_stats":{"total_commits":13,"total_committers":2,"mean_commits":6.5,"dds":0.07692307692307687,"last_synced_commit":"bcb17298ccde7f5f86d3307315247cf065b54405"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tech-gian%2FSchool_Simulation_java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tech-gian%2FSchool_Simulation_java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tech-gian%2FSchool_Simulation_java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tech-gian%2FSchool_Simulation_java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tech-gian","download_url":"https://codeload.github.com/tech-gian/School_Simulation_java/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239171858,"owners_count":19594047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","oop","oop-java","oop-principles","school","school-project","simulation"],"created_at":"2025-02-16T18:00:50.234Z","updated_at":"2025-02-16T18:00:50.768Z","avatar_url":"https://github.com/tech-gian.png","language":"Java","readme":"## 2020 Oop Project 3 - Exercise Java\r\n\r\n## ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ - 2020/2021 - Άσκηση Java\r\n\r\n\r\nΕκφώνηση: http://cgi.di.uoa.gr/~izambo/OOPassgnJava_2021.pdf\r\n\r\n\r\n### Προσωπικά Στοιχεία\r\n\r\n__Όνομα__: Ιωάννης Ζαπάντης\r\n\r\n__Α.Μ.__: sdi1900059\r\n\r\n\r\n### Παρακάτω υπάρχει το documentation για την Άσκηση Java\r\n\r\n### Documentation\r\n\r\nΣκοπός αυτής της άσκησης είναι ο ίδιος με αυτόν την 3η άσκησης, η μοντελοποίηση ενός\r\nσχολικού κτηρίου, με τους χώρους του και το άτομα (καθηγητές και μαθητές) σε αυτό.\r\nΗ δομή που ακολουθείται είναι η ίδια με αυτήν την 3η άσκησης, με τις απαραίτητες διαφοροποιήσεις\r\nκαι την προσθήκη της συνάρτησης empty.\r\n\r\nΣτο αρχείο Person.java υπάρχει η υλοποίηση της αφηρημένης κλάσης Person, στην οποία υπάρχουν\r\nόλα τα στοιχεία ενός ατόμου με τις κατάλληλες συναρτήσεις. Παιδί αυτής της κλάσης αποτελεί η\r\nTeacher, που βρίσκεται στο Teacher.java και επεκτείνει τις δυνατότητες ενός καθηγητή.\r\nΣτο αρχείο Student.java υπάρχει η υλοποίηση του μαθητή σαν αφηρημένης κλάσης, η οποία\r\nοριστικοποιείται στο αρχείο Junior.java και Senior.java αντίστοιχα, με τις κατάλληλες\r\nσυναρτήσεις και στοιχεία, για να πληρεί τις προυποθέσεις της εκφώνησης.\r\n\r\nΣτο αρχείο Rooms.java υπάρχει η υλοποιήση της αφηρημένης κλάσης Room, που περιέχει\r\nτις συναρτήσεις που θα υλοποιηθούν σε όλα τα παιδιά της. Ακόμα, υπάρχουν οι υλοποιήσεις\r\nτων χώρων Yard, Stairs, Corridor, Floor και Classroom, ορισμένες με τα αντίστοιχα στοιχεία\r\nπου χρειάζονται και τις αντίστοιχες συναρτήσεις για να έχουν τις δυνατότητες που περιγράφονται\r\nστην εκφώνηση. Τέλος, στο School.java υπάρχει η υλοποίηση του σχολικού κτηρίου με τα στοιχεία που\r\nχρειάζεται και τις συναρτήσεις που προσδιορίζουν την συμπεριφορά του.\r\n\r\nΗ συνάρτηση empty υλοποιείται όπως περιγράφεται στην εκφώνηση. Ουσιαστικά για κάθε μαθητή και\r\nκαθηγητή ακολουθείται η αντίστροφη διαδικασία εισόδου, ώσπου βγαίνουν και από την σχολική αυλή.\r\nΓια την υλοποίησή της, χρησιμοποιούνται κάποιες έξτρα συναρτήσεις σε κάποιους χώρους.\r\n\r\nΣτο αρχείο Main.java έχει γραφεί η main συνάρτηση που δημιουργεί ένα σχολείο, το γεμίζει με μαθητές\r\nκαι καθηγητές τυχαία, λειτουργεί για N ώρες και μετά γίνεται εκκένωσή του. Ακριβώς όπως περιγράφεται\r\nστην εκφώνηση.\r\n\r\nΓια περισσότερες αλγοριθμικές λεπτομέρειες, θεώρησα σκόπιμο έναν καλό σχολιασμό του κώδικα,\r\nώστε μαζί με το διάβασμα του κώδικα να μπορέσει κάποιος να καταλάβει τι εκτελείται. Το visibility\r\nτων κλάσεων και συναρτήσεων, φαίνεται στον ορισμό τους και έχει επιλεγεί έτσι ώστε ο χρήστης να\r\nέχει πρόσβαση μόνο σε ό,τι χρειάζεται για να τρέξει την main.\r\n\r\nΗ εντολή μεταγλώττισης είναι:\r\n    Για το package (στο folder class_pac): javac Person.java Student.java Junior.java Senior.java Teacher.java Rooms.java School.java\r\n    Για την Main (στο βασικό folder): javac Main.java\r\n(πρέπει να γραφούν με αυτή την σειρά)\r\n\r\nΓια την εκτέλεση του προγράμματος, πηγαίνουμε στο βασικό folder που έχει δημιουργηθεί το Main.class και γράφουμε:\r\n    java Main Cclass Lj Ls Lt N (όπου τα Cclass, Lj, Ls, Lt, N είναι παράμετροι).\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftech-gian%2Fschool_simulation_java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftech-gian%2Fschool_simulation_java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftech-gian%2Fschool_simulation_java/lists"}