Автор: Пользователь скрыл имя, 11 Января 2012 в 10:03, контрольная работа
Разработать информационную систему с применением динамических структур данных. Для решения поставленной задачи рекомендуется использовать динамические структуры (списки, деревья, очереди, стеки и т.п.) в том случае, если для решения поставленной задачи их использование окажется более целесообразным. Обеспечить возможность выполнения следующих операций над выбранными структурами данных:
инициализацию;
добавление новых элементов;
удаление элементов;
перемещение по структуре данных;
поиск элементов структуры данных, отвечающих заданным критериям;
вывод всех элементов структуры данных на экран.
задание
3
назначение основные возможности и характеристики программы
4
постановка задачи
5
структурная схема фрагмента информационной системы
8
таблица имен
9
иерархия объектов
11
разработка интерфейса программы
12
инструкция по работе с программой
14
заключение
18
литература.
19
Приложение 1 (исходный код)
20
Приложение 2. (пример работы)
35
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[
LV->Items->Item[i]->SubItems->
LV->Items->Item[i]->SubItems->
LV->Items->Item[i]->SubItems->
LV->Items->Item[i]->SubItems->
}
}
//----------------------------
__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.
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.
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,
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,
a.Pls=Edit4->Text;
a.Ed=ComboBox1->Text;
//Изменяем запись
Form1->P[Form1->LV->Selected->
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("
Close();
return;
}
Form1->LV->Selected=Form1->LV-
Close();
}
//----------------------------
void __fastcall TF4::Button2Click(TObject *Sender)
{