Ίδρυμα: Οικονομικό Πανεπιστήμιο Αθηνών (ΟΠΑ) Τμήμα: Πληροφορικής Μάθημα: Προγραμματισμός με Java (M-Ω) Εξάμηνο: Εαρινό 2021 Εργασία: Μέρος 1 Ομάδα: 35
- Δημήτριος Ρουσάλης (Π3200166)
- Ιωάννης Τσιντζός (Π3200211)
Σύστημα λογιστηρίου επιχείρησης για τη διαχείριση και επεξεργασία μηνιαίων αποζημιώσεων δαπανών εργαζομένων. Το σύστημα χειρίζεται:
- Διαφορετικούς τύπους δαπανών με διαφορετικούς τρόπους υπολογισμού
- Πολλαπλούς εργαζομένους με ατομικά όρια αποζημίωσης
- Υπολογισμό και άθροιση δαπανών
- Παρακολούθηση συναλλαγών (προκαταβολές, αποζημιώσεις, διαφορές)
- Τελικό υπολογισμό μηνιαίας αποζημίωσης ανά εργαζόμενο
java-project/
└── 1ο μερος εργασιας(ΟΜΑΔΑ 35)/
├── mainApp.java # Κύρια εφαρμογή με μενού
├── expense.java # Βασική κλάση δαπανών
├── Type_A.java # Δαπάνες Τύπου A (Ποσότητα × Τιμή)
├── Type_B.java # Δαπάνες Τύπου B (Αξία × Ποσοστό)
├── workers.java # Κλάση εργαζομένων
├── work_expense.java # Κλάση δαπανών εργαζομένου
├── transactions.java # Κλάση συναλλαγών
├── *.class # Compiled files
├── class diagram.pdf # Διάγραμμα κλάσεων UML
└── Java2_2021_Ergasia1.pdf # Εκφώνηση εργασίας
Αρχείο: [expense.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/expense.java)
Σκοπός: Βασική κλάση για όλους τους τύπους δαπανών
Χαρακτηριστικά:
desc- Περιγραφή δαπάνηςmonthly_al- Μέγιστο όριο μηνιαίας αποζημίωσηςcode- Κωδικός δαπάνης
Προκαθορισμένες Δαπάνες:
- Μεταφορά (400€/μήνα)
- Διατροφή (300€/μήνα)
- Διαμονή (350€/μήνα)
- Ένδυση (200€/μήνα)
- Ταξί (150€/μήνα)
- Ασφάλιση (250€/μήνα)
Αρχείο: [Type_A.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/Type_A.java)
Σκοπός: Υπολογισμός με βάση Ποσότητα × Τιμή Μονάδας
Παραδείγματα:
- Μεταφορά: 1.5 €/χλμ × χιλιόμετρα
- Διατροφή: 30 €/ημέρα × ημέρες
- Διαμονή: 40 €/ημέρα × ημέρες
Φόρμουλα Υπολογισμού:
Αποζημίωση = Ποσότητα × Τιμή_ανά_Μονάδα
Αρχείο: [Type_B.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/Type_B.java)
Σκοπός: Υπολογισμός με βάση Αξία × Ποσοστό
Παραδείγματα:
- Ταξί: 80% της δαπάνης
- Ασφάλιση: 60% της δαπάνης
- Άλλα έξοδα: 50% της δαπάνης
Φόρμουλα Υπολογισμού:
Αποζημίωση = Αξία_Δαπάνης × (Ποσοστό / 100)
Αρχείο: [workers.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/workers.java)
Σκοπός: Αναπαράσταση εργαζομένων με όρια αποζημίωσης
Προκαθορισμένοι Εργαζόμενοι:
- Leo Messi - 400€/μήνα
- Cristiano Ronaldo - 300€/μήνα
- Gareth Bale - 200€/μήνα
Αρχείο: [work_expense.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/work_expense.java)
Σκοπός: Καταγραφή μεμονωμένων δαπανών εργαζομένων
Περιλαμβάνει:
- Όνομα εργαζομένου
- Τύπο δαπάνης
- Ποσότητα/Αξία
- Αιτιολογία
- Υπολογισμό αποζημίωσης
Αρχείο: [transactions.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/transactions.java)
Σκοπός: Καταγραφή όλων των οικονομικών κινήσεων
Τύποι Συναλλαγών:
- "prokatabolh" - Προκαταβολή στον εργαζόμενο
- Τύπος δαπάνης - Αποζημίωση για συγκεκριμένη δαπάνη
- "Diafora" - Διαφορά όταν οι αποζημιώσεις ξεπερνούν το όριο
Αρχείο: [mainApp.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/mainApp.java)
Σκοπός: Διαχείριση συστήματος με διαδραστικό μενού
-
Προσθήκη Νέου Τύπου Δαπάνης
- Επιλογή Τύπου A ή B
- Εισαγωγή λεπτομερειών (περιγραφή, τιμή/ποσοστό, όριο)
-
Προσθήκη Νέου Εργαζομένου
- Εισαγωγή ονοματεπώνυμου
- Ορισμός μηνιαίου ορίου αποζημίωσης
-
Προσθήκη Νέας Δαπάνης Εργαζομένου
- Επιλογή εργαζομένου
- Επιλογή τύπου δαπάνης
- Εισαγωγή ποσότητας/αξίας και αιτιολογίας
-
Προσθήκη Προκαταβολής
- Επιλογή εργαζομένου
- Εισαγωγή ποσού προκαταβολής
-
Εμφάνιση Δαπανών Εργαζομένων
- Προβολή όλων των καταγεγραμμένων δαπανών
- Λεπτομέρειες: εργαζόμενος, τύπος, ποσό, αιτιολογία
-
Εκκαθάριση Δαπανών Ενός Εργαζομένου
- Επιλογή εργαζομένου
- Υπολογισμός και διακανονισμός δαπανών
- Δημιουργία συναλλαγών
-
Εμφάνιση Συναλλαγών Εργαζομένου
- Προβολή όλων των κινήσεων
- Προκαταβολές, αποζημιώσεις, διαφορές
-
Εκκαθάριση Δαπανών Όλων των Εργαζομένων
- Διακανονισμός για ολόκληρη την επιχείρηση
- Μαζική επεξεργασία όλων των εργαζομένων
-
Εμφάνιση Τελικής Αποζημίωσης
- Υπολογισμός τελικού ποσού για κάθε εργαζόμενο
- Φόρμουλα:
Σύνολο Αποζημιώσεων - Προκαταβολές - Διαφορά
ΓΙΑ κάθε εργαζόμενο:
1. Ομαδοποίηση δαπανών ανά τύπο
2. Άθροιση ποσών ανά τύπο
3. Εφαρμογή μηνιαίου ορίου ανά τύπο δαπάνης
4. Υπολογισμός συνολικής αποζημίωσης
5. ΑΝ σύνολο > όριο εργαζομένου ΤΟΤΕ
υπολογισμός διαφοράς
καταγραφή συναλλαγής "Diafora"
6. Τελικό ποσό = Σύνολο - Προκαταβολές - Διαφορά
7. Καταγραφή όλων των συναλλαγών
ΤΕΛΟΣ
- Γλώσσα: Java
- Collections: ArrayList (java.util)
- I/O: Scanner για είσοδο χρήστη
- Random: Για αρχικοποίηση δεδομένων
- IDE: Visual Studio Code
- Java JDK 8 ή νεότερο
- Terminal/Command Prompt
- Μεταγλώττιση:
cd "1ο μερος εργασιας(ΟΜΑΔΑ 35)"
javac *.java- Εκτέλεση:
java mainApp- Χρήση:
- Ακολουθήστε το μενού
- Επιλέξτε 1-9 για λειτουργίες
- Εισάγετε δεδομένα όπως ζητούνται
- Κληρονομικότητα: expense → Type_A, Type_B
- Ενθυλάκωση: Getters/Setters για όλα τα πεδία
- Πολυμορφισμός: Διαφορετικοί τρόποι υπολογισμού δαπανών
- Κοινά χαρακτηριστικά στη βασική κλάση
- Εξειδικευμένη λογική στις υποκλάσεις
- Κοινός χειρισμός συναλλαγών
- 4 ArrayLists για διαφορετικές οντότητες
- Ομαδοποίηση και άθροιση δαπανών
- Εφαρμογή ορίων και περιορισμών
ArrayList<workers> worker → Εργαζόμενοι
ArrayList<expense> expense_type → Τύποι δαπανών
ArrayList<work_expense> work_exp → Δαπάνες εργαζομένων
ArrayList<transactions> trans → Συναλλαγές/Κινήσεις
1. Εργαζόμενος: Leo Messi (Όριο: 400€)
2. Δαπάνη Μεταφοράς: 100 χλμ × 1.5€ = 150€
3. Δαπάνη Διατροφής: 5 ημέρες × 30€ = 150€
4. Δαπάνη Ταξί: 50€ × 80% = 40€
5. Προκαταβολή: 200€
6. Σύνολο Αποζημίωσης: 340€ (< 400€ ✓)
7. Τελικό Ποσό: 340€ - 200€ = 140€
- [class diagram.pdf](1ο μερος εργασιας(ΟΜΑΔΑ 35)/class diagram.pdf) - Διάγραμμα κλάσεων UML
- [Java2_2021_Ergasia1.pdf](1ο μερος εργασιας(ΟΜΑΔΑ 35)/Java2_2021_Ergasia1.pdf) - Εκφώνηση εργασίας
Αυτό το project δημιουργήθηκε για ακαδημαϊκούς σκοπούς στο πλαίσιο του μαθήματος "Προγραμματισμός με Java" στο Οικονομικό Πανεπιστήμιο Αθηνών.
Για ερωτήσεις ή προτάσεις, επικοινωνήστε με τα μέλη της ομάδας:
- Δημήτριος Ρουσάλης (Π3200166)
- Ιωάννης Τσιντζός (Π3200211)