Gebühr ausrechnen [Buchaufgabe]

Durchstarter

Mitglied
Also ich habe mir ein Buch zum Lernen zugelegt und ich komme hier nicht weiter ;(

Die Parkgebühr beträgt 1,50€ für die ersten 3 Stunden, jede weitere Stunde kostet 0,50€ mehr.

Mein Problem ist nun das er mir eine Fehlermeldung gibt:

Java:
Parkhaus.java:67:14: error: not a statement
      gebuehr+0.5;
             ^
1 error

Der Button zum Rechnen:
Java:
public void jButton1_ActionPerformed(ActionEvent evt) {
    double dauer,gebuehr=1.50;
    dauer = Double.parseDouble(jTextField1.getText());
    
    while(dauer<=3)
    {
      gebuehr+0.5;
    }
   
    jLabel1.setText(String.valueOf(gebuehr));
    // TODO hier Quelltext einfügen
  } // end of jButton1_ActionPerformed

Gesamter Quelltext:

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 25.03.2015
  * @author 
  */

public class Parkhaus extends JFrame {
  // Anfang Attribute
  private JLabel jLabel1 = new JLabel();
  private JTextField jTextField1 = new JTextField();
  private JButton jButton1 = new JButton();
  private JLabel jLabel2 = new JLabel();
  // Ende Attribute
  
  public Parkhaus(String title) { 
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 193; 
    int frameHeight = 98;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten
    
    jLabel1.setBounds(96, 32, 70, 20);
    jLabel1.setText("");
    cp.add(jLabel1);
    jTextField1.setBounds(144, 8, 22, 20);
    cp.add(jTextField1);
    jButton1.setBounds(8, 32, 83, 25);
    jButton1.setText("Parkgebühr");
    jButton1.setMargin(new Insets(2, 2, 2, 2));
    jButton1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        jButton1_ActionPerformed(evt);
      }
    });
    cp.add(jButton1);
    jLabel2.setBounds(8, 8, 130, 20);
    jLabel2.setText("Parkdauer in Stunden:");
    cp.add(jLabel2);
    // Ende Komponenten
    
    setVisible(true);
  } // end of public Parkhaus
  
  // Anfang Methoden
  public void jButton1_ActionPerformed(ActionEvent evt) {
    double dauer,gebuehr=1.50;
    dauer = Double.parseDouble(jTextField1.getText());
    
    while(dauer<=3)
    {
      gebuehr+0.5;
    }
   
    jLabel1.setText(String.valueOf(gebuehr));
    // TODO hier Quelltext einfügen
  } // end of jButton1_ActionPerformed
  
  // Ende Methoden
  
  public static void main(String[] args) {
    new Parkhaus("Parkhaus");
  } // end of main
  
} // end of class Parkhaus
 
Zuletzt bearbeitet:

franky27

Bekanntes Mitglied
Sagt die Fehlermeldung ja bereits, kein Statement alla "=". Also
Java:
gebuehr+=0.5;
Glaub aber das wird nicht der einzige Fehler bleiben...
Edit: Die while Schleife macht keinen Sinn, schau dir das nochmal an!
 
Zuletzt bearbeitet:

Durchstarter

Mitglied
Franky27 jetzt würde es meiner Meinung nach eine Endlosschleife sein...

Wenn die Dauer<3 dann soll es 1.50€ ausgeben, für jede Stunde über 3 sollen 0,5€ auf den Preis kommen.. d.h z.B bei 5 Stunden wäre der Preis 2.50€ allerdings zeigt er mir für 5 nun 1.50€ an und wenn die Zahl unter 3 ist "hängt" es sich auf :/
 

Durchstarter

Mitglied
Ich hatte vorhin in meinem Buch eine if Aufgabe bearbeitet währe es dann sowas?

nur der Button:
Java:
public void jButton1_ActionPerformed(ActionEvent evt) {
    double Kundennummer,Preis,x;
    Kundennummer = Double.parseDouble(jTextField1.getText());
    Preis = Double.parseDouble(jTextField2.getText());
    x=0;
    
    if (Kundennummer>=1) 
    {
      if (Kundennummer<=1000) {
        x=Preis*0.03;
      } 
    }
    
    else {
      x=0 ;
    } // end of if-else
    
    Preis = Preis-x;
    
    jLabel1.setText(String.valueOf(Preis));
  } // end of jButton1_ActionPerformed

