- •70 Зміст
- •4.3. Порядок та методика випробувань 27
- •1.5. Стадії та етапи розробки
- •1.6. Порядок контролю та приймання
- •Практична частина
- •2.3. Функціональна специфікація
- •2.3.1. Опис функціональних можливостей Розроблена в процесі виконнання курсової роботи програма забезпечує наступні функціональні можливості, що реалізують поставлене завдання:
- •2.3.2. Опис інтерфейсу користувача
- •2.4. Технічна специфікація
- •2.4.1. Опис діаграми модулів
- •3. Конструювання програмного забезпечення
- •3.1. Опис і обґрунтування обраних програмних засобів
- •3.2. Опис програми
- •4. Програма та методика випробувань
- •Курсовий реферат
- •I. Концепція………………………………………………………………..……49
- •Концепція
- •Глава 1 Складність
- •Глава 2 Об'єктна модель
- •Глава 3 Класи і об'єкти
- •Методологія
- •Глава 1 Система позначень
- •Глава 2 Процес Основні принципи.
- •Глава 3 Практичні питання Управління і планування.
- •Система реєстрації помилок в програмних засобах
4. Програма та методика випробувань
4.1. Об‘єкт випробувань
Об’єктом випробувань є створене в процесі виконання курсової роботи програмне забезпечення. Для перевірки коректності роботи програми було проведено ряд тестів. Для тестування використовувалися файли з директорії“baza”, що постачається разом з програмним продуктом.
4.2. Використані технічні засоби
При проведенні тестування використовувались технічні засоби, наведені у підрозділі 3.2.4. “Використані технічні засоби”.При проведенні тестів використовувалась система ручного тестування.
4.3. Порядок та методика випробувань
Для проведення комплексного тестування розробленого програмного забезпечення на коректність роботи необхідним є виконання набору тестів, наведених у підпункті 1.3.5. “Вимоги до тестування програмного забезпечення”.
При проведенні тестування обов’язковим є дотримання послідовності проведення тестів.
5. ВИСНОВОК
В процесі виконання курсової роботи створено програмне забезпечення, що показуе авіарейси в аеропорті.
Розроблене програма забезпечує надійне та зручний перегляд авіарейсів в аеропорті, а також надає можливість додавати нові авіарейси в базу даних.
А також отримав досвід по розробці баз даних в середовищі BorlandC++Builder.
6.ВИКОРИСТАНА ЛІТЕРАТУРА
Архангельский А.Я. - Программирование в C++ Builder (7-е издание) , С. Макконнелл «Совершений код» та Раді Бучь книги.
Сайти: Кіберформ http://www.cyberforum.ru/cpp-builder-database/Програм форумhttp://programmersforum.ru/forumdisplay.php?f=52та форум Кодебі.нетhttp://forum.codeby.net/forum54.html
7.ДОДАТКИ
Код програми
Код сторінки Prima. h
//---------------------------------------------------------------------------
#ifndef PrimaH
#define PrimaH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Dialogs.hpp>
#include <Grids.hpp>
#include <Menus.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
struct litac
{
char reis[100];
double men;
char data[100];
double cias;
double bani;
char avion[100];
void Del(int nomer);
};
class TFPrima : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
TMainMenu *MainMenu1;
TStringGrid *StringGrid1;
TEdit *Edit1;
TOpenDialog *OpenDialog1;
TSaveDialog *SaveDialog1;
TMenuItem *N1;
TMenuItem *N2;
TMenuItem *N5;
TMenuItem *N6;
TMenuItem *N8;
TMenuItem *N9;
TMenuItem *N4;
TMenuItem *N11;
TMenuItem *N10;
TPopupMenu *PopupMenu1;
TMenuItem *N3;
TMenuItem *N7;
TMenuItem *N12;
TImage *Image1;
void __fastcall N2Click(TObject *Sender);
void __fastcall N5Click(TObject *Sender);
void __fastcall N6Click(TObject *Sender);
void __fastcall N8Click(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall N4Click(TObject *Sender);
void __fastcall N10Click(TObject *Sender);
void __fastcall FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift);
void __fastcall N3Click(TObject *Sender);
void __fastcall N12Click(TObject *Sender);
void __fastcall N7Click(TObject *Sender);
void __fastcall N11Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TFPrima(TComponent* Owner);
litac av[100];
int i;
void show(TStringGrid *sg);
bool edit;
int k;
};
//---------------------------------------------------------------------------
extern PACKAGE TFPrima *FPrima;
//---------------------------------------------------------------------------
#endif
Код сторінки Prima.срр
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
#include <jpeg.hpp>
#include "Prima.h" //головна форма
#include "Adoua.h" //форма для додаваня запису
#include "Atria.h" //пошукова форма
#include "Red.h" //форма для показу
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFPrima *FPrima;
void TFPrima::show(TStringGrid *sg)
{ //extern int i;
sg->RowCount=FPrima->i+1;
for (int k=1;k<sg->RowCount;k++)
for (int l=0;l<sg->ColCount;l++)
sg->Cells[l][k]="";
for (int j=0; j<i; j++)
{
sg->Cells[0][j+1]=j+1;
sg->Cells[1][j+1]=FPrima->av[j].reis;
sg->Cells[2][j+1]=FPrima->av[j].men;
sg->Cells[3][j+1]=FPrima->av[j].data;
sg->Cells[4][j+1]=FPrima->av[j].cias;
sg->Cells[5][j+1]=FPrima->av[j].bani;
sg->Cells[6][j+1]=FPrima->av[j].avion;
}
}
//---------------------------------------------------------------------------
__fastcall TFPrima::TFPrima(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::N2Click(TObject *Sender)
{
FILE *fil;
if(OpenDialog1->Execute())
{
i=0;
fil = fopen(OpenDialog1->FileName.c_str(),"r");
while (!feof(fil))
fread(&av[i++],sizeof(litac),1,fil);
fclose(fil);
i--;
show(StringGrid1);
edit = false;
}
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::N5Click(TObject *Sender)
{
FCautam->Show();
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::N6Click(TObject *Sender)
{
FILE *fil;
if(SaveDialog1->Execute())
{
fil = fopen(SaveDialog1->FileName.c_str(),"w");
for (int j=0;j<i;j++)
fwrite(&av[j],sizeof(litac),1,fil);
fclose(fil);
edit = false;
}
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::N8Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::Button1Click(TObject *Sender)
{
if (FPrima->Edit1->Text != "")
{
int k;
k=StrToInt(Edit1->Text);
if (k<1 || k>i)
return;
k--;
for (int j=k; j<i; j++)
FPrima->av[j]=FPrima->av[j+1];
FPrima->i--;
edit = true;
show(StringGrid1);
}
else
{
ShowMessage("Введіть рядок для видалення");
}
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::FormCreate(TObject *Sender)
{
FPrima->StringGrid1->Cells[0][0]="N";
FPrima->StringGrid1->Cells[1][0]="Рейс";
FPrima->StringGrid1->Cells[2][0]="Пасажири";
FPrima->StringGrid1->Cells[3][0] ="Дата";
FPrima->StringGrid1->Cells[4][0]="Час";
FPrima->StringGrid1->Cells[5][0]="Гроші";
FPrima->StringGrid1->Cells[6][0]="Літак";
i=0;
edit = false;
Image1->Picture->LoadFromFile("Avion-1.jpg");
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::FormClose(TObject *Sender, TCloseAction &Action)
{
if (edit == true)
{
int res= Application->MessageBoxA("Зерегти зміни?","Файл не збережений",MB_YESNOCANCEL | MB_ICONQUESTION);
if ( res== IDYES)
N5->Click();
else
if (res== IDNO)
return;
else
{
//Action = false;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::N4Click(TObject *Sender)
{
FDaem->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::N10Click(TObject *Sender)
{
for (int q=0; q<FPrima->StringGrid1->ColCount; q++)
for (int w=1; w<FPrima->StringGrid1->RowCount; w++)
StringGrid1->Cells[q][w]="";
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key == 'Q' && Shift.Contains(ssCtrl))
{
FILE *fil;
if(OpenDialog1->Execute())
{
i=0;
fil = fopen(OpenDialog1->FileName.c_str(),"r");
while (!feof(fil))
fread(&av[i++],sizeof(litac),1,fil);
fclose(fil);
i--;
show(StringGrid1);
edit = false;
}
}
if (Key == 'S' && Shift.Contains(ssCtrl))
{
FILE *fil;
if(SaveDialog1->Execute())
{
fil = fopen(SaveDialog1->FileName.c_str(),"w");
for (int j=0;j<i;j++)
fwrite(&av[j],sizeof(litac),1,fil);
fclose(fil);
edit = false;
}
}
if (Key == 'A' && Shift.Contains(ssCtrl))
FCautam->ShowModal();
if (Key == 'D' && Shift.Contains(ssCtrl))
FDaem->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::N12Click(TObject *Sender)
{
for(int j=0; j<StringGrid1->ColCount; j++)
for (int t=1; t<StringGrid1->RowCount; t++)
StringGrid1->Cells[j][t]="";
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::N7Click(TObject *Sender)
{
k = StringGrid1->Row-1;
FRed->Edit1->Text=AnsiString(FPrima->av[k].reis);
FRed->Edit2->Text=FPrima->av[k].men;
FRed->Edit3->Text=FPrima->av[k].data;
FRed->Edit4->Text=FPrima->av[k].cias;
FRed->Edit5->Text=FPrima->av[k].bani;
FRed->Edit6->Text=AnsiString(FPrima->av[k].avion);
FRed->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TFPrima::N11Click(TObject *Sender)
{
k = StringGrid1->Row-1;
FRed->Edit1->Text=AnsiString(FPrima->av[k].reis);
FRed->Edit2->Text=FPrima->av[k].men;
FRed->Edit3->Text=FPrima->av[k].data;
FRed->Edit4->Text=FPrima->av[k].cias;
FRed->Edit5->Text=FPrima->av[k].bani;
FRed->Edit6->Text=AnsiString(FPrima->av[k].avion);
FRed->ShowModal();
}
//---------------------------------------------------------------------------
Код сторінки Red.срр
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Prima.h"
#include "Red.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFRed *FRed;
//---------------------------------------------------------------------------
__fastcall TFRed::TFRed(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFRed::FormCreate(TObject *Sender)
{
Image1->Picture->LoadFromFile("Avion-1.jpg");
}
//---------------------------------------------------------------------------
void __fastcall TFRed::Button2Click(TObject *Sender)
{
Close ();
}
//---------------------------------------------------------------------------
Код сторінки Adoua.срр
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Adoua.h"
#include "Prima.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFDaem *FDaem;
class io{
public:
void cler()
{
FDaem->Edit1->Clear();
FDaem->Edit2->Clear();
FDaem->Edit3->Clear();
FDaem->Edit4->Clear();
FDaem->Edit5->Clear();
}
void Adoua()
{
if ((FDaem->Edit1->Text != "")&& (FDaem->Edit2->Text != "")
&& (FDaem->Edit3->Text != "")&&
(FDaem->Edit4->Text != "")&& (FDaem->Edit5->Text != "")
&& (FDaem->DateTimePicker1->DateTime.DateString() != ""))
{
strcpy(FPrima->av[FPrima->i].reis,FDaem->Edit1->Text.c_str());
FPrima->av[FPrima->i].men=StrToFloat(FDaem->Edit2->Text);
FPrima->av[FPrima->i].cias=StrToFloat(FDaem->Edit3->Text);
FPrima->av[FPrima->i].bani=StrToFloat(FDaem->Edit4->Text);
strcpy(FPrima->av[FPrima->i].avion,FDaem->Edit5->Text.c_str());
strcpy(FPrima->av[FPrima->i].data, DateToStr( FDaem->DateTimePicker1->Date).c_str());
FPrima->i++;
FPrima->show(FPrima->StringGrid1);
}
else {
ShowMessage("Заповніть усі поля");
}
}
};
//---------------------------------------------------------------------------
__fastcall TFDaem::TFDaem(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TFDaem::Button1Click(TObject *Sender)
{
io Adoua;
Adoua.Adoua();
FPrima->edit = true;
}
//---------------------------------------------------------------------------
void __fastcall TFDaem::Button2Click(TObject *Sender)
{
io cler;
cler.cler();
}
//---------------------------------------------------------------------------
void __fastcall TFDaem::Button3Click(TObject *Sender)
{
io cler;
cler.cler();
Close();
}
//---------------------------------------------------------------------------
void __fastcall TFDaem::N3Click(TObject *Sender)
{
io adoua;
adoua.Adoua();
}
//---------------------------------------------------------------------------
void __fastcall TFDaem::N4Click(TObject *Sender)
{
io cler;
cler.cler();
}
//---------------------------------------------------------------------------
void __fastcall TFDaem::N5Click(TObject *Sender)
{
io cler;
cler.cler();
Close();
}
void __fastcall TFDaem::Edit3KeyPress(TObject *Sender, char &Key)
{
if ((Key<'0' || Key>'9') && (Key!=',') && (Key!=8))
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TFDaem::Edit4KeyPress(TObject *Sender, char &Key)
{
if ((Key<'0' || Key>'9') && (Key!=',') && (Key!=8))
Key=0;
}
//---------------------------------------------------------------------------
void __fastcall TFDaem::FormCreate(TObject *Sender)
{
Image1->Picture->LoadFromFile("Avion-1.jpg");
}
//---------------------------------------------------------------------------
Код сторінки Atria.срр
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Prima.h"
#include "Adoua.h"
#include "Atria.h"
#include <dstring.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFCautam *FCautam;
//---------------------------------------------------------------------------
__fastcall TFCautam::TFCautam(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void cp ()
{
FCautam->Edit1->Visible=false;
FCautam->Edit2->Visible=false;
FCautam->Edit3->Visible=false;
FCautam->Edit4->Visible=false;
FCautam->Edit5->Visible=false;
FCautam->Edit6->Visible=false;
FCautam->Button1->Visible=false;
FCautam->Button2->Visible=false;
FCautam->Button3->Visible=false;
FCautam->Button6->Visible=false;
FCautam->Button7->Visible=false;
FCautam->Button8->Visible=false;
FCautam->Label9->Visible=false;
FCautam->Label3->Visible=false;
FCautam->Label4->Visible=false;
FCautam->Label5->Visible=false;
FCautam->Label6->Visible=false;
FCautam->Label7->Visible=false;
FCautam->Label8->Visible=false;
return;
}
void __fastcall TFCautam::Button1Click(TObject *Sender)
{
int s=1;
bool find=false;
String tmp;
tmp=Edit2->Text;
for (int i=0; i<FPrima->i; i++)
{
if (AnsiString(FPrima->av[i].reis)==tmp)
{
StringGrid1->Cells[0][s]=i+1;
StringGrid1->Cells[1][s]=FPrima->av[i].reis;
StringGrid1->Cells[2][s]=FPrima->av[i].men;
StringGrid1->Cells[3][s]=FPrima->av[i].data;
StringGrid1->Cells[4][s]=FPrima->av[i].cias;
StringGrid1->Cells[5][s]=FPrima->av[i].bani;
StringGrid1->Cells[6][s]=FPrima->av[i].avion;
s++;
find = true;
}
if (!find)
{
ShowMessage("Збігів не знайдено");
}
}
}
//---------------------------------------------------------------------------
void __fastcall TFCautam::FormCreate(TObject *Sender)
{
FCautam->StringGrid1->Cells[0][0]="N";
FCautam->StringGrid1->Cells[1][0]="Рейс";
FCautam->StringGrid1->Cells[2][0]="Пасажири";
FCautam->StringGrid1->Cells[3][0]="Дата";
FCautam->StringGrid1->Cells[4][0]="Година";
FCautam->StringGrid1->Cells[5][0]="Гроші";
FCautam->StringGrid1->Cells[6][0]="Літак";
FPrima->i=0;
FPrima->edit = false;
cp();
Button1->Visible=false;
Edit2->Visible=false;
Label3->Visible=false;
Image1->Picture->LoadFromFile("Avion-1.jpg");
}
void __fastcall TFCautam::Button6Click(TObject *Sender)
{
int s=1;
bool find=false;
String pu;
pu=Edit1->Text;
for (int i=0; i<FPrima->i; i++)
{
if (AnsiString(FPrima->av[i].men)==pu)
{
StringGrid1->Cells[0][s]=i+1;
StringGrid1->Cells[1][s]=FPrima->av[i].reis;
StringGrid1->Cells[2][s]=FPrima->av[i].men;
StringGrid1->Cells[3][s]=FPrima->av[i].data;
StringGrid1->Cells[4][s]=FPrima->av[i].cias;
StringGrid1->Cells[5][s]=FPrima->av[i].bani;
StringGrid1->Cells[6][s]=FPrima->av[i].avion;
s++;
find = true;
}
}
if (!find)
{
ShowMessage("Збігів не знайдено");
}
}
//---------------------------------------------------------------------------
void __fastcall TFCautam::Button7Click(TObject *Sender)
{
int s=1;
bool find=false;
String pu;
pu=Edit5->Text;
for (int i=0; i<FPrima->i; i++)
{
if (AnsiString(FPrima->av[i].avion)==pu)
{
StringGrid1->Cells[0][s]=i+1;
StringGrid1->Cells[1][s]=FPrima->av[i].reis;
StringGrid1->Cells[2][s]=FPrima->av[i].men;
StringGrid1->Cells[3][s]=FPrima->av[i].data;
StringGrid1->Cells[4][s]=FPrima->av[i].cias;
StringGrid1->Cells[5][s]=FPrima->av[i].bani;
StringGrid1->Cells[6][s]=FPrima->av[i].avion;
s++;
find = true;
}
}
if (!find)
{
ShowMessage("Збігів не знайдено");
}
}
//---------------------------------------------------------------------------
void __fastcall TFCautam::Button8Click(TObject *Sender)
{
int s=1;
bool find=false;
double pu, la;
la=StrToFloat(Edit3->Text);
pu=StrToFloat(Edit4->Text);
for (int i=0; i<FPrima->i; i++)
{
if ((StrToFloat(AnsiString(FPrima->av[i].bani)) >= la) &&
(StrToFloat(AnsiString(FPrima->av[i].bani)) <= pu))
{
StringGrid1->Cells[0][s]=i+1;
StringGrid1->Cells[1][s]=FPrima->av[i].reis;
StringGrid1->Cells[2][s]=FPrima->av[i].men;
StringGrid1->Cells[3][s]=FPrima->av[i].data;
StringGrid1->Cells[4][s]=FPrima->av[i].cias;
StringGrid1->Cells[5][s]=FPrima->av[i].bani;
StringGrid1->Cells[6][s]=FPrima->av[i].avion;
s++;
find = true;
}
}
if (!find)
{
ShowMessage("Збігів не знайдено");
}
}
//---------------------------------------------------------------------------
void __fastcall TFCautam::RadioButton5Click(TObject *Sender)
{
cp();
Button1->Visible=true;
Button2->Visible=true;
Edit2->Visible=true;
Label3->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TFCautam::RadioButton6Click(TObject *Sender)
{
cp();
Button6->Visible=true;
Button2->Visible=true;
Edit1->Visible=true;
Label4->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TFCautam::RadioButton8Click(TObject *Sender)
{
cp();
Button7->Visible=true;
Button2->Visible=true;
Edit5->Visible=true;
Label8->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TFCautam::RadioButton7Click(TObject *Sender)
{
cp();
Button8->Visible=true;
Button2->Visible=true;
Edit3->Visible=true;
Edit4->Visible=true;
Label5->Visible=true;
Label6->Visible=true;
Label7->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TFCautam::Button2Click(TObject *Sender)
{
for(int j=0; j<StringGrid1->ColCount; j++)
for (int t=1; t<StringGrid1->RowCount; t++)
StringGrid1->Cells[j][t]="";
}
//---------------------------------------------------------------------------
void __fastcall TFCautam::Button3Click(TObject *Sender)
{
int s=1;
bool find=false;
String pu;
pu=Edit6->Text;
for (int i=0; i<FPrima->i; i++)
{
if (AnsiString(FPrima->av[i].data)==pu)
{
StringGrid1->Cells[0][s]=i+1;
StringGrid1->Cells[1][s]=FPrima->av[i].reis;
StringGrid1->Cells[2][s]=FPrima->av[i].men;
StringGrid1->Cells[3][s]=FPrima->av[i].data;
StringGrid1->Cells[4][s]=FPrima->av[i].cias;
StringGrid1->Cells[5][s]=FPrima->av[i].bani;
StringGrid1->Cells[6][s]=FPrima->av[i].avion;
s++;
find = true;
}
}
if (!find)
{
ShowMessage("Збігів не знайдено");
}
}
//---------------------------------------------------------------------------
void __fastcall TFCautam::RadioButton1Click(TObject *Sender)
{
cp();
Button3->Visible=true;
Button2->Visible=true;
Edit6->Visible=true;
Label9->Visible=true;
}
//---------------------------------------------------------------------------