MBrendecke icon

Haushaltsbuch

MBrendecke | PRO | 05/22/17 01:35:57 PM UTC | 0 ⭐ | 431 👁️ | Never ⏰ | []
Java |

6.16 KB

|

None

|

0 👍

/

0 👎

// Name:            Haushaltsbuch
// Version:         1.2.4
// Time:            2017-05-22 : 16:06h
 
package projectitalia.light;
 
import java.util.ArrayList;
 
public class Main {
    public static void main(String[] args) {
        // Haushaltsbuch für einen Monat erstellen
        Haushaltsbuch _januar = new Haushaltsbuch(2017, "_januar");
        // Einnahmen protokollieren
        _januar.protokoll(new Rechnungsobjekt(1000, "KDG"), Haushaltsbuch.RechnungsobjektTyp.Aktien);
        _januar.protokoll(new Rechnungsobjekt(400, "McDonalds"), Haushaltsbuch.RechnungsobjektTyp.Aktien);
        _januar.protokoll(new Rechnungsobjekt(300, "Thermo Fisher Scientic"), Haushaltsbuch.RechnungsobjektTyp.Aktien);
        _januar.protokoll(new Rechnungsobjekt(50, "Straßenfund"), Haushaltsbuch.RechnungsobjektTyp.SonstigeE);
        
        // Einnahmen zusammen rechnen
        _januar.brutto();
        
        // Ausgaben protokollieren
        for (int i = 0; i <= 93; i++) {
            _januar.protokoll(new Rechnungsobjekt(3.99, "BigMac"), Haushaltsbuch.RechnungsobjektTyp.Lebensmittel);
            _januar.protokoll(new Rechnungsobjekt(1.24, "Cola"), Haushaltsbuch.RechnungsobjektTyp.Lebensmittel);
        }
        _januar.protokoll(new Rechnungsobjekt(160, "Ergotherapie"), Haushaltsbuch.RechnungsobjektTyp.Gesundheit);
        _januar.protokoll(new Rechnungsobjekt(1000.99, "Thermomix"), Haushaltsbuch.RechnungsobjektTyp.SonstigeA);
        
        // Ausgaben zusammen rechnen
        _januar.ausgaben();
        
        // Monatsnettobetrag errechnen
        _januar.netto();
    }
}
 
public class Haushaltsbuch {
    public enum RechnungsobjektTyp {
        Gehalt,
        Aktien,
        Lebensmittel,
        Gesundheit,
        SonstigeE,
        SonstigeA
    }
    
    private int _jahr;
    private String _monat;
    
    // Oberkategorien
    private ArrayList<Rechnungsobjekte> _einnahmen = new ArrayList<Rechnungsobjekte>();
    private ArrayList<Rechnungsobjekte> _ausgaben = new ArrayList<Rechnungsobjekte>();
    // Unterkategorien der Unterkategorien
    // Einnahmen
    private Rechnungsobjekte _gehalt = new Rechnungsobjekte();
    private Rechnungsobjekte _aktien = new Rechnungsobjekte();
    private Rechnungsobjekte _sonstigeE = new Rechnungsobjekte();
    // Ausgaben
    private Rechnungsobjekte _sonstigeA = new Rechnungsobjekte();
    private Rechnungsobjekte _gesundheit = new Rechnungsobjekte();
    private Rechnungsobjekte _lebensmittel = new Rechnungsobjekte();
 
    public Haushaltsbuch(int p_jahr, String p_monat) {
        this._jahr = p_jahr;
        this._monat = p_monat;
        System.out.println(this.toString());
        
        // Einnahmen hinzufügen und direkt konstruieren        
        _einnahmen.add(_aktien);
        _einnahmen.add(_gehalt);
        _einnahmen.add(_sonstigeE);
        
        // Ausgaben hinzufügen und direkt konstruieren
        _ausgaben.add(_gesundheit);
        _ausgaben.add(_lebensmittel);
        _ausgaben.add(_sonstigeA);
    }    
    
    public void protokoll(Rechnungsobjekt pRechnungsobjekt, RechnungsobjektTyp pTyp) {
        
        switch (pTyp) {
        case Aktien:
            _aktien.add(pRechnungsobjekt);
            break;
        case Gehalt:
            _gehalt.add(pRechnungsobjekt);
            break;
        case Gesundheit:
            _gesundheit.add(pRechnungsobjekt);
            break;
        case Lebensmittel:
            _lebensmittel.add(pRechnungsobjekt);
            break;
        case SonstigeA:
            _sonstigeA.add(pRechnungsobjekt);
            break;
        case SonstigeE:
            _sonstigeE.add(pRechnungsobjekt);
            break;
        default:
            System.out.println("Diese Kategorie gibt es nicht oder Sie haben sie falsch geschrieben");
            break;
        }
 
        System.out.println(pRechnungsobjekt + " wurde für den _monat " + _monat + " protokolliert.");
    }
 
    public double brutto() {
        double a = 0;
        double g = 0;
        double s = 0;
        
        for (Rechnungsobjekt aktie : _aktien) {
            a += aktie.getBetrag();
        }
        
        for (Rechnungsobjekt gehalt : _gehalt) {
            g += gehalt.getBetrag(); 
        }
        
        for (Rechnungsobjekt sonstigeE : _sonstigeE) {
            s += sonstigeE.getBetrag();
        }
                
        double gesamtbetragE = a + g + s;
        System.out.println("Sie haben in diesem _monat " + gesamtbetragE + "€ brutto erwirtschaftet. [Gehalt=" + g
                + "€, Aktien=" + a + "€, Sonstige Einnahmen=" + s + "€]");
        return gesamtbetragE;
    }
 
    public double ausgaben() {
        double l = 0;
        double g = 0;
        double s = 0;
        
        for (Rechnungsobjekt lebensmittel : _lebensmittel) {
            l += lebensmittel.getBetrag();
        }
        
        for (Rechnungsobjekt gesundheit : _gesundheit) {
            g += gesundheit.getBetrag();
        }
        
        for (Rechnungsobjekt sonstigeA : _sonstigeA) {
            s += sonstigeA.getBetrag();
        }
                
        double gesamtbetragA = l + g + s;
        System.out.println("Sie haben in diesem _monat " + gesamtbetragA + "€ ausgegeben. [Lebensmittel=" + l
                + "€, Gesundheit=" + g + "€, Sonstige Ausgaben=" + s + "€]");
        return gesamtbetragA;
    }
 
    public void netto() {
        double netto = 0;
        netto = brutto() - ausgaben();
        System.out.println("Sie haben nach diesem _monat noch " + netto + "€ zur Verfügung.");
    }
 
    @Override
    public String toString() {
        return "Haushaltsbuch wurde für " + _monat + " " + _jahr + " erstellt.";
    }
}
 
public class Rechnungsobjekt {
    private double _betrag = 0.0;
    private String _name = "";
 
    public double getBetrag() {
        return _betrag;
    }
 
    public void setBetrag(double betrag) {
        _betrag = betrag;
    }
 
    public String getName() {
        return _name;
    }
 
    public void setName(String name) {
        _name = name;
    }
    
    public Rechnungsobjekt(double betrag, String name) {
        _betrag = betrag;
        _name = name;
    }
    
    @Override
    public String toString() {
        return "Rechnungsobjekt [betrag = " + _betrag + ", name = " + _name + "]";
    }
}
 
public class Rechnungsobjekte extends ArrayList <Rechnungsobjekt> { 
    private static final long serialVersionUID = 1L;
}

Comments