База данных

Автор работы: Пользователь скрыл имя, 09 Июня 2013 в 21:32, отчет по практике

Краткое описание

При разработке приложения необходимо обеспечить реализацию требований, описанных в разделе «Общие требования». В дополнение к общим требованиям, реализовать следующие запросы на выбор данных:
1. Вывести сведения обо всех странах, в которых побывал турист «Х».
2. Определить, какие туристы посещали страну «Х».
3. Вывести сведения о наиболее дешевом и наиболее дорогом турах, в истории туриста «Х».

Содержание

1. Задание………………………………………………………3
2. Определение структуры для считывания записей из файлов БД(фаил StructDef.h)………………………………………4
3. Описание структур для ОСНОВНОЙ работы с данными в памяти приложения……………………………………….5
4. Основное окно приложения……………………………...6
5. Список литературы……………………………………...32

Прикрепленные файлы: 1 файл

ПЗ1.docx

— 1.05 Мб (Скачать документ)

for (int i = 0; i<MainForm->Strturs->Count; i++)

        {

stranaturist = (TStrtur *)MainForm->Strturs->Items[i];

if (stranaturist->NazvanieStrana.AnsiCompareIC(Strana) == 0 && stranaturist->PassportTurist.AnsiCompareIC(Pasport) == 0 && stranaturist->DataPutovki == Date)

break ;

        }

 

        // Заполнение  значений новой строки значениями  из элементов графического окна

stranaturist->NazvanieStrana  = edNazvanieST->Text;

stranaturist->PassportTurist = edPassportST->Text;

stranaturist->DataPutovki = edDataPutevki->DateTime;

stranaturist->StoimostTura = edStoimostTura->Text.ToDouble();

stranaturist->Skidka = edSkidka->Text.ToInt();

 

this->Close();

    }

 

}

 

Функции члены класса TfmViewStrana

 

 

Описание класса создающего окно таблицы «Страна» находится в  заголовочном файле"fmViewStranaUnit.h"

 

Внешний вид окна представлен  на рисунке 7

 

Рисунок 6

 

Аналогичны предыдущему  классу описаны функции для данного  окна:

 

void __fastcall TfmViewStrana::Button1Click(TObject *Sender)фильтр (показать/скрыть)

 

void TfmViewStrana::LoadData()Загрузкаэлементовтаблицы

 

void __fastcall TfmViewStrana::btAddClick(TObject *Sender)Добавитьновыйэлемент

 

void __fastcall TfmViewStrana::btDeleteClick(TObject *Sender)Удалитьэлементтаблицы

 

void __fastcall TfmViewStrana::btUpdateClick(TObject *Sender)Изменитьэлементтаблицы

 

void __fastcall TfmViewStrana::Button2Click(TObject *Sender)Применениефильтрактаблице

 

Прииспользованиифункцийvoid __fastcallTfmViewStrana::btAddClick(TObject *Sender), void __fastcallTfmViewStrana::btUpdateClick(TObject *Sender)

 

Создается элемент класса TfmStrana который созадет окно представленное на рисунке 8

 

Рисунок 7

 

 

Функции члены класса  TfmViewTurist

 

 

Описание класса создающего окно таблицы «Турист» находится в  заголовочном файле" fmViewTuristUnit.h "

 

Внешний вид окна представлен  на рисунке 9

 

Рисунок 8

 

Аналогичны предыдущему  классу описаны функции для данного  окна:

 

void TfmViewTurist::LoadData() загрузка элементов таблицы

 

void __fastcallTfmViewTurist::btAddClick(TObject *Sender)добавлениеэлемента в список

 

void __fastcall TfmViewTurist::btUpdateClick(TObject *Sender)изменениеэлементасписка

 

void __fastcall TfmViewTurist::btDeleteClick(TObject *Sender)удалениеэлементасписка

 

void __fastcall TfmViewTurist::TuristTableFrame1lvListSelectItem(

      TObject *Sender, TListItem *Item, bool Selected)загрузкаизображениявверхнюючасть

 

void __fastcall TfmViewTurist::Button1Click(TObject *Sender)применитьфильтр

 

void __fastcall TfmViewTurist::Button2Click(TObject *Sender)фильтр (показать/скрыть)

 

void __fastcall TfmViewTurist::TuristTableFrame2lvListSelectItem(

      TObject *Sender, TListItem *Item, bool Selected)загрузкаизображениявнижнюючасть

 

void __fastcall TfmViewTurist::btCloseClick(TObject *Sender)закрытьокно

 

 

 

Прииспользованиифункцийvoid __fastcall TfmViewTurist::btUpdateClick(TObject *Sender), void __fastcall TfmViewTurist::btAddClick(TObject *Sender)

 

