Загрузка данных
using System;
using System.Globalization;
using System.Windows.Forms;
namespace WinFormsApp1
{
public partial class Form1 : Form
{
decimal firstNumber = 0;
string operation = "";
bool newNumber = true;
public Form1()
{
InitializeComponent();
btn0.Click += Number_Click;
btn1.Click += Number_Click;
btn2.Click += Number_Click;
btn3.Click += Number_Click;
btn4.Click += Number_Click;
btn5.Click += Number_Click;
btn6.Click += Number_Click;
btn7.Click += Number_Click;
btn8.Click += Number_Click;
btn9.Click += Number_Click;
btnAdd.Click += Operation_Click;
btnSub.Click += Operation_Click;
btnMul.Click += Operation_Click;
btnDiv.Click += Operation_Click;
btnEquals.Click += Equals_Click;
btnC.Click += Clear_Click;
btnCE.Click += ClearEntry_Click;
btnBack.Click += Backspace_Click;
btnSign.Click += Sign_Click;
btnPercent.Click += Percent_Click;
button2.Click += Dot_Click;
display.Text = "0";
}
decimal GetNumber()
{
return decimal.Parse(
display.Text,
CultureInfo.GetCultureInfo("ru-RU"));
}
void Number_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
if (newNumber || display.Text == "0")
display.Text = button.Text;
else
display.Text += button.Text;
newNumber = false;
}
void Operation_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
firstNumber = GetNumber();
if (button == btnAdd) operation = "+";
if (button == btnSub) operation = "-";
if (button == btnMul) operation = "*";
if (button == btnDiv) operation = "/";
newNumber = true;
}
void Equals_Click(object sender, EventArgs e)
{
decimal secondNumber = GetNumber();
decimal result;
switch (operation)
{
case "+": result = firstNumber + secondNumber; break;
case "-": result = firstNumber - secondNumber; break;
case "*": result = firstNumber * secondNumber; break;
case "/":
if (secondNumber == 0)
{
display.Text = "Ошибка";
operation = "";
newNumber = true;
return;
}
result = firstNumber / secondNumber;
break;
default: return;
}
display.Text = result.ToString(
CultureInfo.GetCultureInfo("ru-RU"));
operation = "";
newNumber = true;
}
void Clear_Click(object sender, EventArgs e)
{
display.Text = "0";
firstNumber = 0;
operation = "";
newNumber = true;
}
void ClearEntry_Click(object sender, EventArgs e)
{
display.Text = "0";
newNumber = true;
}
void Backspace_Click(object sender, EventArgs e)
{
if (newNumber) return;
if (display.Text.Length > 1)
display.Text = display.Text.Substring(
0, display.Text.Length - 1);
else
display.Text = "0";
}
void Sign_Click(object sender, EventArgs e)
{
display.Text = (-GetNumber()).ToString(
CultureInfo.GetCultureInfo("ru-RU"));
}
void Percent_Click(object sender, EventArgs e)
{
display.Text = (GetNumber() / 100).ToString(
CultureInfo.GetCultureInfo("ru-RU"));
newNumber = true;
}
void Dot_Click(object sender, EventArgs e)
{
if (newNumber)
{
display.Text = "0,";
newNumber = false;
}
else if (!display.Text.Contains(","))
{
display.Text += ",";
}
}
}
}