Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge

Einfacher Taschenrechner

Trax5 / 17 Antworten / Flachansicht Nickles

Hallo!
Ich mach zur Zeit ein Praktikum und soll nen Taschenrechner programmieren. Is aber eigentlich ziehmlich simpel wenn mans kapiert hat. Bin aber eben blutiger Anfänger. Kann mir jemand nen einfachen Quellcode schicken? Ich brauch nur Windows Applikation: Button "1","2","+" und "=". Würde mir um einiges weiterhelfen.

Mfg Miguel Calzado

bei Antwort benachrichtigen
xafford Trax5 „Einfacher Taschenrechner“
Optionen

Mach Dir mal erst genau Gedanken, was dein Taschenrechner können muss und was er dafür braucht. Schreib das auf ein Schmierblatt und dann ergibt sich die Struktur fast von alleine. Hier ein paar Denkanregungen:

Was muss er können?

- Eingaben annehmen
- Zahl A und B addieren.
- Das Ergebnis ausgeben
- Fehler erkennen und behandeln


Welche Komponenten sind sinnvoll?

a: MainForm für die Ein- und Ausgabe
b: Die eigentliche Rechenlogik

Was braucht er?

2 Variablen, die die zu berechnenden Argumente aufnehmen
Setter für die Argumente
Eine Rechenmethode

Jetzt solltest Du Dir noch einen grundlegenden Gedanken machen, der gerne vergessen wird:
Soll der Taschenrechner leicht erweiterbar sein (vielleicht stellen sie Dir nächste Woche die Aufgabe auf Minus zu implementieren, oder mehr Zahlen)?

Das Formular macht Dir der FormDesigner, da braucht es jetzt nix als Beispiel, deswegen nur mal kurz und grob der Rechner


public class Calculator
{

private string error = "";
private decimal argument1 = 0;
private decimal argument2 = 0;
private char command = ' ';

public string Error
{
get
{
return this.error;
}
}

public string Operator
{
get
{
return Convert.ToString(this.command);
}
set
{
this.command = Convert.ToChar(value);
}
}

public string Argument
{
get
{
return Convert.ToString(this.argument2);
}
set
{
try
{
if(this.command == ' ')
{
// Noch keine Operation eingegeben
this.argument1 = Convert.ToDecimal(value);
}
else
{
this.argument2 = Convert.ToDecimal(value);
}
}
catch(Exception excpt)
{
this.error = excpt.Message;
}
}
}

public string Calculate()
{

try
{
switch(this.command)
{
// Hier kann man die Klasse um neue Operationen erweitern.
case '+':
this.argument1 += this.argument2;
break;
}
this.argument2 = 0;
this.command = ' ';
return Convert.ToString(this.argument1);
}
catch(Exception excpt)
{
this.error = excpt.Message;
return this.error;
}

}

}

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen