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

       }

   }

}

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


 

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

9760. Характеристики и параметры полевых транзисторов с управляющим p-n-переходом 27.05 KB
  Дисциплина - Электроника Отчёт по лабораторной работе №3 Характеристики и параметры полевых транзисторов с управляющим p-n-переходом. Цель работы Исследование статических характеристик полевого транзистора с управляющим p-n-переходом и опред...
9761. Характеристики и параметры полевых транзисторов с управляющим P-N-переходом 96.37 KB
  Характеристики и параметры полевых транзисторов с управляющим P-N-переходом 1. Цель работы Исследование статических характеристик полевого транзистора с управляющим p-n-переходом и определение его основных параметров. 2. Схема проведения измер...
9762. Реконструкция жилого дома с перепрофилированием первого этажа в нежилой 44.76 KB
  Оглавление Объемно-планировочное решение. Конструктивное решение. Реконструкция Технический паспорт дома...
9763. Основы микроэлектроники. Технологии изготовления ИС 55.49 KB
  Основы микроэлектроники Основные понятия микроэлектроники: микроэлектроника интегральная микросхема (ИС) элементы и компоненты интегральных схем монолитные (полупроводниковые, твёрдые), плёночные, гибридные и совмещенные ИС навесные компоненты ...
9764. Типология СМИ 60.13 KB
  Типология СМИ Содержание   Введение. Системные характеристики СМИ. Типология печатных СМИ. Типология электронных СМИ. Телевидение. Радиовещание Список литературы  Введение В развитии мировой журналисти...
9765. Полевой транзистор. Модуляция проводимости канала 409.04 KB
  Полевой транзистор Полевые транзисторы с управляющим p-n-переходом: упрощённая конструкция, принцип действия, выходная (стоковая) и передаточная (стоко-затворная) характеристики, напряжение отсечки, начальный ток стока, эффект модуляции длины канала...
9766. Режим работы транзистора по постоянному току 30.51 KB
  Режим работы транзистора по постоянному току Цель работы Изучить режим работы биполярного транзистора в схеме с общим эмиттером. Определить параметры усилительного каскада на постоянном токе. + V1 M3 M2 + RЭ Rб UKЭ IK EK...
9767. Измерительные преобразователи 170.5 KB
  Тема Измерительные преобразователи Измерительный преобразователь - техническое средство с нормированными метрологическими характеристиками, служащее для преобразования измеряемой величины в другую величину или измерительный сигнал, удобный для обраб...
9768. Формирование торговой и ассортиментной политики аптечных учреждений 88 KB
  Тема Формирование торговой и ассортиментной политики аптечных учреждений План реферата. Фармацевтический рынок в России в условиях перехода к рыночной экономике. Понятие Фармацевтические товары их виды и особенности. Товарная и ассортимент...