Показать сообщение отдельно
  #1  
Старый 29.06.2011, 15:50
medvedeva medvedeva вне форума
Прохожий
 
Регистрация: 27.06.2011
Сообщения: 2
Репутация: 10
По умолчанию Нужна помощь в описании класов. контейнер на базе очереди

тема:Объектная реализация контейнера на основе комбинированной структуры «Упорядоченный массив динамических очередей»
есть начало, но его нужно переделать так, чтобы выполнялось след:
- информационные объекты являются квартирами дома с парой свойств Номер и Площадь
- квартиры объединяются в рамках объекта Дом (свойство - НомерДома) на основе динамической очереди
- дома объединяются в рамках объекта Улица (свойство - Название) на основе упорядоченного массива.

Для этой задачи надо спроектировать набор необходимых классов, имена которых, а также имена их свойств и методов должны
соответствовать поставленной задаче.
- в классах ввести методы доступа к закрытым свойствам
- использование динамической версии массива не является обязательным
вот начало:
Код:
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;
Админ: Пользуемся тегами для оформления кода!
Ответить с цитированием