}
程序运行的结果:
a+b=5a+b=11
7
2.2编写并调试程序:
1)按下面要求编程定义一个描述学生基本情况的类,数据成员包括姓名、学号、英语、数学、计算机成绩。
成员函数包括设置姓名、学号和三门课程的成绩、输出数据、以及求平均值。
设计主函数,在主函数里调用设置“姓名、学号和三门课程的成绩”的成员函数设置各数据调用输出数据成员函数,实现各数据的输出;调用求平均值的成员函数,求三门课的平均成绩,并输出显示。
程序如下:
#include
classstudent
};
voidmain()
{
}
运行结果:
2)按下面要求编程定义一个满足下列要求的类CDate;
a.有三个成员数据:
年、月、日;
b.有设置日期的成员函数;
c.有用格式“月/日/年”输出日期的成员函数;
d.有对当前日期加一天的成员。
设计主函数,在主函数里创建对象;调用设置日期的成员函数,设置当天的日期;调用输出日期的成员函数输出当天日期;调用对当前日期加一天的成员函数,然后再调用输出日期的成员函数,输出第二天的日期。
程序如下:
#includeclassCDate
{
}
voidmain()
{}运行结果:
3.有一个类说明如下:
Classfun
{intI,j;
Public:
Ints,k;
VoidSetData(int,int,int,int);
Voidprint();
};
要求:
a.完成函数SetData(int,int,int,int)的定义,该函数用于设置各成员数据;完成函数voidprint()的定义;该函数用于输出各成员数据;
b.设计主函数,在主函数里定义两个对象:
Funs1,s2;
c.在主函数里调用SetDataO成员函数,设置各个对象的数据,调用print()成员函数输出数
据成员函数,实现各对象的数据的输出。
程序如下:
#include
classfun{inti,j;
public:
ints,k;
voidSetData(int,int,int,int);
voidprint();
};
voidfun:
:
SetData(inta,intb,intc,intd){}
voidfun:
:
print()
{}
intmain()
{
funs1,s2;
s1.SetData(1,2,3,4);
s2.SetData(5,6,7,8);
s1.print();
s2.print();
return0;
}
运行结果:
3.实验总结:
1、实验目的及要求:
1)掌握普通函数重载的方法
2)掌握成员函数重载的方法
2、实验内容:
2.1分析下面程序,指出程序运行的结果
#include
classListClass
{int*List;
unsignednMax;
unsignednElem;
public:
voidInit(intn=10)
{List=newint[n];
nMax=n;
nElem=0;
}
intElem(int);
int&Elem(unsignedn){returnList[n];}
unsignedElem(void){returnnElem;}
unsignedMax(void){returnnMax;}
voidPrint(void);
intGetElem(inti)
{if((i>=0)&&(i<=nElem))returnList[i];
elsereturn0;
}
voidDestroy(void){delete[nMax]List;}
};
intListClass:
:
Elem(intelem)
{
if(nElem{List[nElem++]=elem;
returnnElem;
}
Else
{int*list;
list=newint[nMax+1];
for(inti=0;idelete[nMax]List;
nMax++;
List=list;
List[nElem++]=elem;
returnnElem;
}
}
voidListClass:
:
Print(void)//输出数组内容
{for(inti=0;i}
voidmain(void){ListClasslist,list1;list.Init(10);list1.Init(20);
for(inti=0;i<10;i++)list1.Elem(i);
cout<<"线性表cout<<"线性表cout<<"线性表cout<<"线性表list1.Print();
list的元素的个数为:
"<"<的元素的个数为:
"<"<list1
list1
list1.Elem(3u)=100;cout<<"现在线性表list1.Elem(20);
list1.Elem(200);cout<<"现在线性表list.Destroy();
list1.Destroy();
}
list1中的第三个值为:
"<list1中的最后一个元素为:
"<运行结果:
2.2按下面的要求编写并调试程序:
1)使用函数重载的方法定义两个重名函数,分别求出整型数的两点间距离和实型数的两点间
距离。
程序如下:
运行结果:
2)定义一个Cpoint类,用成员函数的重载实现上题的功能。
并编写主函数测试。
程序如下:
实验结果:
3)使用重载的方法编写一个求整数、和双精度数的平方数的类。
并用一个主函数进行测试。
程序如下:
#includeclassSquar
{
};
voidmain()
{
Squarc;
cout<<"2的平方是:
"<(2)<"<"<运行结果:
3.实验总结:
实验五构造函数与析构函数
1、
1)
2)
3)2、实验内容:
2.1分析程序指出程序运行的结果:
实验目的:
掌握构造函数和析构函数定义方法;掌握构造函数的重载、具有默认值的构造函数的使用方法;加深对构造函数的特殊用途的理解。
1)分析下面程序中的对象传递,写出输出结果。
#include
Usingstd:
:
cout;
Usingstd:
:
endl;
classCylinder
{
public:
Cylinder(){}
Cylinder(doubler,doubleh);
voidsetcylinder(doubler,doubleh);
doublegetradius(){returnradius;}
doublegetheight(){returnheight;}
doublevolume();
doublesurface_area();
private:
doubleradius;
doubleheight;
};
constdoublePI=3.1415926;
Cylinder:
:
Cylinder(doubler,doubleh)
{
radius=r;
height=h;
}
voidCylinder:
:
setcylinder(doubler,doubleh)
{
radius=r;
height=h;
}
doubleCylinder:
:
volume()
{
doublevol;
vol=PI*radius*radius*height;
returnvol;
}
doubleCylinder:
:
surface_area()
{
doublearea;
area=2*PI*radius*height+2*PI*radius*radius;
returnarea;
}
voidmain()
{
Cylindercylinder1(7.0,12.0),cylinder2;
cylinder2.setcylinder(12.3,18.7);
cout<<"theradiusofcylinder1is:
\t"<cout<<"theheightofcylinder1is:
\t"<cout<<"thevolumeofcylinder1is:
\t"<cout<<"thesurfaceareaofcylinder1is:
\t"<\t"<\t"<cout<<"thevolumeofcylinder2is:
\t"<cout<<"thesurfaceareaofcylinder2is:
\t"<}
运行结果:
2)分析下面的程序,指出程序的错误。
#include#include
classSample
{
inti;
public:
intj;
Sample(intx)
{
i=x;//cout<<"i="<
}
~Sample()
{
exit
(1);
cout<<"撤消"<}
};
voidmain()
{
Samplea1(10),a2(20);
exit
(1);
cout<<"撤消"<}
3)将下面的程序补充完整
#includeclasstest
{
private:
intnum;
doublef1;
public:
test();
test();getint(){returnnum;}doublegetfloat(){returnf1;}
};
test:
:
test()
{
cout<<"默认初始化"<cout<<"调用构造函数1"<}test:
:
test(
{
cout<<"初始化"<cout<<"调用构造函数2"<}
voidmain()
{
testa;
testb(2,5.5);
}
2.2编写并调试程序编写一个实现两个数相减的类的测试程序,请写出类的定义,构成一个完整的程序,要求调用类的构造函数和析构函数时均有明确的输出信息。
#include
Usingstd:
:
cout;
Usingstd:
:
endl;classCha
{
inta,b;
public:
Cha(int,int);
voidprint();
};
Cha:
:
Cha(intx,inty){}
voidCha:
:
print()
{
}
voidmain()
{
Chat(88,32);
t.print();
}
程序运行结果:
3.实验总结:
实验六对象成员
1、实验目的及要求
1)理解对象成员的概念
2)掌握对象成员的初始化方法
3、实验内容
1分析调试程序指出程序运行的结果
1)分析下面程序中对象传递,写出输出结果.#include
classA
{
inti;
public:
A(intx)
{i=x;}
intget()
{returni;}
};
intcube(Aa)
{returna.get()*a.get();}
voidmain()
{
Aa1(10),a2(20);
cout<cout<}
实验结果:
2)分析对象成员的调用,写出程序结果
#include
#include
classB
{
private:
inta,b;public:
B(){}B(inti,intj);voidshowb();};
classA
{private:
Bc;public:
A(