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

Доработка программы. Графический режим - C++

Восстановить пароль Регистрация
 
Маринчик
 Аватар для Маринчик
0 / 0 / 0
Регистрация: 12.10.2012
Сообщений: 123
07.06.2014, 16:56     Доработка программы. Графический режим #1
Мое задание звучит так: Окружность и квадрат, изменяют цвета и размеры, появляются в различных местах экрана.- используя абстрактные классы и виртуальные функции
Программа получилась рабочая.
Окружность и квадрат у меня изменяют цвета и размеры, появляются на экране.Но.. Остались мелкие доработки.
Не пойму работает ли функция
C++
1
while (!kbhit())
????
И почему не выводится в консольном окне информация о деструкторе.??
И подскажите пожалуйста, как правильно сделать заливку внутри фигур или по контуру, чтоб они были видны более отчетливо на экране?И можно ли сделать так чтоб окружность и квадрат появлялись одновременно но в разных частях экрана? - если да то как?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include<graphics.h>
#include<math.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
 
#include<iostream>
using namespace std;/*ob'javlenie prostranstva imen  std.*/
 
class abc //Opisanie abstraktnogo klassa 
{protected:
           int x0,y0,raz,color;// parametri figyr
 public:
        abc()//konstryktor
          { cout <<"Konstryktor/ Sozdaetsja abstraktnij klass"<<endl;}
        virtual void SetParam(int,int,int)=0;/*4istaja virtyal'naja fynkcija inicializacii zadavaemoj figyri*/
        virtual void Draw(int)=0;/*4istaja virtyal'naja fynkcija bydyshego risovanija*/ 
        virtual ~abc()//esli v klasse prisytstvyet hot' odna virtyalnaya fynktsija,destryktor tak*e sleduyet sdelat' virtyalnim.
          {cout <<"\nRabotaet destryktor abstraktnogo klassa"<<endl;}
};
//=================================================
class Quadrat: public abc /*proizvodnij klass dlja kvadrata*/
{protected:
           int x0,y0,raz,i,color;
 public:
        Quadrat():abc ()
          { cout<<"\nKonstryktor/Risyetsa kvadrat" << endl;}
        void SetParam(int,int,int);/*inicializacija fiyri kvadrata*/
        void Draw(int);/*otrisovka kvadrata*/
        ~ Quadrat()
            { cout<<"\nDestryktor kvadrata"<< endl;} 
};
//=================================================
class Okr: public abc/*proizvodnij klass dlja okry*nosti */
{protected:int i;
 public:
        Okr(): abc ()
           { cout<<"\nKonstryktor/Risyem okry*nost'" << endl;}
        void SetParam(int,int,int);
        void Draw(int);
        ~ Okr()
           { cout<<"\nDestructor okry*nosti";}
};
//=================================================
void Quadrat::SetParam (int x0,int y0,int raz)/*inicializacija kvadrata*/
{this ->x0=x0;
 this ->y0=y0;
 this ->raz=raz;
}
//=================================================
void Okr::SetParam (int x0,int y0,int raz)/*inicializacija okry*nosti*/
{this ->x0=x0;
 this ->y0=y0;
 this ->raz=raz;
}
//=================================================
void Okr::Draw (int color)/*otrisovka okry*nosti*/
{setcolor(color);
 circle(x0,y0,raz);
}
//=================================================
void Quadrat::Draw (int color)/*otrisovka kvadrata*/
{setcolor(color);
 rectangle(x0-raz,y0-raz,x0+raz,y0+raz);
}
//=================================================
int main()
{ int color,x,y,x1,y1,r;
  Quadrat kvad[1]; /*zadaetsa 1 kvadrat, opisanie massiva kvadrata/ mo*no ykazat' i bol'wee koli4estvo, no togda dalee izmenitsja koli4stv elementov massiva f[]*/
  Okr kryg[1];/*zadaetsa 1 okry*nost', opisanie massiva okry*nosti/ mo*no ykazat' i bol'wee koli4estvo, no togda dalee izmenitsja koli4stv elementov massiva f[] */ 
  abc *f[2];/*ykazateli na ob'ekt, opisanie massiva */
 
    int grdriver,gmode;
    detectgraph(&grdriver,&gmode);/*opredelenie grafi4eskogo re*ima i draivera*/
    initgraph(&grdriver,&gmode," ");/*ystanovka videore*ima*/
    
    f[0]=&kvad[0];
    f[1]=&kryg[0];
    while (!kbhit())/*poka ne na*ata klaviwa vipolnjaetsa cikl*/
      {x1=320;
       y1=240;
       for (int z=0; z<2; z++)
         {color=rand() % 201 - 100;
          x=x1+rand() % 201 - 100;
          y=y1+rand() % 201 - 100;
          r=rand() % 201 - 100;
            {f[z]->SetParam(x,y,r);/*vivod figyr po ystanovlennim parametram*/
             f[z]-> Draw(rand() % 101 - 50);
            }
         }
      delay(600);/*skorost' pojavlenija-izmenenija figyr na konsol'nom ekrane*/
      cleardevice();/*o4ishaet aktivnyjy stranicy*/
      }
    closegraph();/*vihod iz grafi4eskogo re*ima*/
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2014, 16:56     Доработка программы. Графический режим
Посмотрите здесь:

В С++ не работает графический режим C++
Не работает графический режим C++
C++ Графический режим
Графический режим C++
C++ графический режим
Графический режим с++ C++
C++ графический режим
Графический режим С++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 16:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru