Лабораторная №5. Создание приложения - калькулятор действительных чисел

Целью лабораторной работы заключается отработка навыков создания оконного приложения, библиотеки классов и их взаимодействие.

Задание:

1. Создать оконное приложение Windows Forms.

2. Разместить в главном окне приложения элементы управления для ввода чисел и отображения результата.

3. Создание библиотеки классов, в этом же проекте, для описания структуры данных чисел и операций с ними.

Краткое руководство к лабораторной работе

Создание оконного приложения уже описано выше, поэтому просто добавим на главное окно приложения необходимые элементы управления. Такие как, Button, TextBox, Label.

Лабораторная №5. Создание приложения - калькулятор действительных чисел - student2.ru

Следующий этап - создание библиотеки классов для структур данных и процедур операций с ними. Создадим библиотеку классов в этом же приложении и назовем ее Numbers. Для хранения чисел и операций с ними создадим структуру «число». Программный код получится:

namespace Numbers

{

public struct Number // Структура число

{

public double Value; // Поле для хранения числа

public Number(double value) // Конструктор числа

{

Value = value;

}

public Number(string valueString) // Конструктор получения числа из строки

{

Value = double.Parse(valueString);

}

public override string ToString() // Получение строки из числа

{

return Value.ToString();

}

// Операция сложения двух чисел

public static Number operator +(Number number1, Number number2)

{

return new Number(number1.Value + number2.Value);

}

// Операция вычитания

public static Number operator -(Number number1, Number number2)

{

return new Number(number1.Value - number2.Value);

}

// Операция умножения

public static Number operator *(Number number1, Number number2)

{

return new Number(number1.Value * number2.Value);

}

// Операция деления

public static Number operator /(Number number1, Number number2)

{

return new Number(number1.Value / number2.Value);

}

}

}

Для задания типа операции добавим перечисление «тип операции»:

namespace Numbers

{

// Перечисление - тип операции

public enum OperationType

{

Сложение,

Вычитание,

Умножение,

Деление

}

}

Для организации алгебраических операций создадим класс «операция»:

namespace Numbers

{

// Класс - операция

public class Operation

{

private Number number1; // Число 1

private Number number2; // Число 2

private OperationType oper; // Тип операции

public Number Result; // Результат

// Конструктор

public Operation(string number1str, string number2str, OperationType operType)

{

number1 = new Number (number1str);

number2 = new Number (number2str);

oper = operType;

Result = new Number(0);

}

// Преобразование результата в строку

public override string ToString()

{

return Result.ToString();

}

// Выполнение операции

public string Execute ()

{

switch (oper)

{

case OperationType.Сложение:

Result = number1 + number2;

break;

case OperationType.Вычитание:

Result = number1 - number2;

break;

case OperationType.Умножение:

Result = number1 * number2;

break;

case OperationType.Деление:

Result = number1 / number2;

break;

}

return ToString();

}

}

}

Теперь напишем функции элементов управления главного окна приложения.

namespace Calculator1

{

public partial class Form1 : Form

{

// Обработчик события нажатия на кнопку «+»

private void button1_Click(object sender, EventArgs e)

{

Operation oper = new Operation(textBox1.Text, textBox2.Text,

OperationType.Сложение);

textBox3.Text = oper.Execute();

}

// Обработчик события нажатия на кнопку «-»

private void button2_Click(object sender, EventArgs e)

{

Operation oper = new Operation(textBox1.Text, textBox2.Text,

OperationType.Вычитание);

textBox3.Text = oper.Execute();

}

// Обработчик события нажатия на кнопку «*»

private void button3_Click(object sender, EventArgs e)

{

Operation oper = new Operation(textBox1.Text, textBox2.Text,

OperationType.Умножение);

textBox3.Text = oper.Execute();

}

// Обработчик события нажатия на кнопку «/»

private void button4_Click(object sender, EventArgs e)

{

Operation oper = new Operation(textBox1.Text, textBox2.Text,

OperationType.Деление);

textBox3.Text = oper.Execute();

}

}

}

Таким образом, создано оконное приложение, соответствующее целям и задачам лабораторной работы. Стоит отметить, что в ходе решения было отработана система использования классов, структур, перечислений и пространств имен для упрощения использования итогового программного кода.


Наши рекомендации