Структуры данных

Автор: Пользователь скрыл имя, 11 Января 2012 в 10:03, контрольная работа

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

Разработать информационную систему с применением динамических структур данных. Для решения поставленной задачи рекомендуется использовать динамические структуры (списки, деревья, очереди, стеки и т.п.) в том случае, если для решения поставленной задачи их использование окажется более целесообразным. Обеспечить возможность выполнения следующих операций над выбранными структурами данных:
инициализацию;
добавление новых элементов;
удаление элементов;
перемещение по структуре данных;
поиск элементов структуры данных, отвечающих заданным критериям;
вывод всех элементов структуры данных на экран.

Содержание

задание
3
назначение основные возможности и характеристики программы
4
постановка задачи
5
структурная схема фрагмента информационной системы
8
таблица имен
9
иерархия объектов
11
разработка интерфейса программы
12
инструкция по работе с программой
14
заключение
18
литература.
19
Приложение 1 (исходный код)
20
Приложение 2. (пример работы)
35

Работа содержит 1 файл

1.doc

— 298.50 Кб (Скачать)

        void __fastcall Button2Click(TObject *Sender);

        void __fastcall Button3Click(TObject *Sender);

        void __fastcall Button4Click(TObject *Sender);

private: // User declarations

public:  // User declarations

        __fastcall TForm1(TComponent* Owner);

tovarlst P;

void Out();

};

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

extern PACKAGE TForm1 *Form1;

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

#endif 

Файл с алгоритмом работы основной формы 

//Модуль главнеой  формы

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

#include <vcl.h>

#pragma hdrstop 

#include "sklad1.h"

#include "sklad2.h"

#include "sklad3.h"

#include "sklad4.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1; 

//вывод списка

void TForm1::Out()

{ 

        int i; 
 
 

        LV->Items->Clear(); 

        //цикл по всем записям

       for(i=0;i<P.Count();i++)

         {

     

       //Добавляем записи в ListView *LV

       LV->Items->Add();

       LV->Items->Item[i]->Caption=P[i].Art;

       LV->Items->Item[i]->SubItems->Add(P[i].Name);

       LV->Items->Item[i]->SubItems->Add(IntToStr(P[i].Kol));

       LV->Items->Item[i]->SubItems->Add(P[i].Ed);

       LV->Items->Item[i]->SubItems->Add(P[i].Pls); 

         } 
 

} 
 
 

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

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

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

//Реакция на  нажаите кнопки - "Добавить"

void __fastcall TForm1::AddClick(TObject *Sender)

{

//очищаем поля  ввода на форме редактипрования

//F2->Caption="Добавление записи"

F2->Edit1->Text="";

F2->Edit2->Text="";

F2->Edit3->Text="";

F2->Edit4->Text="";

//вызов формы  добавления записи

F2->ShowModal();

Out(); //вывод измененного  списка

}

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

//Реакция на  нажаите кнопки - "Удалить"

void __fastcall TForm1::DelClick(TObject *Sender)

{ 

if(LV->Selected==0) return;

if (Application->MessageBox("Вы уверены?","Удаление записи",MB_YESNO)==ID_YES)

P.Delete(LV->Selected->Index); //удаляем запись

Out();  //вывод измененного списка

}

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

void __fastcall TForm1::ExtClick(TObject *Sender)

{

Close();

}

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

//реакция на  двойной клик на записи

void __fastcall TForm1::LBDblClick(TObject *Sender)

{

tovar a;

a=P[LV->Selected->Index];

F3->Edit1->Text=a.Art;

F3->Edit2->Text=a.Name;

F3->Edit3->Text=IntToStr(a.Kol);

F3->Edit4->Text=a.Pls;

F3->ComboBox1->Text=a.Ed;

F3->ShowModal();

Out();

}

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

//Реакция на  нажаите кнопки - "Поиск"

void __fastcall TForm1::Button1Click(TObject *Sender)

{

F4->ShowModal(); //вызов  формы поиска

}

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

//Реакция на  нажаите кнопки - "Редактировать"

void __fastcall TForm1::Button2Click(TObject *Sender)

{

tovar a;

if(LV->Selected==0) return;

a=P[LV->Selected->Index];

//F2->Caption="Редактирование  записи"

//заполняем поля  редактирования

F3->Edit1->Text=a.Art;

F3->Edit2->Text=a.Name;

F3->Edit3->Text=IntToStr(a.Kol);

F3->Edit4->Text=a.Pls;

F3->ComboBox1->Text=a.Ed;

//вызов формы  редактирования

F3->ShowModal();

Out();  //вывод  измененного списка

}

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

//Реакция на  нажаите кнопки - "Сортировать по артикулу"

void __fastcall TForm1::Button3Click(TObject *Sender)

{

P.SortByArt(); //сортировка

Out();  //вывод  отсортированного списка

}

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

//Реакция на  нажаите кнопки - "Сортировать по наименованию"

void __fastcall TForm1::Button4Click(TObject *Sender)

{

P.SortByName();//сортировка

Out();  //вывод  отсортированного списка 

}

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

void __fastcall TForm1::FormCreate(TObject *Sender)

{

TStringList *L;

int i;

tovar a;

L=new TStringList; 

//загружаем список  из файла

L->LoadFromFile("tovar.lst"); 

//вносим записи  в список

     for(i=0;i<L->Count;i+=5)

         {

       a.Art=L->Strings[i];

       a.Name=L->Strings[i+1];

       a.Kol=StrToInt(L->Strings[i+2]);

       a.Ed=L->Strings[i+3];

       a.Pls=L->Strings[i+4];

       P.Add(a); 

         }

Out();

}

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

//при выходе  автоматически сохраняем

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)

{

TStringList *L;

int i;

tovar a;

L=new TStringList; 

    //цикл  по всем записям

       for(i=0;i<P.Count();i++)

         {

       L->Add(P[i].Art);

       L->Add(P[i].Name);

       L->Add(IntToStr(P[i].Kol));

       L->Add(P[i].Ed);

       L->Add(P[i].Pls);

       }

//сохраняем список в файл

L->SaveToFile("tovar.lst"); 

}

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

//Модуль добавления записи

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

#include <vcl.h>

#pragma hdrstop 

#include "sklad2.h"

#include "sklad1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TF2 *F2;

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

__fastcall TF2::TF2(TComponent* Owner)

        : TForm(Owner)

{

}

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

//РЕакция на  нажатие ОК

void __fastcall TF2::Button1Click(TObject *Sender)

{

tovar a;

a.Art=Edit1->Text;

a.Name=Edit2->Text;

a.Kol=StrToIntDef(Edit3->Text,0);

a.Pls=Edit4->Text;

//Добавляем в  список

Form1->P.Add(a);

F2->Close();

}

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

//Реакция на нажатие "Отмена"

void __fastcall TF2::Button2Click(TObject *Sender)

{

Close();

}

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

//Модуль редактирования записи 

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

//Модуль редактирования

#include <vcl.h>

#pragma hdrstop 

#include "sklad1.h"

#include "sklad3.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TF3 *F3;

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

__fastcall TF3::TF3(TComponent* Owner)

        : TForm(Owner)

{

}

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

//Реакция на  нажатие "Ок"

void __fastcall TF3::Button1Click(TObject *Sender)

{

tovar a;

a.Art=Edit1->Text;

a.Name=Edit2->Text;

a.Kol=StrToIntDef(Edit3->Text,0);

a.Pls=Edit4->Text;

a.Ed=ComboBox1->Text;

//Изменяем запись

Form1->P[Form1->LV->Selected->Index]=a;

Close();

}

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

//Модуль поиска 

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

#include <vcl.h>

#pragma hdrstop 

#include "sklad4.h"

#include "sklad1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TF4 *F4;

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

__fastcall TF4::TF4(TComponent* Owner)

        : TForm(Owner)

{

}

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

void __fastcall TF4::Button1Click(TObject *Sender)

{

int k;

k=Form1->P.Search(Edit1->Text);

if(k==-1)

{

Application->MessageBox("Запись  не найдена","Запись не найдена",MB_OK);

Close();

return;

}

Form1->LV->Selected=Form1->LV->Items->Item[k];

Close(); 

}

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

void __fastcall TF4::Button2Click(TObject *Sender)

{

Информация о работе Структуры данных