面向对象实验

更新时间:2023-09-26 15:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验1 环境熟悉和类与对象

1. 实验目的

(1)熟悉上机环境,了解编译过程中常见的错误与解决办法。 (2)学会编写简单的C++程序并会用debug调试程序。 (3)观察构造函数和析构函数的执行过程。 (4)掌握动态内存分配的两个运算符的使用 (5)掌握函数参数的三种传递方式。 (6)学习利用友元求解问题。

2. 实验内容

(1) 定义一个学生类,学生信息有学号、姓名和成绩。成绩包括计算机、英语、 数学成绩和平均分。要求利用队列实现学生的入队、出队和显示等功能。

算法思路:定义一个类Student,数据成员有:学生信息,进行入队、出队和显示操作的front(队头)、rear(队尾)和num(统计队列中元素的个数),其中学生信息定义成结构体类型的数组;成员函数有学生的入队操作、出队操作和显示操作,通过构造函数对学生信息进行初始化。

(2) 定义一个图书类,图书信息有图书名称、作者、出版社、价格。要求利用 栈实现图书的入库、出库和显示等功能。

算法思路:定义一个类Stack,数据成员有:图书信息,进行入库、出库和显示操作的top(栈顶指针),其中图书信息定义成结构体类型的数组;成员函数有图书的入库、出库和显示操作,通过构造函数对图书信息进行初始化。 (3) 有Distance类和Point类,将Distance类定义为Point类的友元类来实现 计算两点之间距离。

(4)定义一个矩形类,用成员函数其周长、面积。

实验2 运算符重载

1. 实验目的

(1)掌握成员函数重载运算符。 (2)掌握友元函数重载运算符。

(3)理解类型转换的必要性,掌握类型转换的使用方法。

2. 实验内容

(1)定义空间中的点类(有x,y,z坐标),并重载其++和—运算符。编写主函数对该类进行应用。

(2)定义一个复数类,并通过定义运算符重载实现两个复数可以判别是否相等(==),并给出主函数应用该类。

(3)重载减法运算符,实现两个字符串相减。

例如:”how are you”-“are”=”how you”

(4)设计人民币类,其数据成员为fen(分)、jiao(角)、yuan(元)。重载这个类的加法、减法运算符。

(5)编写一个程序,用成员函数重载运算符“+”和“?”,实现两个二维数组相加和相减,要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。

(6)定义一个计数器类,重载其++和—运算符,并给出main()对该类进行应用。

实验3 组合、继承与多态性

一、实验目的

(1)掌握继承机制。 (2)掌握虚函数。 (3)理解并掌握虚基类。

二、实验内容

(1)编写一个程序:设计一个汽车类,数据成员有轮子个数、车重。小车类是汽车类的私有派生类,包含载客量。卡车类是汽车类的私有派生类,包含载客数和载重量。每个类都有数据的输出方法。

(2)虚基类为Shape,从Shape派生出矩形类(左上角点、宽、高)、椭圆类(横轴、纵轴)。给出各个类的构造函数,成员初始化,在基类中定义虚函数GetArea()(计算面积),在派生类中改写。写出该程序的实现。

(3)定义一个基类BaseClass,从它派生出类DerivedClass,BaseClass有成员函数fn1()、fn2(),fn1()是虚函数,DerivedClass也有成员函数fn1()、fn2(),在主程序中定义一个DerivedClass的对象,分别用BaseClass和DerivedClass的指针来调用fn1()、fn2()。

(4)使用private和protected继承从基类创建两个新类。然后通过派生类的对象访问基类的私有数据成员(通过函数)。

(5)定义一个哺乳动物Mammal类,再由此派生出狗Dog类和Cat类,各定义一个Dog类和Cat类的对象,观察基类与派生类的构造函数与析构函数的调用顺序。

(6)定义object类,有weight属性及相应的操作函数,由此派生出box类,增加Height和width属性及相应的操作函数,声明一个box对象,在构造函数与析构函数中输出信息,在主函数中进行测试输出。

实验4 模 板

1. 实验目的

(1)掌握函数模板与模板函数的使用。 (2)掌握类模板与模板类的使用。

2. 实验内容

(1)编写一个使用类模板对数组进行排序、查找和求元素和的程序。

(2)编写一个一维数组,无论整型还是其他类型,可以进行相同的操作:插入、

删除、查找某一元素、排序等功能。

(3)用类模板实现将两个升序链表组成一个降序链表。数据元素可以是整型、实型。

(4)用类模板实现栈,功能有:判断栈是否为空、入栈、出栈、读栈顶元素。

本文来源:https://www.bwwdw.com/article/4aqd.html

Top