Add project files.
This commit is contained in:
177
Program.cs
Normal file
177
Program.cs
Normal file
@@ -0,0 +1,177 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user