类和对象一Word文档格式.docx
- 文档编号:15169362
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:12
- 大小:18.49KB
类和对象一Word文档格式.docx
《类和对象一Word文档格式.docx》由会员分享,可在线阅读,更多相关《类和对象一Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
}
C.classP{D.classP{
intf;
public:
inta;
f=25;
voidSeta(intx){a=x;
分析:
在类体内不可对数据成员进行初始化;
类定义结束时需用分号;
只有类中的成员函数才能存取类中的私有数据。
二.改错题
1.#include<
math.h>
classPoint{
public:
voidSet(doubleix,doubleiy)//设置坐标
{x=ix;
y=iy;
doublexOffset()//取x轴坐标分量
{returnx;
doubleyOffset()//取y轴坐标分量
{returny;
doubleangle()//取点的极坐标θ
{return(180/3.14159)*atan2(y,x);
doubleradius()//取点的极坐标半径
{returnsqrt(x*x+y*y);
protected:
doublex;
//x轴分量
doubley;
//y轴分量
}//error:
缺少分号
voidmain()
{Pointp;
doublex,y;
cout<
"
Enterxandy:
\n"
;
cin>
>
x>
y;
p.Set(x,y);
p.x+=5;
//error:
私有成员不能在类外被访问
p.y+=6;
同上
angle="
<
p.angle()
radius="
p.radius()
xoffset="
p.xOffset()
yoffset="
p.yOffset()<
endl;
2.分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。
#include<
iostream.h>
classone
{inta1,a2;
public:
one(intx1=0,x2=0);
};
{onedata(2,3);
cout<
data.a1<
data.a2<
出错原因:
构造函数参数表语法错;
构造函数没有函数体;
类的对象不能直接访问类的私有成员变量。
改正后的程序如下:
#include<
classone
{inta1,a2;
one(intx1=0,intx2=0){a1=x1;
a2=x2;
intgeta1(){returna1;
intgeta2(){returna2;
data.geta1()<
data.geta2()<
3.分析以下程序的错误原因,给出修改方案使之能正确运行。
#include<
classAmplifier{
floatinvol,outvol;
Amplifier(floatvin,floatvout)
{invol=vin;
outvol=vout;
floatgain();
Amplifier:
:
floatgain(){returnoutvol/invol;
{Amplifieramp(5.0,10.0);
\n\nThegainis=>
gain()<
成员函数在类体外定义格式是:
函数返回类型类名:
:
成员函数名(参数表);
成员函数调用格式是:
对象名.成员函数名(参数表)。
classAmplifier
{floatinvol,outvol;
Amplifier(floatvin,floatvout){invol=vin;
floatAmplifier:
gain(){returnoutvol/invol;
amp.gain()<
三.编程题
(1)定义盒子Box类,要求具有以下成员:
可设置盒子形状;
可计算盒子体积;
可计算盒子的表面积。
classBox
{intx,y,z;
intv,s;
voidinit(intx1,inty1,intz1){x=x1;
y=y1;
z=z1;
voidvolue(){v=x*y*z;
voidarea(){s=2*(x*y+x*z+y*z);
voidshow()
{cout<
x="
x<
y="
y<
z="
z<
cout<
s="
s<
v="
v<
{Boxa;
a.init(2,3,4);
a.volue();
a.area();
a.show();
(2)定义计数器类Counter。
要求具有以下成员:
计数器值;
可进行增值和减值记数;
可提供记数值。
classCounter
{intn;
voidinit_Counter(intm){n=m;
voidin_Counter(){n++;
voidde_Counter(){n--;
voidshow(){cout<
n<
{Countera;
a.init_Counter(10);
a.show();
a.de_Counter();
a.show()<
(3)定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象提供的时间。
//time.h
#include"
time.h"
classTime{
voidSet(inth,intm,ints);
voidDisplay();
protected(private):
inthour;
intminute;
intsecond;
//time.cpp
voidTime:
Set(inth,intm,ints)
{
h%=24;
m%=60;
s%=60;
//简单正确性处理
hour=h;
minute=m;
second=s;
Display()
{cout<
hour<
minute<
second<
//主程序
Timea;
a.Set(3,32,48);
a.Display();
(4)编写一个程序,设计一个Tdate类,它应该满足下面的条件:
1)用这样的格式输出日期:
日-月-年;
2)判断该年是否为闰年;
3)设置日期。
//tdate.h
classTdate
{pubilc:
voidset(intm,intd,inty);
intIsleapyear();
voidprint();
private:
intmonth,day,year;
•//tdate.cpp
•#include<
•#include“tdate.h”
•voidTdate:
set(intm,intd,inty)
•{month=m;
day=d;
year=y;
•intTdate:
Isleapyear()
•{return(year%4==0&
&
year%100!
=0)||(year%400==0);
print()
•{cout<
month<
“-”<
day<
year<
•voidmain()
•{Tdates;
•s.set(2,15,1998);
•s.print();
•if(s.Isleapyear())
•cout<
今年为闰年"
•else
cout<
今年不是闰年"
}}
(5)定义一个满足如下要求的类Date
用下面的格式输出日期日/月/年
在运行的日期上加一天
设置日期
classDate{
voidAddOneDay();
voidSetDay(inty,intm,intd);
boolLegal(inty,intm,intd);
boolIsLeapYear(inty);
intyear,month,day;
voidDate:
day<
/"
month<
year<
endl;
AddOneDay()
{if(Legal(year,month,day+1))
day++;
elseif(Legal(year,month+1,1))
month++,day=1;
elseif(Legal(year+1,1,1))
day=1,mo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 对象