ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.09.2024
Просмотров: 32
Скачиваний: 0
СОДЕРЖАНИЕ
3.1 Опис структури даних та вимоги до них
3.2 Опис стандартних функцій, що використовувалися у програмі
3.4 Опис модулів та їх призначення
4 Інструкції для роботи з програмою
5 Приклади тестування та результати роботи програми
Додаток а Лістинг модуля FracUnit
Додаток б Лістинг модуля CalculateFrac
Додаток в Лістинг модуля AddUnit
Додаток г Лістинг модуля SumUnit
Додаток д Лістинг модуля MulytUnit
Додаток e Лістинг модуля DivUnit
5 Приклади тестування та результати роботи програми
Меню
Додавання дробів:
.
Віднімання дробів:
Множення дробів:
Ділення дробів:
Піднесення до степеня:
Порівняння дробів на рівність (дорвнює / не дорівнює):
Порівняння дробів на рівність(більше / менше):
Сума масивів дробів:
Сортування масиву дробів:
Висновки
Під час розробки курсового проекту я закріпила, поглибила та узагальнила знання, якими оволоділа під час вивчення курсу, в набутті навичок використання основ алгоритмізації та програмування на алгоритмічних мовах високого рівня з використанням принципів об’єктно-орієнтованого проектування та програмування в середовищі «Borland C++ Builder». Я застосовувала навички, набуті протягом навчання для створення програми для виконання основних математичних операцій над дробами: додавання, віднімання, множення, ділення, піднесення до степеню та порівняння дробів. Ця програма дозволяю реалізовую функції для знаходження суми масиву дробів та для сортування масиву дробів.. Дані завдання я реалізував з використанням класів.
Підвівши підсумки я зрозуміла, що «Borland C++ Builder» є гнучкою та алгоритмічною мовою програмування, і добре підходить як для початківця так і для досвідченого програміста. Широкий набір функцій та модульність дозволяє швидко та якісно створювати програмний продукт. Знання основ алгоритмізації та програмування з використанням принципів об’єктно-орієнтованого проектування ПЗ різних задач на ЕОМ необхідно для подальшого використання у розробці програмного забезпечення сучасних складних технічних систем та комп’ютерних систем управління.
Література
-
Архангельский А.Я. Программирование в C++ Builder, 7 изд., Бином, 2010. — 1304 с.
-
Бобровский С. Самоучитель программирования на C++ в системе C++ Builder. ДЕСС, 2003. — 810 с.
-
Культин Н.Б. Самоучитель C++ Builder., Высшая школа, 2006. — 380 с.
-
Архангельский А.Я. C++ Builder 6 справочное пособие, 2005. — 635 с.
-
Алексанкин Т.А. Borland C++, 2003 — 540 с.
-
Ермолаев В., Сорока Т. C++ Builder Книга рецептов, 2003. — 560 с.
-
Культин Н.Б. C++ Builder в задачах и примерах, 2000. — 400 с.
-
Бобровский С. Технологии C++ Builder., 2005. — 490 с.
-
Парта С. Язык программирования C++ Лекции и упражениния, 1999. – 630 с.
Додаток а Лістинг модуля FracUnit
#include "FracUnit.h"
#include "AddUnit.h"
#include "CalculateFrac.h"
#include "SubUnit.h"
#include "MultUnit.h"
#include "DivUnit.h"
#include "PowUnit.h"
#include "RivnUnit.h"
#include "CheckUnit.h"
#include "SumMasivUnit.h"
#include "SortUnit.h"
//---------------------------------------------------------------------------
void __fastcall TMainForm::Button1Click(TObject *Sender)
{ MainForm->Close();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N2Click(TObject *Sender)
{ SumForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N3Click(TObject *Sender)
{ SubForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N4Click(TObject *Sender)
{ MultForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N5Click(TObject *Sender)
{ DivForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N6Click(TObject *Sender)
{ PowForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N8Click(TObject *Sender)
{ RivnForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N9Click(TObject *Sender)
{ CheckForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N11Click(TObject *Sender)
{ SumMassivForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N12Click(TObject *Sender)
{ SortForm->Show();
MainForm->Hide();}
//---------------------------------------------------------------------------
Додаток б Лістинг модуля CalculateFrac
#include "Math.h"
class CalculateFrac{
public:
void AddFrac(int a, int b, int c, int d)
{
int zero=0;
int e=b*d;
int g=a*d+c*b;
if (g==0)
{
zero=1;
this->a=0;
}
else
{
if(abs(g)>=e)
{
this->a=g/e;
g=abs(g-=this->a*e);
if (g==0)
zero=1;
}
else
this->a=0;
}
if(zero==0)
{
this->p=(g/this->nod(abs(g),abs(e)));
this->q=(e/this->nod(abs(g),abs(e)));
}
else
{
this->p=0;
this->q=1;
}
}
void SubFrac(int a, int b, int c, int d)
{
int zero=0;
int e=b*d;
int g=a*d-c*b;
if (g==0)
{
zero=1;
this->a=0;
}
else
{
if(abs(g)>=e)
{
this->a=g/e;
g=abs(g-=this->a*e);
if (g==0)
zero=1;
}
else
this->a=0;
}
if(zero==0)
{
this->p=(g/this->nod(abs(g),abs(e)));
this->q=(e/this->nod(abs(g),abs(e)));
}
else
{this->p=0; this->q=1; }
}
void MultFrac(int a, int b, int c, int d)
{
int zero=0;
int g=a*c;
int e=b*d;
if (g==0)
{
zero=1;
this->a=0;
}
else
{
if(abs(g)>=e)
{this->a=g/e;g=abs(g-=this->a*e);if (g==0) zero=1;}
Else this->a=0;
}
if(zero==0)
{this->p=(g/this->nod(abs(g),abs(e)));
this->q=(e/this->nod(abs(g),abs(e)));}
else
{this->p=0; this->q=1;}
}
void DivFrac(int a, int b, int c, int d)
{
int zero=0;
int g=a*d;
int e=b*c;
if (g==0)
{
zero=1;
this->a=0;
}
else
{
if(abs(g)>=e)
{this->a=g/e; g=abs(g-=this->a*e);
if (g==0) zero=1; }
else this->a=0;
}
if(zero==0)
{this->p=(g/this->nod(abs(g),abs(e)));this->q=(e/this- >nod(abs(g),abs(e))); }
else
{this->p=0; this->q=1; }
}
void PowFrac(int a, int b, int n)
{
MultFrac(a,b,a,b);
for(int i=1;i<n-1;i++)
MultFrac(this->p,this->q,a,b);
}
int RivnFrac(int a, int b, int c, int d)
{
int g=b*d;
int e=a*d;
int f=c*b;
if (e==f)
return 1;
else
return 0;
}
int CheckFrac(int a, int b, int c, int d)
{
int g=b*d;
int e=a*d;
int f=c*b;
if (e==f)
return 1;
else
if(e>f)
return 2;
else
return 3;
}
int GetP()
{
return this->p;
}
int GetQ()
{
return this->q;
}
int GetA()
{
return this->a;
}
private:
int p,q,a;
int nod(int x,int y)
{
while(x!=y)
{
if(x<y)
y-=x;
else
x-=y;
}
return x;
}
};
Додаток в Лістинг модуля AddUnit
#include <vcl.h>
#pragma hdrstop
#include "AddUnit.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->AddFrac(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";
}
}