}
};
classB:
privateA
{
private:
intx,y;
public:
B(inti,intj,intk,intl):
A(i,j)
{
x=k;
y=l;
}
voidshow()
{
cout<}
voidfun()
{
move(2,4);
}
voidf1()
{
A:
:
show();
}
};
voidmain()
{
Aa1(10,10);
a1.show();
Bb1(5,5,6,6);
b1.fun();
b1.show();
b1.f1();
}
(2)
#include
classPoint{
intx,y;
public:
Point(intx1=0,inty1=0):
x(x1),y(y1){
cout<<"Point:
"<}
~Point(){
cout<<"Pointdestructor!
\n";
}
};
classCircle{
Pointcenter;//圆心位置
intradius;//半径
public:
Circle(intcx,intcy,intr):
center(cx,cy),radius(r){
cout<<"Circleradius:
"<}
~Circle(){cout<<"Circledestructor!
\n";}
};
voidmain()
{
Circlec(3,4,5);
}
(3)
#include
#include
classPoint{
intx,y;
public:
Point(intx1=0,inty1=0):
x(x1),y(y1){
cout<<"Point:
"<}
~Point(){
cout<<"Pointdes!
\n";
}
};
classText{
chartext[100];//文字内容
public:
Text(char*str){
strcpy(text,str);
cout<<"Textcon!
\n";
}
~Text(){cout<<"Textdes!
\n";}
};
classCircleWithText:
publicPoint,publicText{
public:
CircleWithText(intcx,intcy,char*msg):
Point(cx,cy),Text(msg){
cout<<"PointwithTextcon!
\n";
}
~CircleWithText(){cout<<"PointwithTextdes\n";}
};
voidmain()
{
CircleWithTextcm(3,4,"hello");
}
(4)
#include
classDate
{
public:
voidSetDate(inty,intm,intd){Year=y;Month=m;Day=d;}
voidPrintDate(){cout<Date(){SetDate(2000,1,1);}
Date(inty,intm,intd){SetDate(y,m,d);}
protected:
intYear,Month,Day;
};
classTime
{
public:
voidSetTime(inth,intm,ints){Houre=h;Minutes=m;Seconds=s;}
voidPrintTime()
{cout<"<"<Time(){SetTime(0,0,0);}
Time(inth,intm,ints){SetTime(h,m,s);}
protected:
intHoure,Minutes,Seconds;
};
classDate_Time:
publicDate,publicTime
{
public:
Date_Time():
Date(),Time(){};
Date_Time(inty,intmo,intd,inth,intmi,ints):
Date(y,mo,d),Time(h,mi,s){}
voidPrintDate_Time(){PrintDate();PrintTime();}
};
voidmain()
{
Date_Timedt_a,dt_b(2002,10,1,6,0,0);
dt_a.PrintDate_Time();
dt_b.SetTime(23,59,59);
dt_b.PrintDate_Time();
dt_a.SetDate(2002,12,31);
dt_a.PrintDate_Time();
}
(5)
#include
classDate
{
public:
Date(inty=2001,intm=1,intd=1){Year=y;Month=m;Day=d;}
voidPrintDate(){cout<protected:
intYear,Month,Day;
};
classTime
{
public:
Time(inth=5,intm=30,ints=0){Houre=h;Minutes=m;Seconds=s;}
voidPrintTime()
{cout<"<"<protected:
intHoure,Minutes,Seconds;
};
classDate_Time:
publicDate,publicTime
{
public:
Date_Time(){};
Date_Time(inty,intmo,intd,inth=0,intmi=0,ints=0):
Date(y,mo,d),Time(h,mi,s){}
voidPrintDate_Time(){PrintDate();PrintTime();}
};
voidmain()
{
Date_Timea,b(2002,10,1,6,20,0),c(2003,3,8,6,7);
a.PrintDate_Time();
b.PrintDate_Time();
c.PrintDate_Time();
}
(6)
#include
classBase
{
public:
Base(inti,intj){x0=i;y0=j;}
voidMove(intx,inty){x0+=x;y0+=y;}
voidShow(){cout<<"Base("<private:
intx0,y0;
};
classDerived:
privateBase
{
public:
Derived(inti,intj,intm,intn):
Base(i,j){x=m;y=n;}
voidShow(){cout<<"Next("<voidMove1(){Move(2,3);}
voidShow1(){Base:
:
Show();}
private:
intx,y;
};
voidmain()
{
Baseb(1,2);
b.Show();
Derivedd(3,4,10,15);
d.Move1();
d.Show();
d.Show1();
}
(7)
#include
classPoint
{
public:
voidInitP(floatx0=0,floaty0=0){X=x0;Y=y0;}
voidMove(floatxf,floatyf){X+=xf;Y+=yf;}
floatGetX(){returnX;}
floatGetY(){returnY;}
private:
floatX,Y;
};
classRectangle:
publicPoint
{
public:
voidInitR(floatx,floaty,floatw,floath){
InitP(x,y);W=w;H=h;
}
voidZoomR(floatk){W*=k,H*=k;}
floatGetH(){returnH;}
floatGetW(){returnW;}
private:
floatW,H;
};
voidmain()
{
Rectanglerect;
rect.InitR(10,20,30,40);
cout<<rect.Move(5,6);
cout<<rect.ZoomR(7);
cout<<}
.18设计一个点类,它仅包含两个属性:
横坐标和纵坐标。
通过继承点类再设计一个圆类,它除了有一个圆心,还有半径,还应该能够计算圆的周长和面积等。
编写一个测试程序来测试所设计的类能否实现预定的功能。
.19设计一个动物类,它包含一些动物的属性,例如名称、大小、重量等,动物可以跑或走。
然后设计一个鸟类,除了动物的基本属性外,它还有自己的羽毛、翅膀等,鸟除了跑或走外,它还可以飞翔。
为了继承动物类的特性,鸟类应该继承动物类。
编写一个测试程序来测试所设计的鸟类能否实现预定的功能。
.20先设计一个长方形类,再通过继承长方形类设计一个正方形类,正方形类中通过覆盖父类的成员函数得到一些新的功能。
.21先设计一个基本账户类,再通过继承基本账户类设计一个储蓄帐户类,储蓄帐户类中增加一个静态成员变量(年利率),并增加如下成员函数:
(1)计算月利息:
存款金额*年利率/12
(2)更改利率(静态方法):
重新设置年利率
最后,编写一个测试程序来测试所设计的储蓄帐户类能否实现预定的功能。
.22先设计一个基本账户类,再通过继承基本账户类设计一个储蓄帐户类,储蓄帐户类中增加密码、地址、最小余额和利率等成员变量,并增加一些银行帐户经常用到的成员函数,要求:
(1)类中的成员函数具有输入、输出储户上述信息的功能。
(2)将账号设计成不可更改。
(3)修改密码时要提供原密码。
.23在阅读5.6.1节内容的基础上,进一步分析图书馆的图书和杂志管理和借阅方式,设计一个基本符合图书馆实际工作方式的图书和杂志借阅系统。