Лабораторная работа №4. Классы

Согласно варианту описать указанные классы (варианты распределяются преподавателем лично). Написать программу, использующую описанные классы: инициализация переменных (ввод пользователя), выполнение действий с экземплярами класса (в зависимости от дальнейшего ввода пользователя).

Описания и реализация должны находиться в разных файлах. Доступ к полям класса – только через методы. Внешние функции для работы с данными класса не допускаются. Перегрузка стандартных арифметических операций для класса (только в виде методов класса) – в зависимости от задания и здравого смысла (уместна консультация с преподавателем практики).

Дополнительно оценивается, если меню программы будет реализовано с помощью класса. Также возможно использование такого класса «меню» другого студента с указанием его авторства (использование чужого «меню», естественно, дополнительно не оценивается).

Всюду под «выводом на экран» подразумевается вывод необходимой информации об объекте в текстовом виде. Например:

Для комплексного числа: 5.67 – 2.34i

Для квадратного многочлена: 3.0 x^2 – 2.5 x + 7.0

Для вектора в R3: (5.5, –2.6, 1.0)

 

Примечания для преподавателей, ведущих лабораторные работы: по возможности, распределяйте задания между студентами, согласно успеваемости: некоторые варианты сложнее, некоторые – проще. Возможно комбинирование вариантов (несколько вариантов для одного студента).


 

Класс Примечание Конструкторы Функциональность
Комплексное число   По умолчанию. Комплексное число. Вещественное число. Умножение комплексного числа на вещественное число. Сложение двух комплексных чисел. Умножение двух комплексных чисел. Длина комплексного числа. Вывод на экран.
Стек целых чисел. Максимальная глубина стека задается при инициализации и не может быть изменена позднее. По умолчанию. Максимальная глубина. Стек. Добавление элемента. Изъятие элемента. Количество элементов. Пустота стека. Просмотр верхнего элемента. Вывод на экран.
Вектор в R3   По умолчанию. Три вещественных числа. Вектор. Сложение и вычитание векторов. Длина вектора. Угол с другим вектором. Вывод на экран (в любом виде).
Квадратный многочлен. ax2+bx+c По умолчанию. Три вещественных числа. Квадратный многочлен. Вычисления значения в заданной точке. Нахождения количества корней. Нахождение корней. Поиск минимума/максимума. Вывод на экран.
Очередь строк. Максимальная длина очереди задается при инициализации и не может быть изменена позднее. Каждая строка ограничена по длине 255 символами. По умолчанию. Максимальная длина. Очередь строк. Длина очереди. Добавление строки в очередь. Изъятие строки из очереди. Просмотр последнего элемента. Просмотр первого элемента. Вывод на экран.
Подмножество целых чисел. Максимальный размер множества задается при инициализации. По умолчанию. Максимальный размер. Проверка на содержание во множестве элемента. Добавление элемента во множество. Изъятие элемента из множества. Вычисление пересечения с другим множеством. Вычисление объединения с другим множеством. Добавление/изъятие всех элементов, содержащихся в другом множестве. Вывод на экран.
Текстовый файловый «поток» для чтения. Некоторые методы должны сигнализировать об ошибке или об успешном выполнении. По умолчанию. Имя файла. Открытие файла. Закрытие файла. Получение имени файла. Проверка, открыт ли файл. Проверка, не закончился ли файл. Получение из файла следующей строки. Получение из файла следующего слова.
Текстовый файловый «поток» для записи. Некоторые методы должны сигнализировать об ошибке или об успешном выполнении. По умолчанию. Имя файла. Открытие файла. Закрытие файла. Получение имени файла. Проверка, открыт ли файл. Запись в файл строки. Запись в файл целого числа. Запись в файл вещественного числа.
Анализатор строки. Разбивает строку на подстроки, согласно разделительным символам (их может быть несколько). По умолчанию. Строка. Добавление символа разделителя. Удаление всех символов-разделителей. Получение следующей подстроки. Индикация окончания анализа.