Skip to content

tzontsintzos/java-project

Repository files navigation

Σύστημα Διαχείρισης Δαπανών Εργαζομένων

Πληροφορίες Project

Ίδρυμα: Οικονομικό Πανεπιστήμιο Αθηνών (ΟΠΑ) Τμήμα: Πληροφορικής Μάθημα: Προγραμματισμός με Java (M-Ω) Εξάμηνο: Εαρινό 2021 Εργασία: Μέρος 1 Ομάδα: 35

Μέλη Ομάδας

  • Δημήτριος Ρουσάλης (Π3200166)
  • Ιωάννης Τσιντζός (Π3200211)

Περιγραφή

Σύστημα λογιστηρίου επιχείρησης για τη διαχείριση και επεξεργασία μηνιαίων αποζημιώσεων δαπανών εργαζομένων. Το σύστημα χειρίζεται:

  • Διαφορετικούς τύπους δαπανών με διαφορετικούς τρόπους υπολογισμού
  • Πολλαπλούς εργαζομένους με ατομικά όρια αποζημίωσης
  • Υπολογισμό και άθροιση δαπανών
  • Παρακολούθηση συναλλαγών (προκαταβολές, αποζημιώσεις, διαφορές)
  • Τελικό υπολογισμό μηνιαίας αποζημίωσης ανά εργαζόμενο

Δομή Project

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 # Εκφώνηση εργασίας

Ιεραρχία Κλάσεων

1. expense (Αφηρημένη Βασική Κλάση)

Αρχείο: [expense.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/expense.java)

Σκοπός: Βασική κλάση για όλους τους τύπους δαπανών

Χαρακτηριστικά:

  • desc - Περιγραφή δαπάνης
  • monthly_al - Μέγιστο όριο μηνιαίας αποζημίωσης
  • code - Κωδικός δαπάνης

Προκαθορισμένες Δαπάνες:

  1. Μεταφορά (400€/μήνα)
  2. Διατροφή (300€/μήνα)
  3. Διαμονή (350€/μήνα)
  4. Ένδυση (200€/μήνα)
  5. Ταξί (150€/μήνα)
  6. Ασφάλιση (250€/μήνα)

2. Type_A (Υποκλάση Δαπάνης)

Αρχείο: [Type_A.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/Type_A.java)

Σκοπός: Υπολογισμός με βάση Ποσότητα × Τιμή Μονάδας

Παραδείγματα:

  • Μεταφορά: 1.5 €/χλμ × χιλιόμετρα
  • Διατροφή: 30 €/ημέρα × ημέρες
  • Διαμονή: 40 €/ημέρα × ημέρες

Φόρμουλα Υπολογισμού:

Αποζημίωση = Ποσότητα × Τιμή_ανά_Μονάδα

3. Type_B (Υποκλάση Δαπάνης)

Αρχείο: [Type_B.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/Type_B.java)

Σκοπός: Υπολογισμός με βάση Αξία × Ποσοστό

Παραδείγματα:

  • Ταξί: 80% της δαπάνης
  • Ασφάλιση: 60% της δαπάνης
  • Άλλα έξοδα: 50% της δαπάνης

Φόρμουλα Υπολογισμού:

Αποζημίωση = Αξία_Δαπάνης × (Ποσοστό / 100)

4. workers (Κλάση Εργαζομένων)

Αρχείο: [workers.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/workers.java)

Σκοπός: Αναπαράσταση εργαζομένων με όρια αποζημίωσης

Προκαθορισμένοι Εργαζόμενοι:

  1. Leo Messi - 400€/μήνα
  2. Cristiano Ronaldo - 300€/μήνα
  3. Gareth Bale - 200€/μήνα

5. work_expense (Κλάση Δαπανών Εργαζομένου)

Αρχείο: [work_expense.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/work_expense.java)

Σκοπός: Καταγραφή μεμονωμένων δαπανών εργαζομένων

Περιλαμβάνει:

  • Όνομα εργαζομένου
  • Τύπο δαπάνης
  • Ποσότητα/Αξία
  • Αιτιολογία
  • Υπολογισμό αποζημίωσης

6. transactions (Κλάση Συναλλαγών)

Αρχείο: [transactions.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/transactions.java)

Σκοπός: Καταγραφή όλων των οικονομικών κινήσεων

Τύποι Συναλλαγών:

  1. "prokatabolh" - Προκαταβολή στον εργαζόμενο
  2. Τύπος δαπάνης - Αποζημίωση για συγκεκριμένη δαπάνη
  3. "Diafora" - Διαφορά όταν οι αποζημιώσεις ξεπερνούν το όριο

7. mainApp (Κύρια Εφαρμογή)

Αρχείο: [mainApp.java](1ο μερος εργασιας(ΟΜΑΔΑ 35)/mainApp.java)

Σκοπός: Διαχείριση συστήματος με διαδραστικό μενού


Λειτουργικότητα

Μενού Εφαρμογής (9 Επιλογές)

  1. Προσθήκη Νέου Τύπου Δαπάνης

    • Επιλογή Τύπου A ή B
    • Εισαγωγή λεπτομερειών (περιγραφή, τιμή/ποσοστό, όριο)
  2. Προσθήκη Νέου Εργαζομένου

    • Εισαγωγή ονοματεπώνυμου
    • Ορισμός μηνιαίου ορίου αποζημίωσης
  3. Προσθήκη Νέας Δαπάνης Εργαζομένου

    • Επιλογή εργαζομένου
    • Επιλογή τύπου δαπάνης
    • Εισαγωγή ποσότητας/αξίας και αιτιολογίας
  4. Προσθήκη Προκαταβολής

    • Επιλογή εργαζομένου
    • Εισαγωγή ποσού προκαταβολής
  5. Εμφάνιση Δαπανών Εργαζομένων

    • Προβολή όλων των καταγεγραμμένων δαπανών
    • Λεπτομέρειες: εργαζόμενος, τύπος, ποσό, αιτιολογία
  6. Εκκαθάριση Δαπανών Ενός Εργαζομένου

    • Επιλογή εργαζομένου
    • Υπολογισμός και διακανονισμός δαπανών
    • Δημιουργία συναλλαγών
  7. Εμφάνιση Συναλλαγών Εργαζομένου

    • Προβολή όλων των κινήσεων
    • Προκαταβολές, αποζημιώσεις, διαφορές
  8. Εκκαθάριση Δαπανών Όλων των Εργαζομένων

    • Διακανονισμός για ολόκληρη την επιχείρηση
    • Μαζική επεξεργασία όλων των εργαζομένων
  9. Εμφάνιση Τελικής Αποζημίωσης

    • Υπολογισμός τελικού ποσού για κάθε εργαζόμενο
    • Φόρμουλα: Σύνολο Αποζημιώσεων - Προκαταβολές - Διαφορά

Αλγόριθμος Υπολογισμού Αποζημίωσης

ΓΙΑ κάθε εργαζόμενο:
    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

Βήματα

  1. Μεταγλώττιση:
cd "1ο μερος εργασιας(ΟΜΑΔΑ 35)"
javac *.java
  1. Εκτέλεση:
java mainApp
  1. Χρήση:
    • Ακολουθήστε το μενού
    • Επιλέξτε 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)

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages