Содержание работы или список заданий
|
Вариант 5.
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
СПЕЦИАЛЬНОСТЬ РИС, заочное отделение
Контрольная работа №1. Наследование
Цель:
Получить практические навыки создания иерархия классов, наследования классов и интерфейсов в объектно-ориентированных языках программирования.
Задание
1. Составить иерархию классов в соответствии с вариантом. Иерархия должна содержать интерфейсы. Во главе иерархии должен быть абстрактный класс.
2. Определить в классах методы. Учтите, что ваши классы не предназначены только для хранения данных(их поля характеризуют свойства объекта), а и выполнять некоторые операции. Эти операции определены в интерфейсах. Операции выберите самостоятельно исходя из предметной области, в которой могут использоваться объекты.
3. Реализовать в классах интерфейсы, конструкторы, необходимые свойства(в C#), селекторы и модификаторы.
4. Создать объекты каждого из классов и показать их(методом show()).
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
СПЕЦИАЛЬНОСТЬ РИС, заочное отделение
Контрольная работа №2. Полиморфизм
Цель:
Получить практические навыки реализации полиморфизма в объектно-ориентированных языках программирования и использования механизма позднего связывания.
Задание
5. Составить иерархию классов как вы сделали это в контрольной работе №1.
6. Добавить интерфейс, содержащий методы для просмотра объектов(например, виртуальный метод show()).
7. Создать массив ссылок типа базового класса.
8. Создать объекты каждого из классов и поместить их в этот массив. Элементы массива ссылаются на эти объекты.
9. Просмотреть массив с помощью итератора foreach.
10. Сделать функцию show() не виртуальной и посмотреть к чему это приведет.
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
СПЕЦИАЛЬНОСТЬ РИС, заочное отделение
Контрольная работа №3. Перегрузка операций
Цель. Получить практические навыки создания абстрактных типов данных и перегрузки операций.
Основное содержание работы.
Определить и реализовать класс абстрактный тип данных. Определить и реализовать операции над данными этого класса. Написать и выполнить программу полного тестирования этого класса.
Краткие теоретические сведения.
Абстрактный тип данных (АТД).
АТД тип данных, определяемый только через операции, которые могут выполняться над соответствующими объектами безотносительно к способу представления этих объектов.
АТД включает в себя абстракцию как через параметризацию, так и через спецификацию. Абстракция через параметризацию может быть осуществлена так же, как и для процедур (функций); использованием параметров там, где это имеет смысл. Абстракция через спецификацию достигается за счет того, что операции представляются как часть типа.
Для реализации АТД необходимо, во-первых, выбрать представление памяти для объектов и, во-вторых, реализовать операции в терминах выбранного представления.
Порядок выполнения работы.
1. Выбрать класс АТД в соответствии с вариантом.
2. Определить и реализовать в классе конструкторы, деструктор, функцию для просмотра экземпляров класса, перегрузить операцию присваивания.
3. Написать программу тестирования класса и выполнить тестирование.
4. Дополнить определение класса заданными перегруженными операциями ( в соответствии с вариантом).
5. Реализовать эти операции. Выполнить тестирование.
Методические указания.
1.Класс АТД реализовать как динамический массив. Для этого определение класса должно иметь следующие поля:
указатель на начало массива;
размер массива (максимальное количество элементов массива) - определяет размер памяти, выделяемой под массив;
текущее количество элементов в массиве.
Для некоторых типов данных (например, АТД-массив) текущее количество элементов в массиве и его размер совпадают.
2. Конструкторы класса размещают массив в памяти и устанавливают его максимальный и текущий размер.
3. Чтобы у вас не возникало проблем, аккуратно работайте с константными объектами. Например:
* конструктор копирования следует определить так:
MyClass (const MyClass& ob);
* операцию присваивания перегрузить так:
MyClass& operator = (const MyClass& ob);
4. Для удобства реализации операций-функций реализовать в классе private(protected)-функции, работающие непосредственно с реализацией класса. Например, для класса множество это могут быть следующие функции:
включить элемент в множество;
найти элемент и возвратить его индекс;
удалить элемент;
определить, принадлежит ли элемент множеству.
Указанные функции используются в реализации общедоступных функций-операций (operator).
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
СПЕЦИАЛЬНОСТЬ РИС, заочное отделение
Контрольная работа №4. Шаблоны
Цель. Получить практические навыки создания шаблонов и использования их в программах С++.
Основное содержание работы.
Создать шаблон заданного класса и использовать его для данных различных типов.
Порядок выполнения работы.
1. Создать шаблон заданного класса. Определить конструкторы, деструктор, перегруженную операцию присваивания (“=”) и операции, заданные в варианте задания.
2. Написать программу тестирования, в которой проверяется использование шаблона для стандартных типов данных.
3. Выполнить тестирование.
Методические указания.
1. Класс АТД реализовать как динамический массив. Для этого определение класса должно иметь следующие поля:
указатель на начало массива;
размер памяти, выделяемой для массива;
текущее количество элементов в массиве.
Для некоторых типов данных текущее количество элементов в массиве и его размер совпадают.
2. Для ввода и вывода определить в классе функции input и print.
3. Чтобы у вас не возникало проблем, аккуратно работайте с константными объектами. Например:
* конструктор копирования следует определить так:
MyTmp (const MyTmp& ob);
* операцию присваивания перегрузить так:
MyTmp& operator = (const MyTmp& ob);
4. Для шаблонов множеств, списков, стеков и очередей в качестве стандартных типов использовать строки, целые и вещественные типы.
5. Для шаблонов массивов в качестве стандартных типов использо-
вать целые и вещественные типы.
6. Реализацию шаблона следует разместить вместе с определением в заголовочном файле.
7. Тестирование должно быть выполнено для всех типов данных и для всех операций.
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
СПЕЦИАЛЬНОСТЬ РИС, заочное отделение
Контрольная работа №5. Стандартная библиотека шаблонов С++
Цель. Освоить технологию обобщенного программирования с использованием стандартной библиотеки шаблонов (STL) языка C++.
Основное содержание работы.
Написать программу с использованием STL, которая должна демонстрировать работу с контейнерами STL и использование алгоритмов STL.
Порядок выполнения работы.
1. Создать объект-контейнер в соответствии с вариантом задания и заполнить его данными, тип которых определяется вариантом задания.
2. Просмотреть контейнер.
3. Изменить контейнер, удалив из него одни элементы и заменив другие.
4. Просмотреть контейнер, используя для доступа к его элементам итераторы.
5. Создать второй контейнер этого же класса и заполнить его данными того же типа, что и первый контейнер.
6. Изменить первый контейнер, удалив из него n элементов после заданного и добавив затем в него все элементы из второго контейнера.
7. Просмотреть первый и второй контейнеры.
8. Используя подходящий алгоритм STL, найти в контейнере элемент, удовлетворяющий заданному условию.
9. Используя подходящий алгоритм STL переместить элементы, удовлетворяющие заданному условию в другой (предварительно пустой) контейнер. Тип второго контейнера определяется вариантом задания.
10. Просмотреть второй контейнер.
11. Используя подходящий алгоритм STL отсортировать первый и второй контейнеры по возрастанию элементов.
12. Просмотреть их.
13.Используя подходящий алгоритм STL подсчитать, сколько элементов, удовлетворяющих заданному условию, содержит контейнер.
14.Используя подходящий алгоритм STL определить, есть ли в контейнере элемент, удовлетворяющий заданному условию.
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
СПЕЦИАЛЬНОСТЬ РИС, заочное отделение
Контрольная работа №6. Хранение данных в файлах
ДЛЯ С#.
Цель:
Получить практические навыки сериализации объектов.
Постановка задачи.
Сохранить коллекцию объектов в файле с последующим восстановлением.
Задание.
1. Создать коллекцию и поместить в нее объекты. Классы объектов, помещаемых в коллекцию, взять из контрольной работы № 1. В качестве коллекции использовать либо массив, либо стандартные коллекции STL, C#, Java.
2. Просмотреть коллекцию.
3. Сохранить коллекцию в файле путем сериализации.
4. Создать вторую, предварительно пустую, коллекцию.
5. Прочитать в эту коллекцию объекты из файла.
6. Просмотреть вторую коллекцию.
Содержание отчета
1. Титульный лист: название дисциплины; номер и наименование работы; номер зачетной книжки; номер варианта; фамилия, имя, отчество студента; дата выполнения.
2. Постановка задачи. Следует дать конкретную постановку, т.е. указать, какие классы и коллекции используются.
3. Листинг программы с комментариями.
4. Определения классов с комментариями.
5. Описания методов, используемых для сохранения и восстановления объектов.
6. Описание реализованного в программе механизма сериализации и десериализации коллекции.
7. Скринщоты результата выполнения программы.
|