C++程序设计实验指导书
实验一  C++程序的运行环境和运行(2学时)
实验名称:C++程序的运行环境和运行
实验目的:
1、熟悉CC++的编程区别;
2、熟悉C++的函数重载。
实验要求:
求两个数的平方和。要求如下:
1、有intfloatlong型的数据各3个;
2、重载SumSqure函数求两个相同类型变量的平方和。
实验步骤:
1、 添加头文件#include <iostream>和名字空间using namespace std
若要使用cincout标准输入输出流,则必须添加上述两个内容。
2、 构建重载SumSqure函数。
SumSqure函数的功能是对输入的两个同类型形参ab求其平方和,并将结果返回。对于输入和返回的不同类型intfloatlong,其函数内部实现代码是一样的,所以可利用函数的重载写出三个SumSqure函数。
3、 main函数中的赋值。
定义intfloatlong三种类型的数据,分别调用SumSqure函数,测试其结果。
4、 调用SumSqure函数。
注意SumSqure函数重载的调用,根据SumSqure函数的定义可知:实参必须是同一种类型的变量才能调用不同的SumSqure,针对不同类型求平方和。
实验二  类与对象(一)(4学时)
实验名称:类与对象(一)
实验目的:
1、掌握类的设计;
2、掌握对象的创建;
3、实现一个简单的成员函数设计。
实验要求:
3个长方体的体积,编写一个基于对象的程序,数据成员包括lenthwidthheight。要求用成员函数实现以下功能:
1、由键盘分别输入3个长方体的长、宽、高;
2、计算长方体的体积;
3、输出3个长方体的体积。
实验步骤:
1、 建立三个文件,分别存储长方体类的声明头文件,长方体类的定义文件和main函数测试文件。
注意:类的头文件和类的定义实现文件的命名要一致!
2、 头文件信息:
头文件长方体类的声明中,类成员变量有:lenth,width,height;类成员函数有:VolumeCalculation(), InputData()。注意:不用声明构造函数与析构函数。
3、 长方体类定义文件:
在定义文件中,需编写上面两个函数——VolumeCalculationInputData的实现主体。InputData的作用是对某个对象的lenth,width,height 三个类成员变量赋值,VolumeCalculation作用是用来返回lenth*width*height的值,求出长方体的体积。
注意:不用在定义里写构造函数和析构函数。
4、 main函数中的成员函数的调用:
在main函数中用长方体类定义三个对象,分别对三个对象调用InputData和VolumeCalculation输入原始数据——长,宽,高,然后再输出体积。
实验三  类和对象(二)(6学时)
实验名称:类和对象(二)
实验目的:
1、掌握类的封装技术;
2、掌握累的声明与类的实现分离技术;
3、掌握对象的动态建立和释放;
4、掌握静态成员变量和成员函数的应用。
实验要求:
1、构造一个类CalculateFun,公有部分包含构造、析构函数、外部接口函数void AllByOne()、和静态成员函数static void ShowSequence()。私有部分包含:void InsideCalculation()void SetData()int xint y和静态成员变量static int snCount
2、构造函数CalculateFun()初始化xy的值,InsideCalculationSetData函数仅供AllByOne函数调用,而外部main函数中对于Calculation的任意对象仅仅调用AllByOne就可以实现从键盘上输入xy的值,求出(x+2)*(y+3)的结果并显示出来。其中SetData用于键盘输入xy的值,InsideCalculation用于计算(x+2)*(y+3)并显示结果。
3、建立void ObjectOperating(CalculateFun *pObject)普通函数,功能是对形参中的对象指针调用其接口函数AllByOne(),并且调用静态成员函数ShowSequence来显示是第几次调用对象。
4main函数中建立一个含三个元素的对象指针数组pArr,分别对其三个元素new出三个对象,并调用ObjectOperating多态性与虚函数函数。完了后用delete释放new出的内存。
实验步骤:
1、 建立三个文件,分别存储CalculateFun类的的声明头文件、其定义实现文件和main函数测试文件。
2、 头文件信息:头文件类的声明中,按照实验要求1来添加各成员变量和成员函数。
3、 类定义实现文件:通过对成员函数等编写具体实现内容,完成类的构造。
4、 main函数文件:参照实验说明4。
实验四  运算符重载(4学时)
实验名称:运算符重载
实验目的:
1、 掌握普通运算符重载常用方法及应用;
2、 掌握输入输出流运算符重载的方法。
实验要求:
1、 编写矩阵类,定义矩阵类Matrix中的private类型的int型成员变量matrixArray[2][3]
2、 定义类成员函数InputData,对变量matrixArray进行以此赋值;
3、 利用operator + 实现两个矩阵类对象的加法。
4、 重载流插入运算符“<<”和流提取运算符“>>”,使之能用于该矩阵的输入和输出。
实验步骤:
1、 建立三个文件:
三个文件分别存储Matrix类的声明头文件、Matrix类的定义实现文件和main函数测试文件。注意:类的头文件和类的定义实现文件的命名要一致!
2、 头文件信息:
Matrix类头文件中需要定义private型的int型成员变量matrixArray
声明public类型的一个默认构造,一个Display成员函数,显示矩阵的各个元素,和InputData
matrixArray进行数据的输入。
声明成员函数运算符操作Matrix operator + Matrix &mat)或友元函数Matrix operator + (Matrix &mat1, Matrix &mat2)
将流重载符都声明为用友元函数,friend istream& operator>>(istream &in,Matrix &m)friend ostream& operator<<(ostream&,Matrix&);
3、 类定义文件:
构造函数可在函数体内部将matrixArray进行初始化为0(用两个for循环依次对每个元素赋值为0
InputData函数依次输入每个元素的值。
Display函数显示矩阵的每个元素,在屏幕上的打印效果为23列。
operator +函数实现两个矩阵的每个元素值的相加。
两个流重载运算符分别实现矩阵的输入和输出。
4、 main函数:
定义两个Matrix类的对象,并依次调用InputData进行赋值,然后再调用operator+函数,对两个对象进行相加,再将相加后的结果用Display函数显示出来,数据的输入和输出要调用流重载运算符所在的友元函数。
实验五  继承与派生(6学时)
实验名称:派生与继承
实验目的:
1、 掌握类的继承、派生构造函数设计;
2、 掌握protected类型的用法。
实验要求:
先定义一个基类PersonPerson里有5protected类型的成员,分别是:string name(姓名)int age(年龄)、char sex(性别)、string address(地址)、telephone(电话)。
然后分别定义Teacher(教师)类和Cadre(干部)类,分别用这两个类虚继承Person类,把其作为虚基类。再采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)类,注意Teacher_Cadre构造函数初始化的问题。要求:
(1)Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务)。在Teacher_Cadre类中还包含数据成员wages(工资)。
(2)TeacherCadre类的声明中都添加display函数,其函数定义里要输出各自类里所有成员数据(包括继承的Person里的数据)。
(3)在类体中声明成员函数,在类外定义成员函数。
(4)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,并用cout语句输出该类自己定义的变量wage
实验步骤:
1、 建立三个文件:
三个文件分别存储PersonTeacherCadreTeacher_Cadre类的声明头文件、其定义文件和main函数测试文件。注意:类的头文件和类的定义实现文件的命名要一致!
2、 头文件信息:
头文件声明中要把TeacherCadreTeacher_Cadre三个类的声明全写上。TeacherCadre类声明中要含有void display()函数用以显示TeacherCadre类里的所有成员变量,Teacher_Cadre中也声明一个void show()函数,功能见下一步。
3、 类定义文件:
    Teacher类中display函数中将其类的所有成员变量都输出。在Teacher_Cadre中成员函数首先利用Teacher类中的show函数首先调用Teacher类中的display函数输出所有Teacher类中的成员变量,然后再输出Teacher_Cadre类中的wages变量。
4、 main函数:
main函数里只需定义一个Teacher_Cadre类的对象,并对其初始化,然后调用show函数,看看显示的是什么情况。想想其调用原理。
实验六  多态性与虚函数6学时)
实验名称:多态性与虚函数
实验目的:
掌握类的多重继承方法。
实验要求:
写一个程序,定义抽象基类Shape,由它派生出5个派生类:Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(梯形)、Triangle(三角形)。用虚函数分别计算几种图形面积,并求他们的和。要求用基类指针数组,使它的每一个元素指向一个派生类对象。
实验步骤:
1、建立一个各种累声明的头文件和一个定义实现文件:
ShapeCircleSquareRectangleTrapezoidTriangle类的声明和实现分别写在一个头文件和一个定义文件里。
2、在Shape类中,要含有纯虚函数virtual double Area() const = 0;在其它的类中要公有继承该函数并在定义文件中写出各自的面积公式。定义各个类中求面积所需的成员变量(都是protected类型)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。