Hallo miteinander
Es ist mein erster Beitrag hier (eher ein Hilfeschrei), jedoch nicht mein erster Besuch. Ich hatte schon mehrmals die Lösung auf ein Problem hier gefunden (Super Forum!)
IIch habe im moment ein Problem. Ich muss einen Taschenrechner so programmieren, wie der taschenrechner beim windows es ist. (ohne wissenschaftl. funktionen etc.) also nur die grundfunktionen +,-,*,/
Ich bin mit meinem Lehrmeister mal soweit gekommen, das meiste hab ich gemacht, er hat mir etwas geholfen und verbessert, jedoch läuft es immer noch nicht einwandfrei.
Meine Frage: Was muss ich noch verbessern?
Würdet ihr diesen Rechner als "ok" bezeichnen??
namespace MyFirstCalculator
{
public partial class Form1 : Form
{
private double zwischenwert = 0;
private Operator letzterOperator;
public Form1()
{
InitializeComponent();
}
private void _btnGleich_Click(object sender, EventArgs e)
{
this.Rechne(Convert.ToDouble(this._txtResult.Text));
this._txtResult.Text = zwischenwert.ToString();
}
private void _btnZahl1_Click(object sender, EventArgs e)
{
if (sender is Button)
{
if (this._txtResult.Text == "0")
{
this._txtResult.Text = "";
}
this._txtResult.Text += ((Button)sender).Text;
}
}
private void _btnPlus_Click(object sender, EventArgs e)
{
if (_txtResult != null)
{
this.Rechne(Convert.ToDouble(this._txtResult.Text));
this.letzterOperator = Operator.Plus;
this._txtResult.Text = "0";
}
}
private void button1_Click(object sender, EventArgs e)
{
this.zwischenwert = 0;
this._txtResult.Text = "0";
}
private void _btnMinus_Click(object sender, EventArgs e)
{
if (_txtResult != null)
{
this.Rechne(Convert.ToDouble(this._txtResult.Text));
this.letzterOperator = Operator.Minus;
this._txtResult.Text = "0";
}
}
private void _btnDiv_Click(object sender, EventArgs e)
{
if (_txtResult != null)
{
this.Rechne(Convert.ToDouble(this._txtResult.Text));
this.letzterOperator = Operator.Dividiert;
this._txtResult.Text = "0";
}
}
private void _btnMultiplizieren_Click(object sender, EventArgs e)
{
if (_txtResult != null)
{
this.Rechne(Convert.ToDouble(this._txtResult.Text));
this.letzterOperator = Operator.Mal;
this._txtResult.Text = "0";
}
}
private void Rechne(double neueZahl)
{
switch (this.letzterOperator)
{
case Operator.Plus:
this.zwischenwert += neueZahl;
break;
case Operator.Minus:
this.zwischenwert -= neueZahl;
break;
case Operator.Mal:
this.zwischenwert *= neueZahl;
break;
case Operator.Dividiert:
this.zwischenwert = this.zwischenwert / neueZahl;
break;
}
}
private enum Operator
{
Plus, Minus, Mal, Dividiert
}
}
}
danke im voraus und gruss
mistajeff