C++写一个日期类DateWord格式文档下载.docx
《C++写一个日期类DateWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++写一个日期类DateWord格式文档下载.docx(43页珍藏版)》请在冰豆网上搜索。
}
else
不是闰年"
voidaddOneday()
if((month==2&
day==29)||((year%4!
=0||(year%100==0&
year%400!
=0))&
month==2&
day==28))
{
day=1;
month++;
}
elseif(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
if(month==12&
day==31)
year++;
month=1;
}
elseif(day==31)
elseif((month==4||month==6||month==9||month==11)&
day==30)
else
day++;
};
voidmain()
Datea;
a.setDate(2000,2,28);
a.output();
a.IsLeap();
a.addOneday();
}
----------------------------------------------------------------------------------------------------------------------
作业2,设计圆类
实现圆类的成员函数,并在主函数中进行测试。
classCircle//圆类
private:
doubleradius;
//半径
public:
//以下是公有成员函数
voidSetRadius(doubler);
//设置半径
doubleCalculateArea();
//求面积
doubleCalculateCircumference();
//求周长
doubleGetRadius();
//获取半径
voidPrint();
//输出半径
classCircle
voidSetRadius(doubler)
radius=r;
doubleCalculateArea()
doubleCalculateCircumference()
doubleGetRadius()
returnradius;
voidPrint()
cout<
半径:
radius<
Circlea;
-------------------------------------------------------------------------------------------------------------------
(1)数据成员有:
横坐标doublex、纵坐标doubley;
(2)提供两个构造函数:
无参构造函数将数据成员初始化为(0,0),有参构造函数利用参数对数据成员赋值;
(3)提供拷贝构造函数;
(4)成员函数voidmoveto(doublea,doubleb),表示点移动到新的坐标位置(a,b);
(5)成员函数voiddisplay(),输出点的坐标;
(7)定义主函数,完成点类的测试。
classCPoint
doublex,y;
CPoint(doublex,doubley)
this->
x=x;
y=y;
CPoint()
x=0;
y=0;
CPoint(constCPoint&
p)
voidmoveto(doublea,doubleb)
x=a;
y=b;
voiddisplay()
("
x<
"
y<
)"
frienddoubledistance(CPoint&
p1,CPoint&
p2)
returntemp;
CPointa(0,0),b(3,4);
距离:
distance(a,b)<
CPointc(b);
//1)定义基类CMathA,有保护数据成员3个,分别为三个整数,公有成员函数3个,分别是有参构造函数、求这三个数的最大值,和最小值。
//
(2)定义派生类CMathB,公有继承CMathA,私有数据成员2个,分别是两个整数,公有成员函数3个,分别是有参构造函数(别忘记调用基类有参构造函数)、求5个数据成员的和,与积。
//(3)定义主函数,完成基类与派生类所有成员函数的测试。
classCMathA
protected:
intx,y,z;
CMathA(inta,intb,intc)
y=b;
z=c;
voidmax()
intmax;
if(x>
y)
max=x;
max=y;
if(max<
z)
max=z;
最大值:
max<
voidmin()
intmin;
if(x<
min=x;
min=y;
if(min>
min=z;
最小值:
min<
classCMathB:
publicCMathA
intm,n;
CMathB(inta,intb,intc,intd,inte)
:
CMathA(a,b,c)
m=d;
n=e;
voidsum()
inttemp=x+y+z+m+n;
和:
temp<
voidmultiply()
inttem=x*y*z*m*n;
乘积:
tem<
CMathAa(1,3,2);
CMathBb(1,3,2,4,5);
-------------------------------------------------------------------------------
(1)编写点类Point,包括两个私有数据成员doublex,y表示横纵坐标,成员函数包括两个分别是Point(doublex,doubley);
//构造函数和Point(doublex,doubley);
//显示函数
(2)编写几何图形的类Circle,包括两个属性:
圆心Pointcenter;
和半径doubleR;
成员函数包括:
圆心位置获取函数PointGetCenter();
半径获取函数doubleGetR()、半径设置函数voidSetR(doubler)、圆的位置移动函数voidMoveTo(Pointp2);
以及圆的信息打印函数voiddisplayCircle()。
(3)编写主函数,完成圆类中所有成员函数的测试。
classPoint
Point(doublea,doubleb)
voiddisPlay()
圆心是:
doubler;
Pointcenter;
Circle(doubler,Pointp1)
center(p1)
r=r;
PointGetCenter()
returncenter;
voidSetR(doubler)
doubleGetR()
returnr;
voiddisplayCircle()
r<
voidMoveTo(Pointp2)
center=p2;
Pointp1(2,7),p2(3,7);
Circlecc(9,p1);
---------------------------------------------------------------------------------------------------
1.设计平面坐标系中的点类CPoint:
(1)私有数据成员有:
(2)公有提供两个构造函数:
(3)公有提供拷贝构造函数;
(4)公有成员函数doubleGetX(),求点的横坐标;
(5)公有成员函数doubleGetY(),求点的纵坐标;
2.设计线类
斜率和截距;
(2)公有提供两个有参构造函数:
CLine(doublek,doubleb);
CLine(CPointp1,CPointp2)
(3)公有成员函数doubleGetK(),求直线的斜率
(4)公有成员函数boolIncludePoint(CPointp1),判断一个点是否在直线上;
(5)公有成员函数voidDisplay(),显示直线方程。
3.定义主函数,完成线类所有测试。
y=0;
CPoint(CPoint&
p)
doubleGetX()
returnx;
doubleGetY()
returny;
classCLine
doublek,b;
CLine(doublek,doubleb)
k=k;
b=b;
CLine(CPointp1,CPointp2)
boolIncludePoint(CPointp3)
returntrue;
else
returnfalse;
doubleGetK()
returnk;
voidDisplay()
if(b<
0)
直线方程:
y="
k<
x"
b<
elseif(b==0)
x+"
CPointp1,p2(2,7),p3(3,9);
CLineline1(p1,p2);
该点在直线上"
else
该点不在直线上"
--------------------------------------------------------------------------------
设计圆类Circle,保护数据成员半径,公有成员函数:
输出圆面积voidarea();
设计球体类Sphere,公有继承圆类,公有成员函数:
输出球体表面积voidarea();
设计测试类,实现多态性,指向基类的指针,可以指向派生类对象,并调用派生类的成员函数。
doubleR;
Circle(doubler)
R=r;
virtualvoidarea()
classSphere:
publicCircle
Sphere(doubler):
Circle(r)
Circlec1
(2);
Circle*p;
Spheres1(5);
p=&
c1;
p->
area();
s1;
//
(1)定义类CShape,包含显示图形面积的含纯虚函数virtualvoidDisplay_Area()=0;
//
(2)定义圆类CCircle,公有继承CShape,定义私有数据成员半径doubler,有参构造函数,重写CShape类中的voidDisplay_Area()函数,显示圆面积;
//(3)定义长方形类CSqure,公有继承CShape,定义数据成员长和宽分别为doublelength和doublewidth,重写CShape类中的voidDisplay_Area()函数,显示长方形面积;
//(4)定义主函数,创建CShape类指针数组,分别指向圆和长方形对象,圆的半径为2,长方形的长和宽分别为3和4,显示圆和长方形的面积。
//(5)主函数参考代码;
//voidmain()
//{
//CShape*aa[2];
//aa[0]=newCCircle
(2);
//aa[1]=newCSqure(3,4);
//for(inti=0;
i<
2;
i++)
//aa[i]->
Display_Area();
//}
classCShape
virtualvoidDisplay_Area()=0;
classCCircle:
publicCShape
doubler;
CCircle(doublex)
r=x;
virtualvoidDisplay_Area()
classCSqure:
doublelength,width;
CSqure(doublea,doubleb)
length=a;
width=b;
矩形面积:
length*width<
CShape*aa[2];
aa[0]=newCCircle
(2);
aa[1]=newCSqure(3,4);
for(inti=0;
aa[i]->
------------------------------------------------------------------------------
定义复数类Complex,
(1)定义私有数据成员,实部和虚部;
(2)定义带默认值的构造函数,给数据成员赋值,默认值为0;
(3)定义输出函数voiddisplay(),输出格式如“3+4i”或“-3-4i”;
(4)定义复数与复数的加、减运算符重载;
复数加实数运算符重载;
赋值运算符重载;
(5)定义主函数,对上述成员函数进行测试。
classComplex
doublea,b;
Complex(doublea=0,doubleb=0)
a=a;
Complexoperator+(Complexc)
Complextemp;
Complexoperator-(Complexc)
Complexoperator+(doublec)
Complex&
operator=(Complexc)
return*this;
a<
i"
+"
intmain()
Complexc1(2,5),c2(3,7),c3,c4,c5,c6;
c1="
;
c2="
c3=c1+c2;
c3=c1+c2;
c3="
c4=c1-c2;
c4=c1-c2;
c4="
c5=c1+5;
c5=c1+5;
c5="
c6=c2;
c6=c2;
c6="
//定义时钟类Clock,
//
(1)定义私有数据成员,时、分和秒;
//
(2)定义带默认值的构造函数,给数据成员赋值,默认值为0;
要求对数据进行合法性判断,小时只能在0—23之间,分和秒都在0—60之间;
//(3)定义输出函数voiddisplay(),输出格式如“h:
m:
s”;
//(4)定义时钟前缀++运算符重载,和后缀++运算符重载;
//(5)定义主函数,对上述成员函数进行测试。
classClock
doubleh,m,s;
Clock(doubleh=0,doublem=0,doubles=0)
if(h>
=0&
h<
24&
m>
m<
60&
s>
s<
60)
this->
h=h;
m=m;
s=s;
timeerror!
:
Clock&
operator++()
s++;
if(s>
=60)
s=s-60;
m++;
if(m>
m=m-60;
h++;
if(h>
=24)
{
h=h-24;
}
return*this;
Clockoperator++(int)
s=s-6