第二章复习题2含答案析构函数.docx

上传人:b****5 文档编号:8024555 上传时间:2023-01-28 格式:DOCX 页数:23 大小:198.25KB
下载 相关 举报
第二章复习题2含答案析构函数.docx_第1页
第1页 / 共23页
第二章复习题2含答案析构函数.docx_第2页
第2页 / 共23页
第二章复习题2含答案析构函数.docx_第3页
第3页 / 共23页
第二章复习题2含答案析构函数.docx_第4页
第4页 / 共23页
第二章复习题2含答案析构函数.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

第二章复习题2含答案析构函数.docx

《第二章复习题2含答案析构函数.docx》由会员分享,可在线阅读,更多相关《第二章复习题2含答案析构函数.docx(23页珍藏版)》请在冰豆网上搜索。

第二章复习题2含答案析构函数.docx

第二章复习题2含答案析构函数

4、这题答案不完整,比较难,可以仔细做一下。

题目:

请补足date类和card的成员函数定义。

输出结果见图:

样张.JPG

-------------------------------------------------------*/

#include

#include

usingnamespacestd;

classdate{

intyear;

intmonth;

intday;

public:

date(intYear=0,intMonth=0,intDay=0);//构造函数,给出初始的年月日

voidsetdate(intYear,intMonth,intDay);//设置年月日

intget_year();//获取年份

intget_month();//获取月份

intget_day();//获取日期

};

classcard{

intbook;//图书编号

intreader;//借阅者编号

dateborrow_day;//出借日期

intexpiry;//借阅期限

public:

card(intBook,intReader,dateBorrow_day,intExpiry=60);//构造函数

dateget_borrow_day();//获取出借日期

dateget_return_day();//获取归还日期,归还日期=出借日期+借阅期限

intget_book();//获取图书编号

intget_reader();//获取借阅者编号

intget_expiry();//获取借阅期限

};

/**********Program**********/

date:

:

date(intYear,intMonth,intDay){year=Year;month=Month;day=Day;}

voiddate:

:

setdate(intYear,intMonth,intDay){year=Year;month=Month;day=Day;}

intdate:

:

get_year(){returnyear;}

intdate:

:

get_month(){returnmonth;}

intdate:

:

get_day(){returnday;}

card:

:

card(intBook,intReader,dateBorrow_day,intExpiry){

book=Book;reader=Reader;expiry=Expiry;

}

intcard:

:

get_book(){returnbook;}

intcard:

:

get_reader(){returnreader;}

intcard:

:

get_expiry(){returnexpiry;}

datecard:

:

get_borrow_day(){

/**********End**********/

voidmain(){

intstu=2012678;//借阅者编号

intcbook=100034;//图书编号

dateday(2012,1,31);//出借日期

cardc1(cbook,stu,day);//创建card对象c1

//以下打印借书卡c1信息

cout<<"借书卡c1:

"<

cout<<"-----------------------------------------------------"<

cout<

"<

cout<

"<

cout<

"<

cout<

"<

"<

"<

cout<

"<

"<

"<

cout<<"-----------------------------------------------------"<

day.setdate(2012,12,6);//设置借书日期

cbook=100077;//图书者编号

cardc2(cbook,stu,day,30);//创建card对象c2

//以下打印借书卡c2信息

cout<<"借书卡c2:

"<

cout<<"-----------------------------------------------------"<

cout<

"<

cout<

"<

cout<

"<

cout<

"<

"<

"<

cout<

"<

"<

"<

cout<<"-----------------------------------------------------"<

}

3、

题目:

声明复数类complex,并使用成员函数add实现复数加法,

并输出结果,注意虚部为负数和0时的输出。

输出结果见图:

样张.JPG

-------------------------------------------------------*/

#include

usingnamespacestd;

/**********Program**********/

classComplex{

doubleR,I;

public:

Complex(doublea=0,doubleb=0){R=a;I=b;};

voidshow();

Complexadd(Complex);

};

ComplexComplex:

:

add(Complexs){

R+=s.R;

I+=s.I;

returnComplex(R,I);}

/**********End**********/

voidComplex:

:

show(){

if(I>0)

cout<

elseif(I==0)

cout<

else

cout<

}

voidmain()

{

Complexa(3,4),b(5,6),c;

c=a.add(b);//c=a+b

c.show();

}

2、

题目:

有一个Time类,包含数据成员hour(小时)、minute(分)和sec(秒),

定义三个获取数据成员的成员函数和一个模拟秒表的函数成员go(每调用一次go走一秒),

格式:

voidgo(void)

doublegetHour(void){returnhour;}

doublegetMinute(void){returnminute;}

doublegetSec(void){returnsec;}

输出结果见图:

样张.JPG

-------------------------------------------------------*/

#include

usingnamespacestd;

/**********Program**********/

classClock{

doublehour,minute,sec;

public:

Clock(doubleh=0,doublem=0,doubles=0);

voidgo(void);

doublegetHour(void){returnhour;};

doublegetMinute(void){returnminute;};

doublegetSec(void){returnsec;};

};

Clock:

:

Clock(doubleh,doublem,doubles)

{

hour=h;

minute=m;

sec=s;

}

voidClock:

:

go()

{

sec++;

if(sec>=60)

{

sec=(int)sec%60;

minute++;

}

if(minute>=60)

{

minute=(int)minute%60;

hour++;

}

}

/**********End**********/

voiddisplay(Clockck)

{

cout<

}

voidmain(void)

{

inti;

intINTERVAL;//耗时,单位为秒

INTERVAL=rand();

INTERVAL=rand();

Clockclock(9,55,0);

cout<<"起点=";display(clock);cout<

for(i=1;i<=INTERVAL;i++)clock.go();

cout<<"终点=";display(clock);cout<

cout<<"耗时"<

}

1、

题目:

定义盒子Box类,要求具有以下成员:

可设置盒子形状;可计算盒子体积;可计算盒子的表面积

输出结果见图:

样张.JPG

-------------------------------------------------------*/

#include

#include

usingnamespacestd;

/**********Program**********/

classBox{

doublex,y,z;

doubles,v;

public:

voidinit(doublea,doubleb,doublec);

voidvolue();

voidarea();

voidshow();

};

voidBox:

:

init(doublea,doubleb,doublec){

x=a;y=b;z=c;}

voidBox:

:

volue(){

s=2*x*y+2*x*z+2*y*z;}

voidBox:

:

area(){

v=x*y*z;}

/**********End**********/

voidBox:

:

show()

{cout<<"x="<

cout<<"s="<

}

voidmain()

{Boxa;

a.init(2,3,4);

a.volue();

a.area();

a.show();

}

5、这题15分只得了13分,内容匹配率66%。

【程序设计】

---------------------------------------------------------

题目:

定义一个描述学生基本情况的类Student,数据成员包括学号、

C++成绩、英语和数学成绩,成员函数包括获取学号、求出总成绩和平均成绩,格式:

longgetID()

intsum()

doubleavg()

输出结果见图:

样张.JPG

-------------------------------------------------------*/

#include

usingnamespacestd;

/**********Program**********/

classStudent{

longID;

intc1,c2,c3;

public:

Student(longa=0,intb=0,intc=0,intd=0){ID=a;c1=b;c2=c;c3=d;};

longgetID();

intsum();

doubleavg();

};

longStudent:

:

getID(){

returnID;}

intStudent:

:

sum(){

returnc1+c2+c3;}

doubleStudent:

:

avg(){

return(c1+c2+c3)/3;}

/**********End**********/

voidmain(void)

{

Students(201211145,90,80,97);

cout<<"ID:

"<

cout<<"\tThesumofsource:

"<

cout<<"\tTheavgofsource:

"<

}

6、

题目:

定义shape类,有三个表示长度的整型数据成员,分别为l、w、h。

编一个基于对象的程序,写一个成员函数is,可判定其形状:

当l、w、h均不为0时,判定形状为柱体,返回值为1;

当l、w、h仅有一个为0时,判定形状为长方形,返回值为2;

当l、w、h仅有一个不为0时,判定形状为线段,返回值为3;

当l、w、h均为0时,判定形状为点,返回值为4;

输出结果见图:

样张.JPG

-------------------------------------------------------*/

#include

usingnamespacestd;

classshape{

private:

intl,w,h;

public:

shape(int,int,int);

intis();

};

/**********Program**********/

shape:

:

shape(inta,intb,intc){l=a;w=b;h=c;}

intshape:

:

is(){if(l==0&&w==0&&h==0)return4;

if(l!

=0&&w!

=0&&h!

=0)return1;

if((l==0&&w!

=0&&h!

=0)||(l!

=0&&w!

=0&&h==0)||(l!

=0&&w==0&&h!

=0))return2;

if((l==0&&w==0&&h!

=0)||(l!

=0&&w==0&&h==0)||(l==0&&w!

=0&&h==0))return3;}

/**********End**********/

voiddisplay(shapes)

{

switch(s.is()){

case1:

cout<<"这是柱体"<

case2:

cout<<"这是长方形"<

case3:

cout<<"这是线段"<

case4:

cout<<"这是点"<

}

}

voidmain(void)

{

shapemy1(1,2,3);display(my1);

shapemy2(1,0,2);display(my2);

shapemy3(0,0,1);display(my3);

shapemy4(0,0,0);display(my4);

}

7、

定义一个日期类Date,包含年、月、日三个数据成员(int),定义带有3个参数的构造函数,

以及一个求日期是当年的第几天的成员函数和输出日期的成员函数,

日期的显示格式为年/月/日。

编写主函数进行测试。

(每年各月天数分别为31,28,31,30,31,30,31,31,30,31,30,31,闰年2月为29天,

闰年的条件year%4==0&&year%100!

=0)||year%400==0))

输出结果见样张.JPG

-------------------------------------------------------*/

#include

usingnamespacestd;

/**********Program**********/

classDate{

intyear,month,day;

public:

Date(inta=0,intb=0,intc=0){year=a;month=b;day=c;};

voidshow();

intgetDay();

voidSetD(inta,intb,intc){year=a;month=b;day=c;};

};

intDate:

:

getDay(){

inti,day_sum;

intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

day_sum=0;

for(i=1;i

day_sum+=day;

if((year%4==0&&year%100!

=0||year%400==0)&&month>2)day_sum+=1;

returnday_sum;}

/**********End**********/

voidDate:

:

show()

{

cout<

}

intmain()

{

Dated1(2009,2,1),d2;//d1为2009年2月1日

d1.show();

cout<

d2.SetD(2012,3,1);//d2为2012年3月1日

d2.show();

cout<

return0;

}

8、

定义一个点类Point包括x坐标和y坐标(int)。

定义一个圆类Circle,有数据成员半径

和表示圆心坐标的点类对象。

圆类成员函数包括构造函数、求面积的函数和输出显示圆心

坐标及圆半径的函数。

输出结果见样张.JPG

-------------------------------------------------------*/

#include

usingnamespacestd;

constdoublePI=3.14159;

/**********Program**********/

/**********End**********/

voidCircle:

:

show()

{

cout<<"圆心X坐标="<

cout<<"圆半径="<

}

intmain()

{

Pointp1(9,2),p2;//9为x坐标,2为y坐标

Circlec1(p1,7),c2;//7为半径p1为圆心点

c1.show();

cout<<"圆的面积="<

p2.SetP(1,1);//改变圆心坐标

c2.SetCC(p2,4);//以p2为圆心坐标,改变c2的半径

c2.show();//显示c2

cout<<"圆的面积="<

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1