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

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

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

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

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

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

Файлы: 1 файл

KURSOVAYaYa.docx

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

}

}

}

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

void __fastcall TForm7::Edit4Click(TObject *Sender) //добавление дома

{

 if(Current!=0)   //если контейнер создан

{

 if(Edit4->Text!="")   //если Edit4 не пуст

{

  try{

  int x=StrToInt(Edit4->Text);

  Current->Add(x);        //добавление

  ComboBox3->Clear();     //очистка компонентов

  ComboBox2->Clear();

  ComboBox1->Clear();

  CheckListBox1->Clear();

  while(Current->checkpass()) //заполнение компонентов загруженными данными

  {

ApartmentHouse *tmp=Current->pass();

int x=tmp->getNumber();

ComboBox3->Items->Add(x);

ComboBox2->Items->Add(x);

ComboBox1->Items->Add(x);

CheckListBox1->Items->Add(x);

tmp->~ApartmentHouse();

  }

  }

  catch(...)

  {

ShowMessage("Возможен ввод целых чисел");

  }

  Edit4->Clear();

}

}

}

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

void __fastcall TForm7::Button2Click(TObject *Sender) //удаление заданного дома

{

 if(Current!=0)  //если контейнер создан

{

 if(ComboBox3->Text!="")

{

try{

  int x=StrToInt(ComboBox3->Text);

  if(Current->checkDel())

  {

   Current->Del(x);  //удаление

  }

  ComboBox3->Clear();   //очистка  компонентов

  ComboBox2->Clear();

  ComboBox1->Clear();

  CheckListBox1->Clear();

  while(Current->checkpass())        //заполнение компонентов после  удаления

  {

ApartmentHouse *tmp=Current->pass();

int y=tmp->getNumber();

ComboBox3->Items->Add(y);

ComboBox2->Items->Add(y);

ComboBox1->Items->Add(y);

CheckListBox1->Items->Add(y);

tmp->~ApartmentHouse();

  }

  if(x==LB1)       //очистка компонентов,если в них был выведен удалённый дом

  {

  ListBox1->Clear();

  }

  if(x==LB2)

  {

  ListBox2->Clear();

  ListBox3->Clear();

  Label4->Caption="ННН";

      }

}

catch(...)

  {

   ShowMessage("Возможен ввод целых чисел");

  }

}

}

}

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

void __fastcall TForm7::Button1Click(TObject *Sender) //добавление квартиры в заданный //дом

{

 if(Current!=0) //если контейнер создан

{

  if(ComboBox1->Text!=""&&Edit5->Text!=""&&Edit6->Text!="")

  {

  try{

  int x=StrToInt(ComboBox1->Text);

  int y=StrToInt(Edit5->Text);

  float z=StrToFloat(Edit6->Text);

  Current->AddAp(x,y,z);  //добавление

  int Q=CheckListBox1->Items->Count;

  for(int i=0;i<Q;i++)

  {     //если заданный дом отображается в комп-ах,то информация в них обновляется

   if(CheckListBox1->Selected[i]==true)

   {

int W=StrToInt(CheckListBox1->Items->Strings[i]);

if(W==x)

{

ApartmentHouse *tmp=0;

tmp=Current->search(W);

if(tmp!=0)

  {

ListBox2->Clear();

ListBox3->Clear();

while(tmp->checkShowAll())

{

Apartment *TMP=tmp->ShowAll();

ListBox2->Items->Add(TMP->getNumber());

float x=TMP->getArea();

AnsiString str = FormatFloat("0.00",x);

ListBox3->Items->Add(str);

}

tmp->~ApartmentHouse();

  }

}

    break;

   }

  }

  }

  catch(...)

  {

ShowMessage("Возможен ввод целых чисел(S кв. вещественные)");

  }

  }

}

    Edit5->Clear();

  Edit6->Clear();

ListBox1->Clear();

if(ComboBox1->Text!="")

{

try{

int x=StrToInt(ComboBox1->Text);

ApartmentHouse *tmp=0;

tmp=Current->search(x);

if(tmp!=0)

{

while(tmp->checkShowAll())

{

  ListBox1->Items->Add(tmp->ShowAll()->getNumber());

}

LB1=tmp->getNumber();

tmp->~ApartmentHouse();

}

}

catch(...)

{

  ShowMessage("Возможен ввод целых чисел");

}

}

}

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

void __fastcall TForm7::Button3Click(TObject *Sender) //удаление заданной квартиры из //дома

{

 if(Current!=0)//если контейнер создан

{

  if(ComboBox2->Text!=""&&Edit7->Text!="")

  {

  try{

  int x=StrToInt(ComboBox2->Text);

  int y=StrToInt(Edit7->Text);

  Current->DelAp(x,y);   //удаление

  int Q=CheckListBox1->Items->Count;

  for(int i=0;i<Q;i++)

  {   //если заданный дом отображается в комп-ах,то информация в них обновляется

   if(CheckListBox1->Selected[i]==true)

   {

int W=StrToInt(CheckListBox1->Items->Strings[i]);

if(W==x)

{

ApartmentHouse *tmp=0;

tmp=Current->search(W);

if(tmp!=0)

{

ListBox2->Clear();

ListBox3->Clear();

while(tmp->checkShowAll())

{

Apartment *TMP=tmp->ShowAll();

ListBox2->Items->Add(TMP->getNumber());

float x=TMP->getArea();

AnsiString str = FormatFloat("0.00",x);

ListBox3->Items->Add(str);

}

tmp->~ApartmentHouse();

}

}

break;

   }

  }

}

catch(...)

  {

ShowMessage("Возможен ввод целых чисел");

  }

  }

}

Edit7->Clear();

  ListBox1->Clear();

if(ComboBox1->Text!="")

{

try{

int x=StrToInt(ComboBox1->Text);

ApartmentHouse *tmp=0;

tmp=Current->search(x);

if(tmp!=0)

{

while(tmp->checkShowAll())

{

  ListBox1->Items->Add(tmp->ShowAll()->getNumber());

}

LB1=tmp->getNumber();

tmp->~ApartmentHouse();

}

}

catch(...)

{

  ShowMessage("Возможен ввод целых чисел");

 }

}

}

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

void __fastcall TForm7::CheckListBox1ClickCheck(TObject *Sender)  //вывод инф-ии выбранного  дома

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