![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |