- •Овсянник в.Н. Лабораторные работы по курсу «Объектно-ориентированное программирование»
- •1.Интегрированная среда mvs-2010
- •1.1.Методические указания
- •2.Массивушки и подпрограммочки
- •Прочитайте это задание и методические указания до конца, прежде чем терзать клавиатуру, соседа, преподавателя и пр. Сущности
- •Попробуйте сдать работу, предварительно тщательно протестировав ее на предмет отсутствия хомутов
- •2.1.Методические указания
- •3.Поиск экстремумов с ограничениями или «Брачное агенство»
- •Постановка задачи
- •Задание
- •Листинг файла mAgency.Cpp (с главной функцией)
- •Листинг файла Lib.H
- •Листинг файла Lib.Cpp
- •4.Задача «куча камней»
- •4.1.Постановка задачи.
- •4.2.Методические указания.
- •Некоторые примеры разделения камней на две кучи, которые должна решать ваша программа
- •5.Разработка простого класса
- •5.1.Задание
- •5.2.Описание вариантов заданий
- •5.3.Драгоценные методические указания
- •6.Класс вектор
- •6.1.Пример класса tVector
- •6.2.Класс tVector с перегруженными операциями
- •7.Наследование классов
- •7.1.Задание
- •7.2.Методическая помощь
- •7.3.Описание самых легких вариантов заданий
- •7.4.Контроль качества выполненной работы
- •8.Приложение с окном вида
- •9.Абстрактные классы и виртуальные функции
- •9.1.Задание
- •9.2.Методические указания
- •Void PrintClassNamе1(cBasе *pb) // параметр-указатель
- •Void PrintClassNamе2(cBasе &b) // параметр-ссылка
- •Void PrintClassNamе3(cFirst f) // параметр-значение
- •9.3.Варианты заданий
- •10.Разработка класса контейнера
- •10.1.Задание
- •10.2.Описание вариантов заданий
- •10.3.Методические указания
- •12.Перегрузка векторных и матричных операций
- •12.1.Задание
- •12.2.Бесценные методические указания
- •12.3.Некоторые особенности перегрузки операций
- •12.4.Варианты заданий
- •13.Программирование односвязного списка
- •13.1.Задание
- •13.2.Описание вариантов заданий
- •14.Приложение, основанное на модальном диалоговом окне
- •14.1.Нудные методические указания Модальные и немодальные диалоговые окна
- •Ресурсы и элементы управления
- •Сценарий создания приложения
- •Разбор приложения
- •Усовершенствование приложения
- •15.Приложения
- •15.1.Виды сортировок
- •Классификация сортировок
- •Сортировка массивов
- •15.2.Алгоритм сортировки включением
- •Пример сортировки с помощью прямого включения
- •15.3.Сортировка Шелла
- •Список литературы
9.3.Варианты заданий
В каждом варианте предусмотреть ввод данных с клавиатуры (с подсказками) или чтение из файла. Вывод результатов также нужно оформить с подсказками.
Таблица 1.
Индивидуальные задания
№ |
Задание |
1 |
Разработать абстрактный БАЗОВЫЙ класс с виртуальной функцией, вычисляющей площадь плоской фигуры. Разработать производные классы: ПРЯМОУГОЛЬНИК, КРУГ, ПРЯМОУГОЛЬНЫЙ ТРЕУГОЛЬНИК и ТРАПЕЦИЯ со своими функциями вычисления площади. Для справки: площадь трапеции равна S=(a+b)*h*0.5, а формулы площадей других фигур надо помнить наизусть |
2 |
Разработать абстрактный БАЗОВЫЙ класс с виртуальной функцией, вычисляющей норму. Разработать производные классы: КОМПЛЕКСНОЕ ЧИСЛО (норма есть корень квадратный из суммы квадратов действительной и мнимой частей), ВЕКТОР (корень квадратный из суммы элементов) и МАТРИЦА (максимальное значение по модулю) |
3 |
Разработать абстрактный класс КРИВАЯ с виртуальной функцией вычисления зависимости y(x). Разработать производные классы: ПРЯМАЯ (y=a*x+b), ЭЛЛИПС (x2/a2+y2/b2=1) и ГИПЕРБОЛА (x2/a2-y2/b2=1). В каждом производном классе реализовать виртуальную функцию y(x) |
4 |
Разработать абстрактный БАЗОВЫЙ класс с виртуальной функцией вычисления суммы прогрессии. Разработать производные классы АРИФМЕТИЧЕСКАЯ ПРОГРЕССИЯ и ГЕОМЕТРИЧЕСКАЯ ПРОГРЕССИЯ. Каждый класс должен иметь два поля вещественного типа: первое – значение начального элемента прогрессии, второе – шаг для арифметической прогрессии и множитель – для геометрической. Определить функцию вычисления суммы с параметром n: число элементов прогрессии. Арифметическая прогрессия: ai=a0+i*h, sn=(n+1)*(a0+an)/2. Геометрическая прогрессия: ai=a0*hi, sn= (a0-an*h)/(1-h) |
5 |
Разработать абстрактный базовый класс ФИГУРА с виртуальной функцией вычисления площади и периметра фигуры. Разработать производные классы ПАРАЛЛЕПИПЕД, СЕКТОР КРУГА и УСЕЧЕННЫЙ СЕКТОР КРУГА. Определить в производных классах функции вычисления площади и периметра перечисленных фигур |
6 |
Разработать абстрактный базовый класс РАБОТНИК и производные классы РАБОТНИК С ПОЧАСОВОЙ ОПЛАТОЙ и СЛУЖАЩИЙ С ОКЛАДОМ. Определить в классах соответствующие компонентные данные. Определить виртуальные функции начисления зарплаты за указанный период времени |
7 |
Разработать абстрактный базовый класс ТЕЛО с виртуальной функцией вычисления площади поверхности. Разработать производные классы ПРЯМОУГОЛЬНЫЙ ПАРАЛЛЕЛИПИПЕД, ТЕТРАЭДР и ШАР с функциями вычисления площади поверхности S. Площадь поверхности параллелепипеда S=2*(a*b+b*c+c*a), где a,b,c – ребра. Площадь поверхности шара S=4*π*r2. Площадь поверхности тетраэдра S=a2*√3, где а – длина ребра |
8 |
Разработать абстрактный базовый класс ТЕЛО с виртуальной функцией вычисления объема тела. Разработать производные классы ПАРАЛЛЕЛИПИПЕД, ПИРАМИДА, ТЕТРАЭДР и ШАР с функциями вычисления объема V. Объем прямоугольного параллелепипеда V=a*b*c, правильной пирамиды V=a*b*h/3 (a,b – стороны прямоугольной основы, h – высота), тетраэдра V=12*a3*√2 (а – длина ребра), шара V=4*π*r3/3 |
9 |
Разработать абстрактный базовый класс МЛЕКОПИТАЮЩИЕ с виртуальной функцией описания конкретного объекта класса. Разработать производные классы ЖИВОТНОЕ и ЧЕЛОВЕК. Для класса ЖИВОТНОЕ определить производные классы ЛОШАДЬ и КОРОВА. Определить виртуальные функции, возвращающие описания человека, лошади и коровы |
10 |
Разработать абстрактный базовый класс БАНКОВСКИЙ СЧЕТ с виртуальной функцией, возвращающей величину счета. В базовом классе определить величину счета и дату его открытия. Разработать производные классы ДЕПОЗИТ и КРЕДИТ, в которых необходимо определить величину процентной ставки и дату для начисления величины вклада или суммы долга. Для производных классов разработать виртуальные функции, которые должны вычислять сумму депозита или сумму платежа в зависимости от типа класса: ДЕПОЗИТ или КРЕДИТ. Если вы еще не пользовались кредитами или депозитами, то знайте, что проценты обычно задают в годовом исчислении. Это значит, например, что если процент по кредиту равен 35 и вы погашаете его через месяц, то банк вам начислит пеню, равную (сумма кредита)*0.35*30/365 |
11 |
Разработать абстрактный базовый класс МАССИВ с виртуальными абстрактными функциями, возвращающими сумму значений элементов массива, максимального и минимального значений. Разработать производные классы ВЕКТОР и МАТРИЦА. В этих классах определить функции формирования значений массивов по определенному закону, которые надо задать самостоятельно, а также определить реализацию функций, возвращающих сумму значений элементов массива, максимального и минимального значений |
12 |
Разработать абстрактный базовый класс СТУДЕНТ с виртуальной функцией, возвращающей сумму дохода студента за указанное число месяцев. В базовом классе определить член-данное фамилия студента. Разработать производные классы СТИПЕНДИАТ и КОНКРАТНИК. Для класса СТИПЕНДИАТ виртуальная функция должна вычислять сумму стипендии за указанный промежуток времени, а для класса КОНКРАТНИК – сумму платежа. |
