Taschenrechner.

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
ich bin jetzt soweit, dass mein Taschenrechner ein Ziffernpad hat. Nun müsste ich folgende Dinge wissen:

1. Wie schaffe ich es, mit Zahlen mit Kommastellen zu rechnen?
2. Wie erstelle ich eine "Rücktaste" (die Zahl neben dem Cursor wird gelöscht)?
3. Wie schaffe ich es, dass alles in einem Textfeld funktioniert?

Hier der Code:
Code:
private void add(java.awt.event.ActionEvent evt) {                     
// TODO add your handling code here:
    String sop1 = jTextField1.getText();
    int op1 = Integer.parseInt(sop1);
    String sop2 = jTextField2.getText();
    int op2 = Integer.parseInt(sop2);
    int sum = c.add(op2, op1);
    jTextField1.setText("" + sum);
}                    

private void sub(java.awt.event.ActionEvent evt) {                     
// TODO add your handling code here:
    String sop1 = jTextField1.getText();
    int op1 = Integer.parseInt(sop1);
    String sop2 = jTextField2.getText();
    int op2 = Integer.parseInt(sop2);
    int dif = c.sub(op2, op1);
    jTextField1.setText("" + dif);
}                    

private void mul(java.awt.event.ActionEvent evt) {                     
// TODO add your handling code here:
    String sop1 = jTextField1.getText();
    int op1 = Integer.parseInt(sop1);
    String sop2 = jTextField2.getText();
    int op2 = Integer.parseInt(sop2);
    int pro = c.mul(op2, op1);
    jTextField1.setText("" + pro);

}                    

private void div(java.awt.event.ActionEvent evt) {                     
// TODO add your handling code here:
    String sop1 = jTextField1.getText();
    int op1 = Integer.parseInt(sop1);
    String sop2 = jTextField2.getText();
    int op2 = Integer.parseInt(sop2);
    if (op2 == 0) {
        jTextField1.setText("SYNTAX ERROR");
    } else {
        int quo = c.div(op2, op1);
        jTextField1.setText("" + quo);
    }
}                    

private void one(java.awt.event.ActionEvent evt) {                     
// TODO add your handling code here:
    jTextField1.setText(jTextField1.getText() + 1);
}                    

private void two(java.awt.event.ActionEvent evt) {                     
// TODO add your handling code here:
    jTextField1.setText(jTextField1.getText() + 2);
}                    

private void three(java.awt.event.ActionEvent evt) {                       
// TODO add your handling code here:
    jTextField1.setText(jTextField1.getText() + 3);
}                      

private void four(java.awt.event.ActionEvent evt) {                      
// TODO add your handling code here:
    jTextField1.setText(jTextField1.getText() + 4);
}                     

private void five(java.awt.event.ActionEvent evt) {                      
// TODO add your handling code here:
    jTextField1.setText(jTextField1.getText() + 5);
}                     

private void six(java.awt.event.ActionEvent evt) {                     
// TODO add your handling code here:
    jTextField1.setText(jTextField1.getText() + 6);
}                    

private void seven(java.awt.event.ActionEvent evt) {                       
// TODO add your handling code here:
    jTextField1.setText(jTextField1.getText() + 7);
}                      

private void eight(java.awt.event.ActionEvent evt) {                       
// TODO add your handling code here:
    jTextField1.setText(jTextField1.getText() + 8);
}                      

private void nine(java.awt.event.ActionEvent evt) {                      
// TODO add your handling code here:
    jTextField1.setText(jTextField1.getText() + 9);
}                     

private void zero(java.awt.event.ActionEvent evt) {                      
// TODO add your handling code here:
    jTextField1.setText(jTextField1.getText() + 0);
}                     

private void clear(java.awt.event.ActionEvent evt) {                       
// TODO add your handling code here:
    jTextField1.setText("");
    jTextField2.setText("");
}                      

private void setAsOp1(java.awt.event.ActionEvent evt) {                          
// TODO add your handling code here:
    jTextField2.setText(jTextField1.getText());
    
    jTextField1.setText("");
}

Oh, und der Screenshot:



Danke im vorraus!!!
 

Oli

Top Contributor
zu 1: double-Werte nehmen

zu 2: mit substring das letzte Zeichen entfernen

zu 3: was meinst du damit?


p.s.: Ist das wieder eine lustige Aufgabe aus der Schule/Studium? Wann lernen die Profs eigentlich, dass die vernünftige Umsetzung eines Taschenrechners eine sehr komlexe Sache ist, die man nicht in 4 Wochenstunden einer Programmierübung bewältigen kann??
 
G

Guest

Gast
Erstmal: Danke!!!

Zu Punkt 3:

Wie auf dem Scrrenshot zu sehen ist, sind 2 jTextFields im einsatz:

In das größere tippt man eine Zahl ein und klickt dann auf set as operand 1. Die Zhahl wird in das kleinere TextField übertragen. Danach gibt man noch eine Zahl in das größere TextFeld ein und drückt auf +, -... Damit wird das ergebnis im großen angezeigt.

Nun wollte ich wissen wie das mit nur einem feld funktioniert.
 

Oli

Top Contributor
Nun, den Buttons für die Zahlen und Operatoren muss ein ActionListener hinzugefügt werden. Wenn ein Operator gedrückt wird, dann den Wert aus dem Textfeld und den Operator speichern. Solange keine Zahl, gedrückt wird sondern nur ein Operator, diesen speichern. Wenn eine Zahl gedrückt wird, TExtfeld löschen, wird nun ein Operator gedrückt, Berechnung ausführen, Ergebnis ins Textfeld schreiben.
 
G

Guest

Gast
OK, das wär dann geschafft....

Aber die ersten beiden hab ich net so wirklich verstanden..
Wo soll ich denn Double.parseDouble(sop1) eingeben?

und wie geht der gesamte code für substring?
 
G

Gast

Gast
Aufgabe 1-5 (10 Punkte): Erstellen Sie einen einfachen Taschenrechner für die Konsole der die Grundrechnungsarten beherrscht. Lesen Sie dazu zwei ganzzahlige Werte und einen der folgenden Operatoren ein: +,-,*, /. Danach geben soll das Ergebnis der Rechnung ausgegeben werden. Es bleibt Ihnen überlassen ob Sie jeden Teil der Rechnung einzeln einlesen oder die gesamte Rechnung in einer Zeile einlesen. Eine Rechnung besteht immer nur aus 2 ganzzahligen Werten und einem Operator! Beispiel für einen gültigen Programmablauf: Zahl 1: 5 Operator (+-*/): + Zahl 2: 3 Ergebnis: 8 Fehlerhafte Eingaben bei den Zahlen müssen nicht behandelt werden. Ungültige Eingaben beim Operator sollen zu einer sofortigen Ausgabe einer Fehlermeldung führen und dem User einen weitern Versuch gestatten einen richtigen Operator einzugeben. Nach 3 ungültigen Versuchen soll das Programm mit einer entsprechenden Fehlermeldung beendet werden.





Das ist das Beispiel, dass wir als HÜ bekommen habe. Kann mir bitte jemand sagen wie ich das in java programmiere!?

Lg Paul
 

Oli

Top Contributor
Können schon, aber erst wenn du mir erklärst wozu du die graphische Oberfläche brauchst, die du als Bild gepostet hast.
Da steht für die KONSOLE....
 
G

Guest

Gast
Ähm sry, aber das hat n anderer Typ gepostet.... also das beispiel jetzt. der war wohl zu dumm nen eigenen Thread aufzumachen... :x
 

Oli

Top Contributor
Man kann sich hier im Forum auch kostenlos anmeden... (Tut auch net weh...)

zu 1.: Wenn du den Inhalt des Textfeldes einließt, dann geht das mit textfeld.getText();
Das liefert nen String zurück. Den String dann in einen Double - Wert parsen:

double wert1 = Double.parseDouble(textfeld.getText().replace(",","."));

zu 2:
dafür gibt´s ne Doku, die man auch mal bemühen kann. Ist nicht wirklich kompliziert...
 
G

Gast

Gast
sorry, aber kannst du mir trotzdem helfen bei dem beispiel??
ich sollte es in netbeans IDE programmieren!
 

Oli

Top Contributor
Nun Gast2: Ich werde heir keine fertige Lösung reinstellen, aber mal ein Lösungsansatz:

Erstmal schauen, wie man von der Konsole einließt.

Tip BufferedReader...

Auch hier gilt: Der Inhalt der Konsole kommt als String zurück und muss nach double geparst werden, um später damit rechenen zu können.
Dann haben wir noch die Operanden. Auch diese kommen als String an. Strings immer mit equals vergleichen. Und wenn man den Operanden kennt und zwei Zahlen hat, dann kann man rechnen.

Ablauf:
Zahl 1 eingeben, parsen, speichern
Operand eingeben, speichern
Zahl 1 eingeben, parsen, speichern
Operand anschauen, wenn + dann sum(z1,z2), wenn * dann mult(z1,z2) usw...
 

ARadauer

Top Contributor
Gast hat gesagt.:
Das ist das Beispiel, dass wir als HÜ bekommen habe. Kann mir bitte jemand sagen wie ich das in java programmiere!?
Lg Paul

nein! :lol: wenn du einen ansatz hast und man sieht das du es selber versuchst, wird dir gerne geholfen, aber hausübungen machen wir hier keine.
 
G

Guest

Gast
Ja, es heißt noch Leibesübungen....
:D

Nochmal ne Frage zu den double.parse:


double wert1 = Double.parseDouble(textfeld.getText().replace(",","."));


Was soll ich da als wert 1 nehmen bzw. wo soll ich das hinzufügen (jetz bei add, sub, mul, div...)?
[/quote]
 
G

Gast

Gast
Ich muß das gleiche Programmle schreiben...

Dazu ne Frage: zwischen erster Zahl und zweiter Zahl soll der Rechenoperator eingegeben werden. Dieser soll auf gültige Zeichen geprüft und bei 3 maliger falscheingabe das Programm beenden.
Ich hab alles hinbekommen (äußerst umständlich, wie bei mir immer, wenn ich auf der grünen Wiese coden muß) ABER ich muß noch die zweite Zahl einlesen, bevor das Programm aufhört.

Hier eine skizze wie ich es angelegt habe:
3 Scanner lesen die 1te Zahl, den Operator und die 2te Zahl ein.
Beim operator hab ich ne while schleife gemacht, die eben jeden fehlversuch mitschreibt und nen Zähler hochzählt. mit if's frage ich die richtig eingegebenen Operatoren ab, setze ne 'int operator' auf ne fixe Zahl und breake aus dem while raus. Einzig im else (was dem falsch eingegebenen Operator entspricht) habe ich den 2ten scanner erneut drinn. Ich weiß das ist irgendwie links rum, aber ich habs nicht besser hinbekommen...

nach der while schleife kommt Scanner für die zweite Zahl drann.

im letzten codeblock kommt ne switch anweisung mit den 4 rechnungsarten und printlns fürs ergebnis, der default vom switch ist die Falscheingabe...

So meine Frage: wie kann ich verhindern, daß die zweite Zahl noch eingelesen wird? Gibt es in java so was wie ein jump? Was wäre sinnvoll vom coding fluß?
Danke für die Hilfe und sry aber ich registrier mich nicht, da ich sonst binnen weniger Tage wohl in 10 java foren registriert wäre.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
W Taschenrechner Java Basics - Anfänger-Themen 2
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
S Datentypen Taschenrechner Java Basics - Anfänger-Themen 13
J Taschenrechner Java Basics - Anfänger-Themen 5
J Taschenrechner Java Basics - Anfänger-Themen 9
M While bei einem Taschenrechner Java Basics - Anfänger-Themen 5

Ähnliche Java Themen


Oben