// 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 _einnahmen = new ArrayList(); private ArrayList _ausgaben = new ArrayList(); // 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 { private static final long serialVersionUID = 1L; }