Создается элемент класса TfmTurist который создаёт окно представленное на рисунке 10

 

Рисунок 9

 

 

 

 

 

Функции члены класса TRequestForm

 

 

Описание класса создающего окно с запросами находится в  заголовочном файле"RequestUnit.h"

 

Внешний вид окна представлен  на рисунке 11

 

Рисунок 10

 

 

КклассеTRequestFormописанафункцияvoid__fastcallTRequestForm::Button1Click(TObject *Sender) которая в зависимости от выбраного элемента в RadioButton выполняет необходимые действия.

 

{

  // 1. Вывести сведения обо всех странах, в которых побывал турист "Х"

if (RadioButton1->Checked)

  {

this->lvList->Columns->Add();

this->lvList->Column[0]->Caption = "Название";

this->lvList->Column[0]->AutoSize = true;

this->lvList->Column[0]->Width = 80;

this->lvList->Columns->Add();

this->lvList->Column[1]->Caption = "Описание";

this->lvList->Column[1]->AutoSize = true;

this->lvList->Column[1]->Width = 200;

this->lvList->Columns->Add();

this->lvList->Column[2]->Caption = "Рейтинг";

this->lvList->Column[2]->AutoSize = true;

this->lvList->Column[2]->Width = 50;

this->lvList->Columns->Add();

this->lvList->Column[3]->Caption = "Началосезона";

this->lvList->Column[3]->AutoSize = true;

this->lvList->Column[3]->Width = 80;

this->lvList->Columns->Add();

this->lvList->Column[4]->Caption = "Окончаниесезона";

this->lvList->Column[4]->AutoSize = true;

this->lvList->Column[4]->Width = 80;

 

    String pasport;

for (int i=0;i<MainForm->Turists->Count;i++)

    {

if (((TTurist*)MainForm->Turists->Items[i])->Fio.LowerCase().Pos(this->Edit1->Text.LowerCase()) != 0)

      {

pasport = ((TTurist*)MainForm->Turists->Items[i])->Passport;

break;

      }

    }

    TListItem *item;

for (int i=0;i<MainForm->Strturs->Count;i++)

    {

if (((TStrtur*)MainForm->Strturs->Items[i])->PassportTurist == pasport)

      {

for (int j=0;j<MainForm->Strans->Count;j++)

        {

if (((TStrana*)MainForm->Strans->Items[j])->Nazvanie  == ((TStrtur*)MainForm->Strturs->Items[i])->NazvanieStrana)

{

            // Добавление строки в таблицу  на экране

item = lvList->Items->Add();

            // Заполнение значений новой строки  в таблице на экране значениями  из i-ой строки текущей таблицы

item->Caption = ((TStrana*)MainForm->Strans->Items[j])->Nazvanie;

item->SubItems->Add(((TStrana*)MainForm->Strans->Items[j])->Opisanie);

item->SubItems->Add(((TStrana*)MainForm->Strans->Items[j])->Raiting);

item->SubItems->Add(((TStrana*)MainForm->Strans->Items[j])->NachaloSezona);

item->SubItems->Add(((TStrana*)MainForm->Strans->Items[j])->OkonchanieSezona);

}

        }

      }

    }

  }

  // 2. Определить, какие туристы посещали страну "Х".

if (RadioButton2->Checked)

  {

this->lvList->Columns->Add();

this->lvList->Column[0]->Caption = "Паспорт";

this->lvList->Column[0]->AutoSize = true;

this->lvList->Column[0]->Width = 80;

this->lvList->Columns->Add();

this->lvList->Column[1]->Caption = "ФИО";

this->lvList->Column[1]->AutoSize = true;

this->lvList->Column[1]->Width = 200;

this->lvList->Columns->Add();

this->lvList->Column[2]->Caption = "Датарождения";

this->lvList->Column[2]->AutoSize = true;

this->lvList->Column[2]->Width = 100;

this->lvList->Columns->Add();

this->lvList->Column[3]->Caption = "Национальность";

this->lvList->Column[3]->AutoSize = true;

this->lvList->Column[3]->Width = 150;

 

    TListItem *item;

for (int i=0;i<MainForm->Strturs->Count;i++)

    {

if (((TStrtur*)MainForm->Strturs->Items[i])->NazvanieStrana.LowerCase() == this->Edit1->Text.LowerCase())

      {

for (int j=0;j<MainForm->Turists->Count;j++)

        {

if(((TTurist*)MainForm->Turists->Items[j])->Passport == ((TStrtur*)MainForm->Strturs->Items[i])->PassportTurist)

{

            // Добавление строки в таблицу  на экране

item = lvList->Items->Add();

            // Заполнение значений новой строки  в таблице на экране значениями  из i-ой строки текущей таблицы

item->Caption = ((TTurist*)MainForm->Turists->Items[j])->Passport;

item->SubItems->Add(((TTurist*)MainForm->Turists->Items[j])->Fio);

item->SubItems->Add(((TTurist*)MainForm->Turists->Items[j])->Birthday.FormatString("dd.mm.yyyy"));

item->SubItems->Add(((TTurist*)MainForm->Turists->Items[j])->Nacionalnost);

 

break;

          }

        }

      }

    }

  }

  // 3. Вывести сведения о наиболее дешевом и наиболее дорогом турах, в истории туриста "Х".

if (RadioButton3->Checked)

  {

this->lvList->Columns->Add();

this->lvList->Column[0]->Caption = "Страна";

this->lvList->Column[0]->AutoSize = true;

this->lvList->Column[0]->Width = 80;

this->lvList->Columns->Add();

this->lvList->Column[1]->Caption = "Паспорт";

this->lvList->Column[1]->AutoSize = true;

this->lvList->Column[1]->Width = 100;

this->lvList->Columns->Add();

this->lvList->Column[2]->Caption = "Датапутевки";

this->lvList->Column[2]->AutoSize = true;

this->lvList->Column[2]->Width = 100;

this->lvList->Columns->Add();

this->lvList->Column[3]->Caption = "Стоимостьтура";

this->lvList->Column[3]->AutoSize = true;

this->lvList->Column[3]->Width = 150;

this->lvList->Columns->Add();

this->lvList->Column[4]->Caption = "Скидка";

this->lvList->Column[4]->AutoSize = true;

this->lvList->Column[4]->Width = 100;

 

    String pasport;

for (int i=0;i<MainForm->Turists->Count;i++)

    {

if (((TTurist*)MainForm->Turists->Items[i])->Fio.LowerCase().Pos(this->Edit1->Text.LowerCase()) != 0)

      {

pasport = ((TTurist*)MainForm->Turists->Items[i])->Passport;

break;

      }

    }

 

double max = 0, min = 999999999;

int maxi=0,mini=0;

for (int i=0;i<MainForm->Strturs->Count;i++)

{

if (((TStrtur*)MainForm->Strturs->Items[i])->PassportTurist == pasport)

      {

if (((TStrtur*)MainForm->Strturs->Items[i])->StoimostTura >= max)

        {

max = ((TStrtur*)MainForm->Strturs->Items[i])->StoimostTura;

maxi = i;

        }

if (((TStrtur*)MainForm->Strturs->Items[i])->StoimostTura <= min)

        {

min = ((TStrtur*)MainForm->Strturs->Items[i])->StoimostTura;

mini = i;

        }

      }

    }

    TListItem *item;

    // Минимальный

    // Добавление строки  в таблицу на экране

item = lvList->Items->Add();

    // Заполнение значений  новой строки в таблице на  экране значениями из i-ой строки  текущей таблицы

item->Caption = ((TStrtur*)MainForm->Strturs->Items[mini])->NazvanieStrana;

item->SubItems->Add(((TStrtur*)MainForm->Strturs->Items[mini])->PassportTurist);

item->SubItems->Add(((TStrtur*)MainForm->Strturs->Items[mini])->DataPutovki.FormatString("dd.mm.yyyy"));

item->SubItems->Add(((TStrtur*)MainForm->Strturs->Items[mini])->StoimostTura);

item->SubItems->Add(((TStrtur*)MainForm->Strturs->Items[mini])->Skidka);

 

// Максимальный

    // Добавление строки  в таблицу на экране

item = lvList->Items->Add();

    // Заполнение значений  новой строки в таблице на  экране значениями из i-ой строки  текущей таблицы

item->Caption = ((TStrtur*)MainForm->Strturs->Items[maxi])->NazvanieStrana;

item->SubItems->Add(((TStrtur*)MainForm->Strturs->Items[maxi])->PassportTurist);

item->SubItems->Add(((TStrtur*)MainForm->Strturs->Items[maxi])->DataPutovki.FormatString("dd.mm.yyyy"));

item->SubItems->Add(((TStrtur*)MainForm->Strturs->Items[maxi])->StoimostTura);

item->SubItems->Add(((TStrtur*)MainForm->Strturs->Items[maxi])->Skidka);

 

}

}

 

 

Функцияvoid __fastcall TRequestForm::FormClose(TObject *Sender,

      TCloseAction &Action)вызывает деструктор и закрывает окно.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список  литературы

 

 

 

 

  1. Программирование в С++ Builder 6.  -М.: Издательство бином 2003г -1152 с.: ил
  2. Х.М. Дейтел, П.Дж. Дейтел, Как программировать нс с++, 2001
  3. Borland C++ Builder Help
  4. Platform Software Development Kit, MSDN

 


Информация о работе База данных