Современные технологии программирования (часть 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. Протестировать каждый метод класса.
Спецификация
250 руб.
Современные технологии программирования (часть 2). Лабораторная работа №2. Для всех вариантов (2020).
nik200511
: 24 февраля 2021
Лабораторная работа №2.
Редактор чисел в системе счисления с основанием р.
Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного языка программирования C#.
Задание 1
1. Разработать и реализовать класс Editor «Редактор чисел представленных в системе счисления с основанием р», используя класс языка высокого уровня. Основание системы счисления р принимает значение из диапазона 2..16. Все команды редактора удобно пронумеровать, начиная с команды добавить 0
54 руб.
Современные технологии программирования (часть 2). Лабораторные работы 1-3. Все варианты. 2019
growlist
: 1 октября 2019
Лабораторная работа №1
Конвертор чисел из десятичной системы счисления в систему счисления с заданным основанием
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 1
1. Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый ме
400 руб.
Другие работы
Ответы по экономике отрасли связи
Slolka
: 26 июня 2013
Дайте экономическую характеристику телекоммуникационному комплексу "Связь".
В чем состоят особенности связи и как они влияют на экономику отрасли?
Какова роль связи в общественном производстве и информатизации общества?
Какие составляющие включает в себя Взаимоувязанная сеть связи Российской Федерации?
В чем заключаются задачи управления отраслью "Связь" в условиях рыночной экономики?
Дайте характеристику методам управления хозяйствующими субъектами связи.
Охарактеризуйте основные элементы сист
10 руб.
"Современные технологии программирования". Лабораторная № 8. Вариант №15
stud82
: 16 февраля 2013
Абстрактный тип данных (ADT) «полином»
Тема: Классы Object Pascal, стандартный класс Tlist.
Цель: Сформировать практические навыки: реализации абстрактных типов данных с помощью классов Object Pascal.
Задание:
1.Реализовать тип «полином», в соответствии с приведенной ниже спецификацией.
2.Оттестировать каждую операцию, определенную на типе данных одним из методов тестирования.
3.Оттестировать тип данных в целом.
70 руб.
Тормозной стенд
proekt-sto
: 29 декабря 2020
6. КОНСТРУКТОРСКАЯ ЧАСТЬ
6.1 Анализ существующих конструкций
6.2 Описание разрабатываемой конструкции
6.2.1 Устройство и принцип работы
6.2.2 Техническое описание разрабатываемой конструкции
6.2.3 Техника безопасности при эксплуатации стенда.
6.3 Расчёт, подтверждающий работоспособность конструкции
6.3.1 Расчёт тормозного стенда.
6.3.2 Расчёт передаточного числа редуктора
6.3.3 Подбор редуктора.
6.3.4 Расчет мощности электродвигателя:
6.3.5 Подбор электродвигателя.
6.3.6 Расчет вала на прочно
1000 руб.
Компьютерные технологии в науке и производстве (часть 1). Контрольная работа. Вариант 22
rmn77
: 6 августа 2019
Компьютерные технологии в науке и производстве (часть 1). Контрольная работа. Вариант 22
Теоретический вопрос:
Оформление таблиц в LATEX. Окружение tabbing, табуляция и команды внутри процедуры tabbing.
Задача 1
Создайте заголовок статьи по образцу:
Математическое моделирование физических процессов
Сарафанов Анатолий Иванович
17 августа 2015 г.
Аннотация. Краткое содержание книги или другого издания, а также краткая характеристика издания: рукописи, монографии, статьи или книги. Аннотация пока
1000 руб.