资源描述:
《数据结构上机指导书-第1次上机实验指导书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第1章C++面向对象程序设计基础本章实验目的:学会用算法语言C++描述抽象数据类型,使用模板建立数据结构。熟练掌握C++程序的编制、调试和运行方法,为本课程的实验做好准备。学习重点:理解数据结构的纟R成分为两部分,第一部分是数据集(数据元素),第二部分是在此数据集上的操作。从面向对象的观点看,这两部分代表了对象的属性和方法。掌握用C++描述数据结构的菇本方法,即通过建立类来描述抽彖数据类型。类的数扌居成员提供对象属性,成员函数提供操作方法,方法是公共接口,用八通过调用方法实现対属性的访问。一、C++面向对象程序
2、设计范例1.二维坐标点point的C++描述【实验目的】用面向対象的方法定义一个简单的抽象数据结构,本例实验内容为坐标点的数据结构。学会如何川C++语言描述数据结构和算法,理解将数据集和在此数据集上的操作分开描述的方法。【数据结构】将坐标点数据结构定义为一个C++类Point,在其内部分别定义数据成员和成员函数。(1)数据成员:一个平面直角处标系中的点有两个属性,它们是x轴上的水平处标值和y轴上的垂直坐标值。在Point类屮,这两个属性分别由数据成员x和y來表示,定义为double类型的私有数据成员。(2)操作
3、方法:定义成员函数,为类的使用者提供服务接口。先设计允许对点对象进行的操作,再用C++描述实现操作的算法,并定义为类Point的成员函数。在本例屮提供了两个操作:move()函数将一个Point对象移至另一位置,Show()函数输出Point对象的数据成员值。两个构造函数,分别用于建立缺省参数的对象和带参数的对象。【算法提示】缺省构造函数Point()将新建立的坐标点对象初始化为原点位置(0,0)o带参数的构造函数Point(doublcpx,doublepy)允许用户建立对象时指定初始坐标位置。点对象的移动操
4、作move()函数需耍在调用时给出新位置参数。输出坐标值为无参函数。以下是平面直角坐标系中的点的类定义,main()
5、^
6、数对类Point的属性和操作进行测试。【程序1.1]#includeclassPoint)〃平面直角坐标系中的点private:doublex;〃水平处标值doubley;〃垂直坐标值public:Point(){x=0;y=0;}〃缺省构造函数Point(doublepx,doublepy){x=px;y=py;}〃带参数的构造函数voidmove(doublemx
7、,doublemy){x=mx;y=my;}//移动位置(修改处标值)voidShow(){cout«,,x="«x<<',<<"y=,,«y«endl;}//输出坐标值};voidmain(){Pointa,b(12.5,34.8);〃建立两个Point对彖comvv"点a的位置:”;a.Show();//输出点a的处标值coutvv”点b的位置:”;b.Show();//输岀点b的处标值a.move(45.6,57.8);comvv"点a移动后的位置:”;a.Show();//输出点a的处标值)1.使用模板
8、建立坐标点point的数据结构,直接表示抽象数据类型【实验目的】将程序1.1数据结构的类型参数化(模板),实现更高层次的数据抽象。【算法提示】Point的数据成员不使用固定的类型定义,而是用typename说明的虚拟类型名ptType作为变最的类型,在定义Point类的对象时,再用C++的基本类型将对象的数据成员的类型实例化。这样做的好处是可以使用同一个类來定义不同数据类型的对象,提高代码的利用率。【程序1.2】templateclassPoint{〃平面直角坐标系中的点priv
9、ate:ptTypex;〃虚拟类型的水平坐标值ptTypey;〃虚拟类烈的垂直坐标值public:Point(){x=0;y=0;}〃缺省构造函数Point(ptTypepx,ptTypepy){x=px;y=py;}〃带参数的构造函数voidmove(ptTypemx,ptTypemy){x=mx;y=my;}//移动位置(修改坐标值)voidShow(){cout«"x="«x<<''<<"y="«y«endl;}//输出坐标值};voidmain(){Pointa(24,36);〃建立整型的Po
10、int对象Pointb(12・5,34.8);//建立浮点型的Point对彖coutvv”点a的位置:”;a.Show();〃输出点a的处标值cout«"点b的位置:”;b.Show();〃输出点b的坐标值a.move(25,18);coutvv"点a移动后的位置:”;a.Show();〃输出点a的处标值b.move(45.6,57.8);cout«"点b移动后的位置:”