PDA

View Full Version : C++ курсова задача!



rulzzz90
06-27-2014, 18:03
Координатната система на екрана е следната: център е горния ляв ъгъл на екрана, x - координатата е надясно, у - координатната е надолу. Да се реализира клас "точка" имащ за член-данни координатите на точка от екрана. Да се реализира клас "прозорец" представляващ правоъгълник зададен с точките от горен ляв ъгъл и долен десен ъгъл. Класът прозорец да има следните член-функции: за преместване, за преоразмеряване, за извеждане на екрана, за проверка дали се застъпва с даден друг прозорец - член-функцията да връща координатите на видимата част от прозореца. В главната функция на програмата да се илюстрират всичките дейности с прозорци.

Ето и кода до където съм стигнал:

#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;

class Point
{
private:
double mX,mY;
public:
Point();
Point(double aX, double aY);
Point(const Point &P);
Point& operator=(Point &P);
double get_x();
double get_y();
bool isPoint(double width, double height);
bool operator==(Point P);
double distance(Point P);
double operator-(Point P);
void set_x(double aX);
void set_y(double aY);
void set_xy(double aX,double aY);
void input();void output();void print();
};
Point::Point(): mX(0),mY(0)
{}
Point::Point(double aX, double aY)
{
mX=aX;
mY=aY;
}
Point::Point(const Point &P)
{
mX=P.mX;
mY=P.mY;
}
Point& Point::operator=(Point &P)
{
mX=P.mX;
mY=P.mY;
return *this;
}
double Point::get_x()
{
return mX;
}
double Point::get_y()
{
return mY;
}
bool Point::isPoint(double width, double height)
{
return (mX>=0 && mX<=width && mY>=0 && mY<=height);
}
bool Point::operator==(Point P)
{
return (this->mX==P.mX&&mY==P.mY);
}
double Point::distance(Point P)
{
return sqrt(pow(this->mX-P.mX,2)+pow(mY-P.mY,2));
}
double Point::operator-(Point P)
{
return sqrt(pow(this->mX-P.mX,2)+pow(mY-P.mY,2));
}
void Point::set_x(double aX)
{
mX=aX;
}
void Point::set_y(double aY)
{
mY=aY;
}
void Point::set_xy(double aX,double aY)
{
mX=aX;
mY=aY;
}
void Point::input()
{
}
void Point::output()
{
cout<<"["<<mX<<","<< mY<<"]";
}
void Point::print()
{
cout<<"["<<mX<<","<< mY<<"]\n";
}

class Window
{
private:
Point mA,mC;
public:
Window();
Window(Point aA, Point aC);
Window(int Ax, int Ay, int Cx, int Cy);
void output();
};
Window::Window()
{
mA.set_xy(0,0);
mC.set_xy(0,0);

}
Window::Window(Point aA, Point aC)
{
mA=aA;
mC=aC;
}
Window::Window(int Ax, int Ay, int Cx, int Cy)
{
mA.set_xy(Ax,Ay);
mC.set_xy(Cx,Cy);
}


void Window::output()
{
cout<<"{";
mA.output();
mC.output();
cout<<"} \n";
}
int main()
{
Point P(10,10);
P.output ();
cout<< endl;
Window W0;
W0.output();
Point A(5,5);
Point C(10,10);
Window W1(A,C);
W1.output();
system("pause");
return 0;
}