Классы и операции (задания)

Лабораторная работа 5. Классы и операции

Каждый разрабатываемый класс должен, как правило, содержать следующие элементы: скрытые поля, конструкторы с параметрами и без параметров, методы; свойства, индексаторы; перегруженные операции. Функциональные элементы класса должны обеспечивать непротиворечивый, полный, минимальный и удобный интерфейс класса. При возникновении ошибок должны выбрасываться исключения.
В программе должна выполняться проверка всех разработанных элементов класса.
Вариант 1
Описать класс для работы с одномерным массивом целых чисел (вектором). Обеспечить следующие возможности:
- задание произвольных целых границ индексов при создании объекта;
а обращение к отдельному элементу массива с контролем выхода за пределы массива;
- выполнение операций поэлементного сложения и вычитания массивов с одинаковыми границами индексов;
- выполнение операций умножения и деления всех элементов массива на скаляр; - вывод на экран элемента массива по заданному индексу и всего массива. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 2
Описать класс для работы с одномерным массивом строк фиксированной длины. Обеспечить следующие возможности:
- задание произвольных целых границ индексов при создании объекта;
- обращение к отдельной строке массива по индексу с контролем выхода за пределы массива;
- выполнение операций поэлементного сцепления двух массивов с образованием нового массива;
- выполнение операций слияния двух массивов с исключением повторяющихся элементов;
- вывод на экран элемента массива по заданному индексу и всего массива. Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 3
Описать класс многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Обеспечить следующие возможности:
- вычисление значения многочлена для заданного аргумента;
- операции сложения, вычитания и умножения многочленов с получением нового объекта-многочлена;
- получение коэффициента, заданного по индексу;
- вывод на экран описания многочлена.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 4
Описать класс, обеспечивающий представление матрицы произвольного размера с возможностью изменения числа строк и столбцов, вывода на экран подматрицы любого размера и всей матрицы, доступа по индексам к элементу матрицы.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 5
Описать класс для работы с восьмеричным числом, хранящимся в виде строки символов. Реализовать конструкторы, свойства, методы и следующие операции:
- операции присваивания, реализующие значимую семантику;
- операции сравнения;
- преобразование в десятичное число;
- форматный вывод;
- доступ к заданной цифре числа по индексу.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 6
Описать класс «домашняя библиотека». Предусмотреть возможность работы с произвольным числом книг, поиска книги по какому-либо признаку (по автору, по году издания или категории), добавления книг в библиотеку, удаления книг из нее, доступа к книге по номеру.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 7
Описать класс «записная книжка». Предусмотреть возможность работы с произвольным числом записей, поиска записи по какому-либо признаку (например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по фамилии и доступа к записи по номеру.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 8
Описать класс «студенческая группа». Предусмотреть возможность работы с переменным числом студентов, поиска студента по какому-либо признаку (например, по фамилии, имени, дате рождения), добавления и удаления записей, сортировки по разным полям, доступа к записи по номеру.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 9
Описать класс, реализующий тип данных «вещественная матрица» и работу с ними. Класс должен реализовывать следующие операции над матрицами:
- сложение, вычитание (как с другой матрицей, так и с числом);
- комбинированные операции присваивания (+=, -=);
- операции сравнения на равенство/неравенство;
- операции вычисления обратной и транспонированной матрицы;
- доступ к элементу по индексам.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 10
Описать класс, реализующий тип данных «вещественная матрица» и работу с ними. Класс должен реализовывать следующие операции над матрицами:
- умножение, деление (как на другую матрицу, так и на число);
- комбинированные операции присваивания (*=, /=);
- операцию возведения в степень;
- методы вычисления детерминанта и нормы;
- доступ к элементу по индексам.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 11
Описать класс, реализующий тип данных «вещественная матрица» и работу с ними. Класс должен реализовывать следующие операции над матрицами:
- методы, реализующие проверку типа матрицы (квадратная, диагональная, нулевая, единичная, симметричная, верхняя треугольная, нижняя треугольная);
- операции сравнения на равенство/неравенство;
- доступ к элементу по индексам.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 12
Описать класс «множество», позволяющий выполнять основные операции: добавление и удаление элемента, пересечение, объединение и разность множеств.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 13
Описать класс «предметный указатель». Каждый компонент указателя содержит слово и номера страниц, на которых это слово встречается. Количество номеров страниц, относящихся к одному слову, от одного до десяти. Предусмотреть возможность формирования указателя с клавиатуры и из файла, вывода указателя, вывода номеров страниц для заданного слова, удаления элемента из указателя.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 14
Описать класс «автостоянка» для хранения сведений об автомобилях. Для каждого автомобиля записываются госномер, цвет, фамилия владельца и признак присутствия на стоянке. Обеспечить возможность поиска автомобиля по разным критериям, вывода списка присутствующих и отсутствующих на стоянке автомобилей, доступа к имеющимся сведениям по номеру места.
Написать программу, демонстрирующую все разработанные элементы класса.
Вариант 15
Описать класс «колода карт», включающий закрытый массив элементов класса «карта». В карте хранятся масть и номер. Обеспечить возможность вывода карты по номеру, вывода всех карт, перемешивания колоды и выдачи всех карт из колоды поодиночке и по 6 штук в случайном порядке.
Написать программу, демонстрирующую все разработанные элементы классов.
Вариант 16
Описать класс «поезд», содержащий следующие закрытые поля:
- название пункта назначения;
- номер поезда (может содержать буквы и цифры);
- время отправления.
Предусмотреть свойства для получения состояния объекта.
Описать класс «вокзал», содержащий закрытый массив поездов. Обеспечить следующие возможности:
- вывод информации о поезде по номеру с помощью индекса;
- вывод информации о поездах, отправляющихся после введенного с клавиатуры времени;
- перегруженную операцию сравнения, выполняющую сравнение времени отправления двух поездов;
- вывод информации о поездах, отправляющихся в заданный пункт назначения.
Информация должна быть отсортирована по времени отправления. Написать программу, демонстрирующую все разработанные элементы классов.
Вариант 17
Описать класс «товар», содержащий следующие закрытые поля:
- название товара;
- название магазина, в котором продается товар; - стоимость товара в рублях.
Предусмотреть свойства для получения состояния объекта. Описать класс «склад», содержащий закрытый массив товаров. Обеспечить следующие возможности: - вывод информации о товаре по номеру с помощью индекса;
- вывод на экран информации о товаре, название которого введено с клавиатуры; если таких товаров нет, выдать соответствующее сообщение;
- сортировку товаров по названию магазина, по наименованию и по цене;
- перегруженную операцию сложения товаров, выполняющую сложение их цен.
Написать программу, демонстрирующую все разработанные элементы классов.
Вариант 18
Описать класс «самолет», содержащий следующие закрытые поля:
- название пункта назначения;
- шестизначный номер рейса;
- время отправления.
Предусмотреть свойства для получения состояния объекта.
Описать класс «аэропорт», содержащий закрытый массив самолетов. Обеспечить следующие возможности:
- вывод информации о самолете по номеру рейса с помощью индекса;
- вывод информации о самолетах, отправляющихся в течение часа после введенного с клавиатуры времени;
- вывод информации о самолетах, отправляющихся в заданный пункт назначения;
- перегруженную операцию сравнения, выполняющую сравнение времени отправления двух самолетов.
Информация должна быть отсортирована по времени отправления. Написать программу, демонстрирующую все разработанные элементы классов.
Вариант 19
Описать класс «запись», содержащий следующие закрытые поля:
- фамилия, имя;
- номер телефона;
- дата рождения (массив из трех чисел).
Предусмотреть свойства для получения состояния объекта.
Описать класс «записная книжка», содержащий закрытый массив записей. Обеспечить следующие возможности:
- вывод на экран информации о человеке, номер телефона которого введен с клавиатуры; если такого нет, выдать на дисплей соответствующее сообщение; - поиск людей, день рождения которых сегодня или в заданный день; - поиск людей, день рождения которых будет на следующей неделе; - поиск людей, номер телефона которых начинается на три заданных цифры. Написать программу, демонстрирующую все разработанные элементы классов.
Вариант 20
Описать класс «англо-русский словарь», обеспечивающий возможность хранения нескольких вариантов перевода для каждого слова. Реализовать доступ по строковому индексу английскому слову. Обеспечить возможность вывода всех значений слов по заданному префиксу.
15

Приложенные файлы

  • doc 22446086
    Размер файла: 47 kB Загрузок: 0

Добавить комментарий