Контрольная работа
Тема: Технология структурного программирования
ЦельСформировать практические навыки разработки консольных приложений под Windows:
· проектирования программ методами структурного программирования;
· реализации программного проекта средствами языка программирования C# в среде программирования Microsoft Visual Studio;
· тестирования программ.
ЗаданиеСпроектируйте и реализуйте консольное приложение, для преобразования числа из одного формата «входного» в другой формат «выходной» в соответствии с приведённой ниже спецификацией. Входной и выходной форматы определены в варианте задания.
В качестве «входного» и «выходного» форматов взяты десятичное и представления действительного числа в системе счисления с основанием р.
Для описания требований к приложению
варианты заданий разбиты на два подмножества.
· Для первого подмножества вариантов заданий (для вариантов с 1 по 14 и 29*) в качестве «входного формата» выбрано десятичное представление числа, в качестве «выходного» - представление числа в системе счисления с основанием p.
· Для второго подмножества вариантов заданий ( для вариантов с 15 по 28 и 30*) в качестве «входного формата» выбрано представление числа в системе счисления с основанием p, в качестве «выходного» - десятичное представление числа.
Для обоих подмножеств значение p зависит от номера варианта задания.
Варианты заданий представлены в таблице 1.
Номер вашего варианта задания определяется последними двумя цифрами пароля.=============================================
Спецификация программы Спецификация приложения для вариантов с 1 по 14 и 29*1. Приложение работает в режиме диалога с пользователем. Пользователь вводит основание системы счисления p и десятичное действительное число с клавиатуры. Приложение формирует строку, содержащую представление введённого десятичного числа в системе счисления с основанием р, и выводит её на экране монитора.
Примерный результат работы приложения для варианта 29* представлен ниже на Рисунок 1.
//------------------------------------------------------------------
Приложение для перевода десятичных действительных чисел
в систему счисления с основанием р от 2 до 16
//------------------------------------------------------------------
Введите основание с. сч. р - число в диапазоне 2..16: 16
//------------------------------------------------------------------
Введите действительное число: -175.875
//------------------------------------------------------------------
//------------------------------------------------------------------
16 -ичное представление: -AF.E десятичного числа: -175.8750
//------------------------------------------------------------------
Рисунок 1. Ошибки ввода отсутствуют. Десятичное число переводится в 16-ичную систему счисления.
2. В приложении необходимо обеспечить контроль ввода исходных данных. Так при вводе недопустимых символов в изображение десятичного действительного числа, программа должна выводить сообщение о номере первого ошибочного символа и завершать выполнение.
Примерный результат работы приложения для случая, когда пользователь ввёл недопустимый символ в изображение действительного числа, приведён на Рисунок
2.
//------------------------------------------------------------------
Приложение для перевода десятичных действительных чисел
в систему счисления с основанием р от 2 до 16
//------------------------------------------------------------------
Введите основание с. сч. р - число в диапазоне 2..16: 16
//------------------------------------------------------------------
Введите действительное число: 123W.78
//------------------------------------------------------------------
ошибка ввода исходного числа: позиция номер 4
//------------------------------------------------------------------
Рисунок 2. Ошибка ввода десятичного числа. Десятичное число переводится в 16-ичную систему счисления.
В варианте 29* при вводе значения основания системы счисления p, выходящего за пределы допустимого диапазона (от 2 до 16), приложения должно сообщать об этой ошибке. Примерный результат работы приложения для этого случая приведён на Рисунок
3.
//------------------------------------------------------------------
Приложение для перевода десятичных действительных чисел
в систему счисления с основанием р от 2 до 16
//------------------------------------------------------------------
Введите целое число в диапазоне 2..16: 1
//------------------------------------------------------------------
Введите действительное число: -154.5
//------------------------------------------------------------------
Неверное основание p = 1
//------------------------------------------------------------------
Рисунок 3. Ошибка ввода основания системы счисления. Десятичное число переводится в 16-ичную систему счисления.
Примерный результат работы приложения для варианта 29
* в случае, когда пользователь совершил ошибки обоих типов, приведён на Рисунок 4.
//------------------------------------------------------------------
Приложение для перевода десятичных действительных чисел
в систему счисления с основанием р от 2 до 16
//------------------------------------------------------------------
Введите целое число в диапазоне 2..16: 20
//------------------------------------------------------------------
Введите действительное число: 23R.89
//------------------------------------------------------------------
//------------------------------------------------------------------
ошибка ввода исходного числа: позиция номер 3
//------------------------------------------------------------------
Неверное основание p = 20
//------------------------------------------------------------------
Рисунок 4. Ошибка ввода десятичного числа и основания системы счисления. Десятичное число переводится в 16-ичную систему счисления.
=============================================
Спецификация приложения для вариантов с 15 по 28 и 30*1.Приложение работает в режиме диалога с пользователем. Пользователь вводит основание системы счисления p и действительное число в этой системе счисления с клавиатуры. Приложение формирует, десятичное представление введённого числа, и выводит его на экране монитора.
Примерный результат работы приложения для варианта 30* представлен ниже на Рисунок 5. Пользователь ввёл исходные данные без ошибок.
//------------------------------------------------------------------
Приложение для перевода p-ичных действительных чисел
в десятичные для основания р от 2 до 16
//------------------------------------------------------------------
Введите основание с. сч. р - число в диапазоне 2..16: 16
------------------------------------------------------------------
Введите действительное 16-ичное число: -AF.E
//------------------------------------------------------------------
Десятичное представление: -175.8750
//------------------------------------------------------------------
Рисунок 5. Ошибки ввода отсутствуют. 16-ичное число переводится в десятичный эквивалент.
2. В приложении необходимо обеспечить контроль ввода исходных данных. При вводе недопустимого значения для основания системы счисления p приложение должно выводить сообщение об ошибке и завершаться. При вводе недопустимых символов в изображение действительного числа в системе счисления с основанием р, программа должна выводить сообщение о номере первого ошибочного символа и завершать своё выполнение.
В варианте 30* при вводе значения основания системы счисления p, выходящего за пределы допустимого диапазона (от 2 до 16), приложения должно сообщать об этой ошибке. Примерный результат работы приложения для этого случая приведён на Рисунок 6.
//------------------------------------------------------------------
Приложение для перевода p-ичных действительных чисел
в десятичные для основания р от 2 до 16
//------------------------------------------------------------------
Введите основание с. сч. р - число в диапазоне 2..16: 1
//------------------------------------------------------------------
Неверное основание p = 1
//------------------------------------------------------------------
Рисунок 6. Ошибка ввода основания системы счисления. Число представленное в системе счисления с основанием р переводится в десятичную систему счисления.
Примерный результат работы приложения для случая, когда пользователь ввёл недопустимый символ в изображение приведён на Рисунок 7.
//------------------------------------------------------------------
Приложение для перевода p-ичных действительных чисел
в десятичные для основания р от 2 до 16
//------------------------------------------------------------------
Введите основание с. сч. р - число в диапазоне 2..16: 16
//------------------------------------------------------------------
Введите действительное число: 123W.78
/------------------------------------------------------------------
Ошибочный символ. Позиция номер: 4
//------------------------------------------------------------------
Рисунок 7. Ошибка ввода 16-ичного числа. 16-ичное число переводится в десятичную систему счисления.
Варианты заданий1. Варианты заданий приведены в Таблица
1.
Номер вашего варианта задания определяется последними двумя цифрами пароля. Вы можете выполнить по вашему выбору вариант (29
* или 30
*) повышенной сложности вместо своего варианта.
Таблица 1. Варианты заданий.
Номер варианта «входной формат» «выходной формат» Основание системы счисления р
1 10 р 2
2 10 р 3
3 10 р 4
4 10 р 5
5 10 р 6
6 10 р 7
7 10 р 8
8 10 р 9
9 10 р 11
10 10 р 12
11 10 р 13
12 10 р 14
13 10 р 15
14 10 р 16
15 р 10 2
16 р 10 3
17 р 10 4
18 р 10 5
19 р 10 6
20 р 10 7
21 р 10 8
22 р 10 9
23 р 10 11
24 р 10 12
25 р 10 13
26 р 10 14
27 р 10 15
28 р 10 16
29* 10 p 2..16
30* p 10 2..16
2. Для вариантов с 1 по 14 характеристики форматов следующие:
· «входной» формат - десятичное действительное число,
· «выходной» формат - действительное число в системе счисления с основанием р, где р - основание системы счисления, определяемое вариантом задания.
Входной формат определяется синтаксическими правилами языка C# для написания вещественных констант.
=============================================
Лабораторная работа №1 Конвертор чисел из десятичной системы счисления в систему счисления с заданным основаниемЗадание1
- Реализовать преобразователь действительных чисел со знаком из десятичной системы счисления в систему счисления с заданным основанием p, в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления p принадлежит диапазону значений от 2 до 16.
2. Протестировать каждый метод класса.
Спецификация класса «Преобразователь чисел из десятичной системы счисления в систему счисления с заданным основанием p».
ADT Conver_10_pКонтрольные вопросы1. Что такое инкапсуляция?
2. Как синтаксически представлено поле в описании класса?
3. Как синтаксически представлен метод в описании класса?
4. Как синтаксически представлено простое свойство в описании класса?
5. Особенности описания методов класса?
6. Видимость идентификаторов в описании класса?
7. В чём особенности статических методов?
8. В чём особенности статических классов?
Класс «Конвертер р_10» - преобразователь чисел из системы счисления с основанием р в десятичную систему счисленияЦель: Сформировать практические навыки реализации классов на языке C#.
Задание 2
1.Реализовать преобразователь действительных (конвертер р_10) чисел из системы счисления с основанием р в десятичную систему счисления в соответствии с приведенной ниже спецификацией, используя класс. Основание системы счисления р принадлежит диапазону значений от 2 до 16.
2.Протестировать каждый метод класса.
Спецификация класса «Конвертер р_10» - преобразователь действительных чисел со знаком из системы счисления с основанием р в десятичную систему счисления.
ADT Conver_p_10Контрольные вопросы1. Что такое инкапсуляция?
2. Как синтаксически представлено поле в описании класса?
3. Как синтаксически представлен метод в описании класса?
4. Как синтаксически представлено простое свойство в описании класса?
5. Особенности описания методов класса?
6. Видимость идентификаторов в описании класса?
7. В чём особенности статических методов?
8. В чём особенности статических классов?
Как вызываются статические методы?
Лабораторная работа №2 Редактор чисел в системе счисления с основанием рЦель: Сформировать практические навыки реализации классов средствами объектно-ориентированного языка программирования C#.
Задание 11. Разработать и реализовать класс Editor «Редактор действительных чисел представленных в системе счисления с основанием р», используя класс языка высокого уровня. Основание системы счисления р принимает значение из диапазона 2..16. Все команды редактора удобно пронумеровать, начиная с команды добавить 0 целыми числами от 0. При реализации интерфейса номера команд удобно хранить в свойстве Tag, которое имеется у визуальных компонентов.
Атрибуты и операции класс представлены на рисунке 10.
Рисунок 10 - Атрибуты и операции класса
2. Ответственность класса Editor (редактор) – хранение, ввод и редактирование строкового представления числа, представленного в системе счисления с основанием p. Класс должен обеспечивать: добавление символов (AddDigit), соответствующих р-ичным цифрам (р от 2 до 16); добавления нуля (AddZero()); добавление разделителя целой и дробной частей (AddDelim()); забой символа - удаление символа, стоящего справа (BS); очистку - установку нулевого значения числа (Clear); чтение строкового представления р-ичного числа (Number).
3. Протестировать каждый метод класса.
Контрольные вопросы1. В чём состоит особенность раздела описания класса с уровнем доступа protected?
2. В чём состоит особенность раздела описания класса с уровнем доступа private?
3. В чём состоит особенность раздела описания класса с уровнем доступа public?
4. В чём состоит особенность инициализации полей ссылочного типа и констант в конструкторе?
5. Что такое this?
6. Как описываются поля в классах?
7. Какой операцией создаются объекты классов?
8. Как вызвать нестатический метод класса?
Класс История.Цель: Сформировать практические навыки реализации классов средствами объектно-ориентированного программирования языка C#; использования библиотечного класса обобщённой коллекции List<> для обработки данных.
Задание 21. Разработать и реализовать класс History «История», используя класс языка C#. Класс отвечает за документирование выполнения пользователем переводов чисел. Объекты класса хранят исходные числа, результаты преобразования и основания систем счисления исходного числа и результата.
2. Класс должен отвечать за ввод, вывод, хранение данных введённых пользователем и полученных результатов. Класс должен обеспечивать:
· добавление записи (ДобавитьЗапись) - строки, содержащей введённое пользователем число, результат его преобразования и основания систем счисления исходной и той, в которую число преобразовано;
· извлечение записи по её номеру в списке (Запись);
· очистка списка (ОчиститьИсторию);
· конструктор (Запись);
· текущий размер списка в числе записей (Записей);
3. Протестировать каждый метод класса.
Контрольные вопросы1. В чём состоит особенность обобщённой коллекции List< >?
2. В чём состоит отличие типа struct от типа class?
3. Как создаются объекты типа struct?
4. В чём состоит особенность раздела описания класса с уровнем доступа private?
5. В чём состоит особенность раздела описания класса с уровнем доступа public?
6. В чём состоит особенность инициализации полей ссылочного типа и констант в конструкторе?
7. Что такое this?
Лабораторная работа №3 Класс Управление для «Конвертора p1_р2».Класс Управление для «Конвертора p1_р2».
Цель: Сформировать практические навыки реализации классов на языке C#.
Задание 11.Реализовать Управление для «Конвертера p1_р2».
2.Протестировать каждый метод класса.
Спецификация класса Управление для «Конвертера p1_р2».
ADT Control_Контрольные вопросы1. Что такое инкапсуляция?
2. Как синтаксически представлено поле в описании класса?
3. Как синтаксически представлен метод в описании класса?
4. Как синтаксически представлено простое свойство в описании класса?
5. Особенности описания методов класса?
6. Особенности описания и назначение конструктора класса?
7. Видимость идентификаторов в описании класса?
8. Особенности вызова методов применительно к объектам класса?
Интерфейс приложения «Конвертор р1_р2».
Цель: Сформировать практические навыки реализации графических интерфейсов пользователя (GUI) на основе библиотеки визуальных компонентов.Задание 21. Реализовать «Интерфейс» приложения «Конвертер р1_р2», используя библиотечный класс формы и визуальные компоненты.
2. Протестировать методы класса.
Спецификация класса «Интерфейс».
Интерфейс приложения представлен на рисунке 1.
ADT TPanel_p_pКонтрольные вопросы1. Назначения компонентов класса Button?
2. Назначения компонентов класса Label?
3. Назначения компонентов класса TextBox?
4. Назначения компонентов класса TrackBar?
5. Назначения компонентов класса numericUpDown?
6. Когда возникает событие Load?
7. Когда возникает событие Click?
8. Когда возникает событие Scroll?
9. Когда возникает событие ValueChanged?
10. Когда возникает событие KeyPress?
11.Когда возникает событие KeyDown?