практика. Задание на практическую работу 5. Занятие 5 по дисциплине Технологии и методы программирования
Скачать 186.92 Kb.
|
МИНОБРНАУКИ РОССИИ федеральное государственное бюджетное образовательное учреждение высшего образования «Национальный исследовательский университет «МЭИ» Задание на практическое занятие 5 по дисциплине «Технологии и методы программирования» Цель: приобретение навыков работы с заголовочными файлами и шаблонами. Задание: разработать программу в соответствии с вариантом по номеру в журнале. Описание: Требуется разработать на языке С++, без использования сторонних библиотек (стандартные заголовочные файлы сторонними не являются!) и фреймворков следующую библиотеку: Варианты: 1) Библиотека для работы с комплексными числами. Комплексные числа реализуются через специальный класс. Действительная и мнимая часть комплексных числа могут быть разных (произвольных) типов данных. Должны быть реализованы методы сложения, вычитания, умножения, деления, вычисления модуля, возведения в степень, извлечения корня. 2) Библиотека для работы с точками в n-мерном пространстве. Точки задаются через специальный класс с возможностью указания размерности пространства. Координаты точки могут быть разных (произвольных) типов данных. Должны быть реализованы методы нахождения длины вектора по заданной точке, сравнения длин векторов, их сумм и разностей. Должна быть реализована функция нахождения барицентра массива точек. 2 3) Библиотека для работы с самоупорядочивающимся массивом. Массив реализуется как односвязный список. Массив может хранить различные (произвольные) типы данных. Необходимо иметь возможность обращаться к элементам массива по индексу, выводить массив, и добавлять в него элементы, складывать и вычитать элементы из массива (через операторы), делить массив, вырезать часть массива. Библиотека должна быть оформлена как отдельный заголовочный файл (.h) с файлом реализации (.cpp). Библиотека реализует собственное пространство имен. Основная программа должна кратко показывать принципы и механизмы взаимодействия с библиотекой, включая аномальные ситуации. Доступ к полям классов осуществлять через сеттеры и геттеры, в которых и должна быть реализована проверка аномальных ситуаций. Эти ситуации (включая проверки в самой библиотеке) должны быть обработаны с помощью блока try…catch и функции throw. В библиотеке использовать хотя бы раз: • статическую функцию (или метод) • статическую переменную (или объект) • дружественную функцию или класс Взаимодействие с программой осуществляется через понятный и удобный пользовательский интерфейс. Принципы работы пользовательского интерфейса должны быть подробно описаны в отчете о проделанной работе. Выводимые данные должны быть форматированными. |