Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2010, 16:01   #1
diliana
Форумчанин
 
Аватар для diliana
 
Регистрация: 24.05.2009
Сообщений: 119
По умолчанию Ошибки в описании классов (ООП)

Привет всем!

У меня было такое задание - обьектная реал-ция "Массива из динам-ких очредей"
В общем я его выполнила, но препод не принял работу, сказал, чтоб переделала описание классов, так чтобы

"Информационные обьекты были описаны своим отдельным классом с двумя свойствами разного типа и соответствующими методами доступа. "

Я не до конца понимаю, что он имеет в виду...
Подскажите пожалуста, а то из-за этого я никак не могу решить эту проблему.
вот мое описание классов - что именно здесь является ошибочным?

Код:
{класс ЭЛЕМЕНТ очереди}
 TQueueItem = class
 private // закрытые свойства

 FData: integer;// наши данныеr)
 FNext: TQueueItem;// указатель на следующий элемент

 private // открытые методы класса

 procedure SetData(const Value: integer);
 procedure SetNext(const Value: TQueueItem);
 constructor Create(value: integer);// инициализация элемента очереди
   property Data: integer  read FData write SetData;
   property Next: TQueueItem  read FNext write SetNext;
 end;

{класс ОЧЕРЕДЬ}
 TQueue = class
 private

  FMarker: integer; // метка очереди -> для ее поиска
  FFirst, FLast: TQueueItem; // указатели начала и конца очереди

 public

  procedure SetFirst(const Value: TQueueItem);
  procedure SetLast(const Value: TQueueItem);
  procedure SetMarker(const Mark: integer);
  constructor Create; // инициализация очереди
  //...
    property Marker: integer read FMarker write SetMarker;
    property First: TQueueItem  read FFirst write SetFirst;
    property Last: TQueueItem  read FLast write SetLast;
 end;

{Класс КОНТЕЙНЕР}
 TCont = class
 private

  FMas: array of TQueue; //динам.массив

 public
  function GetMas(index: integer): TQueue;
  procedure SetMas(index: integer; const Value: TQueue);
  //...
    property Mas [index: integer]:TQueue read GetMas write SetMas;
 end;
diliana вне форума Ответить с цитированием
Старый 11.02.2010, 16:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хы... Злокачественный у тебя преподаватель )
Видимо имеется ввиду что твоя FData должна быть не просто целым число а классом, хранящим ченить такое, и в этом классе должно быть поле(поля) в секции private и свойства, которые будут взаимодействовать с этими полями.
Ну прикрути ченить типа:
Код:
 TFData=class
  private
    FDate: integer;
    FName: string;
    procedure SetDate(const Value: integer);
    procedure SetName(const Value: string);
  public
   property Date:integer read FDate write SetDate;
   property Name:string read FName write SetName;
  end;
{ TFData }

procedure TFData.SetDate(const Value: integer);
begin
  FDate := Value;
end;

procedure TFData.SetName(const Value: string);
begin
  FName := Value;
end;
Соответственно
FData:TFData ;
Вот. А при создании в конструкторе TQueueItem.Create пусть создается и инициализируется:
Код:
begin
 FData:=TFData.Create;
 FData.Date:=random(100);
 FData.Name:='_'+TimeToStr(now);
end;
Ну вот как то так видимо.

Да и в деструкторе TQueueItem'a не забудь освобождать эту FData
I'm learning to live...

Последний раз редактировалось Stilet; 11.02.2010 в 16:36.
Stilet вне форума Ответить с цитированием
Старый 11.02.2010, 17:00   #3
diliana
Форумчанин
 
Аватар для diliana
 
Регистрация: 24.05.2009
Сообщений: 119
По умолчанию

Stilet привет!
Цитата:
Злокачественный у тебя преподаватель )

Последний раз редактировалось diliana; 11.02.2010 в 17:28.
diliana вне форума Ответить с цитированием
Старый 11.02.2010, 17:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В вашей работе вы снова включаете их в объекты-элементы.
Не понял... Так ему это нужно или нет?
Хотя... Может он имеет ввиду что у тебя класс TCont лишний, может ему нужна программа с всего одной очередью?
Попробуй просто сделать программу, где все будет вертеться на одной только TQueue. Пусть этот класс никуда не входит, а сам будет главным в стратегии. Хотя по-моему ты нормально иерархию очередей сделала.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.02.2010, 19:58   #5
diliana
Форумчанин
 
Аватар для diliana
 
Регистрация: 24.05.2009
Сообщений: 119
По умолчанию

Цитата:
Видимо имеется ввиду что твоя FData должна быть не просто целым число а классом, хранящим ченить такое, и в этом классе должно быть поле(поля) в секции private и свойства, которые будут взаимодействовать с этими полями.
Stilet

Вы оказались правы
Выяснилось, что именно это препод и требует...
теперь ясно.
эх опять переделывать
diliana вне форума Ответить с цитированием
Старый 16.02.2010, 09:15   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
эх опять переделывать
Да ладно... Разве много переделывать? Ты то умеешь с классами работать - тебе это будет как два пальца об зачетку.
Цитата:
Вы оказались правы
Можно на "ты". Я не настолько star. )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55
Создание классов и использование объектов классов при написании программ в среде C++. Frozen inside Помощь студентам 0 16.04.2009 23:18
Проблемка при описании класса creator32 Помощь студентам 5 13.11.2008 23:13
Нужна помощь в описании области quake1 Помощь студентам 2 05.12.2007 09:55