51113

Разработка калькулятора с использованием формы и компонентов Button, Label и TextBox

Лабораторная работа

Информатика, кибернетика и программирование

Разработать калькулятор с использованием формы и компонентов Button, Label и TextBox. Сделать проверку вводимых значений, реализовать 4 действия: сложение, умножение, деление, вычитание. Код программы...

Русский

2014-02-06

64.94 KB

3 чел.

ПЕРВОЕ ВЫСШЕЕ ТЕХНИЧЕСКОЕ УЧЕБНОЕ ЗАВЕДЕНИЕ РОССИИ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«НАЦИОНАЛЬНЫЙ МИНЕРАЛЬНО-СЫРЬЕВОЙ УНИВЕРСИТЕТ «ГОРНЫЙ»

Лабораторные работы №1, №2

по дисциплине

«Объектно-ориентированное программирование»

Выполнил студент: Орлов Антон Юрьевич

Шифр 0402020012 группа ПОВТв-10

Специальность 230105.65 , курс 3

Санкт-Петербург

2013

Проверил:   _________________   /  Шумова Е.О.  

Задание на работу:

Разработать калькулятор с использованием формы и компонентов Button, Label и TextBox. Сделать проверку вводимых значений, реализовать 4 действия: сложение, умножение, деление, вычитание.

Код программы (файл Form1.cs)

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 calc2

{

   public partial class Form1 : Form

   {

       //класс исключения

       public class SquareRootLessZero : System.Exception

       {

       };

       //класс исключения

       public class IncorrectSymbols : System.Exception

       {

       };

       public Form1()

       {

           InitializeComponent();

       }

       private void button1_Click(object sender, EventArgs e)

       {

           try

           {

               double i;

               if (!double.TryParse(textBox1.Text, out i) || !double.TryParse(textBox2.Text, out i))

                       throw new IncorrectSymbols();

               if (radioButton1.Checked == true)//сложение

               {

                       textBox3.Text = Convert.ToString(Convert.ToDouble(textBox1.Text) + Convert.ToDouble(textBox2.Text));

               }

               else if (radioButton2.Checked == true)//вычитание

               {

                   textBox3.Text = Convert.ToString(Convert.ToDouble(textBox1.Text) - Convert.ToDouble(textBox2.Text));

               }

               else if (radioButton3.Checked == true)//умножение

               {

                   textBox3.Text = Convert.ToString(Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox2.Text));

               }                 

               else if (radioButton4.Checked == true)//деление

               {

                   if (Convert.ToDouble(textBox2.Text) == 0)

                       throw new System.DivideByZeroException();

                   else

                       textBox3.Text = Convert.ToString(Convert.ToDouble(textBox1.Text) / Convert.ToDouble(textBox2.Text));

               }

               else if (radioButton5.Checked == true)

               {

                   if (Convert.ToDouble(textBox1.Text) < 0)

                       throw new SquareRootLessZero();

                   else

                       textBox3.Text = Convert.ToString(Math.Sqrt(Convert.ToDouble(textBox1.Text)));

               }

               if (checkBox1.Checked == true && checkBox2.Checked == false)//история

                   listBox1.Items.Add(textBox3.Text);

               if (checkBox1.Checked == true && checkBox2.Checked == true)//расширенная история

               {

                   if (radioButton1.Checked == true)//сложение

                       listBox1.Items.Add(textBox1.Text + " + " + textBox2.Text + " = " + textBox3.Text);

                   else if (radioButton2.Checked == true)//вычитание

                       listBox1.Items.Add(textBox1.Text + " - " + textBox2.Text + " = " + textBox3.Text);

                   else if (radioButton3.Checked == true)//умножение

                       listBox1.Items.Add(textBox1.Text + " * " + textBox2.Text + " = " + textBox3.Text);

                   else if (radioButton4.Checked == true)//деление

                       listBox1.Items.Add(textBox1.Text + " / " + textBox2.Text + " = " + textBox3.Text);                        

                   else if (radioButton5.Checked == true)//sqrt

                       listBox1.Items.Add("sqrt(" + textBox1.Text + ") = " + textBox3.Text);

               }

           }

           catch (IncorrectSymbols IncSym)

           {

               double i;

               MessageBox.Show("Неправильный ввод!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

               if (!double.TryParse(textBox1.Text, out i) && !double.TryParse(textBox2.Text, out i))

               {

                   textBox1.Text = "0";

                   textBox2.Text = "0";

               }

               else if (!double.TryParse(textBox1.Text, out i))

                   textBox1.Text = "0";

               else

                   textBox2.Text = "0";

           }

           catch (DivideByZeroException divByZero)

           {

               textBox3.Text = "На ноль делить нельзя!";

           }

           catch (SquareRootLessZero SqrtLessZero)

           {

               textBox3.Text = "Число меньше нуля!";

           }

               

           catch (System.Exception exc)

           {

               MessageBox.Show(exc.ToString(), "Error", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);

           }

       }

       private void radioButton5_CheckedChanged(object sender, EventArgs e)

       {

           if (radioButton5.Checked == true)

           {

               textBox2.Text = "0";

               textBox2.Enabled = false;

           }

           else

           {

               textBox2.Enabled = true;

               textBox2.Text = "0";

           }

       }

       private void checkBox1_CheckedChanged(object sender, EventArgs e)

       {

           if (checkBox1.Checked == true)

               checkBox2.Show();

               //checkBox2.Enabled = true;

           else

               checkBox2.Hide();

               //checkBox2.Enabled = false;

       }

       private void выходToolStripMenuItem_Click(object sender, EventArgs e)

       {

           Application.Exit();

       }

       private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)

       {

           AboutBox1 ab = new AboutBox1();

           ab.Show();

       }

   }

}

