1. В ходе самостоятельной подготовки изучить основные средства языка C++ определения класса, создания объектов класса, работы с такими объектами и их уничтожения после использования.
2. Разработать программу на языке C++.
3. Разработать тестовые примеры.
4. Выполнить отладку программы.
5. Получить результаты работы программы и исследовать её свойства для различных режимов работы, сформулировать выводы.
6. Оформить отчет по проделанной работе.
ВАРИАНТЫ ЗАДАНИЙ
Необходимо для заданного по варианту динамического типа данных описать класс, содержащий указатель на динамический тип как поле данных. Для этого класса описать конструкторы (в том числе и конструктор копирования), деструктор, функцию печати данных. Создать экземпляр полученного класса и проиллюстрировать его корректную работу: распечатать данные, изменить данные и распечатать вновь. Создать второй экземпляр класса как копию первого и проиллюстрировать корректную работу конструктора копирования: распечатать и изменить данные объекта-копии, распечатать данные обоих объектов, сравнить результат. Предусмотреть ошибки.
Вариант 1
Динамическая структура — очередь. В списке хранится информация о событиях: день (1-31), месяц (1-12), год (целое число) и название (строка). Предусмотреть функции добавления элементов в список и удаления из него, а также поиска введенной даты.
Вариант 2
Динамическая структура — стек. В стеке хранится распорядок дня: час (0-23), минуты (0-59), задача (строка). Предусмотреть функции добавления элементов в стек и удаления из него с сохранением упорядоченности по времени.
Вариант 3
Динамическая структура — одномерный массив. Тип элементов — целочисленный. Предусмотреть функции сортировки массива по возрастанию и заполнения его случайными числами.
Вариант 4
Динамическая структура — циклическая очередь. В ней хранятся данные о возрасте: ФИО (строка) и возраст (число). Предусмотреть функции добавления элементов в очередь и удаления из нее, а также функцию поиска по фамилии.
Вариант 5
Динамическая структура — двусвязный список. Хранит информацию о товарах на складе: инвентарный номер (число 5 знаков), название товара (строка). Предусмотреть функции добавления элементов в список и удаления из него, а также функцию проверки, существует ли товар на складе, по инвентарному номеру.
Вариант 6
Динамическая структура — очередь. Хранит данные о химических элементах: количество протонов в ядре (число 1-200) и название химического элемента (строка). Предусмотреть функции добавления элементов в очередь и удаления из нее, а также проверку на вхождение в список элементов с одинаковым значением заряда ядра.
Вариант 7
Динамическая структура — одномерный массив. Тип данных — символьный. Предусмотреть функции заполнения массива случайными литерами и поиска наиболее часто встречаемой литеры.
Вариант 8
Динамическая структура — циклическая очередь. Хранит информацию о штрафах: номер автомобиля (строка символов 8-9) и величина штрафа (цифра). Предусмотреть функции добавления элементов в очередь и удаления из нее, а также функцию вычисления величины суммы штрафов со всех авто.
Вариант 9
Динамическая структура — очередь. Хранит библиотечные данные: автора книги (строка) и название книги (строка). Предусмотреть функции добавления элементов в очередь и удаления из нее, а также функцию поиска всех произведений введенного автора.
Вариант 10
Динамическая структура — одномерный массив. Тип данных — вещественный. Предусмотреть функции заполнения массива случайными числами и поиска среднего значения по массиву.
Вариант 11
Динамическая структура — двусвязный список. Хранимые данные — поставки железной руды на плавильную печь: номер поставки (число), вес руды (число) и ожидаемый выход металла (число 0.0-0.9). Предусмотреть функции добавления элементов в список и удаления из него, а также функцию поиска суммарного веса чистого металла.
Вариант 12
Динамическая структура — циклическая очередь. Хранимая информация — каталог монет: порядковый номер (число), название монеты (строка), материал изготовления (строка). Предусмотреть функции добавления элементов в очередь и удаления из нее, а также функцию подсчета количества видов монет в каталоге из заданного материала.
Вариант 13
Динамическая структура — двумерный массив, квадратная матрица. Тип данных — целочисленный. Предусмотреть функции заполнения массива случайными числами и поиска максимального и минимального элементов массива.
Вариант 14
Динамическая структура — очередь. Хранится информация об аукционе: номер товара (число), название товара (строка), начальная стоимость товара (число). Предусмотреть функции добавления элементов в очередь и удаления из нее, а также функцию подсчета ожидаемой прибыли от проведения аукциона.
Вариант 15
Динамическая структура — двумерный массив, квадратная матрица. Тип данных — вещественный. Предусмотреть функции заполнения массива случайными числами и обмена строк с минимальной и максимальной суммой элементов между собой.
5. СОДЕРЖАНИЕ ОТЧЕТА О ВЫПОЛНЕНИИ
ЛАБОРАТОРНОЙ РАБОТЫ
Титульный лист, цель работы, вариант задания, текст программы с комментариями, описание тестовых примеров и выводы по проделанной работе.
КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Объясните понятие “класс”.
2. Объясните понятия “данные-члены” и “функции-члены” класса.
1. Для чего необходима операция расширения области видимости?
2. Объясните понятие “инкапсуляция”.
3. Поясните значение директив public, protected и private.
4. Как осуществляется доступ к членам класса?
5. Как определяется конструктор класса и для чего он используется?
6. Как определяется конструктор копирования и для чего он нужен?
7. Как определяется деструктор класса и для чего он используется?
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Буч Г. Объектно-ориентированное проектирование с примерами применения / Г.Буч. — М.: Конкорд, 1992. — 519 с.
2. Дейтел Х. М. Как программировать на С++ (полное издание) / Х. М. Дейтел, П. Дж. Дейтел.; под ред. В.В.Тимофеева. — М.: Бином, 2008. — 1454 с.
3. Айра Пол. Объектно-ориентированное программирование на С++ /Айра Пол. — СПб: “Невский диалект”, 2001. — 464 с.
4. Павловская Т.А. Программирование на языке высокого уровня С/С++ / Т.А. Павловская. — Питер, 2003. — 461с.
5. Лаптев В.В. С++. Объектно-ориентированное программирование. Задачи и упражнения. / В.В. Лаптев, А.В. Морозов, А.В. Бокова.; под ред. В.В. Лаптева. — СПб.: Питер, 2007. — 288с.
6. Иванова Г.С Объектно-ориентированное программирование: учеб для студ. вузов/ Г.С. Иванова, Т.Н. Ничушкина, Е.К. Пугачев; под ред. Г.С.Ивановой. — М.: Изд-во МГТУ им. Н.Э.Баумана, 2001. — 320 с.
Заказ № _____ от «_____» ______2012г. Тираж ______экз.
Изд-во СевНТУ