Примеры программ. //Движение прямоугольника по треугольному контуру

//Движение прямоугольника по треугольному контуру.

//Динамические объекты.


//Движение прямоугольника по треугольному контуру.

//Статические объекты.

#include <conio.h>

#include <graphics.h>

#include <iostream.h>

#include <process.h>

#include <string.h>

#include <dos.h>

class graphworld

{int driver,mode,grerror,colb,bkcl;

char path[80];

public:

graphworld();

void closegraphworld();

};

graphworld::graphworld()

{strcpy(path,"c:\\turboc30\\bgi");

driver=0;

initgraph(&driver,&mode,path);

grerror=graphresult();

if(grerror!=grOk)

{cout<<"\nОшибка открытия графического режима";

abort;

}

setcolor(RED);

setbkcolor(BLACK);

cleardevice();

}

void graphworld::closegraphworld()

{cleardevice();

closegraph();

}

class location

{protected:

int x,y;

public:

location(int initx,int inity);

int getx();

int gety();

};

location::location(int initx, int inity)

{x=initx;

y=inity;

}

int location::getx()

{return x;

}

int location::gety()

{return y;

}

class point:public location

{protected:

int visible;

void setvisible(int pr);

public:

point(int initx,int inity);

~point();

virtual void show();

virtual void hide();

int getvisible();

void moveto(int nx,int ny);

};

point::point(int initx,int inity):location(initx,inity)

{

}

point::~point()

{hide();

}

void point::moveto(int nx,int ny)

{hide();

x=nx;

y=ny;

show();

}

void point::setvisible(int pr)

{visible=pr;

}

void point::show()

{putpixel(x,y,getcolor());

setvisible(1);

}

void point::hide()

{putpixel(x,y,getbkcolor());

setvisible(0);

}

class pramoug:public point

{int dx,dy;

public:

pramoug(int initx,int inity,int initdx,int initdy);

~pramoug();

void show();

void hide();

};

pramoug::pramoug(int initx,int inity,int initdx,int initdy): point(initx,inity)

{dx=initdx;

dy=initdy;

}

void pramoug::show()

{line(x,y,x,y+dy);

line(x,y+dy,x+dx,y+dy);

line(x+dx,y+dy,x+dx,y);

line(x,y,x+dx,y);

}

void pramoug::hide()

{int r;

r=getcolor();

setcolor(getbkcolor());

line(x,y,x,y+dy);

line(x,y+dy,x+dx,y+dy);

line(x+dx,y+dy,x+dx,y);

line(x,y,x+dx,y);

setcolor(r);

}

pramoug::~pramoug()

{hide();

}

void main(void)

{graphworld world;

int x = 150,

y = 100;

getch();

cleardevice();

pramoug pt(x,y,200,100);

delay(750);

pt.show();

do

{do

{x += 3; y++;

pt.moveto(x,y);

delay(5);

}

while(!(y >= 200));

do

{x--; y++;

pt.moveto(x,y);

delay(5);

}

while(!(y >= 400));

do

{x--; y -= 3;

pt.moveto(x,y);

delay(5);

}

while(!(y <= 100));

}

while(!(kbhit()));

getch();

world.closegraphworld();

}


Литература

1 Павловская Т.А. C/C++. Программирование на языке высокого уровня. СПб.: Питер, 2001. – 464 с.

2 Павловская Т.А., Щупак Ю.А. C/C++. Структурное программирование: Практикум. СПб.: Питер, 2002. - 240 с.

3 Культин Н.Б. C/C++ в задачах и примерах. СПб.: БХВ-Петербург, 2001. – 288 с.

4 Керниган Б., Ритчи Д., Фьюэр А. Язык программирования Си. М.: Финансы и статистика, 1985. – 384 с.

5 Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования. Харьков: Фолио, 1997 г. – 368с.

6 ГОСТ 19.701-90 ЕСПД Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.

7 ГОСТ 7.32-2001 Система стандартов по информации, библиотечному и издательскому делу. Отчет по научно-исследовательской работе. Структура и правила оформления.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: