C++实验报告模板 太原理工大学软件学院Word格式文档下载.docx
《C++实验报告模板 太原理工大学软件学院Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++实验报告模板 太原理工大学软件学院Word格式文档下载.docx(20页珍藏版)》请在冰点文库上搜索。
![C++实验报告模板 太原理工大学软件学院Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/339ebd7e-95ab-4c4c-a7d8-4a3409834b1a/339ebd7e-95ab-4c4c-a7d8-4a3409834b1a1.gif)
do{
sum+=i;
i++;
}while(i<
=10);
cout<
<
"
sum="
sum<
endl;
}
(2)#include<
iostream>
1计算圆面积"
endl
<
2计算矩形面积"
3计算正方形面积"
4退出"
请选择相应程序代码:
;
intx;
cin>
>
x;
doublearea;
while(x!
=4)
{
if(x==1)
doubler;
半径:
r;
area=3.14*r*r;
面积为:
"
area<
}
elseif(x==2)
doublea,b;
长和宽:
a>
b;
area=a*b;
面积为"
elseif(x==3)
doublea;
边长:
a;
area=a*a;
else{
输入有误,请重新输入!
程序代码:
return0;
五、实验数据记录和处理
运行结果:
(1)
(2)
6、实验结果与分析
(1)实验应用循环语句,实现累加运算,输出结构。
(2)实验通过调用面积公式输出相应的结果。
七、讨论、心得
通过本次实验,我学会了简单应用C++程序,学会了运算符与表达式的应用,对VISUALC++开发环境也有了一定了解。
实验二类与对象程序设计
(1)掌握类的定义和使用、成员函数的定义和使用;
(2)掌握类的私有成员、公有成员和保护成员的区别;
(3)掌握对象的定义、类成员的访问;
(4)掌握类中构造函数与析构函数的应用。
(5)掌握重载函数的定义和使用。
(1)设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角的两个点的坐标,能计算矩形的面积。
要求定义构造函数与析构函数。
(2)编写重载函数MAX1可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。
源程序:
(1)#include<
iostream.h>
usingnamespacestd;
classRectangle
public:
Rectangle(inttop,intleft,intbottom,intright);
~Rectangle(){}
intGetTop()const{returnitsTop;
intGetLeft()const{returnitsLeft;
intGetBottom()const{returnitsBottom;
intGetRight()const{returnitsRight;
voidSetTop(inttop){itsTop=top;
voidSetLeft(intleft){itsLeft=left;
voidSetBottom(intbottom){itsBottom=bottom;
voidSetRight(intright){itsRight=right;
intGetArea()const;
private:
intitsTop;
intitsLeft;
intitsBottom;
intitsRight;
};
Rectangle:
:
Rectangle(inttop,intleft,intbottom,intright)
itsTop=top;
itsLeft=left;
itsBottom=bottom;
itsRight=right;
intRectangle:
GetArea()const
intWidth=itsRight-itsLeft;
intHeight=itsTop-itsBottom;
return(Width*Height);
intmain()
RectangleMyRectangle(100,20,50,80);
intArea=MyRectangle.GetArea();
cout<
Area:
Area<
\n"
(2)#include"
intmax(inta,intb)
return(a>
b?
a:
b);
intmax(inta,intb,intc)
returnmax(a,max(b,c));
doublemax(doublea,doubleb)
doublemax(doublea,doubleb,doublec)
inta,b,c;
floatd,e,f;
请输入三个整数"
c;
请输入三个双精度数"
d;
e;
f;
a,b中较大的是:
max(a,b)<
d,e中较大的是:
max(d,e)<
最大的整数是:
max(a,b,c)<
最大的双精度数是:
max(d,e,f)<
六、实验结果与分析
(1)对于构造函数、析构函数的次序问题,先构造的后析构。
(2)通过调用重载函数输出所需结果。
通过本次实验,我明确了构造函数和析构函数的应用,也对函数重载有了更深刻的理解,掌握了类的私有成员、公有成员和保护成员的区别,对编写程序的整体思维方法是也有了更清晰的理解。
实验三继承与派生
(1)掌握类的继承和派生过程;
(2)掌握派生类的定义与使用;
(3)掌握派生类的构造函数与析构函数的应用及调用顺序;
(4)学习使用VISUALC++调试类的继承关系的应用。
(1)声明一个基类BaseClass,有整数类型成员变量Number,构造基派生类DerivedClass,实现其构造函数和析构函数,完善类的功能与结构。
(2)声明一个基类SHAPE,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象的面积。
使用Rectangle类创建一个派生类Square;
完善类的功能与结构。
#include"
classBaseClass
private:
intNumber;
public:
BaseClass()
BaseClassConstruction!
~BaseClass()
BaseClassDeconstruction!
};
classDerivedClass:
publicBaseClass
DerivedClass()
DerivedlassConstruction!
~DerivedClass()
DerivedClassDeconstruction!
DerivedClassd;
constdoublePI=3.14;
classShape
Shape(doublex0=0.0,doubley0=0.0);
voidset(doublex0,doubley0);
doublegetX();
doublegetY();
virtualdoublegetArea()=0;
~Shape();
doublex;
doubley;
Shape:
Shape(doublex0,doubley0)
x=x0;
y=y0;
voidShape:
set(doublex0,doubley0)
doubleShape:
getX()
returnx;
getY()
returny;
~Shape(){}
classRectangle:
publicShape
Rectangle(doublex0=0.0,doubley0=0.0,doublew=0.0,doubleh=0.0);
voidset(doublex0,doubley0,doublew,doubleh);
doublegetWidth();
doublegetHeight();
doublegetArea();
~Rectangle();
doublewidth;
doubleheight;
Rectangle:
Rectangle(doublex0,doubley0,doublew,doubleh):
Shape(x0,y0)
width=w;
height=h;
voidRectangle:
set(doublex0,doubley0,doublew,doubleh)
Shape:
set(x0,y0);
doubleRectangle:
getWidth()
returnwidth;
getHeight()
returnheight;
getArea()
returnwidth*height;
~Rectangle(){}
classCircle:
Circle(doublex0=0.0,doubley0=0.0,doubler=0.0);
voidset(doublex0,doubley0,doubler);
doublegetRadius();
~Circle();
doubleradius;
Circle:
Circle(doublex0,doubley0,doubler):
radius=r;
voidCircle:
set(doublex0,doubley0,doubler)
doubleCircle:
getRadius()
returnradius;
returnPI*radius*radius;
~Circle(){}
classSquare:
publicRectangle
Square(doublex0=0.0,doubley0=0.0,doublelen=0.0);
voidset(doublex0,doubley0,doublelen);
doublegetLen();
Square:
Square(doublex0,doubley0,doublelen):
Rectangle(x0,y0,len,len)
{}
voidSquare:
set(doublex0,doubley0,doublelen)
set(x0,y0,len,len);
doubleSquare:
getLen()
returnRectangle:
getHeight();
Rectanglerectl(1,2,4,5);
矩形面积为:
rectl.getArea()<
Squaresqua(1,1,4);
正方形面积为:
squa.getArea()<
Circlecir(5,6,2);
圆形的面积为:
cir.getArea()<
(1)构造派生类,实现类的构造函数和析构函数。
(2)创建派生类,并对其功能、结构予以完善。
通过本次实验,我了解了类的继承和派生过程,明确了类的构造函数和析构函数的应用,以及调用顺序,现已基本可以编写正确的程序了。
实验四多态性
(1)掌握抽象类的定义与使用;
(2)掌握虚函数的定义与使用;
(3)掌握虚函数实现动态多态性;
(4)学习使用VISUALC++调试虚函数。
(1)编写一个抽象类SHAPE,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象的面积。
计算周长的函数GetPerim();
(2)声明一个车(Vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(Bicycle)类、汽车(Motorcar)类,从(Bicycle)和(Motorcar)派生出摩托车(Motorcycle)类,它们都有Run、Stop等成员函数。
利用虚函数解决问题。
(1)#include<
#definePI3.1415926;
classShape
virtualdoubleGetArea()=0;
virtualdoubleGetPerim()=0;
classRectangle:
publicShape
Rectangle(doubleaa,doublebb)
a=aa;
b=bb;
长"
a<
宽"
b<
virtualdoubleGetArea()
{
returna*b;
}
virtualdoubleGetPerim()
return2*(a+b);
doubleb;
classCircle:
Circle(doublerr)
r=rr;
半径"
r<
returnr*r*PI;
virtualdoubleGetPerim()
return2*r*PI;
voidmain()
doublelength,width;
输入长和宽:
cin>
length>
width;
Rectanglerect(length,width);
面积是:
rect.GetArea()<
endl<
周长是:
rect.GetPerim()<
doublerr;
输入半径:
rr;
Circlecir(rr);
cir.GetArea()<
cir.GetPerim()<
#include<
classVehicle{
virtualvoidRun(){cout<
Vehicle:
Runcalled\n"
virtualvoidStop(){cout<
Stopcalled\n"
classmotorcar:
publicVehicle{
voidRun(){cout<
motorcar:
classbicycle:
bicycle:
voidStop(){cout<
classmotorcycle:
publicbicycle,publicmotorcar{
motorcycle:
mototrcycle:
voidmain(){
Vehicleve;
bicyclebi;
motorcarmo;
motorcyclemocy;
Vehicle*pclass=&
ve;
pclass->
Run();
Stop();
pclass=&
bi;
mo;
(1)通过抽象类派生出的矩形、圆形,计算周长和面积。
(2)利用虚函数调用派生类的成员。
通过本次实验,我对抽象类有了基本了解,也掌握了虚函数的定义、应用、以及多态性,对VISUALC++的使用更加熟练了。