C++实验Word格式.docx
《C++实验Word格式.docx》由会员分享,可在线阅读,更多相关《C++实验Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
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"
;
return0;
程序运行输出:
3000
实验二
4-20定义一个复数类Complex,使得下面的代码能够工作。
Complexc1(3,5);
//用复数3+5i初始化c1
Complexc2=4.5;
//用实数4.5初始化c2
C1.add(c2);
//将c1与c2相加,结果保存在c1中
C1.show();
//将c1输出(这时的结果应该是7.5+5i)
#include<
iostream>
usingnamespacestd;
classComplex//声明定义类Complex及其数据和方法
public:
//外部接口
Complex(floatr1,floati1);
//构造函数
Complex(floatr1);
voidadd(Complex&
c);
//相加
voidshow();
//输出
private:
//私有数据成员
floatr;
floati;
//类的实现
//构造函数初始化数据成员人r,i
Complex:
Complex(floatr1,floati1)
r=r1;
i=i1;
//实部与虚部分别相加
voidComplex:
add(Complex&
c)
r+=c.r;
i+=c.i;
//输出
show()
cout<
r<
(i>
0?
'
+'
'
-'
)<
i<
i'
endl;
Complex:
Complex(floatr1)
{
i=0;
//主函数实现
Complexc1(3,5);
//将c1赋初值(3,5)
Complexc2=4.5;
//将c2赋初值4.5
c1.add(c2);
c1.show();
return0;
7.5+5i
实验三
5-14定义Boat与Car两个类,二者都有weight属性,定义二者的一个友元函数totalWeight(),计算二者的重量和。
classBoat;
classCar
intweight;
Car(intj){weight=j;
friendinttotalWeight(Car&
aCar,Boat&
aBoat);
classBoat
Boat(intj){weight=j;
inttotalWeight(Car&
aBoat)
returnaCar.weight+aBoat.weight;
voidmain()
Carc1(4);
Boatb1(5);
totalWeight(c1,b1)<
endl;
9
实验四
有一个汽车类vehicle,将它作为基类派生小车类car,卡车类truck和轮胎类boat,定义这些类并定义一个虚函数来显示各类信息(输出相应类的创建信息)
classvehicle//声明定义类vehicle
{public:
virtualvoidoutput()//构造虚函数来显示信息
cout<
"
vehicle"
classcar:
publicvehicle
virtualvoidoutput()
car"
classtruck:
truck"
classboat:
boat"
//主函数的实现
vehiclev;
v.output();
carc;
c.output();
truckt;
t.output();
boatb;
b.output();
vehicle
Car
Truck
Boat
实验五
实现一个名为SimpleCircle的简单圆类,其数据成员int*itsRadius为一个指向其半径值的指针,设计对数据成员的各种操作,给出这个类的完整实现并测试这个类。
classSimpleCircle
SimpleCircle();
SimpleCircle(int);
SimpleCircle(constSimpleCircle&
);
~SimpleCircle(){}
voidSetRadius(int);
intGetRadius()const;
int*itsRadius;
SimpleCircle:
SimpleCircle()
itsRadius=newint(5);
SimpleCircle(intradius)
itsRadius=newint(radius);
rhs)
intval=rhs.GetRadius();
itsRadius=newint(val);
intSimpleCircle:
GetRadius()const
return*itsRadius;
SimpleCircleCircleOne,CircleTwo(9);
CircleOne:
CircleOne.GetRadius()<
CircleTwo:
CircleTwo.GetRadius()<
5
9
实验六
6-27定义一个Employee类,其中包括表示姓名、街道地址、城市和邮编等属性,包括chage_name()和display()等函数;
display()使用cout语句显示姓名、街道地址、城市和邮编等属性,函数change_name()改变对象的姓名属性,实现并测试这个类。
string.h>
classEmployee
charname[30];
charstreet[30];
charcity[18];
charzip[6];
Employee(char*n,char*str,char*ct,char*z);
voidchange_name(char*n);
voiddisplay();
Employee:
Employee(char*n,char*str,char*ct,char*z)
strcpy(name,n);
strcpy(street,str);
strcpy(city,ct);
strcpy(zip,z);
voidEmployee:
change_name(char*n)
display()
name<
street<
city<
zip;
voidmain(void)
Employeee1("
张三"
"
平安大街3号"
"
北京"
100000"
e1.display();
e1.change_name("
李四"
张三平安大街3号北京100000
李四平安大街3号北京100000
实验七:
9-6通过对从本章的链表类模板linkedlist进行组合,编写有序链表类模板orderlist,添加成员函数insert实现链表元素的有序插入。
声明两个int类型有序链表a和b,分别插入5个元素,然后把b重的元素插入a中。
#include"
link.h"
template<
classT>
classLink:
publicLinkedList<
T>
{
voidInsertOrder(constT&
item);
voidLink<
InsertOrder(constT&
item)
Reset();
while(!
EndOfList())
if(item<
Data())
break;
Next();
}
InsertAt(item);
voidmain(void)
inti,item;
请输入加入链表
A的五个整数:
for(i=0;
i<
5;
i++)
cin>
>
item;
A.InsertOrder(item);
B的五个整数:
B.InsertOrder(item);
endl<
有序链表
A中的元素为:
A.Reset();
while(!
A.EndOfList())
A.Data()<
A.Next();
B中的元素为:
B.Reset();
B.EndOfList())
A.InsertOrder(B.Data());
B.Data()<
B.Next();
加入链表
B中元素后,链表
实验八