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
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. 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
vielen Dank schon mal und einen guten Rutsch!
Gruß Basti
PS. über die umständlich programmierten Teile darf gerne gelacht werden
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
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. 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
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