Современные технологии программирования (часть 2-я). Лабораторные работы №1-3. Для всех вариантов (2020).
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
- Программа для просмотра текстовых файлов
Описание
Лабораторная работа №1
Конвертор чисел из десятичной системы счисления в систему счисления с заданным основанием
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 1
1. Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый метод класса.
Спецификация класса «Преобразователь чисел из десятичной системы счисления в систему счисления с заданным основанием p».
ADT Conver_10_p
Данные
Преобразователь действительных чисел из десятичной системы счисления в систему счисления с заданным основанием (тип Conver_10_p). Основание системы счисления p - это целое число, со значением, принадлежащим диапазону от 2 до 16 и целое число c, определяющее точность представления результата, выраженную в количестве разрядов.
Операции. Операции представлены в таблице 1.
Таблица 1 -Операции
Do(double n, int p, int c) Выполнитьпреобразование
Вход: Десятичное действительное число n. Основание системы счисления p. Точность преобразования дроби, заданная числом разрядов дробной части результата c. Например:
Do(-17.875,16,3) = “-А1.Е” .
Процесс: Выполняет преобразование десятичного действительного числа n, в систему счисления с основанием р и точностью c.
Например: Do (”-17.875”,16,3) = “-А1.Е”.
Выход: Строка результата.
Например: Do(”-17.875”) = “-А1.Е”.
int_to_Char(int d) Преобразовать целое значение в цифру системы счисления с основанием р.
Вход: d – значение типа int – целое, соответствующее цифре в системе счисления с основанием р.
Предусловия: Нет.
Процесс: Преобразует целое d в соответствующую ему цифру в системе счисления с основанием р, значение типа Char.
Например: int_to_Char (14) = “E”.
Выход: Значение типа char.
Постусловия: Нет.
int_to_P(int n, int p) Преобразовать целое в строку.
Вход: n – целое число в системе счисления с основанием 10. p – основание системы счисления результата.
Предусловия: Нет.
Процесс: Преобразует целое n в строку, содержащую целое число в системе счисления с основанием p. Например:
int_to_P(161, 16) = “A1”
Выход: Строка.
Постусловия: Нет.
flt_to_P(double n, int p, int c) Преобразоватьдробь в строку.
Вход: n – дробь в системе счисления с основанием 10, p – основание системы счисления, c – точность представления дроби.
Предусловия: Нет.
Процесс: Преобразует дробь n в строку, содержащую дробь в системе счисления с основанием p с точностью с. Например: flt_to_P(0.9375, 2, 4) «1111»
Выход: Строка.
Постусловия: Нет.
end Conver_10_p
Класс «Конвертер р_10» - преобразователь чисел из системы счисления с основанием р в десятичную систему счисления
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 2
1. Реализовать преобразователь действительных (конвертер р_10) чисел из системы счисления с основанием р в десятичную систему счисления в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления р принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый метод класса.
Спецификация класса «Конвертер р_10» - преобразователь действительных чисел со знаком из системы счисления с основанием р в десятичную систему счисления.
ADT Conver_p_10
Данные
Преобразователь действительных чисел из заданной системы счисления с основанием p в десятичную систему счисления (тип Conver_p_10). Основание системы счисления со значением, принадлежащим диапазону от 2 до 16.
Операции
Операции приведены в таблице 2.
Таблица 2 -Операции
dval(string P_num, int P) Выполнитьпреобразование
Вход: P_num - строковое представление действительного числа в системе счисления с основанием р. Например:
dval(“A5.E”, 16)
Процесс: Выполняет преобразование действительного числа, представленного строкой в числовое представление.
Например:
dval(“A5.E”, 16) = -165.875.
Выход: Вещественноечисло.
Постусловия: Нет.
char_To_num(char ch) Преобразоватьсимвол в целое
Вход: ch – значение типа char – символ, изображающий цифру системы счисления с основанием p.
Предусловия: Нет.
Процесс: Преобразует символ ch в значение целого типа.
Например:
PCharToInt(‘A’) = 10.
Выход: Вещественноечисло.
Постусловия: Нет.
convert(string P_num, int P, double weight) Преобразовать строку в вещественное число.
Вход: P_num – строка, изображающая цифры целой и дробной частей вещественного числа в системе счисления с основанием p без разделителя. weight – вес единицы старшего разряда целой части числа.
Предусловия: Нет.
Процесс: Преобразует строку P_num, содержащую цифры целой и дробной частей вещественного числа в системе счисления с основанием p без разделителя в вещественное число. Например:
convert (“A5E1”, 16, 16)
Выход: Вещественноечисло.
Постусловия: Нет.
endConver_p_10
Лабораторная работа №2.
Редактор чисел в системе счисления с основанием р.
Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного языка программирования C#.
Задание 1
1. Разработать и реализовать класс Editor «Редактор действительных чисел представленных в системе счисления с основанием р», используя класс языка высокого уровня. Основание системы счисления р принимает значение из диапазона 2..16. Все команды редактора удобно пронумеровать, начиная с команды добавить 0 целыми числами от 0. При реализации интерфейса номера команд удобно хранить в свойстве Tag, которое имеется у визуальных компонентов.
Атрибуты и операции класс представлены на рисунке 10.
Рисунок 10 - Атрибуты и операции класса
2. Ответственность класса Editor (редактор) – хранение, ввод и редактирование строкового представления числа, представленного в системе счисления с основанием p. Класс должен обеспечивать: добавление символов (AddDigit), соответствующих р-ичным цифрам (р от 2 до 16); добавления нуля (AddZero()); добавление разделителя целой и дробной частей (AddDelim()); забой символа - удаление символа, стоящего справа (BS); очистку - установку нулевого значения числа (Clear); чтение строкового представления р-ичного числа (Number).
3. Протестировать каждый метод класса.
Класс История.
Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного программирования языка C#;использования библиотечного класса обобщённой коллекции List<> для обработки данных.
Задание 2
1. Разработать и реализовать класс History «История», используя класс языка C#. Класс отвечает за документирование выполнения пользователем переводов чисел. Объекты класса хранят исходные числа, результаты преобразования и основания систем счисления исходного числа и результата.
Атрибуты и операции класса представлены таблице 3.
Таблица 3 - Атрибуты и операции класса «История»
История
Запись(i: integer): String;
ДобавитьЗапись(a: String);
Записей(): integer
ОчиститьИсторию();
Обязанность: ввод, вывод, хранение данных введённых пользователем и полученных результатов.
2. Класс должен отвечать за ввод, вывод, хранение данных введённых пользователем и полученных результатов. Класс должен обеспечивать:
• добавление записи (ДобавитьЗапись) - строки, содержащей введённое пользователем число, результат его преобразования и основания систем счисления исходной и той, в которую число преобразовано;
• извлечение записи по её номеру в списке (Запись);
• очистка списка (ОчиститьИсторию);
• конструктор (Запись);
• текущий размер списка в числе записей (Записей);
3. Протестировать каждый метод класса.
Лабораторная работа №3
Класс Управление для «Конвертора p1_р2».
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 1
1. Реализовать Управление для «Конвертера p1_р2».
2. Протестировать каждый метод класса.
Спецификация класса Управление для «Конвертера p1_р2».
ADT Control_
Данные
Объект класса Control_ (Управление) отвечают за координацию действий между классом «Интерфейс» и классами «Редактор», «Конвертер p1_10», «Конвертер 10_p2», «История». Объект класса Control_ содержат поля: ed типа Editor, his типа История, и свойства: Pin типа int (основание системы счисления исходного числа), Pout типа int (основание системы счисления результата), St типа State (состояние конвертера). Он может находиться в одном из двух состояний: «Редактирование», «Преобразовано». Объекты этого типа изменяемы.
Операции
Операции представлены в таблице 4.
Таблица 4 - Операции
Control_ Конструктор
Вход: Нет.
Процесс: Создаёт объект Управление типа (тип Control_) и инициирует поля объекта начальными значениями.
DoCommand Выполнить команду.
Вход: n - целое значение, номер выполняемой команды.
Предусловия: Нет.
Процесс: В зависимости от значения n и состояния (St) передаёт сообщение объекту Редактор или Преобразователь и изменяет состояние. Возвращает строку результата: либо отредактированное число, либо результат преобразования.
Выход: Строка.
Постусловия: Нет.
end Control_
Интерфейс приложения «Конвертор р1_р2».
Цель: Сформировать практические навыки реализации графических интерфейсов пользователя (GUI) на основе библиотеки визуальных компонентов.
Задание 2
1. Реализовать «Интерфейс» приложения «Конвертер р1_р2», используя библиотечный класс формы и визуальные компоненты.
2. Протестировать методы класса.
Спецификация класса «Интерфейс».
Интерфейс приложения представлен на рисунке 1.
ADT TPanel_p_p
Данные
«Интерфейс» конвертера действительных чисел из системы счисления с основанием p1 в систему счисления с основанием p2 предназначен для: выбора оснований систем счисления p1, p2 из диапазона от 2..16; ввода и редактирования действительного числа со знаком в системе счисления с выбранным основанием p1; отображения результата – представления ввёдённого числа в системе счисления с основанием p2; отображения справки о приложении; отображения истории текущего сеанса работы пользователя с приложением.
«Интерфейс» несёт на себе визуальные компоненты, реализующие выполнения команд преобразователя и объект «Управление» класса Control_.
Операции. Операции представлены в таблице 5.
Таблица 5 - Операции
Наименование Пояснение
trackBar1_Scroll Обработчик события Scroll для компонента trackBar1.
Вход: objectsender, EventArgse.
sender – указатель на объект, который явился инициатором события Scroll. e - это объект базового класса для классов, содержащих данные о событии.
Предусловия: Пользователь перетаскивает бегунок компонента trackBar1.
Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р1 исходного числа. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
Постусловия: Обновления выполнены.
Выход: Нет.
numericUpDown1_ValueChanged Обработчик события ValueChanged для компонента numericUpDown1.
Вход: objectsender, EventArgse. sender – указатель на объект, который явился инициатором события ValueChanged.
Предусловия: Пользователь изменяет р1 с помощью компонента numericUpDown1.
Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р1 исходного числа. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
Постусловия: Обновления выполнены.
Выход: Нет.
trackBar2_Scroll Обработчик события Scroll для компонента trackBar2.
Вход: objectsender, EventArgse. sender – указатель на объект, который явился инициатором события Scroll.
Предусловия: Пользователь перетаскивает бегунок компонента trackBar2.
Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления p2 исходного числа. Устанавливает новое значение основания системы счисления.
Постусловия: Обновления выполнены.
Выход: Нет.
numericUpDown2_ValueChanged Обработчик события ValueChanged для компонента numericUpDown2.
Вход: objectsender, EventArgse. sender – указатель на объект, который явился инициатором события ValueChanged.
Предусловия: Пользователь изменяет р2 с помощью компонента numericUpDown2.
Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р2 результата. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
Постусловия: Обновления выполнены.
Выход: Нет.
numericUpDown1_ValueChanged Обработчик события ValueChanged для компонента numericUpDown1.
Вход: objectsender, EventArgse. sender – указатель на объект, который явился инициатором события ValueChanged.
Предусловия: Пользователь изменяет р1 с помощью компонента numericUpDown1.
Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р1 результата. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
Постусловия: Обновления выполнены.
Выход: Нет.
TPanelp_p_Load Обработчик события Load для компонента TPanelp_p.
Вход: (objectsender, EventArgse). sender – указатель на объект, который явился инициатором события Load.
Предусловия: Форма загружается в память.
Процесс: Устанавливает начальные значения свойств визуальных компонентов формы после загрузки формы.
Выход: Нет.
Постусловия: Установка свойств выполнена.
DoCmnd(int j) Выполнить команду.
Вход: j значение целого типа – номер команды преобразователя.
Предусловия: Пользователь нажал командную кнопку команды с номером j.
Процесс: Передаёт сообщение объекту Управление и отображает возвращаемый им результат. Вызывается метод объекта Управление и передаётся номер набранной пользователем команды Конвертора.
Выход: Нет.
Постусловия: Обновляется состояние Интерфейса.
button_Click Обработчик события Click для командных кнопок.
Вход: object sender, EventArgs e. sender: object – указатель на объект, который явился инициатором события Click.
Предусловия: Пользователь нажал командную кнопку.
Процесс: Извлекает из свойства Tag командной кнопки номер соответствующей ей команды. Вызывает метод DoCmnd Интерфейса и передаёт в него номер команды.
Выход: Нет.
Постусловия: Нет.
TPanelp_p_KeyPress Обработчик события KeyPress для алфавитно-цифровых клавиш клавиатуры.
Вход: object sender, KeyPressEventArgs e.
Предусловия: Пользователь нажал алфавитно-цифровую клавишу клавиатуры.
Процесс: Определяет по нажатой алфавитно-цифровой клавише номер соответствующей ей команды. Вызывает метод DoCmnd Интерфейса и передаёт в него номер команды.
Выход: Нет.
Постусловия: Команда пользователя вызвана.
TPanelp_p_KeyDown Обработчик события KeyDown для клавиш управления клавиатуры.
Вход: (object sender, KeyEventArgs e)
Предусловия: Пользователь нажал клавишу управления клавиатуры.
Процесс: Определяет по нажатой клавише управления номер соответствующей ей команды. Вызывает метод DoCmnd Интерфейса и передаёт в него номер команды.
Выход: нет.
Постусловия: Команда пользователя вызвана.
UpdateP1
Выполнить обновления связанные с изменением р1.
Вход: Нет.
Предусловия: Изменено основание с.сч. р1 исходного числа.
Процесс: Выполняет необходимые обновления при смене ос. с. сч. р1.
Выход: Нет.
Постусловия: Состояние кнопок обновлено.
UpdateP2
Выполнить обновления связанные с изменением р2.
Вход: Нет.
Предусловия: Изменено основание с.сч. р2 результата.
Процесс: Выполняет необходимые обновления при смене ос. с. сч. р2.
Выход: Нет.
Постусловия: Состояние кнопок обновлено.
UpdateButtons
Вход: Нет.
Предусловия: Изменено основание с.сч. р1 исходного числа.
Процесс: Обновляет состояния командных кнопок предназначенных для ввода цифр выбранной системы счисления p1.
Выход: Нет.
Постусловия: Состояние кнопок обновлено.
выходToolStripMenuItem_Click Команда Выход основного меню класса TPanelp_p формы.
Вход: object sender, EventArgs e.
Предусловия: Пользователь кликает мышью на пункте Выход основного меню формы.
Процесс: Завершает работу приложения.
Выход: Нет.
Постусловия: Приложение завершено.
справкаToolStripMenuItem_Click Команда Справка основного меню класса TPanelp_p формы.
Вход: object sender, EventArgs e
Предусловия: Пользователь кликает мышью на пункте Справка основного меню формы.
Процесс: Показывает окно со справкой по приложению.
Выход: Нет.
Постусловия: Отображено окно справки.
историяToolStripMenuItem_Click Команда История основного меню класса TPanelp_p формы.
Вход: object sender, EventArgs e
Предусловия: Пользователь кликает мышью на пункте История основного меню формы.
Процесс: Открывает окно История.
Выход: Нет.
Постусловия: Окно История - открыто.
endTPanel_p_p
Конвертор чисел из десятичной системы счисления в систему счисления с заданным основанием
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 1
1. Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый метод класса.
Спецификация класса «Преобразователь чисел из десятичной системы счисления в систему счисления с заданным основанием p».
ADT Conver_10_p
Данные
Преобразователь действительных чисел из десятичной системы счисления в систему счисления с заданным основанием (тип Conver_10_p). Основание системы счисления p - это целое число, со значением, принадлежащим диапазону от 2 до 16 и целое число c, определяющее точность представления результата, выраженную в количестве разрядов.
Операции. Операции представлены в таблице 1.
Таблица 1 -Операции
Do(double n, int p, int c) Выполнитьпреобразование
Вход: Десятичное действительное число n. Основание системы счисления p. Точность преобразования дроби, заданная числом разрядов дробной части результата c. Например:
Do(-17.875,16,3) = “-А1.Е” .
Процесс: Выполняет преобразование десятичного действительного числа n, в систему счисления с основанием р и точностью c.
Например: Do (”-17.875”,16,3) = “-А1.Е”.
Выход: Строка результата.
Например: Do(”-17.875”) = “-А1.Е”.
int_to_Char(int d) Преобразовать целое значение в цифру системы счисления с основанием р.
Вход: d – значение типа int – целое, соответствующее цифре в системе счисления с основанием р.
Предусловия: Нет.
Процесс: Преобразует целое d в соответствующую ему цифру в системе счисления с основанием р, значение типа Char.
Например: int_to_Char (14) = “E”.
Выход: Значение типа char.
Постусловия: Нет.
int_to_P(int n, int p) Преобразовать целое в строку.
Вход: n – целое число в системе счисления с основанием 10. p – основание системы счисления результата.
Предусловия: Нет.
Процесс: Преобразует целое n в строку, содержащую целое число в системе счисления с основанием p. Например:
int_to_P(161, 16) = “A1”
Выход: Строка.
Постусловия: Нет.
flt_to_P(double n, int p, int c) Преобразоватьдробь в строку.
Вход: n – дробь в системе счисления с основанием 10, p – основание системы счисления, c – точность представления дроби.
Предусловия: Нет.
Процесс: Преобразует дробь n в строку, содержащую дробь в системе счисления с основанием p с точностью с. Например: flt_to_P(0.9375, 2, 4) «1111»
Выход: Строка.
Постусловия: Нет.
end Conver_10_p
Класс «Конвертер р_10» - преобразователь чисел из системы счисления с основанием р в десятичную систему счисления
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 2
1. Реализовать преобразователь действительных (конвертер р_10) чисел из системы счисления с основанием р в десятичную систему счисления в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления р принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый метод класса.
Спецификация класса «Конвертер р_10» - преобразователь действительных чисел со знаком из системы счисления с основанием р в десятичную систему счисления.
ADT Conver_p_10
Данные
Преобразователь действительных чисел из заданной системы счисления с основанием p в десятичную систему счисления (тип Conver_p_10). Основание системы счисления со значением, принадлежащим диапазону от 2 до 16.
Операции
Операции приведены в таблице 2.
Таблица 2 -Операции
dval(string P_num, int P) Выполнитьпреобразование
Вход: P_num - строковое представление действительного числа в системе счисления с основанием р. Например:
dval(“A5.E”, 16)
Процесс: Выполняет преобразование действительного числа, представленного строкой в числовое представление.
Например:
dval(“A5.E”, 16) = -165.875.
Выход: Вещественноечисло.
Постусловия: Нет.
char_To_num(char ch) Преобразоватьсимвол в целое
Вход: ch – значение типа char – символ, изображающий цифру системы счисления с основанием p.
Предусловия: Нет.
Процесс: Преобразует символ ch в значение целого типа.
Например:
PCharToInt(‘A’) = 10.
Выход: Вещественноечисло.
Постусловия: Нет.
convert(string P_num, int P, double weight) Преобразовать строку в вещественное число.
Вход: P_num – строка, изображающая цифры целой и дробной частей вещественного числа в системе счисления с основанием p без разделителя. weight – вес единицы старшего разряда целой части числа.
Предусловия: Нет.
Процесс: Преобразует строку P_num, содержащую цифры целой и дробной частей вещественного числа в системе счисления с основанием p без разделителя в вещественное число. Например:
convert (“A5E1”, 16, 16)
Выход: Вещественноечисло.
Постусловия: Нет.
endConver_p_10
Лабораторная работа №2.
Редактор чисел в системе счисления с основанием р.
Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного языка программирования C#.
Задание 1
1. Разработать и реализовать класс Editor «Редактор действительных чисел представленных в системе счисления с основанием р», используя класс языка высокого уровня. Основание системы счисления р принимает значение из диапазона 2..16. Все команды редактора удобно пронумеровать, начиная с команды добавить 0 целыми числами от 0. При реализации интерфейса номера команд удобно хранить в свойстве Tag, которое имеется у визуальных компонентов.
Атрибуты и операции класс представлены на рисунке 10.
Рисунок 10 - Атрибуты и операции класса
2. Ответственность класса Editor (редактор) – хранение, ввод и редактирование строкового представления числа, представленного в системе счисления с основанием p. Класс должен обеспечивать: добавление символов (AddDigit), соответствующих р-ичным цифрам (р от 2 до 16); добавления нуля (AddZero()); добавление разделителя целой и дробной частей (AddDelim()); забой символа - удаление символа, стоящего справа (BS); очистку - установку нулевого значения числа (Clear); чтение строкового представления р-ичного числа (Number).
3. Протестировать каждый метод класса.
Класс История.
Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного программирования языка C#;использования библиотечного класса обобщённой коллекции List<> для обработки данных.
Задание 2
1. Разработать и реализовать класс History «История», используя класс языка C#. Класс отвечает за документирование выполнения пользователем переводов чисел. Объекты класса хранят исходные числа, результаты преобразования и основания систем счисления исходного числа и результата.
Атрибуты и операции класса представлены таблице 3.
Таблица 3 - Атрибуты и операции класса «История»
История
Запись(i: integer): String;
ДобавитьЗапись(a: String);
Записей(): integer
ОчиститьИсторию();
Обязанность: ввод, вывод, хранение данных введённых пользователем и полученных результатов.
2. Класс должен отвечать за ввод, вывод, хранение данных введённых пользователем и полученных результатов. Класс должен обеспечивать:
• добавление записи (ДобавитьЗапись) - строки, содержащей введённое пользователем число, результат его преобразования и основания систем счисления исходной и той, в которую число преобразовано;
• извлечение записи по её номеру в списке (Запись);
• очистка списка (ОчиститьИсторию);
• конструктор (Запись);
• текущий размер списка в числе записей (Записей);
3. Протестировать каждый метод класса.
Лабораторная работа №3
Класс Управление для «Конвертора p1_р2».
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 1
1. Реализовать Управление для «Конвертера p1_р2».
2. Протестировать каждый метод класса.
Спецификация класса Управление для «Конвертера p1_р2».
ADT Control_
Данные
Объект класса Control_ (Управление) отвечают за координацию действий между классом «Интерфейс» и классами «Редактор», «Конвертер p1_10», «Конвертер 10_p2», «История». Объект класса Control_ содержат поля: ed типа Editor, his типа История, и свойства: Pin типа int (основание системы счисления исходного числа), Pout типа int (основание системы счисления результата), St типа State (состояние конвертера). Он может находиться в одном из двух состояний: «Редактирование», «Преобразовано». Объекты этого типа изменяемы.
Операции
Операции представлены в таблице 4.
Таблица 4 - Операции
Control_ Конструктор
Вход: Нет.
Процесс: Создаёт объект Управление типа (тип Control_) и инициирует поля объекта начальными значениями.
DoCommand Выполнить команду.
Вход: n - целое значение, номер выполняемой команды.
Предусловия: Нет.
Процесс: В зависимости от значения n и состояния (St) передаёт сообщение объекту Редактор или Преобразователь и изменяет состояние. Возвращает строку результата: либо отредактированное число, либо результат преобразования.
Выход: Строка.
Постусловия: Нет.
end Control_
Интерфейс приложения «Конвертор р1_р2».
Цель: Сформировать практические навыки реализации графических интерфейсов пользователя (GUI) на основе библиотеки визуальных компонентов.
Задание 2
1. Реализовать «Интерфейс» приложения «Конвертер р1_р2», используя библиотечный класс формы и визуальные компоненты.
2. Протестировать методы класса.
Спецификация класса «Интерфейс».
Интерфейс приложения представлен на рисунке 1.
ADT TPanel_p_p
Данные
«Интерфейс» конвертера действительных чисел из системы счисления с основанием p1 в систему счисления с основанием p2 предназначен для: выбора оснований систем счисления p1, p2 из диапазона от 2..16; ввода и редактирования действительного числа со знаком в системе счисления с выбранным основанием p1; отображения результата – представления ввёдённого числа в системе счисления с основанием p2; отображения справки о приложении; отображения истории текущего сеанса работы пользователя с приложением.
«Интерфейс» несёт на себе визуальные компоненты, реализующие выполнения команд преобразователя и объект «Управление» класса Control_.
Операции. Операции представлены в таблице 5.
Таблица 5 - Операции
Наименование Пояснение
trackBar1_Scroll Обработчик события Scroll для компонента trackBar1.
Вход: objectsender, EventArgse.
sender – указатель на объект, который явился инициатором события Scroll. e - это объект базового класса для классов, содержащих данные о событии.
Предусловия: Пользователь перетаскивает бегунок компонента trackBar1.
Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р1 исходного числа. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
Постусловия: Обновления выполнены.
Выход: Нет.
numericUpDown1_ValueChanged Обработчик события ValueChanged для компонента numericUpDown1.
Вход: objectsender, EventArgse. sender – указатель на объект, который явился инициатором события ValueChanged.
Предусловия: Пользователь изменяет р1 с помощью компонента numericUpDown1.
Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р1 исходного числа. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
Постусловия: Обновления выполнены.
Выход: Нет.
trackBar2_Scroll Обработчик события Scroll для компонента trackBar2.
Вход: objectsender, EventArgse. sender – указатель на объект, который явился инициатором события Scroll.
Предусловия: Пользователь перетаскивает бегунок компонента trackBar2.
Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления p2 исходного числа. Устанавливает новое значение основания системы счисления.
Постусловия: Обновления выполнены.
Выход: Нет.
numericUpDown2_ValueChanged Обработчик события ValueChanged для компонента numericUpDown2.
Вход: objectsender, EventArgse. sender – указатель на объект, который явился инициатором события ValueChanged.
Предусловия: Пользователь изменяет р2 с помощью компонента numericUpDown2.
Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р2 результата. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
Постусловия: Обновления выполнены.
Выход: Нет.
numericUpDown1_ValueChanged Обработчик события ValueChanged для компонента numericUpDown1.
Вход: objectsender, EventArgse. sender – указатель на объект, который явился инициатором события ValueChanged.
Предусловия: Пользователь изменяет р1 с помощью компонента numericUpDown1.
Процесс: Обновляет свойства визуальных компонентов формы, связанных с изменением основания системы счисления р1 результата. Устанавливает новое значение основания системы счисления. Обновляет состояние командных кнопок.
Постусловия: Обновления выполнены.
Выход: Нет.
TPanelp_p_Load Обработчик события Load для компонента TPanelp_p.
Вход: (objectsender, EventArgse). sender – указатель на объект, который явился инициатором события Load.
Предусловия: Форма загружается в память.
Процесс: Устанавливает начальные значения свойств визуальных компонентов формы после загрузки формы.
Выход: Нет.
Постусловия: Установка свойств выполнена.
DoCmnd(int j) Выполнить команду.
Вход: j значение целого типа – номер команды преобразователя.
Предусловия: Пользователь нажал командную кнопку команды с номером j.
Процесс: Передаёт сообщение объекту Управление и отображает возвращаемый им результат. Вызывается метод объекта Управление и передаётся номер набранной пользователем команды Конвертора.
Выход: Нет.
Постусловия: Обновляется состояние Интерфейса.
button_Click Обработчик события Click для командных кнопок.
Вход: object sender, EventArgs e. sender: object – указатель на объект, который явился инициатором события Click.
Предусловия: Пользователь нажал командную кнопку.
Процесс: Извлекает из свойства Tag командной кнопки номер соответствующей ей команды. Вызывает метод DoCmnd Интерфейса и передаёт в него номер команды.
Выход: Нет.
Постусловия: Нет.
TPanelp_p_KeyPress Обработчик события KeyPress для алфавитно-цифровых клавиш клавиатуры.
Вход: object sender, KeyPressEventArgs e.
Предусловия: Пользователь нажал алфавитно-цифровую клавишу клавиатуры.
Процесс: Определяет по нажатой алфавитно-цифровой клавише номер соответствующей ей команды. Вызывает метод DoCmnd Интерфейса и передаёт в него номер команды.
Выход: Нет.
Постусловия: Команда пользователя вызвана.
TPanelp_p_KeyDown Обработчик события KeyDown для клавиш управления клавиатуры.
Вход: (object sender, KeyEventArgs e)
Предусловия: Пользователь нажал клавишу управления клавиатуры.
Процесс: Определяет по нажатой клавише управления номер соответствующей ей команды. Вызывает метод DoCmnd Интерфейса и передаёт в него номер команды.
Выход: нет.
Постусловия: Команда пользователя вызвана.
UpdateP1
Выполнить обновления связанные с изменением р1.
Вход: Нет.
Предусловия: Изменено основание с.сч. р1 исходного числа.
Процесс: Выполняет необходимые обновления при смене ос. с. сч. р1.
Выход: Нет.
Постусловия: Состояние кнопок обновлено.
UpdateP2
Выполнить обновления связанные с изменением р2.
Вход: Нет.
Предусловия: Изменено основание с.сч. р2 результата.
Процесс: Выполняет необходимые обновления при смене ос. с. сч. р2.
Выход: Нет.
Постусловия: Состояние кнопок обновлено.
UpdateButtons
Вход: Нет.
Предусловия: Изменено основание с.сч. р1 исходного числа.
Процесс: Обновляет состояния командных кнопок предназначенных для ввода цифр выбранной системы счисления p1.
Выход: Нет.
Постусловия: Состояние кнопок обновлено.
выходToolStripMenuItem_Click Команда Выход основного меню класса TPanelp_p формы.
Вход: object sender, EventArgs e.
Предусловия: Пользователь кликает мышью на пункте Выход основного меню формы.
Процесс: Завершает работу приложения.
Выход: Нет.
Постусловия: Приложение завершено.
справкаToolStripMenuItem_Click Команда Справка основного меню класса TPanelp_p формы.
Вход: object sender, EventArgs e
Предусловия: Пользователь кликает мышью на пункте Справка основного меню формы.
Процесс: Показывает окно со справкой по приложению.
Выход: Нет.
Постусловия: Отображено окно справки.
историяToolStripMenuItem_Click Команда История основного меню класса TPanelp_p формы.
Вход: object sender, EventArgs e
Предусловия: Пользователь кликает мышью на пункте История основного меню формы.
Процесс: Открывает окно История.
Выход: Нет.
Постусловия: Окно История - открыто.
endTPanel_p_p
Дополнительная информация
март 2020, зачтено без замечаний
Похожие материалы
Современные технологии программирования (часть 2-я). Лабораторная работа №1. Для всех вариантов (2020).
nik200511
: 24 февраля 2021
Лабораторная работа №1
Конвертор чисел из десятичной системы счисления в систему счисления с заданным основанием
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 1
1. Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый ме
54 руб.
Лабораторная работа №1 "Современные технологии программирования (часть 2)"
Daniil2001
: 24 декабря 2024
Работа зачтена. В архиве - отчет в формате .doc (word) + папки с программами (.cpp, .exe + .sln - файл проекта для visual studio)
80 руб.
Современные технологии программирования (часть 2) Лабораторная работа 1
svladislav987
: 28 августа 2023
Лабораторная работа No1
Конвертор чисел из десятичной системы счисления в систему счисления с заданным основанием
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 1
1. Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый ме
150 руб.
Лабораторная работа 1 по дисциплине "Современные технологии программирования(часть 2)"
alexadubinina
: 20 ноября 2024
Лабораторная работа №1
Конвертор чисел из десятичной системы счисления в систему счисления с заданным основанием
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 1
1. Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый мет
250 руб.
Современные технологии программирования (часть 2-я). Лабораторные работы №1-3.
sibguter
: 18 февраля 2020
ВЫПОЛНЕНО НА C#!
Задание 1
1. Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый метод класса.
Задание 2
1. Реализовать преобразователь действительных (конвертер р_10) чисел из системы счисления с основанием р в десятичную систему счисления в соотве
239 руб.
Современные технологии программирования (часть 2) - Лабораторная работа 1 - Вариант 5
sarekuwa
: 20 ноября 2023
Конвертор чисел из десятичной системы счисления в систему счисления с заданным основанием
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 1
1. Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый метод класса.
Спецификация
800 руб.
Современные технологии программирования (часть 2). Лабораторные работы 1-3. Все варианты. 2019
growlist
: 1 октября 2019
Лабораторная работа №1
Конвертор чисел из десятичной системы счисления в систему счисления с заданным основанием
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 1
1. Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый ме
400 руб.
Современные технологии программирования (часть 2). Лабораторная работа №2. Для всех вариантов (2020).
nik200511
: 24 февраля 2021
Лабораторная работа №2.
Редактор чисел в системе счисления с основанием р.
Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного языка программирования C#.
Задание 1
1. Разработать и реализовать класс Editor «Редактор чисел представленных в системе счисления с основанием р», используя класс языка высокого уровня. Основание системы счисления р принимает значение из диапазона 2..16. Все команды редактора удобно пронумеровать, начиная с команды добавить 0
54 руб.
Другие работы
Контрольная и Лабораторные работы 1-3 по дисциплине: Операционные системы. Вариант №8
IT-STUDHELP
: 19 декабря 2022
Лабораторная работа 1
Задание:
Написать программу, которая должна “озвучивать” клавиатуру, т.е. после запуска этой программы нажатие любой клавиши на клавиатуре будет сопровождаться звуковым сигналом. Клавиатура при этом должна оставаться работоспособной, т.е. продолжать выполнять свои основные функции в нормальном темпе.
Программа должна быть резидентной, т.е. оставаться в памяти после своего завершения.
В качестве пробного варианта длительность звукового сигнала и частоту задать константами
1400 руб.
Метрология, стандартизация и сертификация. Контрольная работа. Вариант №4
tpogih
: 2 мая 2015
Задача No 1
Для определения расстояния до места повреждения кабельной линии связи был использован импульсный рефлектометр. С его помощью получено n результатов однократных измерений (результатов наблюдений) расстояния до места повреждения.
Считая, что случайная составляющая погрешности рефлектометра распределена по нормальному закону, определить:
1. Результат измерения с многократными наблюдениями расстояния до места повреждения кабеля .
2. Оценку среднего квадратического отклонения (СКО) пог
100 руб.
Контроль податкових органів за оподаткуванням доходів громадян
evelin
: 26 октября 2013
Зміст
Вступ
1. ТЕОРЕТИЧНА ЧАСТИНА. Контроль податкових органів за оподаткуванн- ям доходів громадян
2. ПРАКТИЧНА ЧАСТИНА
Висновки
Перелік посилань
ВСТУП
В умовах ринкової економіки важливим питанням, пов`язаним із ефективністю виробництва і загальним економічним розвитком країни є правильна побудова і організація податкових відносин господарюючих суб`єктів і громадян з державою.
Податки повинні стати суттєвим важелем державного регулювання, за допомогою якого можна досить ефективно впливати на
5 руб.
Тепломассообмен ТГАСУ 2017 Задача 2 Вариант 87
Z24
: 3 февраля 2026
Расчет параметров изолированного трубопровода
По трубопроводу с размерами d2/d1, где d1 — внутренний диаметр трубы, а d2 — наружный диаметр, течет горячая вода с температурой tж1. Температура окружающей среды tж2. Снаружи труба покрыта слоем изоляционного материала толщиной δ с коэффициентом теплопроводности λ2, коэффициентом теплопроводности материала трубы λ1. Средние коэффициенты теплоотдачи с внутренней поверхности трубы и внешней изоляционного материала соответственно равны α1, α2. Опред
200 руб.