Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП / Задание на контрольную работу по ООПиП

.doc
Скачиваний:
37
Добавлен:
24.02.2016
Размер:
135.17 Кб
Скачать

При выполнении контрольных заданий необходимо:

Если в задании требуется разработать класс, то он должен включать:

  • компоненты данные

  • методы:

а) конструктор по умолчанию;

б) конструктор с параметрами;

в) конструктор копирования;

г) деструктор;

д) методы класса для работы с данными.

Компоненты данные класса должны иметь атрибут 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.