Java - brauche Hilfe

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Laura, 2. November 2008 .

Schlagworte:
  1. 2. November 2008
    hey,
    irgendwie komme ich bei meinem Programm nicht mehr weiter. Villeicht könnt ihr mir ja helfen.

    Code:
    package uebungNr04_KapitalV1_******;
    
    import uebungNr03_TRmitSchleifeV1_******.Tastatur;
    
    /**
     * KapitalV1 Berechnung des Kapitals nach Eingabe ueber die
     * Tastaturklasse von Anfangskapital, Zins und Laufzeit 
     * 
     * Features
     * 1. Eingabe Variable ueber Tastatur-Klasse
     * 2. Kopfgesteuerte Schleife (Programmwiederholung)
     * 3. Schleifen zur Plausibilitaets-Kontrolle der Eingaben
     * 4. Zweiseitige Auswahl if-else (erhoehter Zinssatz)
     * 5. Zweiseitige Auswahl if-else (Eingabefehler-Kommentar)
     * 6. Einseitige Auswahl if (Eingabefehler-Kommentar)
     * 7. .....
     * 
     * Aufgabenstellung: Verzinsung ihres Kapitels oder einfacher ausgedrueckt
     * Ueber welchen Geldbetrag können Sie am Ende der Laufzeit verfuegen? 
     * Der DAU soll (mit Plausibilitätsprüfung) die Werte eingeben: 
     * Sein verfügbares Anfangskapital zwischen 0 und 100 000 Euro, einen Zinssatz zwischen 0 und 20 Prozent (falls 
     * der DAU mehr als 15 Prozent Zinsen eingibt, soll ein Hinweis erschenen "Bitte das Geld
     * nicht in Optionsscheinen bei einer Bank im Ausland anlegen, Sie :crazy:!")und die gewünschte Laufzeit (max. 50) in Jahren.
     * Falls der angelegte Wert über 70000 Euro liegt, wird ihm von der Bank noch ein Zinsbonus von 0,5% gewährt.
     * Am Ende jedes Jahres soll der Kontostand (gerundet auf zwei Stellen) angezeigt werden.
     * Der DAU soll die Berechnungen mehrfach durchführen können bzw. dürfen (anspruchsvolle Erweiterung: maximal 3 Berechnungen).
     * Berechnungstipps: 
     * faktor = (100.0 + zinssatzInProzent) / 100.0;
     * kapitalAktuell = kapitalAktuell * faktor;
     * 
     * @author Herr ******
     * @author ******
     * @version Version 01 vom 27.10.2008
     */
    
    public class uebungNr04_KapitalV1_****** {
    
     public static void main(String[] args)
     {
     // Deklarieren von Variablen
     double anfangsKapital; // z.B. 10000 Euro
     double zinssatzInProzent; // z.B. 5%
     double faktor; // Multiplikator fürs Kapital
     double kapitalAktuell; 
     int laufzeit; // Laufzeit in Jahren
     char nochEineBerechnung; // Wiederholung der Berechnung
    
     // Wertzuweisung der Variablen
     
     nochEineBerechnung='j'; // Vorbelegen wegen while
     
     
     while(nochEineBerechnung=='j')
     {// Anfang while
     
     anfangsKapital=-1; // Vorbelegen wegen while
     zinssatzInProzent=-1; // Vorbelegen wegen while
     //laufzeit=1; // Vorbelegen wegen while
     
     //anfang anfangsKapital
     System.out.println("Bitte geben Sie ihr Startkapitial ein (<= 0 >100 000 Euro): ");
     anfangsKapital=Tastatur.leseKommazahl();
     while(anfangsKapital<=0 || anfangsKapital>100000) 
     {// Anfang while
     System.out.println("Fehleingabe!");
     System.out.println("Bitte geben Sie ihr Startkapitial ein (<= 0 >100 000 Euro): ");
     anfangsKapital=Tastatur.leseKommazahl();
     }// end while anfangsKapital
     System.out.println("Ihr Startkapital beträgt: "+anfangsKapital+"€");
     //ende anfangsKapital
     
     //anfang zinssatzInProzent
     System.out.println("Bitte geben Sie den Zinssatz in '%' ein (<= 0 >20: ");
     zinssatzInProzent=Tastatur.leseKommazahl();
     while(zinssatzInProzent<=0 || zinssatzInProzent>20)
     {// Anfang while
     System.out.println("Fehleingabe!");
     System.out.println("Bitte geben Sie den Zinssatz in '%' ein (<= 0 >20: ");
     zinssatzInProzent=Tastatur.leseKommazahl();
     }// end while zinssatzInProzent
     System.out.println("Ihr Zinssatz beträgt: "+zinssatzInProzent+"%");
     //ende zinssatzInProzent
     
     //anfang laufzeit
     System.out.println("Bitte geben Sie die gewünschte Laufzeit ein (< 0 >50): ");
     laufzeit=Tastatur.leseZahl();
     while(laufzeit<=0 || laufzeit>20)
     {// Anfang while
     System.out.println("Fehleingabe!");
     System.out.println("Bitte geben Sie die gewünschte Laufzeit ein (< 0 >50): ");
     laufzeit=Tastatur.leseZahl();
     }// end while laufzeit
     System.out.println("Ihre Laufzeit beträgt: "+laufzeit+" Jahr(e)");
     //ende laufzeit
     
     
     // Berechnung der Ergebnisse
     
     
     faktor = (100.0 + zinssatzInProzent) / 100.0;
     
     if(anfangsKapital >70000){
     kapitalAktuell = (faktor+0.5*(anfangsKapital));
     
     }//end if
     
     else {
     kapitalAktuell= (faktor*anfangsKapital);
     
     }//end else
     
     
     
     
     // Ausgabe der Ergebnisse auf der Konsole
     System.out.println("Ihr Kapital beträgt "+kapitalAktuell+"");
     
     
     // Noch eine Berechnung?
     
     
     System.out.println("Wollen Sie noch Eine Berechnung durchführen? (Ja=j; Nein=n)"); 
     nochEineBerechnung=Tastatur.leseZeichen();
     
     }// end while nochEineBerechnung
     
     
     System.out.println("Sie haben das Programm beendet!");
    
     } // end main
    } // end class
    
    
    Schonmal Danke
    greetz
     
  2. 2. November 2008
    AW: Java - brauche Hilfe

    bis auf die eingabe über tastatur zeigt er mir keinen fehler an
    das liegt aber daran dass ich die klasse nicht habe.
    wäre nett, wenn du nähere infos posten könntest, wo es bei dir zu fehlern kommt
    ansonsten siehts erstma ok aus

    greetz

    EDIT
    Hab den Code jetzt nen bisschen an meine eingabe angepasst:

    Code:
    import java.io.*;
    /**
     *
     * @author Terranier
     */
    public class probe {
    
     public static void main(String[] args) throws Exception
     {
     
     BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
     // Deklarieren von Variablen
     double anfangsKapital; // z.B. 10000 Euro
     double zinssatzInProzent; // z.B. 5%
     double faktor; // Multiplikator fürs Kapital
     double kapitalAktuell; 
     int laufzeit; // Laufzeit in Jahren
     String nochEineBerechnung; // Wiederholung der Berechnung
    
     // Wertzuweisung der Variablen
     
     nochEineBerechnung="j"; // Vorbelegen wegen while
     
     
     while(nochEineBerechnung=="j")
     {// Anfang while
     
     anfangsKapital=-1; // Vorbelegen wegen while
     zinssatzInProzent=-1; // Vorbelegen wegen while
     //laufzeit=1; // Vorbelegen wegen while
     
     //anfang anfangsKapital
     System.out.println("Bitte geben Sie ihr Startkapitial ein (<= 0 >100 000 Euro): ");
     anfangsKapital=Double.parseDouble(input.readLine());
     while(anfangsKapital<=0 || anfangsKapital>100000) 
     {// Anfang while
     System.out.println("Fehleingabe!");
     System.out.println("Bitte geben Sie ihr Startkapitial ein (<= 0 >100 000 Euro): ");
     anfangsKapital=Double.parseDouble(input.readLine());
     }// end while anfangsKapital
     System.out.println("Ihr Startkapital beträgt: "+anfangsKapital+"€");
     //ende anfangsKapital
     
     //anfang zinssatzInProzent
     System.out.println("Bitte geben Sie den Zinssatz in '%' ein (<= 0 >20: ");
     zinssatzInProzent=Double.parseDouble(input.readLine());
     while(zinssatzInProzent<=0 || zinssatzInProzent>20)
     {// Anfang while
     System.out.println("Fehleingabe!");
     System.out.println("Bitte geben Sie den Zinssatz in '%' ein (<= 0 >20: ");
     zinssatzInProzent=Double.parseDouble(input.readLine());
     }// end while zinssatzInProzent
     System.out.println("Ihr Zinssatz beträgt: "+zinssatzInProzent+"%");
     //ende zinssatzInProzent
     
     //anfang laufzeit
     System.out.println("Bitte geben Sie die gewünschte Laufzeit ein (< 0 >50): ");
     laufzeit=Integer.parseInt(input.readLine());
     while(laufzeit<=0 || laufzeit>20)
     {// Anfang while
     System.out.println("Fehleingabe!");
     System.out.println("Bitte geben Sie die gewünschte Laufzeit ein (< 0 >50): ");
     laufzeit=Integer.parseInt(input.readLine());
     }// end while laufzeit
     System.out.println("Ihre Laufzeit beträgt: "+laufzeit+" Jahr(e)");
     //ende laufzeit
     
     
     // Berechnung der Ergebnisse
     
     
     faktor = (100.0 + zinssatzInProzent) / 100.0;
     
     if(anfangsKapital >70000){
     kapitalAktuell = (faktor+0.5*(anfangsKapital));
     
     }//end if
     
     else {
     kapitalAktuell= (faktor*anfangsKapital);
     
     }//end else
     
     
     
     
     // Ausgabe der Ergebnisse auf der Konsole
     System.out.println("Ihr Kapital beträgt "+kapitalAktuell+"");
     
     
     // Noch eine Berechnung?
     
     
     System.out.println("Wollen Sie noch Eine Berechnung durchführen? (Ja=j; Nein=n)"); 
     nochEineBerechnung = input.readLine();
     
     }// end while nochEineBerechnung
     
     
     System.out.println("Sie haben das Programm beendet!");
    
     } // end main
    } // end class
    das programm funzt jetzt wunderbar...
     
  3. 2. November 2008
    AW: Java - brauche Hilfe

    ja ein fehler habe ich nicht
    das läuft
    aber ich weiß echt nicht wie ich das hin bekomme dass der mir jedes jahr einzeln anzeigt und überhaupt versteh ich die rechnung ned ganz die ich machen muss^^
    und wie bekomm ich das hin dass der mir sagt wenn ich z.B "k" eingebe wenn er fragt neue berechnung dass er sagt "Fehleingabe" und dann noch mal fragt?
    greetz
     
  4. 2. November 2008
    AW: Java - brauche Hilfe

    ich würde empfehlen, dass du mehr mit methoden arbeitest.
    dh du schreibst deine rechnungen bspw in eine methode berechnung.
    die kannst du dann durch den befehl berechnung() beliebig oft aufrufen, zum beispiel wenn eine bestimmte bedingung erfüllt wird.
    das hat den vorteil, dass du den ganzen code nur einmal schreiben, aber beliebig oft verwenden kannst.

    du müsstest die ausgabe dann in die if-anweisung schreiben

    ist doch aber alles ganz gut kommentiert!?!
    was verstehste denn daran nicht?
     
  5. 2. November 2008
    AW: Java - brauche Hilfe

    also das mit den metoden haben wir noch ned also muss ich so machen
    das mit if muss ich mal testen
    ich versteh ned was ich rechnen muss und weiß ned ob die rechnung so stimmt wie sie da ist
    greetz

    edit: mit den jahren wenn ich das mit if mache müsst ich ja für jedes jahr machen?!?
    edit2: bei der laufzeit stimmt auch was ned der nimmt nur zahlen von 1-9 also "35" nimmt der ned
     
  6. 4. November 2008
    AW: Java - brauche Hilfe

    Zinsen werden ja pro jahr berechnet das heißt wenn du 5% Zinsen hast hast du nach dem ersten Jahr:
    Anfangskapital +Anfangskapital*0.05 das ist das gleiche wie Anfangskapital*1.05
    wenn du jetzt das Kapital von nächsten Jahr ausrechnen wilst musst du dein Aktuelles Kapital wieder mit 1.05 mal nehmen dabei würde für z.b. 30 Jahre so etwas rauskommen:
    Anfangskapital*1.05^30 wobei ^30 hoch 30 sein soll
    Willst du das jetzt für jedes Jahr ausgeben würde ich dir raten darum einfach wieder eine Schleife zu legen also für jedes Jahr wieder das berechnen und ausgeben.

    Dann fehlt nurnoch eine If Abfrage ob bereits 700000 überschritten wurden und noch einmal die 0.5 % drauf rechnen.

    Das wäre der Mathematische Aspekt dieser Aufgabe
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.