5. Код программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Calculator
{
public partial class Form1 : Form
{
int operation; //выбранная операция
double a, c, b;//переменные для вычисления математических выражений
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)//нажатие на +
{
try
{
a = Convert.ToDouble(textBox1.Text);//считываем а
if (a <= 5000000 && a >= -3000000)
{
label1.Text = Convert.ToString(a);//выводим а
textBox1.Text = "";//очищаем строку ввода
operation = '+';
label2.Text = "+";//выводим знак +
//очищаем остальные поля
label3.Text = "";
label4.Text = "";
label5.Text = "";
}
else
{
MessageBox.Show("Max value = 5000000\nMin value = -3000000!");
}
}
catch//если введено не число
{
MessageBox.Show("Входные данные неверные!");
}
}
private void button2_Click(object sender, EventArgs e)//нажатие на -
{
try
{
a = Convert.ToDouble(textBox1.Text);
if (a <= 5000000 && a >= -3000000)
{
label1.Text = Convert.ToString(a);
textBox1.Text = "";
operation = '-';
label2.Text = "-";
label3.Text = "";
label4.Text = "";
label5.Text = "";
}
else
{
MessageBox.Show("Max value = 5000000\nMin value = -3000000!");
}
}
catch
{
MessageBox.Show("Входные данные неверные!");
}
}
private void button3_Click(object sender, EventArgs e)//нажатие на *
{
try
{
a = Convert.ToDouble(textBox1.Text);
if (a <= 5000000 && a >= -3000000)
{
label1.Text = Convert.ToString(a);
textBox1.Text = "";
operation = '*';
label2.Text = "*";
label3.Text = "";
label4.Text = "";
label5.Text = "";
}
else
{
MessageBox.Show("Max value = 5000000\nMin value = -3000000!");
}
}
catch
{
MessageBox.Show("Входные данные неверные!");
}
}
private void button4_Click(object sender, EventArgs e)//нажатие на /
{
try
{
a = Convert.ToDouble(textBox1.Text);
if (a <= 5000000 && a >= -3000000)
{
label1.Text = Convert.ToString(a);
textBox1.Text = "";
operation = '/';
label2.Text = "/";
label3.Text = "";
label4.Text = "";
label5.Text = "";
}
else
{
MessageBox.Show("Max value = 5000000\nMin value = -3000000!");
}
}
catch
{
MessageBox.Show("Входные данные неверные!");
}
}
private void button5_Click(object sender, EventArgs e)//нажатие на x^0.5
{
try
{
a = Convert.ToDouble(textBox1.Text);
if (a <= 5000000 && a >= -3000000)
{
label2.Text = Convert.ToString(a) + "^0.5";
operation = 1;
label1.Text = "";
label3.Text = "";
label4.Text = "";
label5.Text = "";
}
else
{
MessageBox.Show("Max value = 5000000\nMin value = -3000000!");
}
}
catch
{
MessageBox.Show("Входные данные неверные!");
}
}
private void button6_Click(object sender, EventArgs e)//нажатие на cos(x)
{
try
{
a = Convert.ToDouble(textBox1.Text);
if (a <= 5000000 && a >= -3000000)
{
label2.Text = "cos(" + Convert.ToString(a) + ")";
operation = 2;
label1.Text = "";
label3.Text = "";
label4.Text = "";
label5.Text = "";
}
else
{
MessageBox.Show("Max value = 5000000\nMin value = -3000000!");
}
}
catch
{
MessageBox.Show("Входные данные неверные!");
}
}
private void button7_Click(object sender, EventArgs e)//нажатие на 1/x
{
try
{
a = Convert.ToDouble(textBox1.Text);
if (a <= 5000000 && a >= -3000000)
{
label2.Text = "1/" + Convert.ToString(a);
operation = 3;
label1.Text = "";
label3.Text = "";
label4.Text = "";
label5.Text = "";
}
else
{
MessageBox.Show("Max value = 5000000\nMin value = -3000000!");
}
}
catch
{
MessageBox.Show("Входные данные неверные!");
}
}
private void button10_Click(object sender, EventArgs e)//нажатие на 1
{
textBox1.Text = textBox1.Text + "1";
}
private void button11_Click(object sender, EventArgs e)//нажатие на 2
{
textBox1.Text = textBox1.Text + "2";
}
private void button12_Click(object sender, EventArgs e)//нажатие на 3
{
textBox1.Text = textBox1.Text + "3";
}
private void button13_Click(object sender, EventArgs e)//нажатие на 4
{
textBox1.Text = textBox1.Text + "4";
}
private void button14_Click(object sender, EventArgs e)//нажатие на 5
{
textBox1.Text = textBox1.Text + "5";
}
private void button15_Click(object sender, EventArgs e)//нажатие на 6
{
textBox1.Text = textBox1.Text + "6";
}
private void button16_Click(object sender, EventArgs e)//нажатие на 7
{
textBox1.Text = textBox1.Text + "7";
}
private void button17_Click(object sender, EventArgs e)//нажатие на 8
{
textBox1.Text = textBox1.Text + "8";
}
private void button18_Click(object sender, EventArgs e)//нажатие на 9
{
textBox1.Text = textBox1.Text + "9";
}
private void button19_Click(object sender, EventArgs e)//нажатие на 0
{
textBox1.Text = textBox1.Text + "0";
}
private void button20_Click(object sender, EventArgs e)//нажатие на ","
{
textBox1.Text = textBox1.Text + ",";
}
private void button21_Click(object sender, EventArgs e)//нажатие на +/-
{
if (Convert.ToDouble(textBox1.Text) > 0)
{
textBox1.Text = "-" + textBox1.Text;
}
else
{
textBox1.Text = Convert.ToString((-Convert.ToDouble(textBox1.Text)));
}
}
private void button9_Click(object sender, EventArgs e)//нажатие на C
{
textBox1.Text = "";
label1.Text = "";
label2.Text = "";
label3.Text = "";
label4.Text = "";
label5.Text = "";
}
private void button8_Click(object sender, EventArgs e)//нажатие на =
{
try
{
switch (operation)
{
case '+':
b = Convert.ToDouble(textBox1.Text);
label3.Text = Convert.ToString(b);
label4.Text = "=";
c = a + b;
label5.Text = String.Format("{0:0.0}", c);
break;
case '-':
b = Convert.ToDouble(textBox1.Text);
label3.Text = Convert.ToString(b);
label4.Text = "=";
c = a - b;
label5.Text = String.Format("{0:0.0}", c);
break;
case '*':
b = Convert.ToDouble(textBox1.Text);
label3.Text = Convert.ToString(b);
label4.Text = "=";
c = a * b;
label5.Text = String.Format("{0:0.0}", c);
break;
case '/':
b = Convert.ToDouble(textBox1.Text);
label3.Text = Convert.ToString(b);
label4.Text = "=";
c = a / b;
label5.Text = String.Format("{0:0.0}", c);
break;
case 1:
label3.Text = "=";
label4.Text = String.Format("{0:0.0}", System.Math.Sqrt(a));
break;
case 2:
label3.Text = "=";
label4.Text = String.Format("{0:0.0}", System.Math.Cos(a * Math.PI / 180));//вывод предварительно переведя градусы в радианы
break;
case 3:
label3.Text = "=";
label4.Text = String.Format("{0:0.0}",(1 / a));
break;
}
}
catch
{
MessageBox.Show("Входные данные неверные!");
}
textBox1.Text = "";
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
MessageBox.Show("Max value = 5000000\nMin value = -3000000!");
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar))//если введены не числа, запретить ввод
{
e.Handled = true;
}
}
}
}