Alles:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 25.03.2015
  * @author 
  */

public class Zubehör extends JFrame {
  // Anfang Attribute
  private JLabel jLabel1 = new JLabel();
  private JButton jButton1 = new JButton();
  private JTextField jTextField1 = new JTextField();
  private JTextField jTextField2 = new JTextField();
  private JLabel jLabel2 = new JLabel();
  private JLabel jLabel3 = new JLabel();
  private JLabel jLabel4 = new JLabel();
  // Ende Attribute
  
  public Zubehör(String title) { 
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 193; 
    int frameHeight = 126;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten
    
    jLabel1.setBounds(104, 56, 62, 20);
    jLabel1.setText("");
    cp.add(jLabel1);
    jButton1.setBounds(8, 56, 27, 25);
    jButton1.setText("=");
    jButton1.setMargin(new Insets(2, 2, 2, 2));
    jButton1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        jButton1_ActionPerformed(evt);
      }
    });
    cp.add(jButton1);
    jTextField1.setBounds(112, 8, 54, 20);
    cp.add(jTextField1);
    jTextField2.setBounds(48, 32, 118, 20);
    cp.add(jTextField2);
    jLabel2.setBounds(8, 8, 102, 20);
    jLabel2.setText("Kundennummer:");
    cp.add(jLabel2);
    jLabel3.setBounds(8, 32, 38, 20);
    jLabel3.setText("Preis:");
    cp.add(jLabel3);
    jLabel4.setBounds(40, 56, 62, 20);
    jLabel4.setText("Endbetrag:");
    cp.add(jLabel4);
    // Ende Komponenten
    
    setVisible(true);
  } // end of public Zubehör
  
  // Anfang Methoden
  public void jButton1_ActionPerformed(ActionEvent evt) {
    double Kundennummer,Preis,x;
    Kundennummer = Double.parseDouble(jTextField1.getText());
    Preis = Double.parseDouble(jTextField2.getText());
    x=0;
    
    if (Kundennummer>=1) 
    {
      if (Kundennummer<=1000) {
        x=Preis*0.03;
      } 
    }
    
    else {
      x=0 ;
    } // end of if-else
    
    Preis = Preis-x;
    
    jLabel1.setText(String.valueOf(Preis));
  } // end of jButton1_ActionPerformed
  
  // Ende Methoden
  
  public static void main(String[] args) {
    new Zubehör("Zubehör");
  } // end of main
  
} // end of class Zubehör
 

Durchstarter

Mitglied
Ich versuche es nochmal mit einer If bedingung und melde mich gleich nochmal :) !

EDIT:Müsse es nicht eine if-Bedingung mit Schleife sein, weil wenn es jetzt 5 Stunden währen rechnet er nur einmal die 0.50€ drauf
 
Zuletzt bearbeitet:

Sasuke

Mitglied
Franky27 jetzt würde es meiner Meinung nach eine Endlosschleife sein...

Wenn die Dauer<3 dann soll es 1.50€ ausgeben, für jede Stunde über 3 sollen 0,5€ auf den Preis kommen.. d.h z.B bei 5 Stunden wäre der Preis 2.50€ allerdings zeigt er mir für 5 nun 1.50€ an und wenn die Zahl unter 3 ist "hängt" es sich auf :/

Natürlich tut es das, es ist ja auch eine Endlosschleife. Nur weil sich die Gebühr erhöht, verändert sich ja nicht die Dauer. Du hebst die Dauer während der Endlossschleife nicht an, deshalb ist die Dauer ggf. immer kleiner als 3.

Java:
 if( dauer <= 3 ) gebuehr = 1.50; //bzw nichts tun da grundgebühr schon 1.50
          else gebuehr+=(dauer-3 )*0.5
 

Durchstarter

Mitglied
Habs hinbekommen :D

Der Button sieht jetzt so aus:
Java:
public void jButton1_ActionPerformed(ActionEvent evt) {
    double dauer,gebuehr=1.5;
    dauer = Double.parseDouble(jTextField1.getText());
    
    if (dauer>3){
      do { 
        dauer-=1;
        gebuehr+=0.5;    
      } while (dauer>3); 
    } 
   
    jLabel1.setText(String.valueOf(gebuehr +"€"));
    // TODO hier Quelltext einfügen
  } // end of jButton1_ActionPerformed

