using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Rechner
{
internal struct teioper
{
public double value;
public operat operator1;
}
internal enum operat
{
addi = 1,
sub = 2,
multi = 3,
div = 4
}
public partial class Form1 : Form
{
List<teioper> operrazahl = new List<teioper>();
Timer _time = new Timer();
// double value = 0;
string anzeigezahl;
string zahl;
operat operatort = operat.addi;
public Form1()
{
InitializeComponent();
//InitializeTimer(); //Timer initialisieren
//this._time.Start();
//txtdate.Text = string.Format("{0:00}:{1:00}:{2:00}", DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
}
private void button_click(object sender, EventArgs e)
{
Button b = (Button)sender;
zahl += b.Text;
// result.Text = result.Text + b.Text;
// das macht mann wenn man Mehrere texte verketet
result.Text = string.Concat(result.Text, b.Text);
// t.value = double.Parse(zahl);
}
private void opertor_click(object sender, EventArgs e)
{
Button b = (Button)sender;
teioper t;
t.operator1 = operatort ;
// t.operator1 = operat(b.Text);
t.value = double.Parse(zahl);
operrazahl.Add(t);
switch (((Button)sender).Text)
{
case "+":
operatort = operat.addi;
break;
case "-":
operatort = operat.sub;
break;
case "*":
operatort = operat.multi;
break;
case "/":
operatort = operat.div;
break;
default:
break;
}
result.Text = string.Concat(result.Text, ((Button)sender).Text);
zahl = "";
}
private void button16_Click(object sender, EventArgs e)
{
List<teioper> ergebnis = new List<teioper>();
foreach (teioper teil in operrazahl)
{
if (teil.operator1 == operat.addi|| teil.operator1 == operat.sub)
{
ergebnis.Add(teil);
}
else
{
double neuezahl;
neuezahl = teil.operator1 == operat.multi
? ((teioper)(ergebnis.Last())).value * teil.value
: ((teioper)(ergebnis.Last())).value / teil.value;
//if ("A" == "B")
// bool erg = true;
//else
// bool erg = false;
//bool erg = "A" == "B" ? true : false;
// Losche das letzt element von die neue liste
ergebnis.Remove(ergebnis.Last());
teioper t;
t.operator1 = neuezahl > 0 ? operat.sub : operat.addi ;
t.value = neuezahl;
ergebnis.Add(t);
}
}
double result = 0;
foreach (teioper er in ergebnis)
{
//if (er.operator1 == operat.addi)
//{
// result = er.value + er.value;
//}
//else if (er.operator1 == operat.sub)
//{
// result = er.value - er.value;
//}
// Fehler an diese zeile ??????
result = er.operator1 == operat.addi ? result + er.value : result - er.value;
}
this.result.Text = result.ToString();
//opreration_pressed = false;
//switch (opertion)
//{
// case " + ":
// result.Text = result.Text + result.Text;
// result.Text = (value + double.Parse(result.Text)).ToString();
// break;
// case " - ":
// result.Text = (value - double.Parse(result.Text)).ToString();
// break;
// case " * ":
// result.Text = (value * double.Parse(result.Text)).ToString();
// break;
// case " / ":
// result.Text = (value / double.Parse(result.Text)).ToString();
// break;
// default:
// break;
}
private void button17_Click(object sender, EventArgs e)
{
result.Text = "";
}
//public void InitializeTimer()
//{
// this._time.Interval = 1000;
// this._time.Tick += new EventHandler(TimerTick);
//}
//void TimerTick(object sender, EventArgs e)
//{
// this.txtdate.Text = string.Format("{0:00}:{1:00}:{2:00}",
// DateTime.Now.Hour,
// DateTime.Now.Minute,
// DateTime.Now.Second);
//}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}