Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Система класів для опису плоских геометричних фігур

Реферат Система класів для опису плоских геометричних фігур





"justify"> cout lt; lt; Введіть 1, щоб створити коло; 2, щоб створити прямокутник; 3, щоб створити квадрат lt; lt; endl;

int item1; gt; gt; item1; (item1 == 1)

{

cout lt; lt; Введіть через пробіл радіус і дві координати центру lt; lt; endl;

float r, cx, cy; gt; gt; r gt; gt; cx gt; gt; cy;.push_back (new Circle (r, cx, cy));

}

if (item1 == 2)

{

cout lt; lt; Введіть через пробіл дві координати лівого верхнього кута, потім дві координати правого нижнього кута lt; lt; endl;

float lx, ly, rx, ry; gt; gt; lx gt; gt; ly gt; gt; rx gt; gt; ry;.push_back (new Rectangle (lx, ly, rx, ry));

}

if (item1 == 3)

{

cout lt; lt; Введіть через пробіл дві координати лівого верхнього кута, потім сторону квадрата lt; lt; endl;

float lx, ly, sd; gt; gt; lx gt; gt; ly gt; gt; sd;.push_back (new Quadrate (lx, ly, sd)); [Shapes.size () - 1] - gt; type=3;

}

}

else if (task == 3)//пошук мінімального кола, що описує всі фігури

{

float cx, cy, r=- 1;// тут будемо зберігати найбільший знайдений коло (центр і радіус)


for (int i=0; i lt; Shapes.size (); i ++)//цикл по всіх фігурам

{

if (Shapes [i] - gt; type gt; 1)//для прямокутника і квадрата

{* Main=dynamic_cast lt; Rectangle * gt; (Shapes [i]); (int j=0; j lt; Shapes.size (); j ++)//порівняємо з усіма фігурами

{

if (Shapes [j] - gt; type == 1)//порівнюємо з колом

{*Temp=dynamic_castlt;Circle*gt;(Shapes[j]);dist=sqrt(pow(Main-gt;LTX-Temp-gt;CenterX,2)+pow(Main-gt;LTY-Temp-gt;CenterY,2))+Temp-gt;Radius;// пошук відстані (dist gt; r)//якщо більше поточного радіуса, то беремо його

{

//обчислюємо центр=dist; vectx=((Main-gt;LTX-Temp-gt;CenterX));vecty=((Main-gt;LTY-Temp-gt;CenterY));vecl=sqrt(vectx*vectx+vecty*vecty);prx=vectx*Temp-gt;Radius/vecl;pry=vecty*Temp-gt;Radius/vecl;=Temp-gt;CenterX-prx+((vectx+prx)/2.0); =Temp- gt; CenterY-pry + ((vecty + pry) /2.0);

}

//аналогічно для решти кутів прямоугольника=sqrt(pow(Main-gt;LDX-Temp-gt;CenterX,2)+pow(Main-gt;LDY-Temp-gt;CenterY,2))+Temp-gt;Radius;(distgt;r)

{= dist; vectx=((Main-gt;LDX-Temp-gt;CenterX));vecty=((Main-gt;LDY-Temp-gt;CenterY));vecl=sqrt(vectx*vectx+vecty*vecty);prx=vectx*Temp-gt;Radius/vecl;pry=vecty*Temp-gt;Radius/vecl;=Temp-gt;CenterX-prx+((vectx+prx)/2.0); =Temp- gt; CenterY-pry + ((vecty + pry) /2.0);

} =sqrt(pow(Main-gt;RDX-Temp-gt;CenterX,2)+pow(Main-gt;RDY-Temp-gt;CenterY,2))+Temp-gt;Radius;(distgt;r)

{= dist; vectx=((Main-gt;RDX-Temp-gt;CenterX));vecty=((Main-gt;RDY-Temp-gt;CenterY));vecl=sqrt(vectx*vectx+vecty*vecty);prx=vectx*Temp-gt;Radius/vecl;pry=vecty*Temp-gt;Radius/vecl;=Temp-gt;CenterX-prx+((vectx+prx)/2.0); =Temp- gt; CenterY-pry + ((vecty + pry) /2.0);

} =sqrt(pow(Main-gt;RTX-Temp-gt;CenterX,2)+pow(Main-gt;RTY-Temp-gt;CenterY,2))+Temp-gt;Radius;(distgt;r)

{= dist; vectx=((Main-gt;RTX-Temp-gt;CenterX));vecty=((Main-gt;RTY-Temp-gt;CenterY));vecl=sqrt(vectx*vectx+vecty*vecty);prx=vectx*Temp-gt;Radius/vecl;pry=vecty*Temp-gt;Radius/vecl;=Temp-gt;CenterX-prx+((vectx+prx)/2.0); =Temp- gt; CenterY-pry + ((vecty + pry) /2.0);

}

}

else//якщо порівнюємо з прямокутником/квадратом

{

if (i lt;=j)//уникнути повторів

{

Rectangle * Temp=dynamic_cast lt; Rectangle * gt; (Shapes [j]);

//шукаємо відстані від кожної точки до кожної точки

float dist=sqrt (pow (Main- gt; LTX-Temp- gt; LTX, 2) + pow (Main- gt; LTY-Temp- gt; LTY, 2)); (dist gt ; r)

{= dist; vectx=((Main- gt; LTX-Temp- gt; LTX)); vecty=((Main- gt; LTY-Temp- gt; LTY));=Temp- gt; LTX + (vectx/2.0); =Temp- gt; LTY + (vecty/2.0);

}=sqrt (pow (Main- gt; LTX-Temp- gt; LDX, 2) + pow (Main- gt; LTY-Temp- gt; LDY, 2)); (dist gt; r)

{= dist; vectx=((Main- gt; LTX-Temp- gt; LDX)); vecty=((Main- gt; LTY-Temp- gt; LDY));=Temp- gt; LDX + (vectx/2.0); =Temp- gt; LDY + (vecty/2.0);

Назад | сторінка 7 з 9 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: The Main Song, Or What Is There in Your Words?
  • Реферат на тему: The main principles of safety market economy
  • Реферат на тему: The constitutional law in the modern world: the main trends and forms of de ...
  • Реферат на тему: Grammar of the Text: its Basic Units and Main Features (based on the novel ...
  • Реферат на тему: Створення молодіжного журналу "Main Stream"