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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование и полиморфизм http://www.cyberforum.ru/cpp-beginners/thread41294.html
Здравствуйте всем как можно решить эту задачу и спасибо за ранее. Описать классы (Java или C++) для хранения таких чисел: целых, действительных, комплексных. При описании классов...
C++ Перевод арабских цифр в римские с++ Подскажите как перевести арабские цифры в римские... Например 12345 -> I II III IV V Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread41292.html
C++ Сжать строку, заменяя несколько подряд стоящих пробелов одним
Помогите кто чем может: 1. Найти два наибольших элемента массива целых чисел. Написать процедуру и пример обращения к ней. Массив и его фактический размер – параметры. 2. Дан массив целых чисел,...
работа с файоами таблицами и со списками C++
нужно вместо этой строчки strcpy(table_reis.viezd_data->data_viezda,tmp); написать код для того чтобы была не таблица а односвязный список.. причем каждому table_reis должен соответсвовать...
C++ Вычисление корня нелинейного уравнения методом Золотого сечения. http://www.cyberforum.ru/cpp-beginners/thread41245.html
Всем вечер добрый, нужен алгоритм поиска корня нелинейного уравнения методом Золотого сечения. Никто с подобным не сталкивался? У самого ничего не получается, уже незнаю чего "нашаманить" такого что...
C++ Пишем свой интерпретатор языка BASIC ***************** Благодаря форуму и Evg в частности интерпретатор развивается, потихоньку превращаясь в простенький интерпретатор QBASIC. Некоторые из самых старых версий сохранились в теме и... подробнее

Показать сообщение отдельно
NimFa
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 14

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

21.06.2009, 17:10. Просмотров 506. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru