上机考试综合应用题Word下载.docx
《上机考试综合应用题Word下载.docx》由会员分享,可在线阅读,更多相关《上机考试综合应用题Word下载.docx(39页珍藏版)》请在冰豆网上搜索。
str[i]!
=0;
i++)
m_str[i]=str[i];
//********4********
private:
charm_str[32];
voidmain()
{
NameCtrl*p;
AnimalNameobj1("
Dog"
);
p=&
obj1;
p->
GetName();
cout<
obj1.GetName2()<
return;
}
2.按要求完成下列操作,将类的定义补充完整。
(1)定义私有数据成员year,month.Day,分别用于年、月、日,它们都是int型的数据,请在注释//******1******后添加适当的语句。
(2)完成判断数据成员date2是否四闰年函数intDate:
:
IsLeapYear()的定义,返回数据成员data2是否是闰年的值,是则返回1,否则返回0。
请在注释//******2******后添加适当的语句。
(3)设置SetData()的默认时间为2004-12-1,请在注释//******3******后添加适当的语句。
(4)完成主函数main(),完成输出date2isaleapyear,请在注释//******4******后添加适当的语句。
提示:
公元纪年的年数可以被四整除,即为闰年;
被100整除儿不能被400整除为平年;
被100整除也可被400整除的为闰年。
iostream>
usingnamespacestd;
classDate
voidSetDate(inty,intm,intn);
intIsLeapYear();
voidPrint()
{cout<
year<
"
-"
<
month<
day<
endl;
voidDate:
SetDate(inty,intm,intd)
year=y;
month=m;
day=d;
intDate:
IsLeapYear()
return
intmain()
Datedate1,date2;
date1.SetDate();
date2.SetDate(2004,12,1);
cout<
date1:
;
date1.Print();
date2:
date2.Print();
//********4********
date2is"
("
not"
)<
aleapyear."
return0;
3.按要求完成下列操作,将类的定义补充完整。
(1)定义类的公有数据成员函数No、Name[32],其中No是int型的数据,Name[32]为字符型。
(2)完成函数set的定义,分布设置No和Name的值,请在注释//******2******后添加适当的语句。
(3)完成函数print(),请在注释//******3******后添加适当的语句。
(4)加缺省构造函数,设置No为0,Name为空,请在注释//******4******后添加适当的语句。
#include<
classStudent
No=no;
for(inti=0;
strName[i]!
i++)
{
Name[i]=strName[i];
Name[i+1]=0;
}
voidprint()
//********3********
Student()
Studentstu;
stu.Set(125,"
XiaoXin"
stu.print();
4.源程序文件中定义了Circle类与Money类,Circle类可对半径为r的圆进行周长与面积的计算,而Money类用于计算一圆形游泳池的造价。
游泳池四周有原形过道,过道外围上栅栏,过道宽度为3米,根据键入的游泳池半径,每米栅栏价格及每平方米过道价格,即可计算出游泳池的造价。
请按要求完成下列操作,将程序补充完整。
(1)定义符号常量PI(值为3.14159f)与WIDTH(值为3.00f),分别用于表示圆周率与过道的固定宽度。
请在注释"
//**1**"
之后添加适当的语句。
(2)定义Circle类默认构造函数,把私有成员radius初始化为参数r的值。
请在注释"
//**2**"
之后添加适当的语句;
(3)完成Money类默认构造函数的定义,把私有成员FencePrice(每米栅栏的价格)、ConcretePrice(每平方米过道的价格)初始化为参数f,c的值。
//**3**"
(4)完成Money类成员函数floatMoney:
TotalMoney(floatfencelen,floatconarea)的定义,根据参数fencelen(栅栏的长度)和conarea(过道的面积),返回栅栏与过道的总造价。
//**4**"
除在指定位置添加语句之外,请不要改动程序中的其他内容。
//**1**
classCircle
floatradius;
//**2**
floatCircumference(){return2*PI*radius;
floatArea(){returnPI*radius*radius;
classMoney
floatFencePrice;
floatConcretePrice;
Money(floatf,floatc);
floatTotalMoney(floatfencelen,floatconarea);
Money:
Money(floatf,floatc)
//**3**
floatMoney:
TotalMoney(floatfencelen,floatconarea)
//**4**
floatradius,fence,concrete;
cout.setf(ios:
fixed);
showpoint);
cout.precision
(2);
Entertheradiusofthepool:
cin>
>
radius;
EntertheFencePrice:
fence;
EntertheConcretePrice:
concrete;
CirclePool(radius);
CirclePoolRim(radius+WIDTH);
Moneymon(fence,concrete);
floattotalmoney=mon.TotalMoney(PoolRim.Circumference(),(PoolRim.Area()-Pool.Area()));
ThetotalmoneyisRMB"
totalmoney<
5.按要求完成下列操作,将类的定义补充完整。
(1)完成类Rect的构造函数,实现对遍历left、right、top、bottom的初始化,缺省值都为0,请在注释//******1******后添加适当的语句。
(2)完成类Rectde构造函数,请在注释//******2******后添加适当的语句。
(3)完成计算矩形面积函数Area(),请在注释//******3******后添加适当的语句。
(4)完成计算周长函数Circly(),请在注释//******4******后添加适当的语句。
程序输出:
100
40
classRect
intleft,right,top,bottom;
//********1********
left=l;
right=r;
top=t;
bottom=b;
//********2********
left=rc.left;
right=rc.right;
top=rc.top;
bottom=rc.bottom;
intArea()
return;
intCircly()
return
Rectrc(10,20,40,50);
Rectrc2(rc);
rc2.Area()<
rc2.Circly()<
6.按要求完成下列操作,将类的定义补充完整。
完成以下功能:
(1)完成构造函数,设置数组元素的个数为0,请在注释//******1******后添加适当的语句。
(2)完成函数Add(intn),如果参数n包含在类的数据成员数组中,则返回0,否则把数据写入数组,然后返回1,请在注释//******2******后添加适当的语句。
(3)完成函数Del(intn),如果变量在数据中,则删除该变量,并且返回1,如果不存在则返回0,请在注释//******3******后添加适当的语句。
(3在完成成员函数isMemberOf(intn)的定义,该函数检查参数n是否在类的数据成员数组elems中,如果在返回1,否则返回0.请在注释//******4******后添加适当的语句。
#defineMAX_LEN1024
classCMyClass
CMyClass()
//********1********
intAdd(intn)
i<
m_Len;
//********2********
if()
return0;
m_Array[m_Len++]=n;
return1;
intDel(intn)
for(i=0;
if(m_Array[i]==n)
{
break;
}
if()
for(;
i<
m_Len-1;
m_Array[i]=m_Array[i+1];
m_Len--;
return1;
return0;
intisMemberOf(intn)
//********4********
return1;
intm_Array[MAX_LEN];
intm_Len;
//Ó
Ã
À
´
¼
Ç
Â
Ê
ý
×
é
µ
Ä
¸
ö
CMyClassobj;
obj.Add
(2);
obj.Add(4);
obj.Add(5);
obj.Add(10);
obj.isMemberOf(4);
obj.isMemberOf(11);
obj.Del(5);
obj.Del
(2);
obj.isMemberOf
(2);
obj.isMemberOf(5);
7.按要求完成下列操作,将类的定义补充完整。
(1)完成构造函数的定义,使得数据成员变量m_filename和m_contex为空,内容长度m_Ctxlen为0.请在注释//******1******后添加适当的语句。
(2)完成函数Write()函数,用来对contex内容进行设置填充内容,如果以前有内容,则删除以前的内容,重新填写。
(3)完成Copy函数,完成将Source的内容拷贝到当前的文件内容中,请在注释//******3******后添加适当的语句。
(4)完成析构函数,对Contex内存的释放。
classCMyFile
charm_filename[64];
char*m_contex;
intm_CtxLen;
CMyFile()
m_contex=NULL;
m_CtxLen=0;
~CMyFile()
if(m_CtxLen)
voidOpen(char*str,intlen)
len;
m_filename[i]=str[i];
m_filename[len]=0;
if(m_contex)
delete[]m_contex;
m_contex=NULL;
voidWrite(char*str,intlen)
if(m_contex!
=NULL)
//********3********
m_contex=newchar[len+1];
m_contex[i]=str[i];
m_contex[len]=0;
m_CtxLen=len;
voidCopy(CMyFile&
file)
CMyFilefile1,file2;
file1.Open("
abc"
3);
file2.Open("
avd"
file1.Write("
dede"
4);
file2.Copy(file1);
8.按要求完成下列操作,将类的定义补充完整。
(1)定义类Cat的保护数据成员itsAge用于表示年龄,它是int型的数据。
(2)完成成员函数GetAge()的类外定义,返回成员的itsAge值,请在注释"
(3)完成成员函数SetAge(intage)的类外定义,把数据成员itsAge赋值为参数age的值,请在注释"
(4)完成成员函数Meow的类外定义,使其输出字符串"
meow."
到屏幕上。
输出结果如下:
meow.
kittyisacatwhois5yearsold.
classCat
intGetAge();
voidSetAge(intage);
voidMeow();
protected:
//**1**
intCat:
GetAge()
//**2**
voidCat:
SetAge(intage)
//**3**
Meow()
Catkitty;
kitty.Meow();
kitty.SetAge(5);
kittyisacatwhois"
kitty.GetAge();
yearsold.\n"
9.源程序运行的结果为:
Derive1’sPrint()called.
Derive2’sPrint()called.
按要求完成下列操作,将类的定义补充完整。
(1)定义函数Print()为无值型纯虚函数。
(2)建立类Derive1的构造函数,请在注释//******2******后添加适当的语句。
(3)完成类Derive2成员函数Print()的定义。
请在注释//******3******后添加适当的语句。
(4)定义类Derivel的对象指针d1,类Derive2的对象指针d2。
其初始化分别为1和2。
classBase
Base(inti){b=i;
intb;
classDerive1:
publicBase
Derive1'
sPrint()called."
classDerive2:
Derive2(inti):
Base(i){}
voidfun(Base*obj){
obj->
Print();
//********4********
fun(d1);
fun(d2);
10.源程序定义了表示人的类Human,但Human的定义并不完整,请按要求完成下列操作,将类Human的定义补充完成:
(1)定义私有数据成员blood_type用于表示血型,血型为char型的数据。
(2)完成默认构造函数的定义,要求具有缺省值,缺省值为身高175体重70血型A。
(3)完成类外Human成员函数SetHuman的定义。
(4)在主函数中调用成员函数SetHuman,把对象d2的三个私有数据成员分别设定为身高172,体重65,血型为O。
classHuman{
intstature,avoirdupois;
:
stature(st),avoirdupois(av),blood_type(bl){