Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
380.4 Кб
Скачать

Заключение

Проделав курсовую работу, я приобрёл навыки объектно-ориентированного программирования, а также изучил и освоил RAD(rapid application development) технологию - технологию быстрого создания приложений, используемую в среде C++ Builder.

Список использованной литературы

  1. Джарод Холингвэрт, Дэн Баттерфилд, Боб Сворт, Джэйми Оллсоп C++Builder 5. Руководство разработчика.

  2. Borland C++ Builder 5. Энциклопедия программиста. Калверт Ч., Рейсдорф К., "ДиаСофт" - 2001, 944 стр.

Приложение а

Приложение б

#include <vcl.h>

#pragma hdrstop

#include<math.h>

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

TColor Color1;// глобальный цвет

TPoint *points1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm1::FormCreate(TObject *Sender)

{

CLR1->Hide();// скроем таблицу цветов

Str_A->Text = "50"; // начальные параметры для наших сторон

Str_B->Text = "80";

Str_C->Text = "60";

Image1->Canvas->Rectangle(-50,-50,800,400);

}

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

void __fastcall TForm1::CLR_BUTTClick(TObject *Sender) // открытие закрытие меню цвета

{

if (!CLR1->Visible) {

CLR1->Show();

}

else {

CLR1->Hide();

}

}

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

void __fastcall TForm1::DOITClick(TObject *Sender)

{

int wei,hei,sigh,rad,kol;

double shag;

int x1,y1;

Image1->Canvas->Pen->Color = Color1;

Image1->Canvas->Brush->Color = Color1; //заливка и контур цвета, выбранного нами ранее

int index = FigureList->ItemIndex; //выбор фигуры в листе

switch(index) {

case 0: //рисуем квадрат

wei = StrToInt(Str_A->Text);

if (wei/2<=314) {

Image1->Canvas->Rectangle(314-wei/2,193-wei/2, 314+wei/2,193+wei/2);

} else ShowMessage("Выход за пределы экрана.");

break;

case 1: //рисуем прямоугльник

wei = StrToInt(Str_A->Text); hei = StrToInt(Str_B->Text);

if (hei/2 <=193 && wei/2<=314) {

Image1->Canvas->Rectangle(314-wei/2,193-hei/2, 314+wei/2,193+hei/2);

} else ShowMessage("Выход за пределы экрана.");

break;

case 3:// рисуем круг

rad = StrToInt(Str_A->Text);

if (rad/2 <= 193) {

Image1->Canvas->Ellipse(314-rad/2,193-rad/2,314+rad/2,193+rad/2);

} else ShowMessage("Выход за пределы экрана.");

break;

case 4: //Рисоавние n-угольника

kol = StrToInt(Str_B->Text);

wei = StrToInt(Str_A->Text);

if (wei/2 <=193) {

shag = (2*3.14 )/ kol;

points1 = new TPoint[kol];

for (int i = 0; i < kol; i++) {

x1 = 314+(wei/2)*cos(i*shag);

y1 = 193+(wei/2)*sin(i*shag);

points1[i] = Point(x1,y1);

}

Image1->Canvas->Polygon(points1,kol-1);

delete []points1;

}

else ShowMessage("Выход за пределы экрана.");

break;

case 5: //Рисование эллипса

wei = StrToInt(Str_A->Text); hei = StrToInt(Str_B->Text);

if (hei/2 <=193 && wei/2<=314) {

Image1->Canvas->Ellipse(314-wei/2,193-hei/2, 314+wei/2,193+hei/2);

} else ShowMessage("Выход за пределы экрана.");

break;

case 2: //Рисование треугольника

int a,b,c;

a = StrToInt(Str_A->Text);

b = StrToInt(Str_B->Text);

c = StrToInt(Str_C->Text);

bool round = false;

if (a<b+c)

if (b<c+a) // тут проверка на существование треугольника

if (c<b+a)

round = true;

TPoint points[3];

int x1,x2,x,y,ka = -1,kb = 0;

if (round == false) ShowMessage("Невозможно");

else

{

x1 = 314-(a/2);

x2 = 314+(a/2); //создаем две точки для одной стороны

points[0] = Point(x1, 216);

points[1] = Point(x2, 216);

for (x = 1; x<=680; x++) //ищем третью точку по всему полю

{

for (y = 1;y<=380; y++)

{

ka =sqrt(pow((x-x1),2) + pow((y-216),2));

kb =sqrt(pow((x-x2),2) + pow((y-216),2)); //меряем расстояние

if (ka==b && kb==c)

{

break;

}

}

if (ka==b && kb==c)

{

break;

}

}

points[2] = Point(x,y);

if (x>=680 && y>=380) ShowMessage("Выход за пределы поля");

else

Image1->Canvas->Polygon(points, 2);

break;

}

}

}

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

void __fastcall TForm1::FigureListChange(TObject *Sender)

{

int index = FigureList->ItemIndex;

switch(index) //здесь скрываются\показываются поля для ввода

{

case 0: //квадрат

Str_A->Show(); Str_B->Hide(); Str_C->Hide();

Lab_A->Show(); Lab_B->Hide(); Lab_C->Hide();

Lab_A->Caption = "Сторона А";

break;

case 1: //прямоугольник

Str_A->Show(); Str_B->Show(); Str_C->Hide();

Lab_A->Show(); Lab_B->Show(); Lab_C->Hide();

Lab_A->Caption = "Сторона А"; Lab_B->Caption = "Сторона B";

break;

case 2: //треуглоьник

Str_A->Show(); Str_B->Show(); Str_C->Show();

Lab_A->Show(); Lab_B->Show(); Lab_C->Show();

Lab_A->Caption = "Сторона А"; Lab_B->Caption = "Сторона B";

Lab_C->Caption = "Сторона C";

break;

case 3: //круг

Str_A->Show(); Str_B->Hide(); Str_C->Hide();

Lab_A->Show(); Lab_B->Hide(); Lab_C->Hide();

Lab_A->Caption = "Радиус";

break;

case 4: //н-угольник

Str_A->Show(); Str_B->Show(); Str_C->Hide();

Lab_A->Show(); Lab_B->Show(); Lab_C->Hide();

Lab_A->Caption = "Радиус"; Lab_B->Caption = "Количество";

break;

case 5: //эллипс

Str_A->Show(); Str_B->Show(); Str_C->Hide();

Lab_A->Show(); Lab_B->Show(); Lab_C->Hide();

Lab_A->Caption = "Радиус А"; Lab_B->Caption = "Радиус В";

break;

}

}

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

void __fastcall TForm1::Clear_ButClick(TObject *Sender)

{

Image1->Canvas->Pen->Color = clWhite; //тут экран очищается. просто создается

Image1->Canvas->Brush->Color = clWhite; //большой прямоугльник на весь экран

Image1->Canvas->Rectangle(-50,-50,800,400);

}

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

void __fastcall TForm1::CLR1Change(TObject *Sender)

{

Color1 = CLR1->Selected;

}

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