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();

       }

   }

}

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


 

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

13353. Ручне електродугове зварювання металів. Електрична дуга та її властивості 160 KB
  Ручне електродугове зварювання металів Мета роботи: ознайомитися з основними відомостями про ручне електродугове зварювання металів плавким електродом вибрат: режим зварювання отримати зварне зєднання та перевірит його якість. Обладнання і
13354. Газове зварювання металів 1.45 MB
  Лабораторна робота № 4 Газове зварювання металів Мета роботи: ознайомитися з основними відомостями про газове зварювання металів вибрати режими зварювання отримати зварне з'єднання та перевірити його якість. Обладнання інструменти і матеріали: спецодяг зварюваль...
13355. Токарні верстати ,загальний вигляд, основні вузли та блоки 1.03 MB
  1.Токарні верстати загальний вигляд основні вузли та блоки. Верстати токарної групи застосовують для обробки заготовок які обертаються головний рух різання інструментом що здійснює неперервний рух подачі. Тут основним різальним інструментом є різець; використ
13356. Загальний вигляд свердлильних та розточувальних верстатів, основні вузли та блоки 366.5 KB
  1.Загальний вигляд свердлильних та розточувальних верстатів основні вузли та блоки. Свердлильні верстати Свердлильні верстати служать для обробки отворів інструментом який виконує одночасно головний обертальний рух різання і поступальний рух подачі. Розрізн...
13357. Фрезерні верстати 617.5 KB
  Фрезерування високопродуктивний і поширений спосіб обробки поверхонь заготовки за допомогою різального інструмента фрези з багатьма вістрями. Під час обробки фреза обертається виконуючи головний рух різання а заготовка пересувається прямолінійно виконуючи ру
13358. Визначення чисел твердості металів на приладі ТК-2 (типу Роквелла) 2.6 MB
  Лабораторна робота №8 Визначення чисел твердості металів на приладі ТК2 типу Роквелла Мета роботи: Ознайомитися з основними методами вимірювання твердості металів та сплавів ознайомитися з будовою і принципом роботи приладу ТК2 для випробування металів на тве
13359. Виробництво виливків в піщано-глиняних формах 335.95 KB
  Лабораторна робота № 2 Виробництво виливків в піщаноглиняних формах Мета роботи вивчити технологію отримання виливків в піщаноглиняних формах casting mould отримати навички формовки заливки форм вибивки литва аналізу браку сфери застосування литва виготовленого...
13360. Ознайомлення з програмою моделювання електричних та електронних кіл Electronics Workbench 4.0 32 KB
  Лабораторна робота № 5 Тема: Ознайомлення з програмою моделювання електричних та електронних кіл Electronics Workbench 4.0 Мета: Вивчити структуру та основні можливості програми схемотехнічного моделювання Electronics Workbench 4.0. Отримати практичні навички проведення експериме...
13361. Аналіз лінійного кола періодичного несинусоїдального струму 411.5 KB
  Лабораторна робота № 7 Тема: Аналіз лінійного кола періодичного несинусоїдального струму Мета: Вивчити методику комплексного дослідження однофазного електричного кола періодичного негармонічного струму з допомогою програми схемотехнічного моделювання Electroni...