![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() тема:Объектная реализация контейнера на основе комбинированной структуры «Упорядоченный массив динамических очередей»
есть начало, но его нужно переделать так, чтобы выполнялось след: - информационные объекты являются квартирами дома с парой свойств Номер и Площадь - квартиры объединяются в рамках объекта Дом (свойство - НомерДома) на основе динамической очереди - дома объединяются в рамках объекта Улица (свойство - Название) на основе упорядоченного массива. Для этой задачи надо спроектировать набор необходимых классов, имена которых, а также имена их свойств и методов должны соответствовать поставленной задаче. - в классах ввести методы доступа к закрытым свойствам - использование динамической версии массива не является обязательным вот начало: Код:
uses classes, SysUtils; type T = integer; TypizFile = file of T; // типизированный файл TQueueItem = class // класс - элемент очереди private Data: T; // мои данные Next: TQueueItem; // указатель на следующий элемент private constructor Create(value: T); // создание элемента очереди end; TQueue = class // класс очередь private Marker: T; // для метки очередей, для их поиска First, Last: TQueueItem; // указатели начала и конца public constructor Create; // инициализация очереди destructor Free; procedure Put(value: T); // добавление элемента function Get: T; // удаление procedure Print; // просмотр function Empty: boolean; // проверка на пустоту // procedure Save (value: T); //сохранение в файл // procedure Load (value: T); // загрузка из файла end; {Класс TCont обьявляем контейнерным классом} TCont = class // класс-контейнер private // свойства mas: array of TQueue; // динамический массив procedure Add(theQueue: TQueue); public Constructor Create; // создание массива указателей очередей Procedure Add_main; // добавить новые очереди в контейнер Procedure Delete_main; procedure Scan_main; // procedure Save (value: T); //сохранение контейнера в файл // procedure Load (value: T); // загрузка из файла end; {========================================} // инициализация элемента constructor TQueueItem.Create(value: T); begin Data := value; next := nil; end; {==========================================} // инициализация очереди Constructor TQueue.Create; begin first := nil; last := nil; // создаем пустую очередь end; // Освобождаем память, которую занимала очередь destructor TQueue.Free; begin while not Empty do Get; // удаляем все элементы end; Последний раз редактировалось Admin, 29.06.2011 в 15:54. |