КР1 Вариант 2. Дружественные функции и классы, перегрузка операторов. КР2 Вариант 2. Генерация и обработка исключений, исключения, методы обработки и генерации исключений, разработка собственных классов обработки исключений, файлы, использование исключительных ситуаций для поддержки инкапсуляции и бизнес-логики, отладка исключений в VisualStudio.
Контрольная работа
в среде программирования Visual C++ .NET 2019
Среда программирования: Visual C++ .NET 2019
Название работы: КР1 Вариант 2. Дружественные функции и классы, перегрузка операторов. КР2 Вариант 2. Генерация и обработка исключений, исключения, методы обработки и генерации исключений, разработка собственных классов обработки исключений, файлы, использование исключительных ситуаций для поддержки инкапсуляции и бизнес-логики, отладка исключений в VisualStudio.
Вид работы: Контрольная работа
Описание: Вариант 2 в обоих работах.
КОНТРОЛЬНАЯ РАБОТА №1
Тема работы: дружественные функции и классы, перегрузка операторов.
Цель работы: Понять назначение дружественных функций и классов, изучить принципы перегрузки бинарных и унарных операций.
Теоретические сведения: Дружественные функции. Иногда возникает необходимость организации доступа к локальным данным нескольких классов из одной функции. Для реализации этого в С++ введен спецификатор friend. Если некоторая функция определена как friend-функция для некоторого класса, то эта функция называется дружественной и она: − не является компонентом-функцией этого класса; − имеет доступ ко всем компонентам этого класса (private, public и protected).
Контрольные вопросы
1. Почему может потребоваться перегрузка оператора присваивания?
2. Можно ли изменить приоритет перегруженного оператора?
3. Когда следует переопределять операторы с помощью дружественных функций, а когда с помощью функций элементов класса?
4. Назовите особенности дружественных функций.
5. Опишите особенности перегрузки постфиксных и префиксных операторов «++» и «--».
Порядок выполнения работы
1. Изучить краткие теоретические сведения.
2. Ознакомиться с материалами литературных источников.
3. Ответить на контрольные вопросы.
4. Разработать алгоритм программы.
5. Написать, отладить и выполнить программу.
Варианты заданий
1. Реализовать класс String для работы со строками символов. Перегрузить операторов «=», «+=», «==», «<», «>», «!=», «<=», «>=». Предоставить конструктор копирования. Определить friend-функции для операторов ввода/вывода в поток.
2. Реализовать класс String для работы со строками символов. Перегрузить для объектов класса String операторы «!» (пуст ли объект класса), «()(int,int)» (возвращение подстроки объекта), «[]» (возвращение некоторого символа строки объекта). Предоставить конструктор копирования. Определить friend-функции для операторов ввода/вывода в поток.
3. Создать класс, в котором перегрузить операторы: а) «&» для перемножения двух матриц; б) «+» для сложения двух матриц. Память под матрицы отводить динамически. Предоставить конструктор копирования. Определить friend-функции для операторов ввода/вывода в поток.
4. Реализовать класс String для работы со строками символов. Перегрузить операторы «=», «+=» так, чтобы производилось сложение строки и объекта. Предоставить конструктор копирования. Определить friendфункции для операторов ввода/вывода в поток.
5. Создать класс bMoney, в котором необходимо перегрузить арифметические операторы для работы с денежным форматом. Перегрузить два оператора следующим образом: long double * bMoney // умножить число на деньги long double / bMoney // делить число на деньги Эти операторы требуют наличия дружественных функций, т. к. справа от оператора находится объект, а слева – обычное число. Необходимо убедиться, что main() позволяет пользователю ввести две денежные строки и число с плавающей запятой, а затем корректно выполнить все семь арифметических действий с соответствующими парами значений.
6. Написать функцию инкремента единственного параметра. Написать функцию, возвращающую ссылку на передаваемый параметр. Изменить его при вызове функции. Что произойдет, если все ссылки сделать const?
7. Написать функцию декремента единственного параметра. Написать функцию, возвращающую ссылку на элемент глобального массива. Изменить его при вызове функции. Что произойдет, если все ссылки сделать const?
8. Реализовать класс String для работы со строками символов. Перегрузить операторы «=», «+=» так, чтобы производилось сложение строки и объекта. Предоставить конструктор копирования. Определить friendфункции для операторов ввода/вывода в поток.
9. Реализовать класс String для работы со строками символов. Перегрузить операторы «+» (сложение строк), «>» ( сравнение строк). Предоставить конструктор копирования.
10. Реализовать класс String для работы со строками символов. Перегрузить оператор «-» (минус) так, чтобы определить, насколько одна строка длиннее другой. Предоставить конструктор копирования.
11. Реализовать класс String для работы со строками символов. Перегрузить оператор «>», так, чтобы возвратить разность кодов первой пары несовпадающих символов в строках. Предоставить конструктор копирования.
12. Создать класс, в котором перегрузить оператор «&» для пересечения двух множеств. Память под матрицы отводить динамически. Предоставить конструктор копирования.
13. Создать класс, в котором перегрузить оператор «+» для объединения двух множеств. Память под матрицы отводить динамически. Предоставить конструктор копирования.
14. Реализовать класс String для работы со строками символов. Перегрузить унарные операторы «++» (префиксную и постфиксную). Предоставить конструктор копирования.
15. Создать два класса: вектор и матрица. Определить конструкторы (по умолчанию, с параметрами, копирования), деструкторы. Определить функцию умножения матрицы на вектор как дружественную.
КОНТРОЛЬНАЯ РАБОТА №2
Тема работы: генерация и обработка исключений, исключения, методы обработки и генерации исключений, разработка собственных классов обработки исключений, файлы, использование исключительных ситуаций для поддержки инкапсуляции и бизнес-логики, отладка исключений в VisualStudio.
Цель работы: изучить использование исключительных ситуаций в бизнес-логике, – поработать с файловым вводом-выводом в С++, – поработать с исключениями для поддержки инкапсуляции, – изучитьокноStackTraceвVisualStudio.
Порядок выполнения работы
1. Изучить краткие теоретические сведения.
2. Ознакомиться с материалами литературных источников.
3. Ответить на контрольные вопросы.
4. Разработать алгоритм программы.
5. Написать, отладить и выполнить программу.
Варианты заданий
Задания упорядочены по сложности. Каждое задание выдается одному человеку.
1. Создать текстовый файл с символьным изображением ракеты. Пусть приложение выводит содержимое этого файла бесконечное количество раз с какой-то задержкой (подпрограмма sleep в Windows.h). Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Контакт, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
2. Создать приложение для чтения книги. Книга – файл в текстовом виде. Задача приложения – показывать книгу по страницам с задержкой: показать 20 строчек, подождать несколько секунд (подпрограмма sleep в Windows.h) и показывать следующие 20 строчек и т.д. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Строка, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
3. Имеется некоторый файл с числами, полученными с некоторого устройства. Например: 13 666 33. Задача приложения – рассчитать матожидание по данным из файла. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Студент, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения. 4. Сформировать арифметическую прогрессию. Задача приложения – записать члены арифметической прогрессии в файл в формате: номер итерации - число. Например: 1 4 2 8 3 16. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Абитуриент, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
5. Разработать приложение, которое сохранит все аргументы командной строки в файл: каждый аргумент с новой строки. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс Рейс с полями, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
6. Разработать приложение, которое сохранит в файл некоторое количество членов ряда Тейлора: каждое число с новой строки. Пусть число членов n и число x приложение спрашивает у пользователя. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Книга, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
7. Разработать утилиту для необратимого удаления файла. Пусть имя файла приходит как аргумент командной строки (или приложение его спрашивает у пользователя). Для уничтожения файлов пусть используется метод Брюса Шнейдера. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Рабочий, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
8. Разработать утилиту для необратимого удаления файла. Пусть имя файла приходит как аргумент командной строки (или приложение его спрашивает у пользователя). Пусть файл удаляется методом Министерства обороны DoD 5220.22-M, вариант E. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Билет. Разработать класс с полями, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
9. Разработать утилиту для шифрования текстового файла методом XOR. Число, с которым нужно xor-ить, имена входного и выходного файла пусть вводятся с клавиатуры. Использовать исключения для ошибок в бизнеслогике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс Продуктс полями, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
10. Разработать утилиту для копирования файла по блокам. Пусть утилите на вход как аргументы командной строки приходят имена входного, выходного файла, размер буфера, а после копирования утилита выводит время, которое заняло копирование. Определить с помощью утилиты, при каком размере буфера копирование большого файла на флэшку происходит быстрее. Использовать исключения для ошибок в бизнес-логике. Пример измерения времени: #include <ctime> void f() { using namespace std; clock_t begin = clock(); code_to_time(); clock_t end = clock(); doubleelapsed_secs = double(end - begin) / CLOCKS_PER_SEC; } Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Пациент, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
11. Разработать утилиту для оценки труда блоггера. Некоторые работодатели оценивают текст по числу строчек. Пусть на вход приходит имя каталога, в котором утилита ищет все текстовые файлы, считает суммарное количество строк текста во всех файлах, умножает полученное число на цену за строку и выводит результат на экран. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Маршрут автобуса, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
12. Разработать утилиту для поиска музыки. Пусть на вход подается имя каталога и имя результирующего файла-отчета, утилита ищет в каталоге и в подкаталогах все музыкальные файлы, список найденных файлов сохраняет в файл-отчет.Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Адрес, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
13. Разработать утилиту для сравнения файлов по содержимому. Пусть на вход утилиты приходят как аргументы командной строки имена двух файлов. Пусть приложение выводит на экран, идентичны ли файлы или нет. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Концерт, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
14. Разработать приложение с классом для чтения настроек из .ini файла. Пусть аргументами командной строки будут имя файла с настройками, название настройки. Пусть приложение выведет значение настройки. Например, имеется .iniфайл [General] ScreenResolution.Width = 400 ScreenResolution.Height = 500 Допустим, нужно прочесть настройку ScreenResolution.Width. Приложение тогда пусть выведет 400.Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Письмо, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
15. Разработать утилиту, которая преобразует текст в текст на азбуке Морзе. Пусть на вход приходит имя входного и выходного файла. Если будет время, можете сделать, чтобы еще и на динамик звуки выводились (beepв Windows.h).Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Запись рейтинговой системы, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
16. Разработать утилиту для шифрования текста. Пусть на вход приходят имена входного и выходного текстовых файлов. Использовать исключения для ошибок в бизнес-логике.Суть шифрования следующая: каждую букву исходного текста менять на следующую за ней, которая идет по алфавиту. А букву я менять на а. Например, «агггггг» зашифруется в «бддддд». Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Занятие в университете. Разработать класс с полями, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
17. Разработать утилиту для необратимого удаления файла. Пусть на вход утилиты приходит имя файла как аргумент командной строки (или приложение его спрашивает). Пусть файл удаляется методом уничтожения файлов Гутмана. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Тренировка, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения. 18.Разработать утилиту Автоцензор, которая заменяет «нехорошие» слова на иксы в исходном файле и сохраняет результат в итоговый файл. Пусть на вход приходят имена исходного и итогового файлов. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Торрент, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
19. Разработать программу для поиска текста в файле. Пусть утилита выводит, подходит ли файл под критерии поиска или нет. Аргументы командной строки: имя файла, слова для поиска. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Программа, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
20. Разработать утилиту по проверке рассекреченных документов. Имеется каталог с рассекреченными документами. Приложение должно проверить, не встречается ли в каких-либо файлах имя секретного агента. Пусть на вход приложение получает имя каталога, а также слово, которое должно отсутствовать. А на выходе выведет список документов, где это слово встретилось. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Микронутриент. Разработать класс с полями, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
21. Разработать утилиту по конвертации CSV файла в HTML файл. Утилита получает на вход имя входного CSV файла, имя выходного HTML файла. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Покупка, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
22. Разработать класс для чтения CSV файлов и продемонстрировать его использование. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Услуга, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
23. Разработать класс для чтения числовых данных из файла и продемонстрировать его использование. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Товар, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
24. Разработать класс для записи CSV файла и продемонстрировать его использование. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Браузер. Разработать класс с полями, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
25. Разработать класс для записи Html файлов и продемонстрировать его использование. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полямиНоутбук, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
26. Разработать утилиту для подсчета распределения символов в процентах в заданном текстовом файле. На вход подается файл с текстом классика. Пример вывода: А – 12,44% Б – 33,22% … Проверить, совпадают ли распределения на книгах разных писателей. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Документ, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
27. Разработать утилиту для проверки XML файла. Пусть на вход приходит имя файла. Пусть приложение выведет, корректный ли это XML файл. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Страна, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
28. Разработать утилиту для шифрования текста с помощью видеофайла. Пусть на вход приходят имена исходного файла, видео-файла, выходного файла, начальная позиция в видео-файле.Суть шифрования: XOR каждого байта входного файла с каждым символом видео-файла (начиная с заданной позиции), затем байт сохранить в выходной файл. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Персонаж, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
29. Разработать утилиту для шифрования текстового файла шифром Цезаря. Пусть на вход приходят имена входного и выходного файлов, ключ число. Суть шифрования в том чтобы увеличивать код каждого символа на заданное число. Использовать исключения для ошибок в бизнес-логике. Продемонстрировать использование окна StackTrace среды разработки при возникновении исключения. Разработать класс с полями Файл, добавить геттеры и сеттеры, добавить в класс проверку данных, приходящих извне, через исключения.
Год: 2022
Данный заказ (контрольная работа) выполнялся нашим сайтом в 2022-м году, в рамках этого заказа была разработана программа в среде программирования Visual C++ .NET 2019. Если у Вас похожее задание на программу, которую нужно написать на Visual C++ .NET 2019, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2022-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".
Viber:
+79374242235
Telegram: kursovikcom ВКонтакте: kursovikcom WhatsApp +79374242235 E-mail: info@kursovik.com Skype: kursovik.com |