ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.09.2024
Просмотров: 26
Скачиваний: 0
СОДЕРЖАНИЕ
3.1 Опис структури даних та вимоги до них
3.2 Опис стандартних функцій, що використовувалися у програмі
3.4 Опис модулів та їх призначення
4 Інструкції для роботи з програмою
5 Приклади тестування та результати роботи програми
Додаток а Лістинг модуля FracUnit
Додаток б Лістинг модуля CalculateFrac
Додаток в Лістинг модуля AddUnit
Додаток г Лістинг модуля SumUnit
Додаток д Лістинг модуля MulytUnit
Додаток e Лістинг модуля DivUnit
Додаток г Лістинг модуля SumUnit
#include <vcl.h>
#pragma hdrstop
#include "SumUnit.h"
#include "FracUnit.h"
#include "CalculateFrac.h"
#include "Math.h"
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button2Click(TObject *Sender)
{Label3->Hide(); Label6->Hide();
Edit5->Hide(); Edit6->Hide(); Edit7->Hide();
Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear(); Edit5->Clear();
Edit6->Clear(); Edit7->Clear();
Button1->Enabled=true;
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button3Click(TObject *Sender)
{ SumForm->Close();
MainForm->Show();}
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button1Click(TObject *Sender)
{ int a,b,c,d;
if(((Edit1->Text).Length()==0)||((Edit2->Text).Length()==0)||
((Edit3->Text).Length()==0)||((Edit4->Text).Length()==0))
{
ShowMessage("Заповніть всі поля!");
return;
}
a=StrToInt(Edit1->Text);
b=StrToInt(Edit2->Text);
c=StrToInt(Edit3->Text);
d=StrToInt(Edit4->Text);
if((d==0)||(b==0))
{
ShowMessage("Ділення на нуль!!");
return;
}
Button1->Enabled=false; Label3->Show();
CalculateFrac *Calculate=new CalculateFrac;
Calculate->SubFrac(a,b,c,d);
if(Calculate->GetA()!=0)
{
Edit5->Show();
Edit5->Text=IntToStr(Calculate->GetA());
}
if(Calculate->GetP()!=0)
{
Edit6->Show(); Edit7->Show(); Label6->Show();
Edit6->Text=IntToStr(Calculate->GetP());
Edit7->Text=IntToStr(Calculate->GetQ());
}
if((Calculate->GetA()==0)&&(Calculate->GetP()==0))
{
Edit5->Show();
Edit5->Text="0";
}
}
Додаток д Лістинг модуля MulytUnit
#include <vcl.h>
#pragma hdrstop
#include "MultUnit.h"
#include "FracUnit.h"
#include "CalculateFrac.h"
#include "Math.h"
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button2Click(TObject *Sender)
{Label3->Hide(); Label6->Hide();
Edit5->Hide(); Edit6->Hide(); Edit7->Hide();
Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear(); Edit5->Clear();
Edit6->Clear(); Edit7->Clear();
Button1->Enabled=true;
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button3Click(TObject *Sender)
{ SumForm->Close();
MainForm->Show();}
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button1Click(TObject *Sender)
{ int a,b,c,d;
if(((Edit1->Text).Length()==0)||((Edit2->Text).Length()==0)||
((Edit3->Text).Length()==0)||((Edit4->Text).Length()==0))
{
ShowMessage("Заповніть всі поля!");
return;
}
a=StrToInt(Edit1->Text);
b=StrToInt(Edit2->Text);
c=StrToInt(Edit3->Text);
d=StrToInt(Edit4->Text);
if((d==0)||(b==0))
{
ShowMessage("Ділення на нуль!!");
return;
}
Button1->Enabled=false; Label3->Show();
CalculateFrac *Calculate=new CalculateFrac;
Calculate->Mult(a,b,c,d);
if(Calculate->GetA()!=0)
{
Edit5->Show();
Edit5->Text=IntToStr(Calculate->GetA());
}
if(Calculate->GetP()!=0)
{
Edit6->Show(); Edit7->Show(); Label6->Show();
Edit6->Text=IntToStr(Calculate->GetP());
Edit7->Text=IntToStr(Calculate->GetQ());
}
if((Calculate->GetA()==0)&&(Calculate->GetP()==0))
{
Edit5->Show();
Edit5->Text="0";
}
}
Додаток e Лістинг модуля DivUnit
#include <vcl.h>
#pragma hdrstop
#include "DivUnit.h"
#include "FracUnit.h"
#include "CalculateFrac.h"
#include "Math.h"
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button2Click(TObject *Sender)
{Label3->Hide(); Label6->Hide();
Edit5->Hide(); Edit6->Hide(); Edit7->Hide();
Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear(); Edit5->Clear();
Edit6->Clear(); Edit7->Clear();
Button1->Enabled=true;
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button3Click(TObject *Sender)
{ SumForm->Close();
MainForm->Show();}
//---------------------------------------------------------------------------
void __fastcall TSumForm::Button1Click(TObject *Sender)
{ int a,b,c,d;
if(((Edit1->Text).Length()==0)||((Edit2->Text).Length()==0)||
((Edit3->Text).Length()==0)||((Edit4->Text).Length()==0))
{
ShowMessage("Заповніть всі поля!");
return;
}
a=StrToInt(Edit1->Text);
b=StrToInt(Edit2->Text);
c=StrToInt(Edit3->Text);
d=StrToInt(Edit4->Text);
if((d==0)||(b==0))
{
ShowMessage("Ділення на нуль!!");
return;
}
Button1->Enabled=false; Label3->Show();
CalculateFrac *Calculate=new CalculateFrac;
Calculate->DivFrac(a,b,c,d);
if(Calculate->GetA()!=0)
{
Edit5->Show();
Edit5->Text=IntToStr(Calculate->GetA());
}
if(Calculate->GetP()!=0)
{
Edit6->Show(); Edit7->Show(); Label6->Show();
Edit6->Text=IntToStr(Calculate->GetP());
Edit7->Text=IntToStr(Calculate->GetQ());
}
if((Calculate->GetA()==0)&&(Calculate->GetP()==0))
{
Edit5->Show();
Edit5->Text="0";
}
}
Додаток ж Лістинг модуля SumMassibUnit
#include "SumMasivUnit.h"
#include "FracUnit.h"
#include "CalculateFrac.h"
#include "Math.h"
int count=11,i;
//---------------------------------------------------------------------------
void __fastcall TSumMassivForm::Button4Click(TObject *Sender)
{
Button2->Enabled=true; Button1->Enabled=true; Button4->Enabled=false;
if(Edit1->Text.Length()==0)
{ ShowMessage("Поле має бути заповненим!");
return; }
count=StrToInt(Edit1->Text);
if(count<2)
{ ShowMessage("Допустима розмірність: більше '1'!");
return; }
count++;
StringGrid1->ColCount=count;
}
//---------------------------------------------------------------------------
void __fastcall TSumMassivForm::Button2Click(TObject *Sender)
{
Button2->Enabled=false; Button1->Enabled=false; Button4->Enabled=true;
count=11;
StringGrid1->ColCount=count;
for(i=1;i<count;i++)
{ StringGrid1->Cells[i][0]="";
StringGrid1->Cells[i][1]="";}
Edit1->Clear(); Edit2->Clear(); Edit3->Clear(); Edit4->Clear();}
void __fastcall TSumMassivForm::Button1Click(TObject *Sender)
{
int a,b,A=0,h=0,e=1;
for(int i=1;i<count;i++)
if((StringGrid1->Cells[i][0].Length()==0)||(StringGrid1->Cells[i][1].Length()==0))
{ ShowMessage("Заповнені не всі поля!");
return; }
CalculateFrac *Calculate=new CalculateFrac;
for(int i=1;i<count;i++)
{
a=StrToInt(StringGrid1->Cells[i][0]);
b=StrToInt(StringGrid1->Cells[i][1]);
if(b==0)
{
ShowMessage("Ділення на нуль!!");
return;
}
Calculate->AddFrac(a,b,h,e);
A+=Calculate->GetA(); h=Calculate->GetP(); e=Calculate->GetQ();
}
if(A!=0)
Edit4->Text=IntToStr(A);
if(h!=0)
{ Edit2->Text=IntToStr(h); Edit3->Text=IntToStr(e); }
if((A==0)&&(h==0)) Edit4->Text="0";
double S=A*e+h; double SA=S/e; SA/=(count-1);
Edit5->Text=FloatToStrF(SA,ffFixed,5,3);
Button1->Enabled=false;
}
Додаток з Лістинг модуля SortUnit
#include <vcl.h>
#pragma hdrstop
#include "SortUnit.h"
#include "FracUnit.h"
#include "CalculateFrac.h"
#include "Math.h"
int count=11,i;
int FracMassiv[20][2];
//---------------------------------------------------------------------------
void __fastcall TSortForm::Button2Click(TObject *Sender)
{
count=11;
Button2->Enabled=false; Button1->Enabled=false; Button4->Enabled=true;
StringGrid1->ColCount=count;
StringGrid2->ColCount=count;
for(i=1;i<count;i++)
{ StringGrid1->Cells[i][0]=""; StringGrid1->Cells[i][1]=""; StringGrid2->Cells[i][0]=""; StringGrid2->Cells[i][1]="";}
Edit1->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TSortForm::Button4Click(TObject *Sender)
{
Button2->Enabled=true; Button1->Enabled=true; Button4->Enabled=false;
if(Edit1->Text.Length()==0)
{ ShowMessage("Поле має бути заповненим!"); return;}
count=StrToInt(Edit1->Text);
if((count<2)||(count>20))
{ ShowMessage("Допустима розмірність: від '2' до '20'!"); return;}
count++; StringGrid1->ColCount=count; StringGrid2->ColCount=count;
}
//---------------------------------------------------------------------------
void __fastcall TSortForm::Button1Click(TObject *Sender)
{
int a,b,c,d,e,f;
for(int i=1;i<count;i++)
if((StringGrid1->Cells[i][0].Length()==0)||(StringGrid1->Cells[i][1].Length()==0))
{ ShowMessage("Заповнені не всі поля!"); return; }
CalculateFrac *Calculate=new CalculateFrac;
for(int i=1;i<count;i++)
{ FracMassiv[i][0]=StrToInt(StringGrid1->Cells[i][0]); FracMassiv[i][1]=StrToInt(StringGrid1->Cells[i][1]);}
for(int i=1;i<count;i++)
{
for(int j=1;j<count-1;j++)
{
a=FracMassiv[j][0]; b=FracMassiv[j][1];
c=FracMassiv[j+1][0]; d=FracMassiv[j+1][1];
int check=Calculate->CheckFrac(a,b,c,d);
if (check==2)
{ e=a; f=b; a=c; b=d; c=e; d=f;
FracMassiv[j][0]=a; FracMassiv[j][1]=b; FracMassiv[j+1][0]=c; FracMassiv[j+1][1]=d; }
}
for(int i=1;i<count;i++)
{ StringGrid2->Cells[i][0]=IntToStr(FracMassiv[i][0]); StringGrid2->Cells[i][1]=IntToStr(FracMassiv[i][1]); }
}
}