
ООП / Задание на контрольную работу по ООПиП
.doc
При выполнении контрольных заданий необходимо:
Если в задании требуется разработать класс, то он должен включать:
-
компоненты данные
-
методы:
а) конструктор по умолчанию;
б) конструктор с параметрами;
в) конструктор копирования;
г) деструктор;
д) методы класса для работы с данными.
Компоненты данные класса должны иметь атрибут private или protected (в зависимости от необходимости).
При реализации задания 1 функцию вывода содержимого объекта реализовать как внешнюю по отношению к классу
При реализации задания 3 в базовый класс (кроме перечисленных выше) добавить методы: set – инициализации данных базового класса, get – возврата данных класса.
ВАЖНО: При выполнении заданий использование классов STL запрещено!!!
вариант 1
1. Создать 2 объекта разработанного класса – динамический вектор (одномерный массив). Найти в каждом объекте MAX значение элемента векторов и поменять их местами. Содержимое объектов (их векторов) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции - (c=a-b). Содержимое объектов (a,b,c, их векторов), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и удаления самого длинного слова в строке базового класса.
вариант 2.
1. Создать 2 объекта разработанного класса – динамический вектор (одномерный массив). Найти MIN значение (одно) для этих объектов и поменять их местами с MAX. Содержимое объектов (их векторов) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции + (c=a+b). Содержимое объектов (a,b,c, их векторов), до и после выполнения операции, вывести на экран
3. Создать иерархию классов представляющих простое наследование. Базовый класс – вектор (числовой динамический массив (int *)). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – упорядочивания значений в векторе по возрастанию их значений.
вариант 3.
1. Создать 2 объекта разработанного класса. Класс – динамический вектор (одномерный массив). В результате выполнения программы в первом объекте должны содержаться все четные, а во втором все нечетные числа исходных векторов. Содержимое объектов (их векторов) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции ++ (b=a++). Содержимое объектов (a,b, их векторов), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – квадратная матрица (динамическая (int **mt или int* или int *mt[константа])). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – упорядочивания элементов побочной диагонали.
вариант 4.
1. Создать 2 объекта разработанного класса. Класс – динамический вектор (одномерный массив). В результате выполнения программы в первом объекте должны быть удалены все элементы, содержащиеся во втором объекте. Содержимое объектов (их векторов) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции += (b+=a). Содержимое объектов (a,b, их векторов), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и переворота второго слова в строке базового класса.
вариант 5.
1. Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы в строке первого объекта исключить символы, введенные с клавиатуры. Содержимое объектов (их строки) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции > (b>a). Содержимое объектов (a,b, их векторов), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – вектор (числовой динамический массив (int *)) значения которого упорядочены по возрастанию. Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – добавления в вектор новых значений (с увеличением его размера) не нарушая упорядоченности в нем.
вариант 6.
1. Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы в строке первого объекта слово MAX длины заменить на слово MAX длины второго объекта. Содержимое объектов (их строки) до и после обмена вывести на экран.
2. Для созданного объекта a, разработанного класса – вектор (одномерный массив), реализовать перегрузку операции * (операция разадресации) (*a=n). Содержимое объекта (a его вектора), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – квадратная матрица (динамическая (int **mt или int* или int *mt[константа])). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – траспонирования матрицы относительно главной диагонали.
вариант 7.
1. Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы в обоих объектах слово MAX длины заменить на слово MIN длины. Содержимое объектов (их строки) до и после обмена вывести на экран.
2. Для созданного объекта a, разработанного класса – вектор (одномерный массив), реализовать перегрузку операции -> (a->). Содержимое объекта (a, его вектора), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и удаления слова полиндрома (читающегося в обоих направлениях одинаково) в строке базового класса.
вариант 8.
1. Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы в обоих объектах исключить лишние пробелы между словами (оставить только по одному). Содержимое объектов (их строки) до и после обмена вывести на экран.
2. Для созданного объекта a, разработанного класса – вектор (одномерный массив), реализовать перегрузку оператора new. Содержимое объекта (a, его вектора) вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – квадратная матрица (динамическая (int **mt или int* или int *mt[константа])). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – упорядочивания элементов под главной диагональю.
вариант 9.
1. Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы в обоих объектах выполнить реверсивный переворот каждого слова строки. Содержимое объектов (их строки) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – символьная строка. Реализовать для объектов данного класса перегрузку операции - (c=a-b). Содержимое объектов (a,b,c, их строк), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – вектор (числовой динамический массив (int *)). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска в векторе максимального и минимального значений и замены их местами в векторе.
вариант 10.
1. Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы в обоих объектах поменять первые слова строки. Содержимое объектов (их строки) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – символьная строка. Реализовать для объектов данного класса перегрузку операции + (c=a+b). Содержимое объектов (a,b,c, их строк), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – переворота каждого слова (по отдельности) в строке базового класса.
вариант 11.
1. Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы в обоих объектах поменять местами первое и последнее слова строки. Содержимое объектов (их строки) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – символьная строка. Реализовать для объектов данного класса перегрузку операции -= (b-=a). Содержимое объектов (a,b, их строк), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – матрица (динамическая (int **mt или int* или int *mt[константа])). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – нахождения столбца с максимальной суммой элементов и заменой его с первым столбцом местами.
вариант 12.
1. Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы в обоих объектах исключить в каждом слове все повторяющиеся буквы (оставить только одну из них). Содержимое объектов (их строки) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – символьная строка. Реализовать для объектов данного класса перегрузку операции -- (b=a--). Содержимое объектов (a,b, их строк), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – вектор (числовой динамический массив (int *)). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – нахождения в векторе первой последовательности элементы которой строго возрастают и удаления ее из вектора
вариант 13.
1. Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы первое слово первого объекта поменять местами с первым словом второго объекта. Содержимое объектов (их строки) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции () (a(i)=b(j)). Содержимое объектов (a,b их векторов), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и удаления самого короткого слова в строке базового класса.
вариант 14.
1. Разработать класс реализующий стек - список фамилий. Создать несколько (2) объектов разработанного класса. Методы класса: поместить в стек и взять из стека, конструкторы и деструктор.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – символьная строка. Реализовать для объектов данного класса перегрузку операции <= (b<=a). Содержимое объектов (a,b, их строк), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и удаления из строки базового класса всех символов совпадающих с первым.
вариант 15.
1. Создать 2 объекта разработанного класса. Одной из компонент класса является символьная строка. В результате выполнения программы в объекте, содержащим строку с max длиной удалить последнее слово. Содержимое объектов (их строки) до и после обмена вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции [] (a[i]=b[j]). Содержимое объектов (a,b их векторов), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – вектор (числовой динамический массив (int *)). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – упорядочивания значений в векторе таким образом , что бы положительные значения переместились в начало его, отрицательные в конец, а нулевые остались бы на своих местах.
вариант 16.
1. Разработать класс реализующий список (однонаправленная очередь). Элемент списка содержит информацию о товаре на складе фирмы. Элемент очереди содержит наименование товара, цену, количество и дату поставки. В классе реализовать методы поставки на склад, отгрузки со склада и формирования информации по выбранному товару.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции () (a(i)=k и k=b(i)). Содержимое объектов (a,b их векторов), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – квадратная матрица (динамическая (int **mt или int* или int *mt[константа])). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поэлементной замены местами элементов главной и побочной диагоналей.
вариант 17.
1. Разработать класс реализующий список (однонаправленное кольцо). Элемент списка содержит информацию о товаре на складе фирмы. Элемент очереди содержит наименование товара, цену, количество и дату поставки. В классе реализовать методы поставки на склад, отгрузки со склада и формирования информации по выбранному товару.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции [] (a[i]=k и k=b[i]). Содержимое объектов (a,b их векторов), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – вектор (числовой динамический массив (int *)). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – удаления из вектора значений нарушающих его упорядоченность (например, по возрастанию).
вариант 18.
1. Разработать класс реализующий список (двунаправленная очередь). Элемент списка содержит информацию о товаре на складе фирмы. Элемент очереди содержит наименование товара, цену, количество и дату поставки. В классе реализовать методы поставки на склад, отгрузки со склада и формирования информации по выбранному товару.
2. Для созданного объекта a, разработанного класса – символьная строка, реализовать перегрузку операции * (операция разадресации) (*a=символ). Содержимое объекта (a его строки), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и замены местами последнего и предпоследнего слова в строке базового класса.
вариант 19.
1. Разработать класс реализующий список (двунаправленное кольцо). Элемент списка содержит информацию о товаре на складе фирмы. Элемент очереди содержит наименование товара, цену, количество и дату поставки. В классе реализовать методы поставки на склад, отгрузки со склада и формирования информации по выбранному товару.
2. Для созданного объекта a, разработанного класса – символьная строка, реализовать перегрузку оператора new. Содержимое объекта (a, его строки) вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – вектор (числовой динамический массив (int *)). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – нахождения и удаления из вектора всех не простых элементов (простое число – такое которое делится без остатка только на 1 и на само себя ).
вариант 20.
1. Разработать класс реализующий список (однонаправленная очередь). Элемент списка содержит информацию об остановочных пунктах некоторого автобусного маршрута. Элемент очереди содержит название остановки и время прибытия на нее. Реализовать несколько объектов (маршрутов движения). Методы класса – создание нового маршрута, поиск маршрута по выбранному остановочному пункту.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – символьная строка. Реализовать для объектов данного класса перегрузку операции -- (b=--a). Содержимое объектов (a,b, их строк), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – квадратная матрица (динамическая (int **mt или int* или int *mt[константа])). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – траспонирования матрицы относительно побочной диагонали.
вариант 21
1. Разработать класс реализующий список (однонаправленное кольцо). Элемент списка содержит информацию об абонентах телефонной сети. Элемент очереди содержит ФИО абонента, № телефона, состояние его счета. В классе реализовать методы добавления нового абонента, поиск абонента, корректировку информации по абоненту.
2. Реализовать класс String для работы со строками символов. Перегрузить операторы = и >=.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – вектор (числовой динамический массив (int *)). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – нахождения в векторе 2 элементов с наибольшими значениями и замены их местами.
вариант 22
1. Разработать класс, одной из компонент которого является символьная строка и внешнюю функцию (по отношению к классу), выполняющую удаление второго слова из символьной строки. Содержимое объекта (строку) до и после применения к нему внешней функции вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции ++ (b=++a). Содержимое объектов (a,b, их векторов), до и после выполнения операции, вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и замены местами слов с максимальной и минимальной длинной в строке базового класса.
вариант 23
1. Разработать класс А, одной из компонент которого является символьная строка и класс В, одним из методов которого является функция, выполняющая вывод на экран слова минимальной длинны символьной строки объекта класса А.
2. Для созданного объекта a, разработанного класса – символьная строка, реализовать перегрузку операции []. Содержимое объекта (a, его строки) вывести на экран.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – матрица (динамическая (int **mt или int* или int *mt[константа])). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – замены местами элементов строк с максимальной и минимальной суммой элементов.
вариант 24
1. Разработать класс А, одной из компонент которого является вектор длинных целых чисел и внешнюю функцию (по отношению к классу А), выполняющую упорядочивание чисел в векторе (по возрастанию). Содержимое объекта (вектор чисел) до и после применения к нему внешней функции вывести на экран.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции < ( a<b; ) при этом в объект а заносится меньшее а в объект b большее из 2 чисел массивов в сравниваемых объектах.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – вектор (числовой динамический массив (int *)). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – нахождения в векторе элементов с нечетными значениями и удаления их вектора.
вариант 25
1. Разработать класс А, одной из компонент которого является вектор чисел и класс В, одним из методов которого является функция, выполняющая перемещение отрицательных чисел в векторе в начало, а положительных в конец объекта класса А.
2. Создать 2 объекта a и b, разработанного класса – символьная строка, реализовать перегрузку операции >= ( c = a>=b, с получает содержимое большей строки, объекты (их компоненты - строки) сравнивать по содержимому).
3. Создать иерархию классов представляющих простое наследование. Базовый класс – матрица (динамическая (int **mt или int* или int *mt[константа])). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – замены местами максимального и минимального элементов в каждой строке матрицы.
вариант 26
1. Разработать несколько классов. Класс А содержит строку с фамилией работника и массив с информацией о зар.плате по месяцам за год, класс В - % налога на зар.плату. Класс С – производный от А и В. Один из методов класса рассчитывает сумму налога за год и метод вывода на экран фамилия, зар.плата, сумму налога.
2. Создать несколько объектов (например, a и b) разработанного класса. Класс – вектор (одномерный массив). Реализовать для объектов данного класса перегрузку операции - = ( a - = b; ) при этом в объекте а каждое значение элемента массива уменьшается на величину соответствующего элемента массива объекта b.
3. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и удаления из строки базового класса слов состоящих только из символов цифр.
вариант 27
1. Разработать два класса А и В (не используя наследования). В классе А содержится массив m[5]. Класс В содержит: метод poisk вычисляющий и сохраняющий max и min значения элементов массива m[3] (класса А) и статический метод swap() вычисляющее среднее арифметическое значений max и min.
2. Создать 2 объекта a и b, разработанного класса – символьная строка, реализовать перегрузку операции += ( a+=b, в объект а добавляются символы содержащиеся в b, но не содержащиеся в a).
3. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы, работающие с данными базового класса. Реализовать в производном классе метод – поиска и замены местами первого и последнего слов в строке базового класса.
вариант 28
1. Имеется базовый класс компонентой-данного которого является массив дробных чисел и метод просмотра этого массива. В производных от класса А классах В и С содержатся функции выделения (В-целой части, С-дробной части чисел из массива в классе А). Все функции в А, В и С классах –виртуальные. Вызвать их из main.