1.已知两个矩形的长和宽,用面向对象的概念编程求它们的面积和周长。假设矩形 1 的长和宽分别为 20 和 50;矩形 2 的长和宽分别为 3.6 和 4.5。(先定义矩形类再实例化两个对象)
#include<iostream>
using namespace std;
class juxing
{
private:
float m,n;
public:
juxing(float a,float b)
{
m=a;
n=b;
}
float mianji()
{
return m*n;
}
float zhouchang()
{
return 2*(m+n);
}
};
int main()
{
juxing x1(20,50),x2(3.6,4.5);
cout<<"矩形1的面积:"<<x1.mianji()<<endl;
cout<<"矩形2的面积:"<<x2.mianji()<<endl;
cout<<"矩形1的周长:"<<x1.zhouchang()<<endl;
cout<<"矩形2的周长:"<<x2.zhouchang()<<endl;
return 0;
}
2.设有一个点myPoint类的定义如下:
class myPoint {
public:
myPoint(double x0=0.0,double y0=0.0):x(x0),y(y0) {}
myPoint(myPoint &np):x(np.x),y(np.y) {}
double GetX() { return x;}
double GetY() {return y;}
void SetX(double x0) {x=x0;}
void SetY(double y0) {x=y0;}
void SetPoint(double x0,double y0) {x=x0;y=y0;}
void SetPoint(myPoint &np) { x=np.x; y=np.y;}
double GetLength(myPoint &p) {
return sqrt((x-p.x)*(x-p.x) +(y-p.y)*(y-p.y));
}
void Printit() { cout<<" ("<<x<<","<<y<<") ";}
private:
double x ,y;
};
试定义一个三角形Triangle类,在Triangle类中以点myPoint类的3个对象p1、p2、p3作为数据成员,表示三角形的三个顶点。Triangle类具有计算三角形的周长和面积的功能。请编写程序上机调试并运行。(在类中运用类)
#include<iostream>
#include<cmath>
using namespace std;
class mypoint
{
public:
mypoint(double x0=0.0,double y0=0.0):x(x0),y(y0){}
mypoint(mypoint &np):x(np.x),y(np,y){}
double getx(){return x;}
double gety(){return y;}
void setx(double x0){x=x0;}
void sety(double y0){y=y0;}
void setpoint(double x0,double y0){x=x0;y=y0;}
void setpoint(mypoint &np){x=np.x;y=np.y;}
double getl(mypoint &p)
{
double t;
t=sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
return t;
}
void print(){cout<<"("<<x<<","<<y<<")"<<endl;}
private:
double x,y;
};
class tri
{
public:
mypoint p1,p2,p3,p;
tri(mypoint &m1,mypoint &m2,mypoint &m3)
{
/*p1.x=m1.x;
p1.y=m1.y;
p2.x=m2.x;
p2.y=m2.y;
p3.x=m3.x;
p3.y=m3.y;*///私有成员不能在类外访问
/* p1.mypoint(m1.getx() ,m1.gety() );
p2.mypoint(m2.getx ,m2.gety );
p3.mypoint(m3.getx ,m3.gety );*/
p1=m1;
p2=m2;
p3=m3;
}
double m()
{
return (p1.getl(p2)+p1.getl(p3)+p2.getl(p3));
/*cout<<p1.getl(p2)<<endl;
cout<<p1.getl(p3)<<endl;
cout<<p3.getl(p2)<<endl;*/
}
double n()
{
double d,b, p=p1.getl(p2)+p1.getl(p3)+p2.getl(p3);
d=p*(p-p1.getl(p2))*(p-p1.getl(p3))*(p-p2.getl(p3));
b=sqrt(d);
return b;
}
};
int main()
{
mypoint p1(3,3),p2(2,6),p3(1,3);
tri t(p1,p2,p3);
cout<<"矩形的周长是:"<<t.m()<<endl;
cout<<"矩形的面积是:"<<t.n ()<<endl;
//t.m();
return 0;
}
输出结果如下:
实现功能。