177 lines
5.4 KiB
C#
177 lines
5.4 KiB
C#
using System.Diagnostics.Eventing.Reader;
|
||
using System.Windows.Forms;
|
||
|
||
namespace Calculator
|
||
{
|
||
internal static class Program
|
||
{
|
||
static Form1 form = new Form1();
|
||
static double valueA;
|
||
static double valueB;
|
||
static bool isSecondNumber = false;
|
||
static bool answerGiven = false;
|
||
static bool hasStoredAnwser = false;
|
||
static double lastAnswer;
|
||
static Operator selectedOperator;
|
||
|
||
enum Operator
|
||
{
|
||
Add,
|
||
Sub,
|
||
Mult,
|
||
Div
|
||
}
|
||
|
||
static void Main()
|
||
{
|
||
ApplicationConfiguration.Initialize();
|
||
InitButtons();
|
||
StartSelection();
|
||
Application.Run(form);
|
||
}
|
||
|
||
static private void InitButtons()
|
||
{
|
||
form.btn_input_0.Click += RegisterInput;
|
||
form.btn_input_1.Click += RegisterInput;
|
||
form.btn_input_2.Click += RegisterInput;
|
||
form.btn_input_3.Click += RegisterInput;
|
||
form.btn_input_4.Click += RegisterInput;
|
||
form.btn_input_5.Click += RegisterInput;
|
||
form.btn_input_6.Click += RegisterInput;
|
||
form.btn_input_7.Click += RegisterInput;
|
||
form.btn_input_8.Click += RegisterInput;
|
||
form.btn_input_9.Click += RegisterInput;
|
||
|
||
form.btn_input_add.Click += SelectAdd;
|
||
form.btn_input_sub.Click += SelectSub;
|
||
form.btn_input_mult.Click += SelectMult;
|
||
form.btn_input_div.Click += SelectDiv;
|
||
|
||
form.btn_next.Click += Next;
|
||
form.btn_import_prev.Click += ImportPrevious;
|
||
}
|
||
|
||
|
||
static private void ShowOperators(bool value)
|
||
{
|
||
form.btn_input_add.Visible = value;
|
||
form.btn_input_sub.Visible = value;
|
||
form.btn_input_mult.Visible = value;
|
||
form.btn_input_div.Visible = value;
|
||
}
|
||
|
||
static private void ShowNumbers(bool value)
|
||
{
|
||
form.btn_input_0.Visible = value;
|
||
form.btn_input_1.Visible = value;
|
||
form.btn_input_2.Visible = value;
|
||
form.btn_input_3.Visible = value;
|
||
form.btn_input_4.Visible = value;
|
||
form.btn_input_5.Visible = value;
|
||
form.btn_input_6.Visible = value;
|
||
form.btn_input_7.Visible = value;
|
||
form.btn_input_8.Visible = value;
|
||
form.btn_input_9.Visible = value;
|
||
form.btn_import_prev.Visible = value;
|
||
}
|
||
|
||
static private void SelectAdd(object sender, EventArgs e)
|
||
{
|
||
OperatorSelected(Operator.Add);
|
||
}
|
||
static private void SelectSub(object sender, EventArgs e)
|
||
{
|
||
OperatorSelected(Operator.Sub);
|
||
}
|
||
static private void SelectMult(object sender, EventArgs e)
|
||
{
|
||
OperatorSelected(Operator.Mult);
|
||
}
|
||
static private void SelectDiv(object sender, EventArgs e)
|
||
{
|
||
OperatorSelected(Operator.Div);
|
||
}
|
||
|
||
static private void OperatorSelected(Operator operation)
|
||
{
|
||
form.lbl_main.Text = "Ange tal 1";
|
||
ShowOperators(false);
|
||
ShowNumbers(true);
|
||
selectedOperator = operation;
|
||
form.btn_next.Visible = false;
|
||
}
|
||
|
||
static private void StartSelection()
|
||
{
|
||
ShowOperators(true);
|
||
isSecondNumber = false;
|
||
answerGiven = false;
|
||
form.lbl_main.Text = "V<>lj operation";
|
||
form.btn_import_prev.Enabled = hasStoredAnwser;
|
||
}
|
||
|
||
static private void RegisterInput(object sender, EventArgs e)
|
||
{
|
||
if (sender is Button b)
|
||
{
|
||
form.lbl_number.Text += b.Text;
|
||
form.btn_next.Visible = true;
|
||
}
|
||
}
|
||
|
||
static private void ImportPrevious(object sender, EventArgs e)
|
||
{
|
||
form.lbl_number.Text += lastAnswer.ToString();
|
||
form.btn_next.Visible = true;
|
||
}
|
||
|
||
static private void Next(object sender, EventArgs e)
|
||
{
|
||
if (answerGiven)
|
||
{
|
||
StartSelection();
|
||
return;
|
||
}
|
||
|
||
if (!isSecondNumber)
|
||
{
|
||
valueA = double.Parse(form.lbl_number.Text);
|
||
form.lbl_main.Text = "Ange tal 2";
|
||
isSecondNumber = true;
|
||
form.btn_next.Visible = false;
|
||
}
|
||
else
|
||
{
|
||
valueB = double.Parse(form.lbl_number.Text);
|
||
Answer();
|
||
isSecondNumber = false;
|
||
}
|
||
form.lbl_number.Text = "";
|
||
}
|
||
|
||
static private void Answer()
|
||
{
|
||
double value = 0;
|
||
|
||
ShowOperators(false);
|
||
ShowNumbers(false);
|
||
|
||
if (selectedOperator == Operator.Add)
|
||
value = valueA + valueB;
|
||
else if (selectedOperator == Operator.Sub)
|
||
value = valueA - valueB;
|
||
else if (selectedOperator == Operator.Mult)
|
||
value = valueA * valueB;
|
||
else if (selectedOperator == Operator.Div)
|
||
value = valueA / valueB;
|
||
|
||
hasStoredAnwser = true;
|
||
lastAnswer = value;
|
||
form.btn_import_prev.Text = "Importera f<>reg<65>ende svar" + " (" + value.ToString() + ")";
|
||
|
||
form.lbl_main.Text = "Ditt tal <20>r " + value.ToString();
|
||
answerGiven = true;
|
||
}
|
||
}
|
||
} |