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

       }

   }

}

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


 

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

23425. Сообщения SIP 27.68 KB
  Реферат Протокол SIP разрабатывался с расчетом на возможность использования любых транспортов но тем не менее наиболее предпочтительным является использование UDPпакетов это позволяет повысить производительность по сравнению с использованием протокола TCP но требует использования дополнительных механизмов проверки доставки сигнальных сообщений. Так как телефония с использованием протокола SIP позволяет использовать большое количество разнообразных сервисов помимо передачи голоса возможна...
23426. Уровни сетевой архитектуры 72.79 KB
  Компьютерные сети по своей структуре очень сложны. Для начала проведем грань между работой программных и аппаратных средств сети. В сети может работать разнообразное по технологии оборудование от него зависят возможности сети: производительность надежность и т. и разнообразное программное обеспечение: сетевые операционные системы приложения от него зависят те же возможности сети прозрачность безопасность.
23427. Города на территории Беларуси в IX – середине XIII в.: происхождение названий и хозяйственная жизнь горожан 13.54 KB
  Причинами превращения городищ в города были: отделение ремесла от земледелия проживание ремесленников в местах близких к источникам сырья развитие обмена продуктами земледелия на вещи сделанные ремесленниками. Города возникали на перекрестках дорог и рек. Города IX – XIII вв. Внутренняя часть города укрепленная валами рвами стенами называлась детинцем.
23428. Развитие культуры на белорусских землях в IX - середине XIII вв. Религиозные деятели 15.29 KB
  Своих высот книжная культура достигла в творчестве Евфросиньи Полоцкой Кирилла Туровского Аврамия Смоленского Клима Смолятича а также неизвестного автора €œСлова о полку Игореве€. О ее жизни рассказывается в €œЖитии Евфросиньи Полоцкой€. Полоцкой Каложская церковь Каменецкая вежа. Полоцкой мастер Лазарь Богша сделал шестиконечный крест.
23429. Причины образования Великого княжества Литовского 17.53 KB
  Причины образования Великого княжества Литовского Причинами образования ВКЛ были следующие: внутриполитические. При княжении великих князей Витеня 12951316 и Гедимина 13161341 в состав ВКЛ вошли почти все белорусские земли. За время его правления территория ВКЛ увеличилась почти в 2 раза и оно стало называться ВКЛ Русское и Жемайтское. Эти факты позволяют говорить о федеративной форме государственного устройства ВКЛ.
23430. Укрепление великокняжеской власти в ВКЛ в первой половине XIV в. Происхождение названия княжества 12.98 KB
  Укрепление великокняжеской власти в ВКЛ в первой половине XIV в. Происхождение названия княжества Укрепление единовластия в ВКЛ произошло при великом князе Гедимине в 13161341 гг. Большая часть белорусских земель вошла в состав ВКЛ. Территория ВКЛ увеличилась в 3 раза.
23431. Государственный строй ВКЛ в середине XIII – XIV в. Борьба за великое княжение 16.03 KB
  стал его старший сын от второй жены Ягайло. В начале своего правления Ягайло стремился продолжать политику своего отца. Однако старшие братья Ягайло от первой жены Ольгерда считали себя обиженными. Ягайло столкнулся с противодействием недовольных князей группировавшихся вокруг полоцкого князя Андрея.
23432. Сближение ВКЛ с Польшей. Кревская уния 1385 г.: причины, условия и последствия 13.26 KB
  Выбор остановился на Ягайло. Вопервых Ягайло также был заинтересован в союзниках которые помогли бы ему сохранить власть. Втретьих если бы Ягайло крестил Литву в католичество это подняло бы авторитет поляков так как им удалось бы сделать то что до сих пор не удавалось немцам. Согласно унии польские послы обещали Ягайло отдать в жены польскую королеву Ядвигу а с нею и польскую корону.
23433. Изменения в государственном строе ВКЛ в XV – первой половине XVI 16.37 KB
  Изменения в государственном строе ВКЛ в XV – первой половине XVI В начале XV века власть в ВКЛ стала практически принадлежать Витовту. При нем государственный строй ВКЛ представлял собой неограниченную монархию – власть одного правителя в государстве. Витовт продолжая добиваться независимости ВКЛ от Польши стремился разорвать свои зависимые отношения с польским королем Ягайло. Была подписана Городельская уния – союз между ВКЛ и Польшей.