Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NimFa
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 14
#1

Задачка на виртуальный метод - C++

21.06.2009, 17:10. Просмотров 499. Ответов 0
Метки нет (Все метки)

5 олимпийских окружностей движутся вниз по экрану и меняют свои цвета (как только доходят вниз, появляются вверху экрана и двигаются дальше вниз). Фигура имеет рамку из 2-х прямоугольников.
Вот пример подобной задачи:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<iostream.h>
#include<math.h>
#include<graphics.h>
#include<dos.h>

class fig
{protected:
int x0,y0,raz,color,n,m;

public:
fig()
{};


virtual void param()=0;
virtual void draw()=0;

};

class squareublic fig
{protected:
int dy,x0,y0,raz,color;
public:
square():fig()
{
y0=470;
dy=-10;
x0=400;
raz=random(100);
color=random(16);
};
void param();
void draw();

};

class cirublic fig
{protected:
int dy,x0,y0,raz,color;
public:
cir():fig()
{
dy=10;
y0=10;
x0=random(100);
raz=random(50);
color=random(16);
};
void param();
void draw();

};

void square:aram()
{
if (y0==470) dy=-10;
if (y0==10) dy=10;
y0=y0+dy;
}
void cir:aram()
{
if (y0==470) dy=-10;
if (y0==10) dy=10;
y0=y0+dy;

}
void cir::draw()
{setcolor(color);
circle(x0,y0,raz);
setfillstyle(1,color);
floodfill(x0,y0,color);
}

void square::draw()
{setcolor(color);
rectangle(x0-raz,y0-raz,x0+raz,y0+raz);
setfillstyle(1,color);
floodfill(x0,y0,color);
}


void main()
{ int i,j,n;
randomize();

square kv[20];
cir clr[20];
fig *f[40];

int gd,gm,er;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"d:\\BORLANDC\\BGI");
er=graphresult();
if (er != grOk) grapherrormsg(er);

printf("vvedite razmernabora n=");
scanf("%d",&n);

for (i=0;i<n;i++)
{f[i]=&clr[i];
f[i+n]=&kv[i];
}

while(!kbhit())
{
cleardevice();
for (i=0;i<n;i++)
{
f[i]->param();
f[i]->draw();
f[i+n]->param();
f[i+n]->draw();

}
delay(50);
}
closegraph();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2009, 17:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачка на виртуальный метод (C++):

Виртуальный метод - C++
class A { virtual void Print()=0; } class B : public A { virtual void Print() { //Печатаем в...

Виртуальный метод - C++
Здравствуйте! Помогите, пожалуйста, найти ошибку в коде. #include &quot;stdafx.h&quot; class Person{ protected: char *name; ...

Указатель на виртуальный метод - C++
По мотивам какого-то вопроса тут возник вопрос, ответ на который я что-то не придумал. Как взять указатель на метод базового класса, если...

private наследование и виртуальный метод - C++
Привет! Тут хотел бы спросить такой вопрос. Есть базовый класс с виртуальным методом в protected секции. Я наследую этот класс как...

Класс работник. Виртуальный метод - C++
Здраствуйте! Надо ввести работников с почасовой ЗП и фиксированной ЗП. Написать виртуальный метод для подсчета ЗП( для почасовиков -...

Вывести на экран виртуальный метод - C++
Как вывести на экран виртуальный метод?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2009, 17:10
Привет! Вот еще темы с ответами:

Виртуальный метод с параметром типа класс - C++
Наследую вектор от матрицы: class Matrix { public: ... virtual bool isValidToMult ( const Matrix &amp; ) const; ... } А...

Вызвать виртуальный метод элемента вектора - C++
class Parent { public: Parent(); virtual void fn(); } class Child: public Parent { public

Разобрать код, в котором реализован виртуальный метод - C++
Всем привет! Вопрос под кодом. #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; class A ...

Виртуальный метод класса, возвращаемый значения разных типов - C++
Доброго времени суток. Появилась необходимость в создании виртуального метода, который позволял бы получать значения разных типов из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru