当前位置:文档之家› 第五次作业答案

第五次作业答案


5-1)设计名为Circle的类,表示圆。这个类包含:
一个名为radius的double型数据成员,表示圆的半径.
数据成员的设置器setr和获取器getr函数。
一个名为area()的函数,返回圆的面积。
一个名为perimeter()的函数,返回圆的周长
编写测试主函数:创建2个Circle类对象,将第1个圆的半径设置为2.5,第2个圆的半径设置为3.5,并输出两个圆对象的半径、面积和周长。
class circle
{
public:
void setr(double);
double getr();
double perimeter();
double area();
private:
double r;
};
void circle::setr(double rr)
{
r=rr;
}
double circle::getr()
{
return r;
}
double circle::perimeter()
{
double l=r*2*3.14;
return l;
}
double circle::area()
{
double s=r*r*3.14;
return s;
}

#include<iostream.h>
void main()
{
circle c1,c2;
c1.setr(2.5);
cout<<c1.getr()<<'\t'<<c1.area()<<'\t'<<c1.perimeter()<<endl;
c2.setr(3.5);
cout<<c2.getr()<<'\t'<<c2.area()<<'\t'<<c2.perimeter()<<endl;
}
5-2)设计名为Cylinder的类,表示圆柱。这个类包含:
名为radius和height的double型数据成员,表示圆柱的半径和高.
数据成员的设置器和获取器函数(4个:每个数据成员的设置器和获取器)。
一个名为surface()的函数,返回圆柱的表面积。
一个名为volume()的函数,返回圆柱的体积。
编写测试主函数:创建2个Cylinder 类对象,将第1个圆柱的半径和高设置为2.5和4,第2个圆柱的半径和高为第1个圆柱的半径和高分别加上3和2.5,并输出两个圆柱对象的表面积和体积。

class Cylinder
{
public:
void getRH(double&r,double&h);
void setRH(double,double);
double getSurfaceArea();
double getVolume();
private:
double radius,height;
};
void Cylinder::getRH(double &r,double &h)
{
h=height;
r=radius;
}
void Cylinder::setRH(double r,double h)
{
height=h;
radius=r;
}
double Cylinder::getSurfaceArea()
{
return 2*3.14*radius*radius+2*3.14*radius*height;
}
double Cylinder::getVolume()
{
return 3.14*radius*radius*height;
}
#include<iostream.h>
void main()
{
Cylinder c1,c2;
double a,b;
c1.setRH(2.5,4);
c1.getRH (a,b);
cout<<a<<"\t"<<b<<endl;
cout<<c1.getSurfaceArea ()<<'\t'<<c1.getVolume ()<<endl;
a=a+3;
b=b+2.5;
c2.setRH(a,b);
c2.getRH (a,b);
cout<<a<<"\t"<<b<<endl;
cout<<c2.getSurfaceArea ()<<'\t'<<c2.getVolume ()<<endl;
}

5-3)设计名为Rect的类,表示矩形。这个类包含:
名为width和height的double型数据成员,表示矩形的宽和高
所有数据成员的设置器和获取器函数(2个:同时设置/获取2个数据成员,其中设置器函

数带缺省参数值10和10)。
一个名为area()的函数,返回矩形的面积。
一个名为perimeter()的函数,返回矩形的周长。
编写测试主函数,创建2个Rect类对象,将第一个矩形的宽/高设置为10/10,第2个矩形的宽/高设置为3.5/5.9
,并输出两个矩形对象的属性(宽和高)、面积和周长.
class Rectangle
{
private:
double width,height;
public:
double getArea();
double getPerimeter();
void getWH(double&,double&);
void setWH(double,double);
};
double Rectangle::getArea()
{
return width*height;
}
double Rectangle::getPerimeter()
{
return 2*(width+height);
}
void Rectangle::setWH(double w=10,double h=10)
{
width=w;
height=h;
}
void Rectangle::getWH(double&w,double&h)
{
w=width;
h=height;
}
#include<iostream.h>
void main()
{
Rectangle c1,c2;
double w,h;
c1.setWH();
c1.getWH(w,h);
cout<<"width="<<w<<",height="<<h<<endl;
cout<<"area="<<c1.getArea()<<endl;
cout<<"perimeter="<<c1.getPerimeter()<<endl;
c2.setWH(3.5,5.9);
c2.getWH(w,h);
cout<<"width="<<w<<",height="<<h<<endl;
cout<<"area="<<c2.getArea()<<endl;
cout<<"perimeter="<<c2.getPerimeter()<<endl;
}
5-4)设计名为Complex的类表示复数矩形。这个类包含:
名为real和image的double型数据成员,存放实部和虚部
所有数据成员的设置器和获取器函数(2个:同时设置/获取2个数据成员)。
一个名为show()的函数,安复数形式输出。
一个名为add的函数,求两个复数的和。
一个名为minus的函数,求两个复数的差。
编写测试主函数,创建3个Complex类对象,输入两个复数的实部和虚部,求它们的和与差并输出。
#include <iostream.h>
class Complex
{
private:
double r,i;
public:
void setRI(double,double);
void getRI(double&,double&);
void show();
Complex add(Complex);
Complex minus(Complex);
};
void Complex::setRI(double r1,double i1)
{
r=r1;
i=i1;
}
void Complex::getRI (double &r2,double &i2)
{
r2=r;
i2=i;
}
void Complex::show ()
{
if(r!=0)
cout<<r;
else
cout<<' ';
if(i>0&&i!=1)
cout<<'+'<<i<<'i'<<endl;
if(i==1)
cout<<'+'<<'i'<<endl;
if(i<0&&i!=-1)
cout<<i<<'i'<<endl;
if(i==-1)
cout<<'-'<<'i'<<endl;
else
cout<<endl;
if(r==0&&i==0)
cout<<'0'<<endl;
}
Complex Complex::add(Complex x)
{
Complex s;
s.r=r+x.r;
s.i=i+x.i;
return s;
}
Complex Complex::minus(Complex x)
{
Complex s;
s.r=r-x.r;
s.i=i-x.i;
return s;
}

void main()
{


double x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
Complex a,b,c,d;
a.setRI(x1,y1);
b.setRI(x2,y2);
c=a.add(b);
c.show();
d=a.minus(b);
d.show();
}

5-5)设计名为Time的类表示时间,包含:
3个int型的数据成员hour、minute和second,存放时分秒。
时分秒的设置器和获取器函数(2个:同时设置/获取3个数据成员) 。
显示函数show
名为addsecond的函数,将时间加上秒数得到其和的时间。
编写测试主函数。
#include<iostream.h>

class time
{
public:
void set(int,int,int);
void get(int&,int&,int&);
void show();
time addsecond(time);
private:
int h,m,s;
};
void time::set(int hh,int mm,int ss)
{
h=hh;
m=m
m;
s=ss;
}
void time::get (int &hh,int &mm,int &ss)
{
hh=h;
mm=m;
ss=s;
}
void time::show()
{
if(h<24&&m<60&&s<60)
cout<<h<<':'<<m<<':'<<s<<endl;
else
cout<<"error"<<endl;
}
time time::addsecond(time x)
{
time f;
int a=x.s+s;
f.s=a%60;
f.m=(x.m+a/60)%60;
f.h=(x.h+(x.m+a/60)/60)%24;
return f;
}
void main()
{
int h,m,s,hms;
cout<<"h,m,s,hms=";
cin>>h>>m>>s>>hms;
time a,b,c;
a.set(h,m,s);
a.show();
b.set(0,0,hms);
c=b.addsecond(a);
c.show();
}


5-6)设计名为MyPoint的类表示直角坐标系中的一个点。包含:
两个int型的数据成员x和y,表示坐标。
x和y的设置器和获取器函数(3个:同时设置/获取2个数据成员,其中设置器函数重载:无参的(值为0和0)和有参的) 。
一个名为distance的函数,返回当前点和另一个给定的MyPoint类型的点之间的距离。
编写测试主函数,创建两个点(0,0)和 (10,30),并输出两点之间的距离。
#include<iostream.h>
#include<math.h>

class MyPoint
{
public:
void setxy(int,int);
void getxy(int&,int&);
double distance(MyPoint);

private:
int x,y;
};
void MyPoint::setxy(int xx=0,int yy=0)
{
x=xx;
y=yy;
}
void MyPoint::getxy(int&xx,int&yy)
{
xx=x;
yy=y;
}
double MyPoint::distance(MyPoint c)
{
double l;
l=sqrt((x-c.x)*(x-c.x)+(y-c.y)*(y-c.y));
return l;
}

void main()
{
MyPoint c1,c2;
int a,b;
c1.setxy();
c1.getxy(a,b);
cout<<'('<<a<<','<<b<<')'<<endl;
c2.setxy(10,30);
c2.getxy(a,b);
cout<<'('<<a<<','<<b<<')'<<endl;
cout<<"两点间距离l="<<c1.distance(c2)<<endl;
}

相关主题
文本预览
相关文档 最新文档