Скриншот с результатами выполнения программы:


 

А также другие работы, которые могут Вас заинтересовать

40904. Неоднорідності у хвильоводі 151 KB
  Таким чином ми розв’язали рівняння Максвела, не розв’язуючи їх. (Зауваження: ми не враховували електростатичних полів). Тепер зашиємо розв’язки справа та зліва, наклавши граничні умови при (всі поля повинні бути неперервні)
40905. Струми і напруги в техніці НВЧ 139 KB
  Опір хвильовода теж можна визначити порізному: . Таким чином повний опір залежить від координат. Опір в точці в точці навантаження: . Якщо тобто ми розглянули точку знаходження навантаження маємо опір .
40906. Виявлення сигналів НВЧ 107.5 KB
  Еквівалентна схема діодадетектора: Ідеальна частота оскільки лише та покращити не можна. Визначимо потужність яку цей діод може зареєструвати: знайдемо чутливість приймача на базі квадратичного детектора. Якість детектора .
40907. Лінійний детектор змішувач 143 KB
  Шум завжди підсилюється більше ніж сигнал, тому показує, у скільки разів шум підсилюється більше, ніж сигнал. , бо немає схем в яких . , де - шум, згенерований всередині. Позначено - ми виносимо джерело струму за підсилювач. Погано в формулі те, що залежить від , тобто від оточуючого середовища. Домовились, що . Тоді для добрих приймачів: , де - еквівалентна температура входу (шуму) приймача.
40908. Вимірювання опорів 97 KB
  Нехай в лінію з опором підключили навантаження . , тому частина енергії відбивається. Можна паралельно підключити лінію з закороткою, яку можна рухати вздовж лінії. Це шлейфовий трансформатор або тромбон. Опір шлейфа: . Ми ставимо закоротку на кінці шлейфу, , тоді . Таким чином ми можемо ввести в лінію будь-який реактивний опір (закоротка не вносить активного опору).
40909. Чвертьхвильовий трансформатор 81.5 KB
  Таким чином, для узгодження опір необхідно включати в паралельний коливальний контур. Тепер ми знаємо повну теорію узгодження.Щоб збільшити ширину смуги пропускання, використовують більш складні ланцюги, це зв’язані ланцюги, тут смуга пропускання ширша: А що робити, якщо необхідно узгодити комбінований опір
40910. Заміна ліній передачі зосередженими елементами 140.5 KB
  Для чотириполюсника на зосереджених елементах. Задача: Представимо трансформатор у вигляді зосереджених елементів ТФВЧ.
40911. Вимірювання потужностей НВЧ 138.5 KB
  НВЧ Струмів майже немає Струми максимальні Подаємо НВЧ, тобто болометр перегрівається, баланс порушується. Для встановлення балансу опір збільшуємо так, щоб загальна потужність: . Для точності використовують . Інколи потрібно зменшити падаючу потужність. Для цього використовують атенюатори (поглинаюча пластина, що вставляється в хвилевід).
40912. Вимірювання довжини хвилі та частоти 91.5 KB
  Тому роблять так звані лінзові хвильоводи чим менше діелектрика тим менше втрати. Чим більша фокусна відстань тим більші втрати повязані з дифракцією. Втрати лінзового хвильоводу