und der gesammt Code:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 25.03.2015
  * @author 
  */

public class Parkhaus extends JFrame {
  // Anfang Attribute
  private JLabel jLabel1 = new JLabel();
  private JTextField jTextField1 = new JTextField();
  private JButton jButton1 = new JButton();
  private JLabel jLabel2 = new JLabel();
  // Ende Attribute
  
  public Parkhaus(String title) { 
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 193; 
    int frameHeight = 98;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten
    
    jLabel1.setBounds(96, 32, 70, 20);
    jLabel1.setText("");
    cp.add(jLabel1);
    jTextField1.setBounds(144, 8, 22, 20);
    cp.add(jTextField1);
    jButton1.setBounds(8, 32, 83, 25);
    jButton1.setText("Parkgebühr");
    jButton1.setMargin(new Insets(2, 2, 2, 2));
    jButton1.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
        jButton1_ActionPerformed(evt);
      }
    });
    cp.add(jButton1);
    jLabel2.setBounds(8, 8, 130, 20);
    jLabel2.setText("Parkdauer in Stunden:");
    cp.add(jLabel2);
    // Ende Komponenten
    
    setVisible(true);
  } // end of public Parkhaus
  
  // Anfang Methoden
  public void jButton1_ActionPerformed(ActionEvent evt) {
    double dauer,gebuehr=1.5;
    dauer = Double.parseDouble(jTextField1.getText());
    
    if (dauer>3){
      do { 
        dauer-=1;
        gebuehr+=0.5;    
      } while (dauer>3); 
    } 
   
    jLabel1.setText(String.valueOf(gebuehr +"€"));
    // TODO hier Quelltext einfügen
  } // end of jButton1_ActionPerformed
  
  // Ende Methoden
  
  public static void main(String[] args) {
    new Parkhaus("Parkhaus");
  } // end of main
  
} // end of class Parkhaus


EDIT: Danke Sasuke, funktioniert schon :p ich Arbeite mich mal weiter durch dieses Buch vielleicht brauche ich später nochmal Hilfe
 
Zuletzt bearbeitet:

franky27

Bekanntes Mitglied
Also mit der Schleife würde ich mir das nicht angewöhnen. Du brauchst nur eine if Bedingung wie du ja jetzt bereits gesehen hast. Schau dir das lieber nochmal an.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
Leo_1789 Differenz ausrechnen zwischen denn idealgewicht und denn echten Gewicht Java Basics - Anfänger-Themen 7
D Restguthaben ausrechnen Java Basics - Anfänger-Themen 4
F Potenz ausrechnen Hilfe! Java Basics - Anfänger-Themen 7
C Rechenaufgabe im JLabel ausrechnen Java Basics - Anfänger-Themen 2
B Variablen im Java-Code selber "ausrechnen" Java Basics - Anfänger-Themen 8
C Konvertierung per Hand ausrechnen Java Basics - Anfänger-Themen 8
C Variablen Array dynamisch halten und ausrechnen Java Basics - Anfänger-Themen 14
N alter mit Date ausrechnen Java Basics - Anfänger-Themen 10
StrikeTom Median ausrechnen Java Basics - Anfänger-Themen 3
D Rest ausrechnen Java Basics - Anfänger-Themen 2
K Datentypen Prozent ausrechnen, Probleme Java Basics - Anfänger-Themen 9
K BMI ausrechnen Java Basics - Anfänger-Themen 20
B Taschenrechner - Aufgabenstring umwandeln und ausrechnen Java Basics - Anfänger-Themen 6
C String "ausrechnen" Java Basics - Anfänger-Themen 6
C Mausklicks pro Minute ausrechnen Java Basics - Anfänger-Themen 12
M Gleichungen dynamisch erstellen und ausrechnen? Java Basics - Anfänger-Themen 8
P Farbwertanteile ausrechnen! geht so nich ganz Java Basics - Anfänger-Themen 2
D BreitenGrad ausrechnen Java Basics - Anfänger-Themen 13
G automatisch ausrechnen Java Basics - Anfänger-Themen 3
U tage ausrechnen Java Basics - Anfänger-Themen 4
B Formel in Textfeld ausrechnen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben