- •Розділ 1. Проектування програмного забезпечення
- •1.1 Опис предметної області
- •1.2 Постановка задачі
- •1.2.1 Специфікація
- •1.3 Моделі програмного продукту.
- •1.3.2. Діаграма класів
- •Розділ 2.Опис програмного середовища
- •2.2Керівництво програміста
- •2.3 Керівництво користувача
- •Розділ 3. Охорона праці та техніка безпеки
- •3.1 Загальна техніка безпеки
- •3.2 Вимоги щодо організації робочого місця
- •3.3 Вимоги з пожежної безпеки
- •3.4 Охорона навколишнього середовища
- •Висновки
- •Перелік джерел
- •Додаток а
- •1 Реалізація класів. Header-файл
- •Додаток б Реалізація класів. Cpp-файл
Додаток б Реалізація класів. Cpp-файл
#include <vcl.h>
#pragma hdrstop
#include "calc.h"
#include "Unit2.h"
#include "ComplexM.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
complex x,y,Result=complex(1e308,0);
__fastcall TForm1::TForm1(TComponent* Owner):TForm(Owner)
{}
void __fastcall TForm1::ToolButtonAddClick(TObject *Sender)
{Result=StrToCompl(Edit1->Text)+StrToCompl(Edit2->Text);
PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Z1+Z2=";}
void __fastcall TForm1::SubReverseClick(TObject *Sender)
{Result=StrToCompl(Edit2->Text)-StrToCompl(Edit1->Text);
PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Z2-Z1=";}
void __fastcall TForm1::ToolButtonMulClick(TObject *Sender)
{Result=StrToCompl(Edit1->Text)*StrToCompl(Edit2->Text);
PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Z1*Z2=";}
void __fastcall TForm1::ToolButtonDivClick(TObject *Sender)
{try{ x=StrToCompl(Edit1->Text); y=StrToCompl(Edit2->Text); Result=x/y;
PanelResult->Caption=ComplToStr(Result);}
catch(...){PanelResult->Caption="INF"; } PanelOp->Caption="Z1/Z2=";}
void __fastcall TForm1::DivReverseClick(TObject *Sender)
{try{ x=StrToCompl(Edit2->Text); y=StrToCompl(Edit1->Text); Result=x/y;
PanelResult->Caption=ComplToStr(Result);}
catch(...){PanelResult->Caption="INF";} PanelOp->Caption="Z2/Z1=";}
void __fastcall TForm1::ToolButtonPowClick(TObject *Sender)
{try{ x=StrToCompl(Edit1->Text); y=StrToCompl(Edit2->Text);
if(x!=0||y!=0) PanelResult->Caption=ComplToStr(x^y);
else PanelResult->Caption="NAN";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Z1^Z2=";}
void __fastcall TForm1::PopMODClick(TObject *Sender)
{if(CheckBox1->Checked==true){
Result=mod(StrToCompl(Edit1->Text));
PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="MOD[Z1]=";}
if(CheckBox2->Checked==true){
Result=mod(StrToCompl(Edit2->Text));
PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="MOD[Z2]=";}}
void __fastcall TForm1::PopARGClick(TObject *Sender)
{if(CheckBox1->Checked==true){
Result=arg(StrToCompl(Edit1->Text));
PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Arg[Z1]=";}
if(CheckBox2->Checked==true){
Result=arg(StrToCompl(Edit2->Text));
PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Arg[Z2]=";}}
void __fastcall TForm1::PopSQRClick(TObject *Sender)
{if(CheckBox1->Checked==true){
Result=sqrt(StrToCompl(Edit1->Text));
PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Sqr[Z1]=";}
if(CheckBox2->Checked==true){
Result=sqrt(StrToCompl(Edit2->Text));
PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Sqr[Z2]=";}}
void __fastcall TForm1::PopEXPClick(TObject *Sender)
{if(CheckBox1->Checked==true){
try{ x=StrToCompl(Edit1->Text);
if(real(x)<=709.782226) PanelResult->Caption=ComplToStr(exp(x));
else PanelResult->Caption="INF";}
catch(...){ PanelResult->Caption="INF";} PanelOp->Caption="Exp[Z1]=";}
if(CheckBox2->Checked==true){
try{ x=StrToCompl(Edit2->Text);
if(real(x)<=709.782226) PanelResult->Caption=ComplToStr(exp(x));
else PanelResult->Caption="INF";}
catch(...){ PanelResult->Caption="INF";} PanelOp->Caption="Exp[Z2]=";}}
void __fastcall TForm1::PopLOGClick(TObject *Sender)
{if(CheckBox1->Checked==true){
try{ x=StrToCompl(Edit1->Text); if(x!=0) PanelResult->Caption=ComplToStr(log(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";} PanelOp->Caption="ln[Z1]=";}
if(CheckBox2->Checked==true){
try{ x=StrToCompl(Edit2->Text); if(x!=0) PanelResult->Caption=ComplToStr(log(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";} PanelOp->Caption="ln[Z2]=";}}
void __fastcall TForm1::PopSaveTo1Click(TObject *Sender)
{ Edit1->Text=PanelResult->Caption; }
void __fastcall TForm1::PopSaveTo2Click(TObject *Sender)
{ Edit2->Text=PanelResult->Caption; }
void __fastcall TForm1::PopFormatALGClick(TObject *Sender)
{ COMPLEX_FORMAT=false; }
void __fastcall TForm1::PopFormatComClick(TObject *Sender)
{ COMPLEX_FORMAT=true; }
void __fastcall TForm1::PopChangeClick(TObject *Sender)
{ String T = Edit1->Text; Edit1->Text = Edit2->Text; Edit2->Text = T; PanelOp->Caption=""; }
void __fastcall TForm1::Edit2Enter(TObject *Sender)
{ PanelOp->Caption=""; }
void __fastcall TForm1::Edit1Enter(TObject *Sender)
{ PanelOp->Caption=""; }
void __fastcall TForm1::PanelZFMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{PopupMenuFormat->Popup(Form1->Left+PanelZF->Left,
Form1->Top+PanelZF->Top);}
void __fastcall TForm1::Edit1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{ if(Button==mbRight){ PanelOp->Caption=""; Edit1->Text="";}}
void __fastcall TForm1::Edit2MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{if(Button==mbRight){PanelOp->Caption=""; Edit2->Text="";}}
void __fastcall TForm1::FormCreate(TObject *Sender)
{COMPLEX_FORMAT=true;}
void __fastcall TForm1::PopSaveTo3Click(TObject *Sender)
{ Panel3->Caption=PanelResult->Caption;}
void __fastcall TForm1::PopUpR1toR2Click(TObject *Sender)
{Edit2->Text=Edit1->Text;}
void __fastcall TForm1::PopUpR1toR3Click(TObject *Sender)
{Panel3->Caption=Edit1->Text;}
void __fastcall TForm1::PopUpR12Click(TObject *Sender)
{String T = Edit1->Text; Edit1->Text = Edit2->Text; Edit2->Text = T;}
void __fastcall TForm1::PopUpR2toR1Click(TObject *Sender)
{Edit1->Text=Edit2->Text; PanelOp->Caption=""; }
void __fastcall TForm1::PopUpR2toR3Click(TObject *Sender)
{Panel3->Caption=Edit2->Text; PanelOp->Caption="";}
void __fastcall TForm1::PopUpR21Click(TObject *Sender)
{String T = Edit1->Text; Edit1->Text = Edit2->Text; Edit2->Text = T; PanelOp->Caption="";}
void __fastcall TForm1::PopUpR23Click(TObject *Sender)
{String T = Panel3->Caption; Panel3->Caption = Edit2->Text; Edit2->Text = T; PanelOp->Caption="";}
void __fastcall TForm1::PopUpR3toR1Click(TObject *Sender)
{ Edit1->Text=Panel3->Caption;}
void __fastcall TForm1::PopUpR3toR2Click(TObject *Sender)
{ Edit2->Text=Panel3->Caption;}
void __fastcall TForm1::PopUpR31Click(TObject *Sender)
{ String T = Panel3->Caption; Panel3->Caption = Edit1->Text; Edit1->Text = T;PanelOp->Caption=""; }
void __fastcall TForm1::PopUpR32Click(TObject *Sender)
{ String T = Panel3->Caption; Panel3->Caption = Edit2->Text; Edit2->Text = T; PanelOp->Caption=""; }
void __fastcall TForm1::PanelZ3MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{PopupMenuZ3->Popup(Form1->Left+PanelZ3->Left,
Form1->Top+PanelZ3->Top);}
void __fastcall TForm1::PanelZ2MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{PopupMenuZ2->Popup(Form1->Left+PanelZ2->Left,
Form1->Top+PanelZ2->Top);}
void __fastcall TForm1::PanelZ1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{PopupMenuZ1->Popup(Form1->Left+PanelZ1->Left,
Form1->Top+PanelZ1->Top);}
void __fastcall TForm1::PowReverseClick(TObject *Sender)
{try{ x=StrToCompl(Edit1->Text); y=StrToCompl(Edit2->Text);
if(x!=0||y!=0) PanelResult->Caption=ComplToStr(y^x);
else PanelResult->Caption="NAN";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Z2^Z1=";}
void __fastcall TForm1::N1Click(TObject *Sender)
{if(CheckBox1->Checked==true){
try{ x=StrToCompl(Edit1->Text);
if(real(x)<=709.782226) PanelResult->Caption=ComplToStr(~(x));
else PanelResult->Caption="INF";}
catch(...){ PanelResult->Caption="INF";} PanelOp->Caption="~(Z1)=";}
if(CheckBox2->Checked==true){
try{ x=StrToCompl(Edit2->Text);
if(real(x)<=709.782226) PanelResult->Caption=ComplToStr(~(x));
else PanelResult->Caption="INF";}
catch(...){ PanelResult->Caption="INF";} PanelOp->Caption="~(Z2)=";}}
void __fastcall TForm1::N3Click(TObject *Sender)
{exit(0); }
void __fastcall TForm1::N2Click(TObject *Sender)
{Application->MessageBox("Комплексный калькулятор, версия 1.1","Комплексный калькулятор",MB_OK);}
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{if(CheckBox1->Checked==true){CheckBox2->Checked=false;}}
void __fastcall TForm1::CheckBox2Click(TObject *Sender)
{if(CheckBox2->Checked==true){CheckBox1->Checked=false;}}
void __fastcall TForm1::Button1Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(1);
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(1);}
void __fastcall TForm1::Button2Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(2);
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(2);}
void __fastcall TForm1::Button3Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(3);
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(3);}
void __fastcall TForm1::Button4Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(4);
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(4);}
void __fastcall TForm1::Button5Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(5);
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(5);}
void __fastcall TForm1::Button6Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(6);
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(6);}
void __fastcall TForm1::Button7Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(7);
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(7);}
void __fastcall TForm1::Button8Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(8);
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(8);}
void __fastcall TForm1::Button9Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(9);
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(9);}
void __fastcall TForm1::Button10Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+StrToInt(0);
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+StrToInt(0);}
void __fastcall TForm1::Button13Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+"i";
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+"i";}
void __fastcall TForm1::Button11Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+"+";
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+"+";}
void __fastcall TForm1::Button12Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+"-";
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+"-";}
void __fastcall TForm1::All_clear(TObject *Sender)
{Edit1->Text="";
Edit2->Text="";
Panel3->Caption="";
PanelResult->Caption="";
PanelOp->Caption="";
CheckBox1->Checked=false;
CheckBox2->Checked=false;
deg->Checked=false;}
void __fastcall TForm1::Z1_clear(TObject *Sender)
{Edit1->Text="";}
void __fastcall TForm1::Z2_clear(TObject *Sender)
{Edit2->Text=""; }
void __fastcall TForm1::Z3_clear(TObject *Sender)
{Panel3->Caption=""; }
void __fastcall TForm1::Z_clear(TObject *Sender)
{PanelResult->Caption="";
PanelOp->Caption="";}
void __fastcall TForm1::ToolButtonSubClick(TObject *Sender)
{Result=StrToCompl(Edit1->Text)-StrToCompl(Edit2->Text);
PanelResult->Caption=ComplToStr(Result); PanelOp->Caption="Z1-Z2=";}
void __fastcall TForm1::KonvertClick(TObject *Sender)
{Form2->Visible=true;}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClearMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{PopupMenuClear->Popup(Form1->Left+Clear->Left,
Form1->Top+Clear->Top);}
void __fastcall TForm1::SIN1Click(TObject *Sender)
{double f;
if(CheckBox1->Checked==true){
if(deg->Checked==true){
try{ f=StrToFloat(Edit1->Text);
f=f*pi/180;
PanelResult->Caption=FloatToStr(sin(f));}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Sin[Z1]=";}
else{ try{ x=StrToCompl(Edit1->Text);
if(x!=0) PanelResult->Caption=ComplToStr(sin(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Sin[Z1]=";}}
if(CheckBox2->Checked==true){
if(deg->Checked==true){
try{ f=StrToFloat(Edit2->Text);
f=f*pi/180;
PanelResult->Caption=FloatToStr(sin(f));}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Sin[Z2]=";}
else{ try{ x=StrToCompl(Edit2->Text);
if(x!=0) PanelResult->Caption=ComplToStr(sin(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Sin[Z2]=";}}}
void __fastcall TForm1::COS1Click(TObject *Sender)
{double f;
if(CheckBox1->Checked==true){
if(deg->Checked==true){
try{ f=StrToFloat(Edit1->Text);
f=f*pi/180;
PanelResult->Caption=FloatToStr(cos(f));}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Cos[Z1]=";}
else{ try{ x=StrToCompl(Edit1->Text);
if(x!=0) PanelResult->Caption=ComplToStr(cos(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Cos[Z1]=";}}
if(CheckBox2->Checked==true){
if(deg->Checked==true){
try{ f=StrToFloat(Edit2->Text);
f=f*pi/180;
PanelResult->Caption=FloatToStr(cos(f));}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Cos[Z2]=";}
else{ try{ x=StrToCompl(Edit2->Text);
if(x!=0) PanelResult->Caption=ComplToStr(cos(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Cos[Z2]=";}}}
void __fastcall TForm1::TAN1Click(TObject *Sender)
{double f;
if(CheckBox1->Checked==true){
if(deg->Checked==true){
try{ f=StrToFloat(Edit1->Text);
f=f*pi/180;
PanelResult->Caption=FloatToStr(tan(f));}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Tan[Z1]=";}
else{ try{ x=StrToCompl(Edit1->Text);
if(x!=0) PanelResult->Caption=ComplToStr(tan(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Tan[Z1]=";}}
if(CheckBox2->Checked==true){
if(deg->Checked==true){
try{ f=StrToFloat(Edit2->Text);
f=f*pi/180;
PanelResult->Caption=FloatToStr(tan(f));}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Tan[Z2]=";}
else{ try{ x=StrToCompl(Edit2->Text);
if(x!=0) PanelResult->Caption=ComplToStr(tan(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Tan[Z2]=";}}}
void __fastcall TForm1::SINH1Click(TObject *Sender)
{double f;
if(CheckBox1->Checked==true){
if(deg->Checked==true){
try{ f=StrToFloat(Edit1->Text);
f=f*pi/180;
PanelResult->Caption=FloatToStr(sinh(f));}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Sinh[Z1]=";}
else{ try{ x=StrToCompl(Edit1->Text);
if(x!=0) PanelResult->Caption=ComplToStr(sinh(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Sinh[Z1]=";}}
if(CheckBox2->Checked==true){
if(deg->Checked==true){
try{ f=StrToFloat(Edit2->Text);
f=f*pi/180;
PanelResult->Caption=FloatToStr(sinh(f));}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Sinh[Z2]=";}
else{ try{ x=StrToCompl(Edit2->Text);
if(x!=0) PanelResult->Caption=ComplToStr(sinh(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Sinh[Z2]=";}}}
void __fastcall TForm1::COSH1Click(TObject *Sender)
{double f;
if(CheckBox1->Checked==true){
if(deg->Checked==true){
try{ f=StrToFloat(Edit1->Text);
f=f*pi/180;
PanelResult->Caption=FloatToStr(cosh(f));}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Cosh[Z1]=";}
else{ try{ x=StrToCompl(Edit1->Text);
if(x!=0) PanelResult->Caption=ComplToStr(cosh(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Cosh[Z1]=";}}
if(CheckBox2->Checked==true){
if(deg->Checked==true){
try{ f=StrToFloat(Edit2->Text);
f=f*pi/180;
PanelResult->Caption=FloatToStr(cosh(f));}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Cosh[Z2]=";}
else{ try{ x=StrToCompl(Edit2->Text);
if(x!=0) PanelResult->Caption=ComplToStr(cosh(x));
else PanelResult->Caption="INF";}
catch(...){PanelResult->Caption="INF";}
PanelOp->Caption="Cosh[Z2]=";}}}
void __fastcall TForm1::Button14Click(TObject *Sender)
{if(CheckBox1->Checked==true)Edit1->Text=Edit1->Text+"3.1415926535897932384626433832795";
if(CheckBox2->Checked==true)Edit2->Text=Edit2->Text+"3.1415926535897932384626433832795";}
