Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2017-09-10 | 366 |
5.00
из
|
Заказать работу |
|
|
Целью лабораторной работы заключается отработка навыков создания оконного приложения, библиотеки классов и их взаимодействие.
Задание:
1. Создать оконное приложение Windows Forms.
2. Разместить в главном окне приложения элементы управления для ввода чисел и отображения результата.
3. Создание библиотеки классов, в этом же проекте, для описания структуры данных чисел и операций с ними.
Краткое руководство к лабораторной работе
Создание оконного приложения уже описано выше, поэтому просто добавим на главное окно приложения необходимые элементы управления. Такие как, Button, TextBox, Label.
Следующий этап - создание библиотеки классов для структур данных и процедур операций с ними. Создадим библиотеку классов в этом же приложении и назовем ее 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();
}
}
}
Таким образом, создано оконное приложение, соответствующее целям и задачам лабораторной работы. Стоит отметить, что в ходе решения было отработана система использования классов, структур, перечислений и пространств имен для упрощения использования итогового программного кода.
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!