Написание программы с использованием ООП, которая рисует треугольник произвольной формы

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

Уральский Государственный Технический Университет – УПИ

Радиотехнический факультет

Кафедра Теоретических основ радиотехники

Оценка_____________

Дата_______________

Подпись____________

ОТЧЕТ

по лабораторной работе №2

«Oбъектно-ориентированное программирование »

                                                     Преподаватель

            Группа Р-219

                              Студенты

                    Макаров Дмитрий

Екатеринбург 2001г

1.Задание

Написсать программу с использованием ООП, которая рисует треугольник произвольной формы и реализует:

Ø Перемещение фигуры по X,Y.

Ø Перемещение выбранных вершин по X,Y.

Ø Вращение фигуры относительно точки пересечения медиан.

Ø Изменение цвета контура фигуры.

2. Блок-схема

 


3.  Описание функций

3.1 Init();

Инициализация графики

3.2 Skin();

3.3 Triang::Triang(int ix1,int iy1,int ix2,int iy2,int ix3,int iy3,int ic);

Графическаа оболчка программы

3.4 Triang::MoveF();

Интерфейс для перемещения фигуры.

Перенос производится функцией Triang::MoveTo(int NewX, int NewY);

3.5 Triang::RotateTo(float a);

Интерфейс для поворота фигуры и сам поворот фигуры.

3.6Triang::MoveT();

Интерфейс для перемещения вершин.

Перенос вершин производится функциями Triang::MoveTo1(int NewX, int NewY);

Triang::MoveTo2(int NewX, int NewY); Triang::MoveTo3(int NewX, int NewY);

3.7 Triang::ChangeColor();

Интерфейс для изменения цвета и изменение цвета.

3.8 Triang::Show(); Triang::Hide();

Показывают и скрывают фигуру.

4. Листинг программы

#include <stdio.h>

#include <stdlib.h>

#include <graphics.h>

#include <math.h>

#include <conio.h>

#include <complex.h>

#include <bios.h>

enum Boolean {false,true};

class Triang {

protected:

int xm,ym,x1,x2,x3,y1,y2,y3,color;

Boolean Visible;

public:

Triang(int ix1,int iy1,int ix2,int iy2,int ix3,int iy3,int ic);

void Show();

void Hide();

void MoveTo(int NewX, int NewY);

void MoveTo1(int NewX,float NewY);

void MoveTo2(int NewX,float NewY);

void MoveTo3(int NewX,float NewY);

void MoveF();

void MoveT();

void RotateTo(float a);

void ChangeColor();

};

/////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////

Triang::Triang(int ix1, int iy1, int ix2,int iy2,int ix3,int iy3,int ic)

{       color=ic;

x1=ix1;x2=ix2;x3=ix3;

y1=iy1;y2=iy2;y3=iy3;

xm=(int)((x1+x2+x3)/3);

ym=(int)((y1+y2+y3)/3);

Visible=false;

};

void Triang::Show()

{       setcolor(color);

line(x1,y1,x2,y2);

line(x2,y2,x3,y3);

line(x3,y3,x1,y1);

setcolor(4);

circle(x1,y1,1);

setcolor(13);

circle(x2,y2,1);

setcolor(1);

circle(x3,y3,1);

line(x1,y1,(int)((x2+x3)/2),(int)((y2+y3)/2));

line(x2,y2,(int)((x1+x3)/2),(int)((y1+y3)/2));

line(x3,y3,(int)((x1+x2)/2),(int)((y1+y2)/2));

Visible=true;

};

void Triang::Hide()

{       setcolor(getbkcolor());

line(x1,y1,x2,y2);

line(x2,y2,x3,y3);

line(x3,y3,x1,y1);

circle(x1,y1,1);

circle(x2,y2,1);

circle(x3,y3,1);

line(x1,y1,(int)((x2+x3)/2),(int)((y2+y3)/2));

line(x2,y2,(int)((x1+x3)/2),(int)((y1+y3)/2));

line(x3,y3,(int)((x1+x2)/2),(int)((y1+y2)/2));

Visible=false;

};

void Triang::MoveTo1(int NewX,float NewY)

{

Hide();

x1=NewX;

y1=NewY;

xm=(x1+x2+x3)/3;

ym=(y1+y2+y3)/3;

Show();

};

void Triang::MoveTo2(int NewX,float NewY)

{

Hide();

x2=NewX;

y2=NewY;

xm=(x1+x2+x3)/3;

ym=(y1+y2+y3)/3;

Show();

};

void Triang::MoveTo3(int NewX,float NewY)

{

Hide();

x3=NewX;

y3=NewY;

xm=(x1+x2+x3)/3;

ym=(y1+y2+y3)/3;

Show();

};

void Triang::MoveTo(int NewX,int NewY)

{int dx,dy;

dx=NewX-xm;

dy=NewY-ym;

Hide();

xm=NewX;

ym=NewY;

x1+=dx;x2+=dx;x3+=dx;

y1+=dy;y2+=dy;y3+=dy;

Show();

};

void Triang::RotateTo (float a)

{

int e;

int xr,yr;

do{

e=bioskey(0);

if((e==19200)||(e==20480)){

Hide();

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.