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

Передвинуть фигуры класса (исправить код) - C++

Восстановить пароль Регистрация
 
Marianna22
1 / 1 / 0
Регистрация: 02.11.2011
Сообщений: 14
31.10.2012, 22:23     Передвинуть фигуры класса (исправить код) #1
Очень помощь нужна. В задаче надо было создать три фигуры: крест, прямую и круг с помощью классов и псевдографики, а еще изменить цвет и организоваить передвижение. Все ничего, а вот с движением проблема. Умные люди, исправьте новичка) пожалуйста


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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int x,y;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
// общий класс геометрических фигур
class Figure
{ public:
   int x,y;
 
  //position pol;// текущее положение на плоскости
  int col; // текущй цвет
 
   public:
      void cwet(int cwet) //Задание цвета
        { col=cwet; }
      void move(int nx, int ny) // перемещение к заданному положению
            {x=nx; y=ny; }
   //   void Sokryt() // скрыть фигуры
   //     { cwet(clBlack );
   //       Draw();}
 
      virtual void Draw()=0; // отображение на экране
} ;
 
//---------------------------------------------------------------------------
 
// Крест
 
class Krest:public Figure
{
 public:
 
Krest (int nx, int ny, int c)
   {
    x=nx; y=ny; col=c;
    }
 
 void Draw()
 {   Form1->PaintBox1->Canvas->Font->Size=22;
     Form1->PaintBox1->Canvas->Font->Color=(col);
     Form1->PaintBox1->Canvas->TextOut(x+10,y+5,"*");
    Form1->PaintBox1->Canvas->TextOut(x,y+20,"***");
    Form1->PaintBox1->Canvas->TextOut(x+10,y+35,"*");
     }
}          ;
 // Круг
 
class Krug:public Figure
{
 public:
 
Krug (int nx, int ny, int c)
   {
    x=nx; y=ny; col=c;
    }
 
 void Draw()
 {   Form1->PaintBox1->Canvas->Font->Size=22;
   Form1->PaintBox1->Canvas->Font->Color=(col);
       Form1->PaintBox1->Canvas->TextOut(x+17.5,y+5,"*");
    Form1->PaintBox1->Canvas->TextOut(x,y+20,"*    *");
    Form1->PaintBox1->Canvas->TextOut(x,y+35,"*    *");
    Form1->PaintBox1->Canvas->TextOut(x+17.5,y+50,"*");
     }
}          ;
  // Линия
 class Line:public Figure
{
 public:
 
Line (int nx, int ny, int c)
   {
    x=nx; y=ny; col=c;
    }
 
 void Draw()
 {   Form1->PaintBox1->Canvas->Font->Size=22;
   Form1->PaintBox1->Canvas->Font->Color=(col);
     Form1->PaintBox1->Canvas->TextOut(x,y,"***");
     }
}          ;
 
 
Krest *K1;
Krug *K2;
Line *L1;
//---------------------------------------------------------------------------
void __fastcall TForm1::MoveClick(TObject *Sender)
{
  Form1->Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
      Form1->Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Otobr(TObject *Sender)
{
  Krest K1(7,5, clMenuHighlight);
 K1.Draw() ;
 
 Krug K2(5,70, clMenuHighlight);
 K2.Draw() ;
 
 Line L1(7,150, clMenuHighlight);
 L1.Draw() ;
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CwetClick(TObject *Sender)
{    Krest K1(7,5, clLime);
Krug K2(5,70, clRed);
 Line L1(7,150, clAqua);
 K1.Draw() ;
 K2.Draw() ;
  L1.Draw() ;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{     Krest K1(7,5, clMenuHighlight);
   Krug K2(5,70, clMenuHighlight);
   Line L1(7,150, clMenuHighlight);
    Form1->Timer1->Enabled=false;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 
 for (int i=1; i<100; i++)
  {
    K1.move(i,5);
    K1.Draw() ;
 
    K2.move(i,70);
    K2.Draw();
 
    L1.move(i,150);
    L1.Draw();
 
  }
 
}
//---------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2012, 22:23     Передвинуть фигуры класса (исправить код)
Посмотрите здесь:

C++ Исправить код
исправить код C++
C++ Исправить код
C++ исправить код
C++ Исправить ошибки компилирования класса
C++ Исправить код
Что исправить, чтобы фигуры квадрат и прямоугольник могли изменять размер? C++
Создайте класс TwoDShape, содержащий длину и высоту двумерной фигуры в двух закрытых переменных класса C++

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

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

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