Rechnen mit mehreren Variablen

Basti82

Neues Mitglied
Hallo allerseits!

Ich habe ein kleines Problem beim rechnen mit 2 Variablen.

Ich soll über Weihnachten für den Informatik-Unterricht einen Verbrauchsrechner programieren. Bis auf die eigentliche Berechnung ist auch schon (fast) alles fertig :D

Geplant ist, die gefahrenen Km und die getankte Menge aus Textfeldern auszulesen und dann damit zu rechnen. mit einem ausgelesenen und einem fixen Wert klappt das auch wunderbar. Nur wenn mit 2 ausgelesenen Werten gerechnet werden soll, komt Müll raus.

Da meine Java-Kenntnisse nicht so prickelnd sind, wende ich mich vertrauensvoll an euch. :D Ich befürchte fast, der Fehler ist so simpel wie einfach zu beheben. Ich komme nur nicht drauf.

Die eigentliche Berechnung geht ab Zeile 204 los :D

Java:
package Rechner;

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
/*	
	Dies ist ein Programm zur Berechnung der Fachhochschulreife.
	Eine Gemeinschaftsproduktion von Grit Mikolascheck, Sebastian Bahr,
	Bernd Paulsen und Kristof Schlüßler
*/	
public class Verbrauchsrechner extends JFrame implements ActionListener
{
	private Font Schrift1;
	private JButton KnopfInformation;
	
	private JTextField tfAKZ;
	private JTextField tfLiter;
	private JTextField tfKM;

	private JButton KnopfBenzin;
	private JButton KnopfDiesel;
	private JButton KnopfVerbrauch;
	
	
	private String SKraftstoff;
	private String SAKZ, SKM, SLiter, SVerbr100;
	private int Verbr100laenge, iKM, iLiter;
	
	private boolean okVerbrauch = false;
	private boolean okKraftstoff = false;
	private boolean okKM = false;
	private boolean okLiter = false;
	private boolean okAKZ = false;
	
	double DKM;
	double DLiter;
	double DVerbr100;
		
	public Verbrauchsrechner()
	{	
		this.setLocation(0,0);
		this.setSize(800,640);
		this.setTitle("Verbrauchsrechner - Rechner");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			
//		Das Null-Layout
		JPanel Platte = new JPanel();
		Platte.setLayout(null);

		Schrift1 = new Font("Arial",Font.BOLD,16);
		
//		Knopf: Information
		KnopfInformation = new JButton();
		KnopfInformation.setFont(Schrift1);
		KnopfInformation.setText("Hilfe");
		KnopfInformation.setLocation(625,35);
		KnopfInformation.setSize(100,30);
		KnopfInformation.setForeground(Color.RED);
		KnopfInformation.addActionListener(this);
		Platte.add(KnopfInformation);
		
		//1. Eingabefeld für amtl. Kennzeichen wird erzeugt
		JLabel TextAKZ = new JLabel();
		TextAKZ.setFont(Schrift1);
		TextAKZ.setText("1.  Bitte geben Sie das amtl. Kennzeichen ein");
		TextAKZ.setForeground(Color.BLACK);
		TextAKZ.setLocation(10,35);
		TextAKZ.setSize(600,20);
		Platte.add(TextAKZ);
		
		//Eingabe der AKZ.-Nr.
		tfAKZ = new JTextField();
		tfAKZ.setFont(Schrift1);
		tfAKZ.setLocation(30,60);
		tfAKZ.setSize(275,40);
		tfAKZ.setText("");
		Platte.add(tfAKZ);
		
//		Hinweistext Kraftstoffwahl
		JLabel Kraftstoff = new JLabel();
		Kraftstoff.setFont(Schrift1);
		Kraftstoff.setText("2. Kraftstoffwahl");
		Kraftstoff.setForeground(Color.BLACK);
		Kraftstoff.setLocation (10,120);
		Kraftstoff.setSize(600,20);
		Platte.add(Kraftstoff);

//      Button Verbrauch
		KnopfVerbrauch = new JButton();
		KnopfVerbrauch.setFont(Schrift1);
		KnopfVerbrauch.setText("Verbrauchsberechnung starten");
		KnopfVerbrauch.setLocation(350,540);
		KnopfVerbrauch.setSize(350,35);
		KnopfVerbrauch.setForeground(Color.BLUE);
		Platte.add(KnopfVerbrauch);
		KnopfVerbrauch.addActionListener(this);
		
	
//      Button Benzin
		KnopfBenzin = new JButton();
		KnopfBenzin.setFont(Schrift1);
		KnopfBenzin.setText("Benzin");
		KnopfBenzin.setLocation(30,155);
		KnopfBenzin.setSize(130,35);
		Platte.add(KnopfBenzin);
		KnopfBenzin.addActionListener(this);

//      Button Diesel
		KnopfDiesel = new JButton();
		KnopfDiesel.setFont(Schrift1);
		KnopfDiesel.setText("Diesel");
		KnopfDiesel.setLocation(200,155);
		KnopfDiesel.setSize(130,35);
		Platte.add(KnopfDiesel);
		KnopfDiesel.addActionListener(this);	
		
//		Hinweistext gefahrene Kilometer
		JLabel TextLKM = new JLabel();
		TextLKM.setFont(Schrift1);
		TextLKM.setText("3. Geben Sie die gefahrenen Kilometer (Punkt statt Komma) ein :");
		TextLKM.setForeground(Color.BLACK);
		TextLKM.setLocation(10,215);
		TextLKM.setSize(600,30);
		Platte.add(TextLKM);
		
		//Eingabe des Kennzeichens
		tfKM = new JTextField();
		tfKM.setFont(Schrift1);
		tfKM.setLocation(30,250);
		tfKM.setSize(275,40);
		tfKM.setText("");
		Platte.add(tfKM);
							
//		Hinweistext getankte Menge
		JLabel TextLLiter = new JLabel();
		TextLLiter.setFont(Schrift1);
		TextLLiter.setText("4. Geben Sie die getankte Menge in Litern (Punkt statt Komma) ein:");
		TextLLiter.setForeground(Color.BLACK);
		TextLLiter.setLocation(10,305);
		TextLLiter.setSize(600,30);
		Platte.add(TextLLiter);
		
		//Eingabe getankte Menge.
		tfLiter = new JTextField();
		tfLiter.setFont(Schrift1);
		tfLiter.setLocation(30,340);
		tfLiter.setSize(275,40);
		tfLiter.setText("");
		Platte.add(tfLiter);
		
//		Fixieren der Platte
		setContentPane(Platte);	
	}

	public void actionPerformed(ActionEvent Ereignis) 
	{
		Object Quelle = Ereignis.getSource();
		
		if (Quelle == KnopfInformation)
		{	
			JOptionPane.showMessageDialog(null, "Hallo!");
		}
		
		if (SAKZ != "")
		{
			okAKZ = true;
		}
		if (SKM != "")
		{
		okKM =true;
		}
		
		if (SLiter != "")
		{
		okLiter=true;
		}
		
		if (Quelle == KnopfBenzin)
	    {
	    	okKraftstoff=true;
	    	KnopfDiesel.setBackground(null);
	    	KnopfBenzin.setBackground(Color.yellow);
	    	SKraftstoff="Benzin";
	    }
			    
	    if (Quelle == KnopfDiesel)
	    {
	    	okKraftstoff=true;
	    	KnopfBenzin.setBackground(null);
	    	KnopfDiesel.setBackground(Color.yellow);
	    	SKraftstoff="Diesel";
		}
			   
		if (Quelle == KnopfVerbrauch)
		{
			{
			KnopfVerbrauch.setBackground(Color.yellow);
			okVerbrauch=okKraftstoff && okAKZ && okKM && okLiter;
			SAKZ=tfAKZ.getText();

			if (okVerbrauch)
			
				{
				 String SKM = tfLiter.getText();
				 String SLiter = tfLiter.getText();
				 double DKM = Double.parseDouble(SKM);
				 double DLiter = Double.parseDouble(SLiter);
				 
				 
				 DVerbr100=(DLiter/DKM)*100;
				// DVerbr100=Math.floor(DVerbr100*100+0.5)/100;	
				 SVerbr100=Double.toString(DVerbr100);
				// Verbr100laenge=SVerbr100.length();
				// if (SVerbr100.substring(Verbr100laenge-2,Verbr100laenge-1).equals("."))
				// SVerbr100=SVerbr100+"0";
				 JOptionPane.showMessageDialog(null, "Das Fz "+SAKZ+" verbrauchte "+SVerbr100+" Liter "+SKraftstoff+" auf 100 KM.");
				}
				else
				JOptionPane.showMessageDialog(null, "Da fehlt aber noch was!");
			}
		}	
	}
	public static void main(String[] args)
	{
		Verbrauchsrechner Rahmen = new Verbrauchsrechner();
		Rahmen.setVisible(true);
	}

}

vielen Dank schon mal und einen guten Rutsch!

Gruß Basti

PS. über die umständlich programmierten Teile darf gerne gelacht werden ;)
 

Final_Striker

Top Contributor
Ein Paar Konsolenausgaben der Zwischenwerte helfen in solchen Fällen ungemein. z.B. bei:

Java:
                 String SKM = tfLiter.getText();
                 String SLiter = tfLiter.getText();
                 double DKM = Double.parseDouble(SKM);
                 double DLiter = Double.parseDouble(SLiter);

                 System.out.println(DKM);
                 System.out.println(DLiter);
 

Basti82

Neues Mitglied
Danke für die Hilfe!

Jetzt hab ich's auch gesehen. :oops:
Das war ja mal echt ein blöder Fehler. Jetzt klappts auch mit dem rechnen.

Gruß basti
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
Mikejr Recursion mit Zinseszins rechnen Allgemeine Java-Themen 20
B Parameter Konstruktor plus rechnen Allgemeine Java-Themen 6
P Rechnen mit sehr kleinen Zahlen Allgemeine Java-Themen 5
KeexZDeveoper Schnelleres Rechnen Allgemeine Java-Themen 8
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
M Probleme beim rechnen, bei Zahlen mit führenden Nullen. Allgemeine Java-Themen 7
J zu blöd zum rechnen Allgemeine Java-Themen 7
F Taschenrechner Term rechnen Allgemeine Java-Themen 4
S Java rechnen mit unbekannten Allgemeine Java-Themen 11
M Rechnen mit kleinen Zahlen langsamer!? Allgemeine Java-Themen 11
B Fehler beim Rechnen mit Floats Allgemeine Java-Themen 3
M In einer Tabelle rechnen Allgemeine Java-Themen 12
H Mit String rechnen Allgemeine Java-Themen 14
hdi Probleme beim Rechnen mit BigDecimal Allgemeine Java-Themen 5
E Konstante Zahl Threads parallel rechnen lassen Allgemeine Java-Themen 6
O "Rechnen" mit Farben Allgemeine Java-Themen 12
T Mit Datum und Zeit rechnen Allgemeine Java-Themen 8
M Rechnen mit sehr kleinen Zahlen Allgemeine Java-Themen 8
G Probleme mir Rechnen Allgemeine Java-Themen 5
P rechnen mit extrem grossen zahlen Allgemeine Java-Themen 2
H Komplexes Rechnen mit Java Allgemeine Java-Themen 6
S Rechnen mit float Zahlen Allgemeine Java-Themen 2
O Java zu blöde um 1-1 zu rechnen?? Allgemeine Java-Themen 20
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
X Regex mit mehreren Bedingungen machen Allgemeine Java-Themen 5
P Projekte entwickeln mit mehreren Personen Allgemeine Java-Themen 1
C Aus MEHREREN Excel Tabellen bestimmte Zelle addieren Allgemeine Java-Themen 1
D Objekt-Suche mit mehreren optionalen Parametern Allgemeine Java-Themen 6
M JavaFX Button mit mehreren Aktionen? Allgemeine Java-Themen 7
J Soap Client mit mehreren URLs in Servlets Allgemeine Java-Themen 0
J Aus mehreren Klassen ein Datei ausführbare machen Allgemeine Java-Themen 6
I Anwendung auf Netzlaufwerk von mehreren Usern gleichzeitig nutzbar. Allgemeine Java-Themen 3
M Klassen Eine Klasse in mehreren Klassen einbinden Allgemeine Java-Themen 11
perlenfischer1984 Testng : Funktion mit mehreren Parametern testen Allgemeine Java-Themen 5
I Methoden Schnelle Hilfe benötigt - Kleines Video/Slideshow aus mehreren Bildern erstellen Allgemeine Java-Themen 3
F JScrollPane mit mehreren Panels Allgemeine Java-Themen 1
S Text in mehreren Sprachen korrekt darstellen? Wie waehle ich die Fonts aus..? Allgemeine Java-Themen 0
K Problem: Java-Klasse mit mehreren Threads als eigenen Prozess starten Allgemeine Java-Themen 3
AssELAss String mit mehreren Zahlungsbeträgen formatieren Allgemeine Java-Themen 10
Thallius Speicherverhalten von Properties und mehreren Threads Allgemeine Java-Themen 5
C DBConnection als Methode in mehreren Klassen Allgemeine Java-Themen 4
7 Verbinden von Mehreren Klassen Allgemeine Java-Themen 29
A Thread: Code paralell ausführen in mehreren Instanzen Allgemeine Java-Themen 1
M Interface Generische Klassen mit mehreren Typen überschreiben Allgemeine Java-Themen 0
J Projekt mit mehreren Einzelprogrammen Allgemeine Java-Themen 2
K Laufzeitermittlung an PCs mit mehreren Prozessorkernen Allgemeine Java-Themen 5
Jats Hilfe bei Bank mit mehreren Klassen Allgemeine Java-Themen 11
D Von mehreren Objekten eine Eigenschaft abfragen Allgemeine Java-Themen 11
S Objekt synchronisieren, sodass es nicht von mehreren Threads benutzt wird..? Allgemeine Java-Themen 2
L Zugriff auf ein Objekt mit mehreren Threads Allgemeine Java-Themen 11
L Warten bei mehreren Threads, bis Ende erreicht ist Allgemeine Java-Themen 2
D JTabel sortieren nach mehreren kriterien Allgemeine Java-Themen 3
K System.exec() Programm mit mehreren Parametern Allgemeine Java-Themen 8
V aus mehreren jar files, ein großes basteln Allgemeine Java-Themen 22
H wait() and notify() mit mehreren Prozessen Allgemeine Java-Themen 14
W Map / Tupel aus mehreren Elementen? Allgemeine Java-Themen 8
V javadoc mergen / aus mehreren eclipse plugins ein javadoc Allgemeine Java-Themen 3
E Aus mehreren PDFs eines machen, zusammenfügen mittels iText Allgemeine Java-Themen 1
reibi Classenpath mit mehreren gleichen jar-Files Allgemeine Java-Themen 7
M Die gleiche Klasse in mehreren JAR files Allgemeine Java-Themen 5
T Problem mit mehreren Fenstern Allgemeine Java-Themen 2
P HashMap mit mehreren gleichen keys Allgemeine Java-Themen 4
E focus problem (mit mehreren frames) Allgemeine Java-Themen 10
B Serialisieren von mehreren Objekten Allgemeine Java-Themen 7
C Auswahl einer Version, bei mehreren installierten Versionen Allgemeine Java-Themen 3
O System.nanoTime() einheitlichen Wert auf mehreren Rechnern? Allgemeine Java-Themen 9
S ArrayList nach mehreren Spalten sortieren? Allgemeine Java-Themen 13
D Werte aus mehreren getMethoden auslesen Allgemeine Java-Themen 2
S Vererbung von mehreren Klassen? Allgemeine Java-Themen 5
M Alle möglichen Kombinationen von mehreren Objekten berechnen Allgemeine Java-Themen 6
B Aus mehreren Fenstern(Dialogen) eins machen! Allgemeine Java-Themen 2
C Map(Key/Value) mit mehreren Values Allgemeine Java-Themen 16
C Erste Schritte Variablen in abhängigkeit von Git branch Allgemeine Java-Themen 7
Fabiator Variablen Variablen Zählen Allgemeine Java-Themen 3
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
berserkerdq2 Labels in IJVM sind keine lokalen Variablen oder? Allgemeine Java-Themen 2
O Fehler bei Variablen Allgemeine Java-Themen 2
N File Path mit Variablen angeben Allgemeine Java-Themen 1
nonickatall Methoden Kann man Klassen/Methoden aus Variablen heraus aufrufen? Allgemeine Java-Themen 6
R Geometry erstellen die abhängig von Variablen ist Allgemeine Java-Themen 6
O Formatierte String ausgabe bei vier Variablen in einer Zeile Allgemeine Java-Themen 1
P static Blocks und variablen Allgemeine Java-Themen 41
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
V Datentypen Graphikrechner 2/Strings und Variablen in Doubles umwandeln Allgemeine Java-Themen 6
S Kann man Variablen oder Felder definieren deren Typ zwei Interfaces ist..? Allgemeine Java-Themen 9
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
D BlueJ, Variablen die mehrfach vorkommen gleichzeitig umbenennen Allgemeine Java-Themen 3
C Variablen Variablen mit unendlichem Wert Allgemeine Java-Themen 22
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
T Maximale Felder maximale Variablen Allgemeine Java-Themen 2
W Lebendige Variablen herauslesen Allgemeine Java-Themen 1
K Summierung einer Variablen Allgemeine Java-Themen 5
B Gibt es eine Funktion die den Datentyp einer Variablen ermittelt? Allgemeine Java-Themen 8
X Threads Externe Variablen in Run Methoden verändern Allgemeine Java-Themen 4
Messoras Klassen Sämtliche Variablen einer Klasse übernehmen Allgemeine Java-Themen 6
K Static Variablen verbieten Allgemeine Java-Themen 10
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6

Ähnliche Java Themen


Oben