Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа 33 / LAB 3 / CPOINT
.CPP//File cpoint.cpp
//Naznachenie: Opredelenie funkcij klassa "Tochka"
//Author: Pavel Morozov
//Redakcija: 2.0 13.04.07
#ifndef cpoint_cpp
#define cpoint_cpp
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<stdio.h>
#include"cpoint.h"
//-------------------Konstruktor----------------------------------
CPoint::CPoint(float x0,float y0 ):ID(HistNum+1) //Pervyj konstruktor
{
x=x0; y=y0;
textcolor(9);
HistNum=HistNum+1;
Counter++;
cout<<endl;
cprintf("Konstruktor CPoint sozdal objekt s ID = ");
cout<<GetID();
cprintf(", HistNum= ");
cout<<GetHistNum();
cprintf(", Counter= ");
cout<<GetCounter()<<endl;
cprintf("x = ");
cout<<x0<<endl;
cprintf("y = ");
cout<<y0<<endl;
textcolor(15);
}
CPoint::CPoint( CPoint &Q ) //Konstruktor kopirovanija {
{
x=Q.x;
y=Q.y;
}
//-------------Funkcii interfejsa------------------------------------
void CPoint:: SetX( float x0,float y0 ) //Zadanie znachenij elementov spiska
{
x=x0;
y=y0; }
void CPoint::GetX( float &x0, float &y0) //Poluchenie znachenij elementov
{
x0=x; y0=y;
}
void CPoint::MovePoint( float dx, float dy )
{
//Atributy
float x0,y0;
GetX(x0,y0);
x0=dx+x0;
y0=dy+y0;
SetX(x0,y0);
}
void CPoint::RotatePoint( CPoint &Q, float fi )
{
//Atributy
float x0,y0,r,fi2;
Q.GetX(dx,dy);
GetX(x0,y0);
x0=x0-dx;//smeshenie koordinat v tochku povorota
y0=y0-dy;
r=sqrt(x0*x0+y0*y0);
if(r!=0)
{fi2=acos(x0/r)*180/M_PI;}
else fi2=0;
// if(x0<0)
// {fi2=M_PI-fi2;}
fi2=fi+fi2;
x0=r*cos(M_PI*fi2/180);
if(r!=0)
{fi2=asin(y0/r)*180/M_PI;}
else fi2=0;
fi2=fi+fi2;
y0=r*sin(M_PI*fi2/180);
x0=x0+dx;//smeshenie koordinat к ishodnoi sk
y0=y0+dy;
SetX(x0,y0);
}
unsigned int CPoint::GetID()
//Poluchit ukazatel na predydushij element
{ return ID;}
unsigned int CPoint::GetHistNum()
// Poluchit kolichestvo sozdannyh objektov
{ return HistNum;}
unsigned int CPoint::GetCounter()
// Poluchit kolichestvo sushestvujushih objektov
{return Counter;}
//--------------------Destruktor-------------------------------------
CPoint::~CPoint()
{Counter--;
textcolor(10);
cout<<endl;
cprintf("Objekt klassa CPoint byl unichtozen");
cout<<endl;
cprintf("Destruktor CPoint unichtozyl objekt s ID= ");
cout<<GetID()<<endl;
textcolor(15);
}
#endif
Соседние файлы в папке LAB 3