Розробка програмного продукту

Наш проект складається з різних файлів, які між собою зв’язані та тісно позязані, якщо одного файла будет не вистачати, програма не буде працювати, а якщо запустить то працюватиме не коректно. В каталозі, де записаний проект, знаходиться як мінімум шість файлів. Їх автоматично створив і належним чином наповнив C++ Builder. Взагалі, C++ Builder багато робить за програміста, але, по-перше, не всі, а, по-друге, бувають випадки, коли це заважає.

Отже в будь-якому проекті є:

· Вихідний файл проекту (project source fail) (Project1.cpp)-містить WinMain і код, який C++ Builder пише автоматично.

· Вихідний файл форми (form source file) (Unit1.cpp) і заголовний файл форми (form header file) (Unit1.h)-ця пара завжди відповідає одній з форм, в цих файлах знаходиться код внесений середовищем і програмістом (C++ Builder тут вставляє тільки оголошення та оформляє функції, решту пишете прогрміст).

· Файл ресурсів форми (form resource file) (Unit1.dfm)-цей файл теж створюється з кожною новою формою, цей файл містить опис форми.

· Файл ресурсів програми (application resource fail) (Project1.res) - стандартний файл ресурсів, тут містяться ресурси для всього додатки (іконка і т.п.)

· Інформаційний файл проекту (Project1.bpr)-тут інсталяційні опції компілятора і всякий збір файлів які потрібні для компіляції.

Створюваний проект містить : Project1.cpp, Project1.bpr, Project1.res, Project1.exe, Unit1.dfm, Unit3.dfm, Unit5.dfm, Unit6.dfm, Unit7.dfm, Unit8.dfm, Unit1.cpp, Unit3.cpp, Unit5.cpp, Unit1.h, Unit3.h, Unit5.h. Unit6.cpp Unit7.cpp Unit8.cpp Якщо видалити хоча б один файл, програма буде працювати не коректно або зовсім не запускатися.

 

Лістинг Project1.bpr

# Наш проект складається з різних файлів, які між собою зв’язані та тісно позязані, якщо одного файла будет не вистачати, програма не буде працювати, а якщо запустить то працюватиме не коректно. В каталозі, де записаний проект, знаходиться як мінімум шість файлів. Їх автоматично створив і належним чином наповнив C++ Builder. Взагалі, C++ Builder багато робить за програміста, але, по-перше, не всі, а, по-друге, бувають випадки, коли це заважає.

Отже в будь-якому проекті є:

· Вихідний файл проекту (project source fail) (Project1.cpp)-містить WinMain і код, який C++ Builder пише автоматично.

· Вихідний файл форми (form source file) (Unit1.cpp) і заголовний файл форми (form header file) (Unit1.h)-ця пара завжди відповідає одній з форм, в цих файлах знаходиться код внесений середовищем і програмістом (C++ Builder тут вставляє тільки оголошення та оформляє функції, решту пишете прогрміст).

· Файл ресурсів форми (form resource file) (Unit1.dfm)-цей файл теж створюється з кожною новою формою, цей файл містить опис форми.

· Файл ресурсів програми (application resource fail) (Project1.res) - стандартний файл ресурсів, тут містяться ресурси для всього додатки (іконка і т.п.)

· Інформаційний файл проекту (Project1.bpr)-тут інсталяційні опції компілятора і всякий збір файлів які потрібні для компіляції.

Створюваний проект містить : Project1.cpp, Project1.bpr, Project1.res, Project1.exe, Unit1.dfm, Unit3.dfm, Unit5.dfm, Unit1.cpp, Unit3.cpp, Unit5.cpp.Якщо видалити хоча б один файл, програма буде працювати не коректно або зовсім не запускатися.

 

Лістинг Project1.bpr

#include <vcl.h>

#pragma hdrstop

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

USEFORM("Unit1.cpp", Form1);

USEFORM("Unit2.cpp", Form2);

USEFORM("Unit3.cpp", Form3);

USEFORM("Unit4.cpp", Form4);

USEFORM("Unit5.cpp", Form5);

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

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TForm1), &Form1);

Application->CreateForm(__classid(TForm2), &Form2);

Application->CreateForm(__classid(TForm3), &Form3);

Application->CreateForm(__classid(TForm4), &Form4);

Application->CreateForm(__classid(TForm5), &Form5);

Application->CreateForm(__classid(TForm6), &Form6);

 

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

}

return 0;

}

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

 

Лістинг Unit 1. h

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

#include <vcl.h>

#pragma hdrstop

 

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit4.h"

#include "Unit5.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Form2->Show();

}

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

 

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form3->Show();

 

}

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

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Form4->Show();

}

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

 

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Form5->Show();

}

Лістинг Unit 2.h

 

#include <vcl.h>

#pragma hdrstop

 

#include "Unit2.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

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

__fastcall TForm2::TForm2(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm2::Button1Click(TObject *Sender)

{

Form2->Close();

}

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

 

Лістинг Unit 3.h

#include <vcl.h>

#pragma hdrstop

 

#include "Unit3.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm3 *Form3;

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

__fastcall TForm3::TForm3(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm3::Edit6KeyPress(TObject *Sender, char &Key)

{

if ((Key>='0' && Key<='9') || (Key=='-') || (Key==(char)8)) {}

else Key=0;

}

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

 

void __fastcall TForm3::Button1Click(TObject *Sender)

{

Form3->ADOTable1->Insert();

 

Form3->ADOTable1->FieldByName("Marka")->AsString=Form3->Edit2->Text;

Form3->ADOTable1->FieldByName("Imya")->AsString=Form3->Edit3->Text;

Form3->ADOTable1->FieldByName("Familia")->AsString=Form3->Edit4->Text;

Form3->ADOTable1->FieldByName("Gorod")->AsString=Form3->Edit5->Text;

Form3->ADOTable1->FieldByName("Telefon")->AsString=Form3->Edit6->Text;

Form3->ADOTable1->FieldByName("Kod")->AsString=Form3->Edit7->Text;

Form3->ADOTable1->FieldByName("Zaplatil")->AsString=Form3->Edit7->Text;

Form3->ADOTable1->Refresh();

}

//Лістинг Uni4.h

#include <vcl.h>

#pragma hdrstop

 

#include "Unit4.h"

#include "Unit6.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm4 *Form4;

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

__fastcall TForm4::TForm4(TComponent* Owner)

: TForm(Owner)

{

}

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

 

Лістинг Unit5.h

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

 

#include <vcl.h>

#pragma hdrstop

 

#include "Unit5.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm5 *Form5;

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

__fastcall TForm5::TForm5(TComponent* Owner)

: TForm(Owner)

{

}

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

 

void __fastcall TForm5::Button1Click(TObject *Sender)

{

GroupBox2->Visible=true;

//GroupBox3->Visible=false;

//GroupBox4->Visible=false;

}

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

void __fastcall TForm5::Button2Click(TObject *Sender)

{

//GroupBox2->Visible=false;

GroupBox3->Visible=true;

//GroupBox4->Visible=false;

}

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

void __fastcall TForm5::Button3Click(TObject *Sender)

{

//GroupBox2->Visible=false;

//GroupBox3->Visible=false;

GroupBox4->Visible=true;

}

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

 

 

void __fastcall TForm8::Button1Click(TObject *Sender)

{

//Form8->ComboBox1->Text=Form8->Edit1->Text;

//Form6->Edit6->Text=Form2->ComboBox2->Text;

ComboBox1->Items->Add(Edit1->Text);

ComboBox1->ItemIndex=1;

ComboBox2->Items->Add(Edit2->Text);

ComboBox2->ItemIndex=1;

double v1,v2;

int i1,i2;

if (Edit1->Text=="")

{

ShowMessage("Введите исходную величину");

return;

}

Form8->Edit2->Clear();

i1=Form8->ComboBox1->ItemIndex;

i2=Form8->ComboBox2->ItemIndex;

//v1=Form8->Edit1->Text.ToDouble();

switch (i1)

{

case 0:v1=v1/1000.0; break;

case 1:v1=v1/100.0; break;

case 2:v1=v1; break;

case 3:v1=v1*1000; break;

case 4:v1=v1*1609; break;

case 5:v1=v1*0.305; break;

case 6:v1=v1*0.914; break;

}

switch (i2)

{

case 0:v2=v1*1000; break;

case 1:v2=v1*100; break;

case 2:v2=v1; break;

case 3:v2=v1/1000; break;

case 4:v2=v1/1609; break;

case 5:v2=v1/0.305; break;

case 6:v2=v1/0.914; break;

}

Form8->Edit2->Text=FloatToStr(v2);

if (Edit2->Text=="")

{

ShowMessage("Введите исходную величину");

return;

}

}