Тверской государственный университет
Опубликован: 02.12.2009 | Доступ: свободный | Студентов: 2460 / 324 | Оценка: 4.47 / 4.24 | Длительность: 14:45:00
Лекция 5:

Отношения между классами. Клиенты и наследники

Классы без потомков

Экзотическим, но иногда полезным видом классов являются классы, для которых запрещается строить классы потомки путем наследования. При создании такого класса нет необходимости в выполнении над классом каких-либо болезненных операций. Вполне достаточно приписать классу модификатор sealed, он и запрещает построение потомков.

Задачи

  1. Постройте семейство классов Person, Car, OwnerOfCar, связанных отношениями наследования и вложенности, моделируя предметную область "Люди и машины". Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows- проект для работы с объектами классов.
  2. Постройте семейство классов Person, Employee, Firm, связанных отношениями наследования и вложенности, моделируя предметную область "Люди на службе". Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows- проект для работы с объектами классов.
  3. Постройте семейство классов Person, Library, Book, Author, Reader, связанных отношениями наследования и вложенности, моделируя предметную область "Люди, книги и библиотеки". Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows-проект для работы с объектами классов.
  4. Постройте семейство классов Person, Student, Teacher, Faculty, связанных отношениями наследования и вложенности, моделируя предметную область "Студенты и преподаватели". Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows-проект для работы с объектами классов.
  5. Постройте классы Home, Car, Carriage моделирующие дом, автомобиль и вагон поезда, а также классы HomeAndCar, HomeAndCarriage (дом в автомобиле, дом в вагоне), обладающие свойствами дома и транспортного средства. Установите правильные отношения между классами. Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows-проект для работы с объектами классов.
  6. Постройте классы Home, Sputnik, моделирующие дом и космический корабль, а также класс HomeSpace (космический дом), предназначенный для космических путешествий. Установите правильные отношения между классами. Предусмотрите виртуальные методы в проектируемых классах. Постройте DLL и Windows-проект для работы с объектами классов.
  7. По аналогии с классом System.Collections.Queue из библиотеки FCL напишите собственную реализацию класса MyQueue, задающего динамическую структуру данных - очередь. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в очереди элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
  8. Напишите реализацию класса DEQ (Double Ended Queue), задающего динамическую структуру данных - двустороннюю очередь, где добавление и удаление элементов выполняется на обоих концах очереди. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в очереди элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
  9. По аналогии с классом System.Collections.ArrayList из библиотеки FCL напишите собственную реализацию класса MyArrayList, задающего динамическую структуру данных - список. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в списке элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
  10. Напишите реализацию класса OneWayList, задающего динамическую структуру данных - односвязный список. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в списке элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
  11. Напишите реализацию класса TwoWayList, задающего динамическую структуру данных - двусвязный список. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в списке элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
  12. Напишите реализацию класса ListWithCursor, задающего динамическую структуру данных - список с курсором. Курсор в этой структуре данных задает текущий элемент списка. В списке должны быть определены операции по перемещению курсора. Операция поиска элемента списка устанавливает курсор на найденном элементе списка. Операции добавления и удаления элементов списка выполняются по отношению элемента, на который указывает курсор. Постройте семейство классов, начиная с абстрактного класса и кончая разными классами потомками. Постройте реализации, основанные на массивах и на списковой структуре данных. Постройте классы потомки, хранящие в списке элементы фиксированного типа. Постройте Windows-проект, демонстрирующий полиморфизм построенного семейства классов.
  13. Постройте семейство классов, начиная с абстрактного класса, задающего динамическую структуру данных, потомками которого будут стеки и очереди.
  14. Постройте семейство классов, начиная с абстрактного класса, задающего динамическую структуру данных, потомками которого будут списки - односвязные, двусвязные, списки с курсором.
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Илья Ардов
Илья Ардов

Добрый день!

Я записан на программу. Куда высылать договор и диплом?