Выбор стратегии тестирования и разработка тестов

 

Тестирование – процесс многократного повторения программы с целью обнаружения ошибок. Существуют следующие методы тестирования ПС:

- статическое тестирование – ручная проверка программы за столом;

- детерминированное тестирование – при различных комбинациях исходных данных;

- стохастическое – исходные данные выбираются произвольно, на выходе определяется качественное совпадение результатов или примерная оценка /13/.

При тестировании данного программного средства была применена ручная проверка программы за столом и детерминированное тестирование.

Ошибки, которые связаны с некорректным вводом данных, вводом значений, выходящих за пределы допустимых, а также ошибки, возникающие в работе пользователя с АИС, исключаются средствами самой СУБД при создании базы данных, а именно – методы сохранения целостности данных, маски ввода, логические ограничения, обязательность значений.

Ниже приведен пример контрольного теста с использованием разработанного программного средства.

На рисунке 7 приведены исходные данные для теста.

 

 

Рисунок 7 – Тестовый набор данных


Нормированная матрица исходных данных изображена на рисунке 8.

 

 

Рисунок 8 – Нормированная исходная матрица

 

Результаты корреляционного анализа представлены на рисунке 9.

 

 

Рисунок 9 – Результаты корреляционного анализа

Результаты регрессионного анализа и расчёта неприкосновенного запаса ГСМ представлены на рисунке 10.

 

 

Рисунок 10 – Результаты РА и расчёта запаса ГСМ

 

Результат расчета коэффициентов регрессионного уравнения при помощи пакета MathCAD 2001 Professional приведен на рисунке 11.

Рассчитанные коэффициенты уравнения регрессии с помощью разработанного программного средства и математического пакета MathCAD 2001 Professional совпадают, что свидетельствует о корректности проведённого расчета разработанным приложением. Таким же методом можно проверить и результаты расчета матрицы парных корреляций, множественных коэффициентов детерминации и корреляции и их адекватности, а также значимости уравнения регрессии.

 

 


 

Рисунок 11 – Расчет коэффициентов уравнения регрессии в среде MathCAD 2001


Приложение А

 


Приложение Б

 

Руководство пользователя

 

1 Назначение программного средства

 

Разработанное программное средство предназначено для ведения справочной информации, учётных данных отдела горюче-смазочных материалов автобазы, проведения прогноза неприкосновенного запаса ГСМ на автобазе с помощью корреляционно-регрессионного анализа.

 

2 Условия выполнения программы

 

Программная система должна работать под управлением операционной системы MS Windows 98 или выше на IBM/PC совместимых персональных компьютерах с минимальной конфигурацией, указанной в техническом задании в пункте 4.3.2. Необходима установленная среда C++Builder 6 и InterBase 7.5.

 

3 Выполнение программного средства

 

После запуска программы происходит идентификация пользователя. Необходимо ввести логин и пароль. Войдя в программу, пользователь видит главное окно программы, макет которого представлен на рисунке 12.

 

 

Рисунок 12 – Макет главного окна программы

 

В верхней части окна находятся три вкладки:

- ведение учётной и справочной информации. Данная вкладка, изображённая на рисунке 13, необходима для ввода, обновления, поиска, просмотра соответствующей информации отдела ГСМ автобазы. Пример просмотра справочника автомобилей приведён на рисунке 14.

 

 

Рисунок 13 – Ведение учётной и справочной информации

 

 

Рисунок 14 – Справочник автомобилей

- просмотр запросов и отчётов. Пример запроса перечня всех ГСМ, выданных за заданный период, и их количества представлен на рисунке 15.

 

 

Рисунок 15 – Виды и количества ГСМ, выданных за заданный период

 

- корреляционно-регрессионный анализ. С помощью данной вкладки проводится корреляционно-регрессионный анализ и расчёт неприкосновенного запаса ГСМ на автобазе. Пример проведённого анализа и прогноза неприкосновенного запаса ГСМ на автобазе представлен на рисунке 16.

 

 

Рисунок 16 – Пример результата проведённого анализа и прогноза запаса ГСМ

 

Сообщения пользователю

 

В данном программном средстве сообщения пользователю содержатся на соответствующих интерфейсных элементах, а также в информационных окнах, предупреждающих об ошибках.

 


Приложение В

 

Листинг программы

 

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include "Main.h"

#include "Autobasa.h"

#include "Garag.h"

#include "GSM.h"

#include "Automobil.h"

#include "ViewVed.h"

#include "OtchV.h"

#include "ViewProc2.h"

#include "ViewProc3.h"

#include "Matriza.h"

#include "Adekvat.h"

#include "PutList.h"

#include "Vedom.h"

#include "Zaprav.h"

#include "HistoryKRA.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

TForm1 *Form1;

 

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Form2->ShowModal();

}

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

 

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form3->ShowModal();

}

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

 

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Form5->ShowModal();

}

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

 

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Form4->ShowModal();

}

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

 

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Form6->ShowModal();

}

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

 

void __fastcall TForm1::Button6Click(TObject *Sender)

{

Form7->ShowModal();

}

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

 

void __fastcall TForm1::FormActivate(TObject *Sender)

{

Form1->PageControl1->ActivePage=TabSheet4;

}

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

 

void __fastcall TForm1::N2Click(TObject *Sender)

{

BitBtn1->Click();

}

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

 

void __fastcall TForm1::Button7Click(TObject *Sender)

{

Form8->ShowModal();

}

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

 

void __fastcall TForm1::Button8Click(TObject *Sender)

{

Form9->ShowModal();

}

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

 

double roundResult (double d, int p)

{

int pr=1;

for (int j=0; j<p; j++)

pr*=10;

d = d*pr;

int i = (int) d;

return (double) i/pr;

}

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

 

void __fastcall TForm1::Button10Click(TObject *Sender)

{

StringGrid1->Cells[0][0]="X1";

StringGrid1->Cells[1][0]="X2";

StringGrid1->Cells[2][0]="X3";

StringGrid1->Cells[3][0]="Y";

n=-1; k=3;

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

{

n++;

IBStoredProc1->Params->Items[4]->Value=1;

IBStoredProc1->Params->Items[5]->Value=Now()-7*(i+1);

IBStoredProc1->Params->Items[6]->Value=Now()-7*i;

IBStoredProc1->Prepare();

IBStoredProc1->ExecProc();

X[n][0]=IBStoredProc1->ParamByName("COLAVTO")->AsInteger;

X[n][1]=IBStoredProc1->ParamByName("SREDCOLL")->AsFloat;

X[n][2]=IBStoredProc1->ParamByName("PROBEG")->AsFloat;

Y[n]=IBStoredProc1->ParamByName("SUMCOLL")->AsFloat;

StringGrid1->Cells[0][i+1]=X[n][0];

StringGrid1->Cells[1][i+1]=X[n][1];

StringGrid1->Cells[2][i+1]=X[n][2];

StringGrid1->Cells[3][i+1]=Y[n];

}

n=16;

Button10->Enabled=false;

Button12->Enabled=true;

}

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

 

void __fastcall TForm1::Button11Click(TObject *Sender)

{

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

{

XX[i][0]=1;

XX[i][1]=X[i][0];

XX[i][2]=X[i][1];

XX[i][3]=X[i][2];

}

Object.Transponirovanie_Matriza(XX,XXtran,row,k+1);

Object.Mult_Matriza_Matriza(XXtran,XX,CX,k+1,row,k+1);

Object.Obratnaya_Matriza(CX,Xobr,k+1);

Object.Mult_Matriza_Vector(XXtran,Y,A1,k+1,row);

Object.Mult_Matriza_Vector(Xobr,A1,A,k+1,k+1);

double t0=roundResult(A[0],3), t1=roundResult(A[1],3),

t2=roundResult(A[2],3), t3=roundResult(A[3],3);

Edit1->Text=" Y = "+FloatToStr(t0)+" + "+FloatToStr(t1)+" * X1"+

" + "+FloatToStr(t2)+" * X2"+" + "+FloatToStr(t3)+" * X3";

Button11->Enabled=false;

Button14->Enabled=true;

Button17->Enabled=true;

}

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

 

void __fastcall TForm1::Button12Click(TObject *Sender)

{

Object.Mat_Ozidanie(X,Mx,row,k);

Object.Sred_Kvadr_Otkl(X,Mx,Sig,row,k);

Object.Normirovanie_Matriza(X,Mx,Sig,Xnorm,row,k);

Object.Normirovanie_Vector(Y,Ynorm,row);

StringGrid4->Cells[0][0]="X1";

StringGrid4->Cells[1][0]="X2";

StringGrid4->Cells[2][0]="X3";

StringGrid4->Cells[3][0]="Y";

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

{

StringGrid4->Cells[0][i+1]=roundResult(Xnorm[i][0],4);

StringGrid4->Cells[1][i+1]=roundResult(Xnorm[i][1],4);

StringGrid4->Cells[2][i+1]=roundResult(Xnorm[i][2],4);

StringGrid4->Cells[3][i+1]=roundResult(Ynorm[i],4);

}

Button12->Enabled=false;

Button13->Enabled=true;

}

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

 

void __fastcall TForm1::Button13Click(TObject *Sender)

{

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

{

Z[i][0]=Xnorm[i][0];

Z[i][1]=Xnorm[i][1];

Z[i][2]=Xnorm[i][2];

Z[i][3]=Ynorm[i];

}

Object.Transponirovanie_Matriza(Z,Xtran,row,k+1);

Object.Mult_Matriza_Matriza(Xtran,Z,C,k+1,row,k+1);

Object.Mult_Matriza_Number(C,CC,k+1,k+1,0.0625); // n=16, следовательно 1/n=0.0625

for (int i=0; i<k+1; i++)

for (int j=0; j<k+1; j++)

StringGrid5->Cells[i][j]=roundResult(CC[i][j],4);

kd=1-(Object.Opredelitel_Matriza(CC,k+1)/Object.Opredelitel_Matriza(CC,k));

kk=pow(kd,0.5);

double ttkd=roundResult(kd,4);

Edit2->Text=FloatToStr(ttkd);

ttkd=roundResult(kk,4);

Edit3->Text=FloatToStr(ttkd);

Button13->Enabled=false;

Button18->Enabled=true;

}

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

 

void __fastcall TForm1::Button14Click(TObject *Sender)

{

double zap=roundResult(A[0]+A[1]*StrToFloat(Edit4->Text)+

A[2]*StrToFloat(Edit5->Text)+A[3]*StrToFloat(Edit6->Text),2);

Edit7->Text=FloatToStr(zap);

Button15->Enabled=true;

}

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

 

void __fastcall TForm1::Button18Click(TObject *Sender)

{

ObjectAd.Kor_Adekv();

Button18->Enabled=false;

Button11->Enabled=true;

}

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

 

void __fastcall TForm1::Button17Click(TObject *Sender)

{

// ObjectAd.Reg_Znachim();

Object.Mult_Matriza_Vector(XX,A,Q1,n,k+1);

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

Qr+=Q1[i]*Q1[i];

double tQr=roundResult(Qr,2);

Form1->Edit8->Text=FloatToStr(tQr);

Object.Sub_Vector(Y,Q1,Q2,n);

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

Qost+=Q2[i]*Q2[i];

tQr=roundResult(Qost,2);

Form1->Edit9->Text=FloatToStr(tQr);

double temp=(Qr/3)/(Qost/(16-3-1));

Fras_r=roundResult(temp,2);

Form1->Edit10->Text=FloatToStr(Fras_r);

Form1->Edit11->Text=FloatToStr(Fkrit);

if (Fras_r>Fkrit)

Form1->Memo1->Lines->Add("Уравнение является значимым, т.е. хотя бы один из коэффициентов регрессии существенно отличен от нуля, так как Fras > Fkrit для alpha=0.05 и числа степеней свободы 3 и 12.");

else

Form1->Memo1->Lines->Add("Уравнение является незначимым, так как Fras < Fkrit для alpha=0.05 и числа степеней свободы 3 и 12.");

Button17->Enabled=false;

Button10->Enabled=true;

}

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

 

void __fastcall TForm1::Button9Click(TObject *Sender)

{

Form10->ShowModal();

}

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

 

void __fastcall TForm1::Button19Click(TObject *Sender)

{

Form11->ShowModal();

}

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

 

void __fastcall TForm1::Button20Click(TObject *Sender)

{

Form12->ShowModal();

}

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

 

void __fastcall TForm1::Button16Click(TObject *Sender)

{

Form13->ShowModal();

}

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

 

void __fastcall TForm1::Button15Click(TObject *Sender)

{

Form1->IBDatabase1->Connected=true;

Form1->IBTransaction1->Active=true;

Form13->IBClientDataSet1->Active=true;

Form13->IBClientDataSet1->Insert();

IBQuery1->Active=true;

int maxk=StrToInt(DBEdit1->Text);

IBQuery1->Active=false;

Form13->IBClientDataSet1->FieldByName("KODH")->Value=maxk+1;

Form13->IBClientDataSet1->FieldByName("DATEH")->Value=Now();

Form13->IBClientDataSet1->FieldByName("ZAPAS")->AsFloat=StrToFloat(Edit7->Text);

Form13->IBClientDataSet1->ApplyUpdates(-1);

Form13->IBClientDataSet1->Active=false;

}

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

 

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

 

#ifndef MainH

#define MainH

 

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

 

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ComCtrls.hpp>

#include <ExtCtrls.hpp>

#include <Menus.hpp>

#include <Buttons.hpp>

#include <DB.hpp>

#include <IBDatabase.hpp>

#include <Grids.hpp>

#include <IBCustomDataSet.hpp>

#include <IBQuery.hpp>

#include <IBStoredProc.hpp>

#include "Matriza.h"

#include "Adekvat.h"

#include <DBCtrls.hpp>

#include <Mask.hpp>

 

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

class TForm1 : public TForm

{

__published: // IDE-managed Components

TPanel *Panel1;

TPageControl *PageControl1;

TTabSheet *TabSheet1;

TMainMenu *MainMenu1;

TMenuItem *N1;

TPanel *Panel2;

TBevel *Bevel1;

TTabSheet *TabSheet2;

TBitBtn *BitBtn1;

TIBDatabase *IBDatabase1;

TIBTransaction *IBTransaction1;

TMenuItem *N2;

TButton *Button5;

TButton *Button7;

TButton *Button8;

TTabSheet *TabSheet4;

TGroupBox *GroupBox2;

TLabel *Label2;

TLabel *Label3;

TLabel *Label4;

TLabel *Label5;

TLabel *Label6;

TGroupBox *GroupBox1;

TStringGrid *StringGrid1;

TButton *Button10;

TBevel *Bevel3;

TButton *Button11;

TIBStoredProc *IBStoredProc1;

TEdit *Edit1;

TLabel *Label1;

TComboBox *ComboBox1;

TGroupBox *GroupBox3;

TStringGrid *StringGrid4;

TButton *Button12;

TGroupBox *GroupBox4;

TStringGrid *StringGrid5;

TButton *Button13;

TEdit *Edit2;

TEdit *Edit3;

TLabel *Label7;

TButton *Button6;

TGroupBox *GroupBox5;

TLabel *Label8;

TEdit *Edit4;

TLabel *Label9;

TEdit *Edit5;

TLabel *Label10;

TEdit *Edit6;

TButton *Button14;

TLabel *Label11;

TEdit *Edit7;

TLabel *Label12;

TButton *Button15;

TButton *Button16;

TGroupBox *GroupBox6;

TButton *Button17;

TLabel *Label13;

TLabel *Label14;

TLabel *Label15;

TLabel *Label16;

TMemo *Memo1;

TEdit *Edit8;

TEdit *Edit9;

TEdit *Edit10;

TEdit *Edit11;

TGroupBox *GroupBox7;

TLabel *Label17;

TLabel *Label18;

TEdit *Edit12;

TEdit *Edit13;

TMemo *Memo2;

TButton *Button18;

TLabel *Label19;

TLabel *Label20;

TGroupBox *GroupBox8;

TButton *Button1;

TButton *Button2;

TButton *Button3;

TButton *Button4;

TGroupBox *GroupBox9;

TButton *Button9;

TButton *Button19;

TButton *Button20;

TIBQuery *IBQuery1;

TDBEdit *DBEdit1;

TDataSource *DataSource1;

void __fastcall Button1Click(TObject *Sender);

void __fastcall Button2Click(TObject *Sender);

void __fastcall Button3Click(TObject *Sender);

void __fastcall Button4Click(TObject *Sender);

void __fastcall Button5Click(TObject *Sender);

void __fastcall Button6Click(TObject *Sender);

void __fastcall FormActivate(TObject *Sender);

void __fastcall N2Click(TObject *Sender);

void __fastcall Button7Click(TObject *Sender);

void __fastcall Button8Click(TObject *Sender);

void __fastcall Button10Click(TObject *Sender);

void __fastcall Button11Click(TObject *Sender);

void __fastcall Button12Click(TObject *Sender);

void __fastcall Button13Click(TObject *Sender);

void __fastcall Button14Click(TObject *Sender);

void __fastcall Button18Click(TObject *Sender);

void __fastcall Button17Click(TObject *Sender);

void __fastcall Button9Click(TObject *Sender);

void __fastcall Button19Click(TObject *Sender);

void __fastcall Button20Click(TObject *Sender);

void __fastcall Button16Click(TObject *Sender);

void __fastcall Button15Click(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TForm1(TComponent* Owner);

};

 

double roundResult (double d, int p);

 

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

extern PACKAGE TForm1 *Form1;

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

#endif

 

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

 

#pragma hdrstop

#include "Adekvat.h"

#include "Main.h"

#include "Matriza.h"

 

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

 

#pragma package(smart_init)

 

void CAdekvatnost::Kor_Adekv()

{

double temp=((16-3-1)*StrToFloat(Form1->Edit2->Text))/(3*(1-StrToFloat(Form1->Edit2->Text)));

Fras_k=roundResult(temp,2);

Form1->Edit12->Text=FloatToStr(Fras_k);

Form1->Edit13->Text=FloatToStr(Fkrit);

if (Fras_k>Fkrit)

Form1->Memo2->Lines->Add("Гипотеза о значимости множественного коэффициента детерминации принимается, так как Fras > Fkrit для alpha=0.05 и числа степеней свободы 3 и 12.");

else

Form1->Memo2->Lines->Add("Гипотеза о значимости множественного коэффициента детерминации отвергается, так как Fras < Fkrit для alpha=0.05 и числа степеней свободы 3 и 12.");

}

 

void CAdekvatnost::Reg_Znachim()

{

 

}

 

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

 

#ifndef AdekvatH

#define AdekvatH

 

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

 

#include "Main.h"

#include "Matriza.h"

 

namespace adek

{

const double Fkrit=3.49;

double Fras_k, Fras_r;

double Qr=0, Qost=0;

}

 

using namespace adek;

 

class CAdekvatnost

{

public:

 

// Метод, проверяющий адекватность коэффициентов корреляции

void Kor_Adekv();

 

// Метод, проверяющий знчимость уравнения регрессии

void Reg_Znachim();

 

};

 

CAdekvatnost ObjectAd;

 

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

#endif

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "Autobasa.h"

#include "Main.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

TForm2 *Form2;

 

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

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm2::Button1Click(TObject *Sender)

{

IBClientDataSet1->ApplyUpdates(-1);

DBGrid1->Columns->Items[0]->Title->Caption="Код автобазы";

DBGrid1->Columns->Items[1]->Title->Caption="Название автобазы";

}

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

 

void __fastcall TForm2::FormActivate(TObject *Sender)

{

Form1->IBDatabase1->Connected=true;

Form1->IBTransaction1->Active=true;

IBClientDataSet1->Active=true;

DBGrid1->Columns->Items[0]->Title->Caption="Код автобазы";

DBGrid1->Columns->Items[1]->Title->Caption="Название автобазы";

}

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

 

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

{

IBClientDataSet1->Active=false;

}

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

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "Automobil.h"

#include "Main.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

TForm5 *Form5;

 

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

__fastcall TForm5::TForm5(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm5::Button1Click(TObject *Sender)

{

IBClientDataSet1->ApplyUpdates(-1);

DBGrid1->Columns->Items[0]->Title->Caption="Код автомобиля";

DBGrid1->Columns->Items[1]->Title->Caption="Марка";

DBGrid1->Columns->Items[2]->Title->Caption="Гос.Номер";

DBGrid1->Columns->Items[3]->Title->Caption="ФИО водителя";

}

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

 

void __fastcall TForm5::FormActivate(TObject *Sender)

{

Form1->IBDatabase1->Connected=true;

Form1->IBTransaction1->Active=true;

IBClientDataSet1->Active=true;

DBGrid1->Columns->Items[0]->Title->Caption="Код автомобиля";

DBGrid1->Columns->Items[1]->Title->Caption="Марка";

DBGrid1->Columns->Items[2]->Title->Caption="Гос.Номер";

DBGrid1->Columns->Items[3]->Title->Caption="ФИО водителя";

}

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

 

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

{

IBClientDataSet1->Active=false;

}

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

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "Garag.h"

#include "Main.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

TForm3 *Form3;

 

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

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm3::FormActivate(TObject *Sender)

{

Form1->IBDatabase1->Connected=true;

Form1->IBTransaction1->Active=true;

IBClientDataSet1->Active=true;

DBGrid1->Columns->Items[0]->Title->Caption="Номер гаража";

DBGrid1->Columns->Items[1]->Title->Caption="Код автобазы";

DBGrid1->Columns->Items[2]->Title->Caption="Название гаража";

DBGrid1->Columns->Items[3]->Title->Caption="ФИО заправщика";

}

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

 

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

{

IBClientDataSet1->Active=false;

}

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

 

void __fastcall TForm3::Button1Click(TObject *Sender)

{

IBClientDataSet1->ApplyUpdates(-1);

DBGrid1->Columns->Items[0]->Title->Caption="Номер гаража";

DBGrid1->Columns->Items[1]->Title->Caption="Код автобазы";

DBGrid1->Columns->Items[2]->Title->Caption="Название гаража";

DBGrid1->Columns->Items[3]->Title->Caption="ФИО заправщика";

}

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

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "GSM.h"

#include "Main.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

TForm4 *Form4;

 

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

__fastcall TForm4::TForm4(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm4::Button1Click(TObject *Sender)

{

IBClientDataSet1->ApplyUpdates(-1);

DBGrid1->Columns->Items[0]->Title->Caption="Код ГСМ";

DBGrid1->Columns->Items[1]->Title->Caption="Название ГСМ";

}

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

 

void __fastcall TForm4::FormActivate(TObject *Sender)

{

Form1->IBDatabase1->Connected=true;

Form1->IBTransaction1->Active=true;

IBClientDataSet1->Active=true;

DBGrid1->Columns->Items[0]->Title->Caption="Код ГСМ";

DBGrid1->Columns->Items[1]->Title->Caption="Название ГСМ";

}

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

 

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

{

IBClientDataSet1->Active=false;

}

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

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "HistoryKRA.h"

#include "Main.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

TForm13 *Form13;

 

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

__fastcall TForm13::TForm13(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm13::FormActivate(TObject *Sender)

{

Form1->IBDatabase1->Connected=true;

Form1->IBTransaction1->Active=true;

IBClientDataSet1->Active=true;

DBGrid1->Columns->Items[0]->Title->Caption="Код истории";

DBGrid1->Columns->Items[1]->Title->Caption="Дата проведения анализа";

DBGrid1->Columns->Items[2]->Title->Caption="Запас ГСМ";

}

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

 

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

{

IBClientDataSet1->Active=false;

}

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

 

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

 

#pragma hdrstop

#include <vcl.h>

#include <iostream>

#include <conio.h>

#include "Matriza.h"

#include "Main.h"

#include "Adekvat.h"

#include <math.h>

 

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

 

#pragma package(smart_init)

 

void CMatriza::Mat_Ozidanie(Matriza X, Vector Mx, int n, int k)

{

for (int j=0; j<k; j++)

{

double sum=0;

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

sum+=X[i][j];

Mx[j]=sum/double(n);

}

}

 

void CMatriza::Sred_Kvadr_Otkl(Matriza X, Vector Mx, Vector Sig, int n, int k)

{

CMatriza::Mat_Ozidanie(X, Mx, n, k);

for (int j=0; j<k; j++)

{

double sum=0;

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

sum+=pow((X[i][j]-Mx[j]),2);

Sig[j]=sqrt(sum/double(n));

}

}

 

void CMatriza::Normirovanie_Matriza(Matriza X, Vector Mx, Vector Sig, Matriza Xnorm, int n, int k)

{

CMatriza::Sred_Kvadr_Otkl(X, Mx, Sig, n, k);

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

for (int j=0; j<k; j++)

Xnorm[i][j]=(X[i][j]-Mx[j])/Sig[j];

}

 

void CMatriza::Normirovanie_Vector(Vector Y, Vector Ynorm, int n)

{

double sum=0;

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

sum+=Y[i];

My=sum/double(n);

sum=0;

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

sum+=(Y[i]-My)*(Y[i]-My);

Sigy=sqrt(sum/double(n));

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

Ynorm[i]=(Y[i]-My)/Sigy;

}

 

void CMatriza::Delete_Matriza(Matriza DX)

{

memset(DX, 0, MaxMatriza*MaxMatriza*sizeof(double));

}

 

void CMatriza::Transponirovanie_Matriza(Matriza X, Matriza Xtran, int n, int k)

{

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

for (int j=0; j<k; j++)

Xtran[j][i]=X[i][j];

}

 

double CMatriza::Algeb_Dopol_Matriza(Matriza X, int n, int i, int j)

{

Matriza Xal;

double Al;

int a, b;

for (a=0; a<i; a++)

{

for (b=0; b<j; b++)

Xal[a][b]=X[a][b];

for (b=j+1; b<n; b++)

Xal[a][b-1]=X[a][b];

}

for (a=i+1; a<n; a++)

{

for (b=0; b<j; b++)

Xal[a-1][b]=X[a][b];

for (b=j+1; b<n; b++)

Xal[a-1][b-1]=X[a][b];

}

Al=CMatriza::Opredelitel_Matriza(Xal, n-1);

if ((i+j)%2!=0) Al=-Al;

return Al;

}

 

double CMatriza::Opredelitel_Matriza(Matriza X, int n)

{

double op;

if (n!=1)

{

op=0;

for (int j=0; j<n; j++)

op+=X[0][j]*CMatriza::Algeb_Dopol_Matriza(X, n, 0, j);

}

else op=X[0][0];

if (op==0) op=1;

return op;

}

 

void CMatriza::Obratnaya_Matriza(Matriza X, Matriza Xobr, int n)

{

double d=CMatriza::Opredelitel_Matriza(X, n);

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

for (int j=0; j<n; j++)

Xobr[i][j]=CMatriza::Algeb_Dopol_Matriza(X, n, j, i)/d;

}

 

void CMatriza::Add_Matriza(Matriza A, Matriza B, Matriza C, int n, int k)

{

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

for (int j=0; j<k; j++)

C[i][j]=A[i][j]+B[i][j];

}

 

void CMatriza::Sub_Vector(Vector A, Vector B, Vector C, int n)

{

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

C[i]=A[i]-B[i];

}

 

void CMatriza::Mult_Matriza_Matriza(Matriza A, Matriza B, Matriza C, int n, int m, int k)

{

double mul;

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

for (int j=0; j<k; j++)

{

mul=0;

for (int t=0; t<m; t++)

mul+=A[i][t]*B[t][j];

C[i][j]=mul;

}

}

 

void CMatriza::Mult_Matriza_Vector(Matriza A, Vector B, Vector C, int n, int k)

{

double mul;

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

{

mul=0;

for (int j=0; j<k; j++)

mul+=A[i][j]*B[j];

C[i]=mul;

}

}

 

void CMatriza::Mult_Matriza_Number(Matriza A, Matriza C, int n, int k, double num)

{

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

for (int j=0; j<k; j++)

C[i][j]=A[i][j]*num;

}

 

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

 

#ifndef MatrizaH

#define MatrizaH

 

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

 

#include "Main.h"

#include "Adekvat.h"

#define MaxMatriza 16

 

namespace matr

{

const int row=16;

const int col=3;

typedef double Matriza[MaxMatriza][MaxMatriza];

typedef double Vector[MaxMatriza];

Matriza X, Xnorm, Xtran, Xobr, C, CC;

Vector Y, Ynorm;

Vector Mx, Sig;

double My, Sigy;

double kd, kk;

int n, k;

Matriza Z, XX, XXtran, CX, CCX;

Vector A1, A;

Vector Q1, Q2;

}

 

using namespace matr;

 

class CMatriza

{

public:

 

// Метод, вычисляющий математическое ожидание по столбцу

void Mat_Ozidanie(Matriza X, Vector Mx, int n, int k);

 

// Метод, вычисляющий среднее квадратическое отклонение по столбцу

void Sred_Kvadr_Otkl(Matriza X, Vector Mx, Vector Sig, int n, int k);

 

// Метод, вычисляющий нормализованную матрицу

void Normirovanie_Matriza(Matriza X, Vector Mx, Vector Sig, Matriza Xnorm, int n, int k);

 

// Метод, вычисляющий нормализованный вектор

void Normirovanie_Vector(Vector Y, Vector Ynorm, int n);

 

// Метод, обнуляющий матрицу

void Delete_Matriza(Matriza DX);

 

// Метод, транспонирующий матрицу размерностью n*k

void Transponirovanie_Matriza(Matriza X, Matriza Xtran, int n, int k);

 

// Метод, вычисляющий алгебраическое дополнение элемента x[i,j] квадратной матрицы

double Algeb_Dopol_Matriza(Matriza X, int n, int i, int j);

 

// Метод, вычисляющий определитель квадратной матрицы размерностью n*n

double Opredelitel_Matriza(Matriza X, int n);

 

// Метод, вычисляющий матрицу, обратную квадратной матрице n*n

void Obratnaya_Matriza(Matriza X, Matriza Xobr, int n);

 

// Метод, производящий сложение двух матриц C = A + B

void Add_Matriza(Matriza A, Matriza B, Matriza C, int n, int k);

 

// Метод, производящий вычитание двух векторов C = A - B

void Sub_Vector(Vector A, Vector B, Vector C, int n);

 

// Метод, производящий умножение двух матриц C(n*k) = A(n*m) * B(m*k)

void Mult_Matriza_Matriza(Matriza A, Matriza B, Matriza C, int n, int m, int k);

 

// Метод, производящий умножение матрицы на вектор C(n) = A(n*k) * B(k)

void Mult_Matriza_Vector(Matriza A, Vector B, Vector C, int n, int k);

 

// Метод, производящий умножение матрицы размерностью n*k на число num

void Mult_Matriza_Number(Matriza A, Matriza C, int n, int k, double num);

 

};

 

CMatriza Object;

 

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

#endif

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "OtchV.h"

#include "Main.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

TForm7 *Form7;

 

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

__fastcall TForm7::TForm7(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm7::FormActivate(TObject *Sender)

{

Form1->IBDatabase1->Connected=true;

Form1->IBTransaction1->Active=true;

IBClientDataSet1->Active=true;

DBGrid1->Columns->Items[0]->Title->Caption="Автобаза";

DBGrid1->Columns->Items[1]->Title->Caption="Гараж";

DBGrid1->Columns->Items[2]->Title->Caption="ФИО заправщика";

DBGrid1->Columns->Items[3]->Title->Caption="Номер ведомости";

DBGrid1->Columns->Items[4]->Title->Caption="Дата ведомости";

DBGrid1->Columns->Items[5]->Title->Caption="Марка авто";

DBGrid1->Columns->Items[6]->Title->Caption="Гос.номер авто";

DBGrid1->Columns->Items[7]->Title->Caption="ФИО водителя";

DBGrid1->Columns->Items[8]->Title->Caption="Путевой лист";

DBGrid1->Columns->Items[9]->Title->Caption="Вид ГСМ";

DBGrid1->Columns->Items[10]->Title->Caption="Кол-во (л)";

DBGrid1->Columns->Items[11]->Title->Caption="Кол-во (кг)";

}

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

 

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

{

IBClientDataSet1->Active=false;

}

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

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "PutList.h"

#include "Main.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

TForm10 *Form10;

 

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

__fastcall TForm10::TForm10(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm10::FormActivate(TObject *Sender)

{

Form1->IBDatabase1->Connected=true;

Form1->IBTransaction1->Active=true;

IBClientDataSet1->Active=true;

DBGrid1->Columns->Items[0]->Title->Caption="Номер";

DBGrid1->Columns->Items[1]->Title->Caption="Код авто";

DBGrid1->Columns->Items[2]->Title->Caption="Задание";

DBGrid1->Columns->Items[3]->Title->Caption="Замечание";

DBGrid1->Columns->Items[4]->Title->Caption="Дальность";

}

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

 

void __fastcall TForm10::Button1Click(TObject *Sender)

{

IBClientDataSet1->ApplyUpdates(-1);

DBGrid1->Columns->Items[0]->Title->Caption="Номер";

DBGrid1->Columns->Items[1]->Title->Caption="Код авто";

DBGrid1->Columns->Items[2]->Title->Caption="Задание";

DBGrid1->Columns->Items[3]->Title->Caption="Замечание";

DBGrid1->Columns->Items[4]->Title->Caption="Дальность";

}

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

 

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

{

IBClientDataSet1->Active=false;

}

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

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "Vedom.h"

#include "Main.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

TForm11 *Form11;

 

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

__fastcall TForm11::TForm11(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm11::FormActivate(TObject *Sender)

{

Form1->IBDatabase1->Connected=true;

Form1->IBTransaction1->Active=true;

IBClientDataSet1->Active=true;

DBGrid1->Columns->Items[0]->Title->Caption="Номер ведомости";

DBGrid1->Columns->Items[1]->Title->Caption="Номер гаража";

DBGrid1->Columns->Items[2]->Title->Caption="Дата ведомости";

}

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

 

void __fastcall TForm11::Button1Click(TObject *Sender)

{

IBClientDataSet1->ApplyUpdates(-1);

DBGrid1->Columns->Items[0]->Title->Caption="Номер ведомости";

DBGrid1->Columns->Items[1]->Title->Caption="Номер гаража";

DBGrid1->Columns->Items[2]->Title->Caption="Дата ведомости";

}

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

 

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

{

IBClientDataSet1->Active=false;

}

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

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "ViewProc2.h"

#include "Main.h"

#include "GSM.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

#define MaxCol 1000 // Максимальное количество видов ГСМ

 

TForm8 *Form8;

 

class Spisok

{

public:

int n;

AnsiString name;

float coll;

float colkg;

} Sp[MaxCol] ;

 

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

__fastcall TForm8::TForm8(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm8::FormActivate(TObject *Sender)

{

Edit1->Text="";

Edit2->Text="";

Edit3->Text="";

StringGrid1->RowCount=2;

if (!Form4->IBClientDataSet1->Active)

Form4->IBClientDataSet1->Active=true;

int max=Form4->IBClientDataSet1->RecordCount;

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

{

StringGrid1->Cells[0][i+1]="";

StringGrid1->Cells[1][i+1]="";

StringGrid1->Cells[2][i+1]="";

StringGrid1->Cells[3][i+1]="";

}

Button1->Enabled=false;

BitBtn1->SetFocus();

}

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

 

void __fastcall TForm8::Button1Click(TObject *Sender)

{

StringGrid1->RowCount=2;

if (!Form4->IBClientDataSet1->Active)

Form4->IBClientDataSet1->Active=true; // Чтение справочника ГСМ

Form4->IBClientDataSet1->First();

int max=Form4->IBClientDataSet1->RecordCount;

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

{

StringGrid1->Cells[0][i+1]="";

StringGrid1->Cells[1][i+1]="";

StringGrid1->Cells[2][i+1]="";

StringGrid1->Cells[3][i+1]="";

}

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

{

IBStoredProc1->Params->Items[2]->Value=StrToInt(Edit1->Text);

IBStoredProc1->Params->Items[3]->Value=Form4->IBClientDataSet1->Fields->Fields[0]->AsInteger;

IBStoredProc1->Params->Items[4]->Value=StrToDate(Edit2->Text);

IBStoredProc1->Params->Items[5]->Value=StrToDate(Edit3->Text);

IBStoredProc1->Prepare();

IBStoredProc1->ExecProc();

Sp[i].n=Form4->IBClientDataSet1->Fields->Fields[0]->AsInteger;

Sp[i].name=Form4->IBClientDataSet1->Fields->Fields[1]->AsString;

Sp[i].coll=IBStoredProc1->ParamByName("PCOLL")->AsFloat;

Sp[i].colkg=IBStoredProc1->ParamByName("PCOLKG")->AsFloat;

Form4->IBClientDataSet1->Next();

}

StringGrid1->Cells[0][0]="Код ГСМ";

StringGrid1->Cells[1][0]="Название ГСМ";

StringGrid1->Cells[2][0]="Количество, л";

StringGrid1->Cells[3][0]="Количество, кг";

int j=0;

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

{

if (Sp[i].coll!=0)

{

StringGrid1->RowCount++;

j++;

StringGrid1->Cells[0][j]=IntToStr(Sp[i].n);

StringGrid1->Cells[1][j]=Sp[i].name;

StringGrid1->Cells[2][j]=FloatToStr(Sp[i].coll);

StringGrid1->Cells[3][j]=FloatToStr(Sp[i].colkg);

}

}

}

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

 

void __fastcall TForm8::Edit1Enter(TObject *Sender)

{

AnsiString s;

// Формирование списка компонента ComboBox1 для выбора водителя

IBClientDataSet1->Open(); // Чтение справочника ГСМ

IBClientDataSet1->First();

ComboBox1->Clear();

for(int i=0; i<IBClientDataSet1->RecordCount; i++)

{

s=IntToStr(IBClientDataSet1->Fields->Fields[0]->AsInteger) + "/" +

IBClientDataSet1->Fields->Fields[1]->AsString;

ComboBox1->Items->Add(s);

IBClientDataSet1->Next();

}

ComboBox1->Show();

ComboBox1->Text="Выберите водителя";

ComboBox1->SetFocus();

}

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

 

void __fastcall TForm8::ComboBox1Exit(TObject *Sender)

{

ComboBox1->Hide();

}

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

 

void __fastcall TForm8::ComboBox1Click(TObject *Sender)

{

// Выборка из ComboBox1 строки и засылка из нее кода водителя

AnsiString s1, s=ComboBox1->Items->Strings[ComboBox1->ItemIndex];

int pos=s.AnsiPos("/");

s1=s.SubString(1,pos-1);

Edit1->Text=StrToInt(s1);

Edit2->SetFocus();

}

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

 

void __fastcall TForm8::Edit2Enter(TObject *Sender)

{

DateTimePicker1->Show();

DateTimePicker1->SetFocus();

}

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

 

void __fastcall TForm8::DateTimePicker1CloseUp(TObject *Sender)

{

DateTimePicker1->Hide();

Edit2->Text=DateTimePicker1->Date;

Edit3->SetFocus();

}

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

 

void __fastcall TForm8::Edit3Enter(TObject *Sender)

{

DateTimePicker2->Show();

DateTimePicker2->SetFocus();

}

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

 

void __fastcall TForm8::DateTimePicker2CloseUp(TObject *Sender)

{

DateTimePicker2->Hide();

Edit3->Text=DateTimePicker2->Date;

Button1->Enabled=true;

Button1->SetFocus();

}

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

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "ViewProc3.h"

#include "Main.h"

#include "GSM.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

#define MaxCol 1000 // Максимальное количество видов ГСМ

 

TForm9 *Form9;

 

class CSpisok

{

public:

int n;

AnsiString name;

float coll;

float colkg;

} Spp[MaxCol] ;

 

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

__fastcall TForm9::TForm9(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm9::FormActivate(TObject *Sender)

{

Edit2->Text="";

Edit3->Text="";

StringGrid1->RowCount=2;

if (!Form4->IBClientDataSet1->Active)

Form4->IBClientDataSet1->Active=true;

int max=Form4->IBClientDataSet1->RecordCount;

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

{

StringGrid1->Cells[0][i+1]="";

StringGrid1->Cells[1][i+1]="";

StringGrid1->Cells[2][i+1]="";

StringGrid1->Cells[3][i+1]="";

}

Button1->Enabled=false;

BitBtn1->SetFocus();

}

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

 

void __fastcall TForm9::Button1Click(TObject *Sender)

{

StringGrid1->RowCount=2;

if (!Form4->IBClientDataSet1->Active)

Form4->IBClientDataSet1->Active=true; // Чтение справочника ГСМ

Form4->IBClientDataSet1->First();

int max=Form4->IBClientDataSet1->RecordCount;

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

{

StringGrid1->Cells[0][i+1]="";

StringGrid1->Cells[1][i+1]="";

StringGrid1->Cells[2][i+1]="";

StringGrid1->Cells[3][i+1]="";

}

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

{

IBStoredProc1->Params->Items[2]->Value=Form4->IBClientDataSet1->Fields->Fields[0]->AsInteger;

IBStoredProc1->Params->Items[3]->Value=StrToDate(Edit2->Text);

IBStoredProc1->Params->Items[4]->Value=StrToDate(Edit3->Text);

IBStoredProc1->Prepare();

IBStoredProc1->ExecProc();

Spp[i].n=Form4->IBClientDataSet1->Fields->Fields[0]->AsInteger;

Spp[i].name=Form4->IBClientDataSet1->Fields->Fields[1]->AsString;

Spp[i].coll=IBStoredProc1->ParamByName("PCOLL")->AsFloat;

Spp[i].colkg=IBStoredProc1->ParamByName("PCOLKG")->AsFloat;

Form4->IBClientDataSet1->Next();

}

StringGrid1->Cells[0][0]="Код ГСМ";

StringGrid1->Cells[1][0]="Название ГСМ";

StringGrid1->Cells[2][0]="Количество, л";

StringGrid1->Cells[3][0]="Количество, кг";

int j=0;

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

{

if (Spp[i].coll!=0)

{

StringGrid1->RowCount++;

j++;

StringGrid1->Cells[0][j]=IntToStr(Spp[i].n);

StringGrid1->Cells[1][j]=Spp[i].name;

StringGrid1->Cells[2][j]=FloatToStr(Spp[i].coll);

StringGrid1->Cells[3][j]=FloatToStr(Spp[i].colkg);

}

}

}

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

 

void __fastcall TForm9::Edit2Enter(TObject *Sender)

{

DateTimePicker1->Show();

DateTimePicker1->SetFocus();

}

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

 

void __fastcall TForm9::DateTimePicker1CloseUp(TObject *Sender)

{

DateTimePicker1->Hide();

Edit2->Text=DateTimePicker1->Date;

Edit3->SetFocus();

}

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

 

void __fastcall TForm9::Edit3Enter(TObject *Sender)

{

DateTimePicker2->Show();

DateTimePicker2->SetFocus();

}

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

 

void __fastcall TForm9::DateTimePicker2CloseUp(TObject *Sender)

{

DateTimePicker2->Hide();

Edit3->Text=DateTimePicker2->Date;

Button1->Enabled=true;

Button1->SetFocus();

}

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

 

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

 

#include <vcl.h>

#pragma hdrstop

#include "ViewVed.h"

#include "Main.h"

#include "GSM.h"

 

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

 

#pragma package(smart_init)

#pragma resource "*.dfm"

 

TForm6 *Form6;

 

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

__fastcall TForm6::TForm6(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm6::Button1Click(TObject *Sender)

{

IBStoredProc1->Params->Items[2]->Value=StrToInt(Edit1->Text);

IBStoredProc1->Params->Items[3]->Value=StrToInt(Edit2->Text);

IBStoredProc1->Params->Items[4]->Value=StrToDate(Edit3->Text);

IBStoredProc1->Params->Items[5]->Value=StrToDate(Edit6->Text);

IBStoredProc1->Prepare();

IBStoredProc1->ExecProc();

Edit4->Text=IBStoredProc1->ParamByName("PCOLL")->AsFloat;

Edit5->Text=IBStoredProc1->ParamByName("PCOLKG")->AsFloat;

}

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