Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2010, 15:28   #1
Smile.id
Пользователь
 
Регистрация: 19.01.2009
Сообщений: 17
Лампочка C++ ООП

Занялся изучением ООП. В программе возникла проблема с созданием класса для многоугольника. Два класса (TPoint, Ellipse) занимаються отрисовкой 50 точек и овала соответственно. Нужно создать класс Poly, унаследованый от Ellipse с возможностью изменения цвета и масштаба многоугольника. Начальные параметры задаються случайным образом. Вот мой код, может ли ктото помочь его доделать?
Код:
#include <iostream.h>
#include <conio.h>
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
#include <iomanip.h>
#include <math.h>
int w,z,t;
class TShape {
 protected:  int x, y, color;
 public:
   TShape(int ix, int iy, int icolor);
   ~TShape();
   virtual void Draw(int c)= 0;
   void Show();void Hide();
};
class TPoint : public TShape {
 public:
  TPoint(int ix, int iy, int icolor);
  void Draw(int c);
};
class Ellipse : public TPoint {
 protected:   int sang, endang, xrad, yrad;
 public:
   Ellipse(int ix, int iy, int ixrad, int iyrad, int icolor);
   void Draw(int c);
};

TShape::TShape(int ix, int iy, int icolor) {
  x=ix; y=iy;
  color=icolor;
}
TShape::~TShape() {
}
void TShape::Show() {
  Draw(color);
}
void TShape::Hide() {
  Draw(BLACK);
}
TPoint::TPoint(int ix, int iy, int icolor): TShape(ix, iy, icolor){
}
void TPoint::Draw(int c) {
  putpixel(x, y, c);
}

Ellipse::Ellipse(int ix, int iy, int ixrad, int iyrad, int icolor) :
TPoint(ix, iy, icolor){
 xrad=ixrad; yrad=iyrad;
}
void Ellipse::Draw(int c) {
  setcolor(c);
  ellipse(x, y, 0, 360, xrad, yrad);
  line(x-xrad,y-yrad,x+xrad,y+yrad);
}

int m=0;

main() {
  cout<<"color";
  int i,var,j;
  TShape *A[64];
  int graphdriver = DETECT, graphmode, errorcode;
  initgraph(&graphdriver, &graphmode, "C:\\Borlandc\\BGI");
  randomize();
  setfillstyle(1,0);
  cout<<"Vuberit' figyry \n";
  cout<<"1) Ellipse \n";
  cout<<"2) 50 Dots \n";  cin>>var;
 if (var==1){

	     w=320;
	     z=240;
	     t=14;
	A[1] = new Ellipse(w, z, 80, 40, t);

	A[1]->Show();

	cout<<"dlya ryxy ellipsa natuskaite: 1-vlivo,2-vpravo,3-vnuz,4-vverx,5-kolir,0 dlya vuxody:";




	do{
	cin>>var;
	switch (var)
	{

	case 1:{
	cleardevice();
	A[1]->Hide();
	w-=10;
	A[1]= new Ellipse(w,z,80,40,t);
	A[1]->Show();
	}break;

	case 2:{
	cleardevice();
	A[1]->Hide();
	w+=10;
	A[1]= new Ellipse(w,z,80,40,t);
	A[1]->Show();
	}break;

	case 3:{
	cleardevice();
	A[1]->Hide();
	z+=10;
	A[1]= new Ellipse(w,z,80,40,t);
	A[1]->Show();
	}break;

	case 4:{
	cleardevice();
	A[1]->Hide();
	z-=10;
	A[1]= new Ellipse(w,z,80,40,t);
	A[1]->Show();
	}break;

	case 5:{
	cleardevice();
	A[1]->Hide();
	t=random(14)+1;
	A[1]= new Ellipse(w,z,80,40,t);
	A[1]->Show();
	}break;

	case 0: exit(0);break;
	 }
	 }while (m!=1);
	 }



  if (var==2){
  int B[50], C[50];

    for (i=0; i<50; i++) {
    B[i]=100+random(500);
    C[i]=100+random(300);

	A[i] = new TPoint(B[i], C[i], random(14)+1);
    }

       for (i=0; i<50; i++)
	  A[i]->Show();

       cout<<"dlya zminy kolory natuskaite 1, dlya vuxody-0";

       do{
       cin>>var;
       switch (var)
       {

       case 1:{
       cleardevice();
       for (i=0;i<50;i++)
       A[i]->Hide();

       for (i=0; i<50; i++)
       A[i] = new TPoint(B[i], C[i], random(14)+1);

       for (i=0; i<50; i++)
       A[i]->Show();
	  };break;

	  case 0: exit(0);break;
	  }
	  }while (m!=1);



  }
  getch();
  closegraph();
return 0;
}
Smile.id вне форума Ответить с цитированием
Старый 21.02.2010, 03:09   #2
Smile.id
Пользователь
 
Регистрация: 19.01.2009
Сообщений: 17
По умолчанию

Тема все еще атуальна.
Smile.id вне форума Ответить с цитированием
Старый 21.02.2010, 13:41   #3
Smile.id
Пользователь
 
Регистрация: 19.01.2009
Сообщений: 17
По умолчанию

Кто нибудь может обьяснить синтаксис функции drawpoly()? А то гуглил, юзал справку, но разобраться не смог =(
Smile.id вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ООП dr.Chas Общие вопросы по программированию, компьютерный форум 59 03.02.2010 15:40
ООП VladimirVB Общие вопросы Delphi 4 18.11.2009 22:51
ООП AlekDruzh Паскаль, Turbo Pascal, PascalABC.NET 0 09.09.2009 20:32
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55