Advertisement
MBrendecke

Haushaltsbuch

May 22nd, 2017
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.16 KB | None | 0 0
  1. // Name:            Haushaltsbuch
  2. // Version:         1.2.4
  3. // Time:            2017-05-22 : 16:06h
  4.  
  5. package projectitalia.light;
  6.  
  7. import java.util.ArrayList;
  8.  
  9. public class Main {
  10.     public static void main(String[] args) {
  11.         // Haushaltsbuch für einen Monat erstellen
  12.         Haushaltsbuch _januar = new Haushaltsbuch(2017, "_januar");
  13.         // Einnahmen protokollieren
  14.         _januar.protokoll(new Rechnungsobjekt(1000, "KDG"), Haushaltsbuch.RechnungsobjektTyp.Aktien);
  15.         _januar.protokoll(new Rechnungsobjekt(400, "McDonalds"), Haushaltsbuch.RechnungsobjektTyp.Aktien);
  16.         _januar.protokoll(new Rechnungsobjekt(300, "Thermo Fisher Scientic"), Haushaltsbuch.RechnungsobjektTyp.Aktien);
  17.         _januar.protokoll(new Rechnungsobjekt(50, "Straßenfund"), Haushaltsbuch.RechnungsobjektTyp.SonstigeE);
  18.        
  19.         // Einnahmen zusammen rechnen
  20.         _januar.brutto();
  21.        
  22.         // Ausgaben protokollieren
  23.         for (int i = 0; i <= 93; i++) {
  24.             _januar.protokoll(new Rechnungsobjekt(3.99, "BigMac"), Haushaltsbuch.RechnungsobjektTyp.Lebensmittel);
  25.             _januar.protokoll(new Rechnungsobjekt(1.24, "Cola"), Haushaltsbuch.RechnungsobjektTyp.Lebensmittel);
  26.         }
  27.         _januar.protokoll(new Rechnungsobjekt(160, "Ergotherapie"), Haushaltsbuch.RechnungsobjektTyp.Gesundheit);
  28.         _januar.protokoll(new Rechnungsobjekt(1000.99, "Thermomix"), Haushaltsbuch.RechnungsobjektTyp.SonstigeA);
  29.        
  30.         // Ausgaben zusammen rechnen
  31.         _januar.ausgaben();
  32.        
  33.         // Monatsnettobetrag errechnen
  34.         _januar.netto();
  35.     }
  36. }
  37.  
  38. public class Haushaltsbuch {
  39.     public enum RechnungsobjektTyp {
  40.         Gehalt,
  41.         Aktien,
  42.         Lebensmittel,
  43.         Gesundheit,
  44.         SonstigeE,
  45.         SonstigeA
  46.     }
  47.    
  48.     private int _jahr;
  49.     private String _monat;
  50.    
  51.     // Oberkategorien
  52.     private ArrayList<Rechnungsobjekte> _einnahmen = new ArrayList<Rechnungsobjekte>();
  53.     private ArrayList<Rechnungsobjekte> _ausgaben = new ArrayList<Rechnungsobjekte>();
  54.     // Unterkategorien der Unterkategorien
  55.     // Einnahmen
  56.     private Rechnungsobjekte _gehalt = new Rechnungsobjekte();
  57.     private Rechnungsobjekte _aktien = new Rechnungsobjekte();
  58.     private Rechnungsobjekte _sonstigeE = new Rechnungsobjekte();
  59.     // Ausgaben
  60.     private Rechnungsobjekte _sonstigeA = new Rechnungsobjekte();
  61.     private Rechnungsobjekte _gesundheit = new Rechnungsobjekte();
  62.     private Rechnungsobjekte _lebensmittel = new Rechnungsobjekte();
  63.  
  64.     public Haushaltsbuch(int p_jahr, String p_monat) {
  65.         this._jahr = p_jahr;
  66.         this._monat = p_monat;
  67.         System.out.println(this.toString());
  68.        
  69.         // Einnahmen hinzufügen und direkt konstruieren        
  70.         _einnahmen.add(_aktien);
  71.         _einnahmen.add(_gehalt);
  72.         _einnahmen.add(_sonstigeE);
  73.        
  74.         // Ausgaben hinzufügen und direkt konstruieren
  75.         _ausgaben.add(_gesundheit);
  76.         _ausgaben.add(_lebensmittel);
  77.         _ausgaben.add(_sonstigeA);
  78.     }    
  79.    
  80.     public void protokoll(Rechnungsobjekt pRechnungsobjekt, RechnungsobjektTyp pTyp) {
  81.        
  82.         switch (pTyp) {
  83.         case Aktien:
  84.             _aktien.add(pRechnungsobjekt);
  85.             break;
  86.         case Gehalt:
  87.             _gehalt.add(pRechnungsobjekt);
  88.             break;
  89.         case Gesundheit:
  90.             _gesundheit.add(pRechnungsobjekt);
  91.             break;
  92.         case Lebensmittel:
  93.             _lebensmittel.add(pRechnungsobjekt);
  94.             break;
  95.         case SonstigeA:
  96.             _sonstigeA.add(pRechnungsobjekt);
  97.             break;
  98.         case SonstigeE:
  99.             _sonstigeE.add(pRechnungsobjekt);
  100.             break;
  101.         default:
  102.             System.out.println("Diese Kategorie gibt es nicht oder Sie haben sie falsch geschrieben");
  103.             break;
  104.         }
  105.  
  106.         System.out.println(pRechnungsobjekt + " wurde für den _monat " + _monat + " protokolliert.");
  107.     }
  108.  
  109.     public double brutto() {
  110.         double a = 0;
  111.         double g = 0;
  112.         double s = 0;
  113.        
  114.         for (Rechnungsobjekt aktie : _aktien) {
  115.             a += aktie.getBetrag();
  116.         }
  117.        
  118.         for (Rechnungsobjekt gehalt : _gehalt) {
  119.             g += gehalt.getBetrag();
  120.         }
  121.        
  122.         for (Rechnungsobjekt sonstigeE : _sonstigeE) {
  123.             s += sonstigeE.getBetrag();
  124.         }
  125.                
  126.         double gesamtbetragE = a + g + s;
  127.         System.out.println("Sie haben in diesem _monat " + gesamtbetragE + "€ brutto erwirtschaftet. [Gehalt=" + g
  128.                 + "€, Aktien=" + a + "€, Sonstige Einnahmen=" + s + "€]");
  129.         return gesamtbetragE;
  130.     }
  131.  
  132.     public double ausgaben() {
  133.         double l = 0;
  134.         double g = 0;
  135.         double s = 0;
  136.        
  137.         for (Rechnungsobjekt lebensmittel : _lebensmittel) {
  138.             l += lebensmittel.getBetrag();
  139.         }
  140.        
  141.         for (Rechnungsobjekt gesundheit : _gesundheit) {
  142.             g += gesundheit.getBetrag();
  143.         }
  144.        
  145.         for (Rechnungsobjekt sonstigeA : _sonstigeA) {
  146.             s += sonstigeA.getBetrag();
  147.         }
  148.                
  149.         double gesamtbetragA = l + g + s;
  150.         System.out.println("Sie haben in diesem _monat " + gesamtbetragA + "€ ausgegeben. [Lebensmittel=" + l
  151.                 + "€, Gesundheit=" + g + "€, Sonstige Ausgaben=" + s + "€]");
  152.         return gesamtbetragA;
  153.     }
  154.  
  155.     public void netto() {
  156.         double netto = 0;
  157.         netto = brutto() - ausgaben();
  158.         System.out.println("Sie haben nach diesem _monat noch " + netto + "€ zur Verfügung.");
  159.     }
  160.  
  161.     @Override
  162.     public String toString() {
  163.         return "Haushaltsbuch wurde für " + _monat + " " + _jahr + " erstellt.";
  164.     }
  165. }
  166.  
  167. public class Rechnungsobjekt {
  168.     private double _betrag = 0.0;
  169.     private String _name = "";
  170.  
  171.     public double getBetrag() {
  172.         return _betrag;
  173.     }
  174.  
  175.     public void setBetrag(double betrag) {
  176.         _betrag = betrag;
  177.     }
  178.  
  179.     public String getName() {
  180.         return _name;
  181.     }
  182.  
  183.     public void setName(String name) {
  184.         _name = name;
  185.     }
  186.    
  187.     public Rechnungsobjekt(double betrag, String name) {
  188.         _betrag = betrag;
  189.         _name = name;
  190.     }
  191.    
  192.     @Override
  193.     public String toString() {
  194.         return "Rechnungsobjekt [betrag = " + _betrag + ", name = " + _name + "]";
  195.     }
  196. }
  197.  
  198. public class Rechnungsobjekte extends ArrayList <Rechnungsobjekt> {
  199.     private static final long serialVersionUID = 1L;
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement