}
};
intmain()
{
Rectanglerec;
rec.getrec();
rec.putrec();
Volumevol;
vol.getvol();
vol.putvol();
return0;
}
3、定义一个物体基类object,有数据成员重量weight,有构造函数对数据成员weight进行初始化,有成员函数打印重量信息PrintWeight。
从object类派生出盒子类box,增加数据成员高度heigh和宽度width,并定义派生类box类的构造函数对数据成员weight、height、width进行初始化,有成员函数PrintAll打印数据成员weight、height、width值。
在主函数中创建一个box对象,并初始化其所有数据成员,调用成员函数将weight、height、width值信息显示。
#include
usingnamespacestd;
classobject//基类物体object
{
private:
floatweight;//重量
public:
object(floatw):
weight(w){}
voidprintweight()
{
cout<<"weight="<}
};
classbox:
publicobject
{
private:
floatheigh,width;
public:
box(floatwe,floathe,floatwi):
object(we),heigh(he),width(wi){}
voidprintall();
};
voidbox:
:
printall()
{
printweight();
cout<<<"width="<}
intmain()
{
boxb(2,1.5,3);
b.printall();
return0;
}
4,自行车(Bicycle)和汽车(Motorcar)都是车辆(Vehicle),它们有共同的属性最大速度(maxSpeed)和重量(weight),也有各自不同的特性,比如自行车的高度(height)和汽车的座位数(seatNum)。
现有车辆若干(设N=3),将其输入并放入一个指针数组,每个车辆需要设置其属性。
输入后分类显示各自属性(即自行车和汽车分别显示各自属性)。
#include
#defineN3
classV
{
public:
V(intm,intw)
{k=m;l=w;}
virtualvoidPrint()
{cout<<""<private:
intk,l;
};
classB:
publicV
{
public:
B(inti,intj,inth):
V(i,j)
{l=h;}
voidPrint(inti,intj,inth)
{
cout<<"自行车的高度为:
"<cout<<"自行车的最大速度为:
"<
cout<<"自行车的重量为:
"<}
private:
intl;
};
classM:
publicV
{
public:
M(intp,intt,ints):
V(p,t)
{j=s;}
voidPrint(intp,intt,ints)
{
cout<<"汽车的座位数为:
"<
cout<<"汽车的最大速度为:
"<
cout<<"汽车的重量为:
"<}
private:
intj;
};
voidmain()
{
V*p[N];
intn;
for(inti(0);i{
cout<<"请输入车的种类,1为自行车,0为汽车"<cin>>n;
if(n==1)
{
inta,b,c;
cout<<"请输入自行车的高度,最大速度和重量"<cin>>a>>b>>c;
p[i]=newB(a,b,c);
}
else
{
intx,y,z;
cout<<"请输入汽车的座位数最大速度和重量"<cin>>x>>y>>z;
p[i]=newM(x,y,z);
}
}
p[0]->Print();
p[1]->Print();
p[2]->Print();
}//另外一个
#includeusingnamespacestd;#defineN3classV{private:
intk,l;public:
V(intm,intw){k=m;l=w;}virtualvoidPrint(){cout<<""<publicV{private:
intl;public:
B(inti,intj,inth):
V(i,j){l=h;}voidPrint();};voidB:
:
Print(){cout<<"自行车的高度为:
"<"<"<publicV{public:
M(intp,intt,ints):
V(p,t){j=s;}voidPrint();private:
intj;};voidM:
:
Print(){cout<<"汽车的座位数为:
"<"<"<>n;if(n==1){inta,b,c;cout<<"请输入自行车的高度,最大速度和重量"<>a>>b>>c;p[i]=newB(a,b,c);}else{intx,y,z;cout<<"请输入汽车的座位数最大速度和重量"<>x>>y>>z;p[i]=newM(x,y,z);}}p[0]->Print();p[1]->Print();p[2]->Print();deletep[0];deletep[1];deletep[2];}再另外一个
#include
usingnamespacestd;
#defineN3
classV
{protected:
intm,w;
public:
V(inta,intb){m=a;w=b;}
virtualvoidPrint()
{cout<<""<classB:
publicV
{private:
inth;
public:
B(inta,intb,intc):
V(a,b)
{h=c;}
voidPrint()
{cout<<"自行车的高度为:
"<cout<<"自行车的最大速度为:
"<cout<<"自行车的重量为:
"<};
classM:
publicV
{
private:
ints;
public:
M(inta,intb,intd):
V(a,b){s=d;}
voidPrint()
{
cout<<"汽车的座位数为:
"<
cout<<"汽车的最大速度为:
"<cout<<"汽车的重量为:
"<}
};
voidmain()
{
V*p[N];
intn;
for(inti(0);i{cout<<"请输入车的种类,1为自行车,0为汽车"<cin>>n;
if(n==1)
{inta,b,c;
cout<<"请输入自行车的高度,最大速度和重量"<cin>>a>>b>>c;
p[i]=newB(a,b,c);}
else
{intx,y,z;
cout<<"请输入汽车的座位数最大速度和重量"<cin>>x>>y>>z;
p[i]=newM(x,y,z);
}
}
p[0]->Print();
p[1]->Print();
p[2]->Print();
deletep[0];
deletep[1];
deletep[2];
}
5、定义Point作为基类,在此基础上派生出圆Circle类,该类含有计算面积的成员函数,并由Circle类派生出圆柱Cylinder类,该类含有计算柱体的表面积和体积的成员函数。
例12.1—
#include
#definepi3.14159
classpoint
{
protected:
intx,inty;
public:
point(inta,intb)
{x=a;y=b;}
voidsetxy(inta=0,intb=0)
{x=a;y=b;}
voidshowpoint()
{cout<<"point:
\n\t("<};
classcycle:
publicpoint
{protected:
intr;
public:
cycle(intx,inty,intc):
point(x,y)
{r=c;}
voidsetr(intd)
{r=d;}
intcountcycle(){returnpi*r*r;}
voidshowcycle()
{cout<<"cyclearea:
\n\t"<};
classcylinder:
publiccycle
{inth;public:
cylinder(intx,inty,intr,intd):
cycle(x,y,r)
{h=d;}
intcountcylinderf()
{return2*countcycle()+pi*2*r;}
intcountcylinderv()
{returncountcycle()*h;}
voidseth(intd){h=d;}
voidshowcylinder()
{showpoint();
showcycle();
cout<<"cylinderface:
\n\t"<\n\t"<}
};
voidmain()
{cylinderc(1,2,3,4);
c.showcylinder();
c.setxy(3,6);
c.seth(5);
c.setr(6);
c.showcylinder();
}6、编写程序定义人员类Person作为基类,其数据成员为姓名和身份号,在此基础上派生出职员Employee类,该类的数据成员为底薪和工作年数,含有实现相关信息输入和输出的成员函数以及计算并显示奖金和月薪的成员函数。
计算办法:
奖金=10*工作年数,月薪=底薪+奖金。
#include
#include
classPerson
{
private:
charname[20];
charID[20];
public:
voidinput(charna[],charI[])
{strcpy(name,na);
strcpy(ID,I);
}
voidgetname(char*na)
{strcpy(na,name);}
voidgetID(char*I)
{strcpy(I,ID);}
};
classemployee:
publicPerson
{
floatbasepay;
floatworkyears;
public:
setdate(floati,floatj)
{basepay=i;workyears=j;}
floatcountbouns()
{return10*workyears;}
floatcountmonthpay()
{returnbasepay+countbouns();}
};
voidmain()
{charName[20];chariD[20];
employeea;
a.input("Hongjia","20111003637");
a.setdate(500,6);
a.getname(Name);
a.getID(iD);
cout<<"姓名是"<cout<<"ID号是"<cout<<"奖金是"<cout<<"月薪是"<}
另外:
#include
using namespace std;
class Person
{
private:
char name;
char id;
public:
void input(char *name,char *id)
{
this->name=*name;
this->id=*id;
cout<<"姓名:
"<"<}
};
class Employee:
public Person
{
private:
float bs;
float yw;
public:
void inputs();
float getJJ()
{return 10*yw;}
float getyx()
{return bs+getJJ();}
void disp()
{
cout<<"奖金"<cout<<"月薪"<}
};
void Employee:
:
inputs()
{
cout<<"请输入底薪:
"<cin>>bs;
cout<<"请输入工作年数:
"<cin>>yw;
}
void main()
{
Employee p;
p.input("George","456534534533454");
p.inputs();
p.disp();
}再另外:
#include
#include
classPerson
{
private:
charname[20];
charID[20];
public:
voidinput(charna[],charI[])
{strcpy(name,na);
strcpy(ID,I);
}
voidgetname(char*na)
{strcpy(na,name);}
voidgetID(char*I)
{strcpy(I,ID);}
};
classemployee:
publicPerson
{
floatbasepay;
floatworkyears;
public:
voidsetdate();
floatcountbouns()
{return10*workyears;}
floatcountmonthpay()
{returnbasepay+countbouns();}
};
voidemployee:
:
setdate()
{
cout<<"请输入底薪"<cin>>basepay;
cout<<"请输入工作年限"<cin>>workyears;
};
voidmain()
{charName[20];chariD[20];
employeea;
a.input("Hongjia","20111003637");
a.setdate();
a.getname(Name);
a.getID(iD);
cout<<"姓名是"<cout<<"ID号是"<cout<<"奖金是"<cout<<"月薪是"<}
林华老师出的编程中一定有三道原题!
打击按一定注意呀!
按照问题就大体可以知道考什么内容了!
因为有些知识点就只有两三个例题的!
大家加油哈!
二、根据下列代码,写出派生类B所含的成员及成员的访问控制属性
1、根据下列代码,写出派生类B所含的成员及成员的访问控制属性
classA{
private:
inta;
protected:
intb;
public:
A(inta1=0,intb1=0){a=a1;b=b1}
intgetA_a(){returna;}
intgetA_b(){returnb;}
};
classB:
publicA{