Объектная реализация контейнера на основе комбинированной структуры «Динамический упорядоченный список массивов-стеков»

Автор работы: Пользователь скрыл имя, 13 Декабря 2014 в 10:49, курсовая работа

Описание работы

Цель работы: получение навыков разработки объектных программ, включая создание набора собственных взаимосвязанных классов для объектной реализации специализированного контейнера. Контейнер предназначен для хранения и обработки данных некоторой информационной задачи. Контейнер представляет собой двухуровневую структуру данных, в которой уровни реализуются разными способами – один статически на базе массива (непрерывная реализация), другой – динамически с использованием адресных связей (связная реализация).

Содержание работы

Постановка задачи (цель работы, исходные данные, ожидаемый результат, требования к реализации)……………………………………………………………………………………….2
Теоретическое описание используемых структур данных с алгоритмами реализации основных операций…………………………………………………………….…………….......3
Описание основных понятий и механизмов ООП……………………………………………………………………………………………….9
Описание всех разработанных классов (объектная модель)……………………………...…11
Описание демонстрационного модуля с характеристикой использованных стандартных компонентов……………………………………………………………………………………25
Описание структуры проекта…………………………………………………………………27
Список использованной литературы…………………………………………………………47

Файлы: 1 файл

KURSOVAYaYa.docx

— 243.02 Кб (Скачать файл)

ApartmentHouse *q=Current->getNext();

Current=q;

ApartmentHouse *TMP=new ApartmentHouse(q->getNumber());

ApartmentHouse *qqq=new ApartmentHouse(q->getNumber());

while(q->checkShowAll())

  {

  Apartment *tt=q->ShowAll();

  qqq->Push(tt->getNumber(),tt->getArea());

  }

while(qqq->checkShowAll())

  {

Apartment *tt=qqq->ShowAll();

TMP->Push(tt->getNumber(),tt->getArea());

  }

return TMP;

}

//---------------------------------------------------------------------------

bool ManagementCompany::checkpass()

{

bool p;

if(Current->getNext()!=0)

{

p=true;

}

else

{

p=false;

Current=head;

}

return p;

}

//---------------------------------------------------------------------------

int ManagementCompany::AddAp(int nAH,int nA,float s)

{

*flag=true;

  int x=0;

  ApartmentHouse *w1=head->getNext();

  ApartmentHouse *tmp=0;

  while(w1!=0)

  {

  if(w1->getNumber()==nAH)

  {

  tmp=w1;

  break;

  }

  else

  {

  w1=w1->getNext();

  }

  }

  if(tmp!=0)

  {

   tmp->Push(nA,s);

   x=1;

  }

return x;

}

//---------------------------------------------------------------------------

int ManagementCompany::DelAp(int nAH,int nA)

{

*flag=true;

  int x=0;

  ApartmentHouse *w1=head->getNext();

  ApartmentHouse *tmp=0;

  while(w1!=0)

  {

  if(w1->getNumber()==nAH)

  {

  tmp=w1;

  break;

  }

  else

  {

  w1=w1->getNext();

  }

  }

  if(tmp!=0)

  {

   if(tmp->CheckDel())

   {

if(tmp->Show()->getNumber()==nA)

{

tmp->Pop();

x=1;

}

   }

  }

return x;

}

//---------------------------------------------------------------------------

int ManagementCompany::getCount()

{

return *Count;

}

//---------------------------------------------------------------------------

bool ManagementCompany::getflag()

{

return *flag;

}

void ManagementCompany::setflag(bool p)

{

*flag=p;

}

//---------------------------------------------------------------------------

 

Описание демонстрационного модуля с характеристикой использованных стандартных компонентов

На главной форме демонстрационного модуля располагаются такие стандартные компоненты как: Button, Edit, Label, GroupBox, ComboBox,  CheckListBox,ListBox, MainMenu, OpenDialog и SaveDialog.

  Компонент Button представляет собой стандартную кнопку Windows, инициирующую какое-то действие. Основное с точки зрения внешнего вида свойство

кнопки — Caption (надпись).

Основное событие кнопки — OnClick, возникающее при щелчке на ней. В обработчике этого события записываются операторы, которые должны выполняться

при щелчке пользователя на кнопке.

  Свойство Cancel, если его установить в true, определяет, что нажатие пользователем клавиши Esc будет эквивалентно нажатию на данную кнопку.

Свойство Default, если его установить в true, определяет, что нажатие пользователем клавиши ввода Enter будет эквивалентно нажатию на данную кнопку, даже

если данная кнопка в этот момент не находится в фокусе. Правда, если в момент

нажатия Enter в фокусе находится другая кнопка, то все-таки сработает именно

кнопка в фокусе.

Из методов, присущих кнопкам, имеет смысл отметить один — Click. Выполнение этого метода эквивалентно щелчку на кнопке, т.е. вызывает событие кнопки

OnClick.


  В компоненте Edit вводимый и выводимый текст содержится в свойстве Text.

Это свойство можно устанавливать в процессе проектирования или задавать программно. Выравнивание текста невозможно. Перенос строк тоже невозможен.

Текст, не помещающийся по длине в окно, просто сдвигается, и пользователь может перемещаться по нему с помощью курсора. Свойство AutoSize позволяет автоматически подстраивать высоту (но не ширину) окна под размер текста. Свойство Font определяет атрибуты шрифта. Свойство Text-текст в окне редактирования.

Метод  void Clear(void) удаляет текст из окна.


  Компонент Label используется для отображения текста, который играет роль метки и не изменяется пользователем. Текст метки задается свойством Caption.

Шрифт надписи определяется свойством Font, цвет фона - свойством Col or,

а цвет надписи — подсвойством Color свойства Font. Размер меток Label определяется свойством AutoSize. Если это свойство установлено в true, то вертикальный

и горизонтальный размеры компонента определяются размером надписи. Если же

AutoSize равно false, то выравнивание текста внутри компонента определяется

свойством Alignment, которое позволяет выравнивать текст по левому краю, правому краю или центру клиентской области метки.


  Панель GroupBox -- это контейнер с рамкой и надписью, объединяющий

группу связанных органов управления, таких как радиокнопки RadioButton, индикаторы CheckBox и т.д. В отличие от других панелей (например, Panel) не имеет

широких возможностей задания различных стилей оформления. Но GroupBox

имеет встроенную рамку с надписью, которая обычно используется для выделения

на форме группы функционально объединенных компонентов. Свойство Caption - надпись в углу рамки панели. Свойство Font определяет атрибуты шрифта.


  Компонент ComboBox объединяет функции компонетов ListBox — спи ка ,и Edit — окна редактирования. Компонент позволяет пользователю выбрать из списка необходимую строку или задать в качестве выбора собственный текст. Список может отображаться в развернутом виде или как выпадающий список.

Отличие ComboBox от схожего по функциям компонента ListBox заключается

в следующем:

• ComboBox разрешает пользователю редактировать список, a ListBox не разрешает

• в ComboBox список может быть развернут или свернут, а в ListBox он всегда

развернут

• ListBox может допускать множественный выбор, а в ComboBox пользователь

всегда должен выбрать только один элемент

Основное свойство компонента, содержащее список строк, — Items, имеющее

тип TStrings. Во время выполнения работать с этим свойством можно, пользуясь свойствами и методами класса

TStrings — Clear, Add и другими.

Стиль изображения списка определяется свойством Style.


  Компонент CheckListBox аналогичен компоненту списка строк ListBox. за исключением того, что рядом с каждый элементом находится окно с флажком — индикатор, который пользователь может включать и выключать, помечая элементы

списка. Состояние индикатора изменяется при каждом щелчке пользователя на нем.

Основное свойство компонента, содержащее список строк, — Items, имеющее тип TStrings. Заполнить его во время проектирования можно, нажав кнопку с многоточием около этого свойства в окне Инспектора Объектов. Во время выполнения работать с этим свойством можно, пользуясь свойствами и методами класса TStrings — Clear, Add и другими.

Индекс выбранной пользователем строки определяется свойством Itemlndex, доступным только во время выполнения. Если ни одна строка не выбрана, то

Itemlndex = -1. Начальное значение Itemlndex невозможно задать во время проектирования. По умолчанию Itemlndex = -1. Это означает, что ни один элемент списка не выбран.

Свойство Sorted позволяет упорядочить список по алфавиту. При Sorted = true новые строки в список добавляются не в конец, а по алфавиту.

Состояния индикаторов определяют два свойства: State и Checked. Оба эти свойства можно рассматривать как индексированные массивы, каждый элемент которого соответствует индексу строки. Эти свойства можно устанавливать программно или читать, определяя установки пользователя.

В компоненте CheckListBox имеется событие OnClickCheck, возникающее при каждом изменении пользователем состояния индикатора. Его можно использовать для обработки результатов изменения.


  Компонент ListBox отображает список строк и позволяет пользователю выбрать из него необходимые строки. В список автоматически добавляются полосы прокрутки, если все строки не помещаются в окне компонента.

Отличие ListBox от схожего по функциям компонента ComboBox заключается в следующем:

• ComboBox разрешает пользователю редактировать список, a ListBox не разрешает

• в ComboBox список может быть развернут или свернут, а в ListBox он всегда развернут

• ListBox может допускать множественный выбор, а в ComboBox пользователь всегда должен выбрать только один элемент

Основное свойство компонента, содержащее список строк, — Items, имеющее тип TStrings. Заполнить его во время проектирования можно, нажав кнопку с многоточием около этого свойства в окне Инспектора Объектов. Во время выполнения работать с этим свойством можно, пользуясь свойствами и методами класса TStrings — Clear, Add и другими.


  Компонент MainMenu отображает на форме главное меню. Обычно на форму помещается один компонент MainMenu. В этом случае его имя автоматически заносится в свойство формы Menu.

Основное свойство компонента — Items. Его заполнение производится с помощью конструктора меню, вызываемого двойным щелчком на компоненте Main-Menu или нажатием кнопки с многоточием рядом со свойством Items. при выборе нового раздела вы увидите в Инспекторе Объектов множество свойств данного раздела. Дело в том, что каждый раздел меню, т.е. каждый элемент свойства Items, является объектом типа TMenuItem, обладающим своими свойствами, методами, событиями.

Свойство Caption обозначает надпись раздела. Заполнение этого свойства подчиняется тем же правилам, что и заполнение аналогичного свойства в кнопках.

Свойство Name задает имя объекта, соответствующего разделу меню.

Компоненты OpenDialog и SaveDialog вызывают стандартные диалоги Windows открытия и сохранения файлов. Открытие соответствующего диалога осуществляется методом Execute. Если в диалоге пользователь нажмет кнопку Открыть (Сохранить), диалог закрывается, метод Execute возвращает true и выбранный файл отображается в свойстве компонента-диалога FileName. Если же пользователь отказался от диалога(нажал кнопку Отмена или клавишу Esc), то метод Execute возвращает false. Типы искомых файлов, появляющиеся в диалоге в выпадающем списке Тип, задаются свойством Filter. В процессе проектирования это свойство проще всего задать с помощью редактора фильтров.

Информация о работе Объектная реализация контейнера на основе комбинированной структуры «Динамический упорядоченный список массивов-стеков»