Hallo,
ich bin gerade dabei einen Taschenrechner zu programmieren.
Ich bin neu auf dem Gebiet c# und .net.
Das Problem dass ich habe ist folgendes.
Wie kann ich festellen, dass eine Zahl vollständig eingegeben wurde. Die Zahlen werden ja per Buttons eingegeben und können ja 1, 3 oder auch 6 stellig sein.
Ich habe das momentan so gelöst, indem ich gucke ob der Nutzer ein Operationszeichen eingibt. So werden all Ziffern zu einer Zahl bis eine Operand eingegeben wird.
So ist das Problem aber, das der Nutzer ja ein Operand eingeben kann bevor er überhaupt irgendwelche Ziffern drückt.
Ein weiteres Problem ist, nachdem eine Operation berechnet z.B. 3+4 und als Ergebnis 7 erhalten wurde,
kann der Nutzer nicht mehr 2 Zahlen eingeben und diese Operation ausführen lassen.
Man kann nur mit dem letzen Ergebnis weiter rechnen, also in diesem Fall die 7.
Hier ein paar Funktionen:
Vielleicht kann mir einer ein paar Tips geben.
Vielen Dank!
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| private void buttonClick(object sender, EventArgs e) { Button n = (Button)sender; this.label1.Text += n.Text;
if (operationFill == true) { numberFill = true; }
if (number1Fill == false) {
number1 = Convert.ToDouble(label1.Text); } else {
number2 = Convert.ToDouble(label1.Text); } }
private void operatorClick(object sender, EventArgs e) {
Button op = (Button)sender; operation = op.Text; operationFill = true; }
private void enterClick(object sender, EventArgs e) { if (numberFill == true && operationFill == true) { calculate(); } }
private void calculate() {
switch (operation) {
case "+": number1 += number2; break; case "-": number1 -= number2; break; case "*": number1 *= number2; break; case "/": number1 /= number2; break; } label1.Text = Convert.ToString(number1); } |
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt