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

       }

   }

}

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


 

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

41708. ИССЛЕДОВАНИЕ ТИПОВЫХ ЗВЕНЬЕВ ЛИНЕЙНЫХ АСР 165.27 KB
  Переходная характеристика Время сек Импульсная характеристика Время сек Рисунок 1 Переходная и импульсная характеристика звена W1 Переходная характеристика Время сек Импульсная характеристика Время сек Рисунок 2 Переходная и импульсная характеристика звена W2 Переходная характеристика Время сек Импульсная характеристика Время сек Рисунок 3 Переходная и импульсная характеристика звена W3 Переходная характеристика Время сек Импульсная характеристика Время сек Рисунок 4 Переходная и импульсная характеристика звена W4...
41709. Расчет поперечной рамы стального каркаса одноэтажного здания на действие постоянной нагрузки 702.68 KB
  Поперечное сечение в виде 2х уголков с параметрами уголка 160×100×10 Высота низа колонн 8 м Поперечное сечение в виде трубы с параметрами 720×12 Высота верха колонн 6 м Поперечное сечение в виде трубы с параметрами 720×8 q = 24 кН м P = 32 кН ℓ = 32 м Цели лабораторной работы: Произвести расчет поперечной рамы стального каркаса одноэтажного здания с помощью ПК ЛИРА Определить для основных сечений колонн и ригеля максимальные значения нормальных и касательных напряжений Сделать вывод о работе конструкции Ход работы: Создание расчетной...
41710. Команды MSDOS 251.68 KB
  Название команды Синтаксис команды Создание файла с консоли copycon имя файла Удаление файла del имя файла Переименование файла ren имя файла 1 имя файла 2 Редактирование файла edit имя файла Переход на диск имя диска Переход в каталог cd путь Создание каталога md имя каталога Удаление каталога rd имя каталога Очистка экрана Cls Вывод содержимого файла на экран type имя файла Копирование файла copy путь 1 что копируется путь 2 куда копируется Поиск файла filefind имя файла Работа с командной строкой Prompt Информация о команде команда ...
41711. Индекс FTSE 100 109.84 KB
  Индекс начал рассчитываться с 3 января 1984 года с уровня 1000 пунктов. Компании чьи акции учитываются в расчете индекса FTSE 100 должны удовлетворять условиям выставляемым FTSE Group: а должны входить в список Лондонской фондовой биржи; б стоимость акций индекса FTSE 100 выражается в фунтах или евро;в пройти тест на принадлежность к определенному государству;г акции FTSE 100 должны быть в свободном обращении и быть легко ликвидными. Индекс FTSE 100 включает 100 компаний британской экономики хотя на самом деле список состоит из...
41712. Основы работы в ГИС ArcView 1.75 MB
  Интерфейс пользователя rcView Окно программ Окно приветствия Строка меню Строка кнопок Строка инструментов Окно вида Меню работы с файлами Меню редактирования Меню вид Меню тема Меню графика Меню окно Строка кнопок:
41713. Классы. Основные понятия 260.14 KB
  Основные понятия Цель работы: Познакомиться с понятием класса. Продемонстрировать работу с классом создание экземпляра класса изменение значений полей вызов перегруженных методов Выполнить требования к лабораторным работам см. Контрольные вопросы: Что такое метод Что такое возвращаемый тип каким он может быть Что значит void Что такое параметры метода какие параметры бывают Что такое перегрузка методов и для чего она нужна Что такое класс Какие члены класс может содержать Что такое конструктор для чего служит...
41714. Таблицы, сортировка таблиц, вычисление в таблицах в редакторе Word 54.82 KB
  С помощью Microsoft Grph можно создавать высококачественные информативные диаграммы и включать их в документы Word. Создание диаграммы Диаграммы строятся на основе данных содержащихся в таблице данных также внедряемой в документ Word. Можно создавать диаграммы четырнадцати основных и двадцати дополнительных типов. Тип диаграмм Правильный выбор типа диаграммы позволяет представить данные самым выигрышным образом.
41715. Ввод-вывод. Ветвления 168.52 KB
  Цель работы: Разработать алгоритм и написать программу на языке С++ для выполнения задания согласно номера бригады. Программа должна обеспечивать обмен с оператором, выдавая необходимые сообщения и позволяя вводить исходные данные и просмотреть результат выполнения программы.