// 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