(9) 计算并输出A3 = A1加A2,A3 = A1减A2; (10) 释放矩阵空间。
3、 矩阵(三)
编写C++程序完成以下功能:
(1) 用类来实现矩阵,定义一个矩阵的类,属性包括:
? 矩阵大小,用 lines, rows(行、列来表示);
? 存贮矩阵的数组指针,根据矩阵大小动态申请(new)。
(2) 矩阵类的方法包括:
? 构造函数,参数是矩阵大小,需要动态申请存贮矩阵的数组; ? 析构函数,需要释放矩阵的数组指针; ? 拷贝构造函数,需要申请和复制数组; ? 输入,可以从cin中输入矩阵元素; ? 输出,将矩阵格式化输出到cout;
? 矩阵相加的函数,实现两个矩阵相加的功能,结果保存在另一个矩阵
类,但必须矩阵大小相同;
? 矩阵相减的函数,实现两个矩阵相减的功能,结果保存在另一个矩阵
类,但必须矩阵大小相同。
(3) 定义三个矩阵:A1、A2、A3; (4) 初始化A1、A2;
(5) 计算并输出A3 = A1加A2,A3=A1减A2;
(6) 用new动态创建三个矩阵类的对象:pA1、pA1、pA3; (7) 初始化pA1、pA2;
(8) 计算并输出pA3=pA1加pA2,pA3=pA1减pA2; (9) 释放pA1、pA1、pA3。
4、 字符串翻转
编写C++程序完成以下功能: (1) 输入一段字符串;
(2) 将字符串翻转以后输出(不要利用库函数)。
5、 函数指针
实现二分法求解方程。编写以下函数求方程 f(x)=0的解:
double RolveRoot(double (*pf)(double x), double a, double b, int n); 其中pf是一个函数指针(指向f(x)),RolveRoot(),用来获得f(x)=0在区间[a,b]内的解,f(x)的形式如 f(x)=x*x-3x+6等。a,b指定了方程 f(x)=0解存在的区间。n是迭代次数,次数越多,精度越高。
二分法的步骤:
(1) 计算 f(a) 、f(b)、f((a+b)/2);
(2) 若f(a)与f((a+b)/2)异号,则在[a,(a+b)/2]区间内有解,令b = (a+b)/2, 回到
第一步继续迭代,直到到达足够精度;
(3) 否则,令a = (a+b)/2, 回到第一步继续迭代,直到到达足够精度。 实现RolveRoot(),并采用不同 f(x) 验证。
9
实验四 继承与派生
一、实验类别:设计性 + 操作性
二、实验目的:
1、 理解面向对象程序设计中继承与派生的概念。
2、 掌握C++中采用类的继承与派生解决问题的方法。
三、实验学时:2
四、实验组人数:1
五、实验设备环境:
1、 PC计算机一台;
2、 Dev-C++开发环境。
六、实验内容和要求:
1、 形状(一)
编写C++程序完成以下功能:
(1) 声明一个基类Shape(形状),其中包含一个方法来计算面积; (2) 从Shape派生两个类矩形和圆形; (3) 从矩形派生正方形;
(4) 分别实现派生类构造函数、析构函数和其他方法;
(5) 创建派生类的对象,观察构造函数、析构函数调用次序; (6) 不同对象计算面积。
2、 形状(二)——虚函数
(1) 将【形状(一)】 中的基类计算面积的方法定义为虚函数,比较与【形状
(一)】程序的差异;
(2) 将【形状(一)】中的基类定义抽象类,比较与【形状(一)】程序的差异。
3、 高斯消去法解线性方程组(选做)
阅读理解和掌握教材第7.6节实例,编程实现用高斯消去法解线性方程的程序,并且上机调试通过。
10
实验五 多态性
一、实验类别:设计性 + 操作性
二、实验目的:
1、 理解面向对象程序设计中多态性的概念。 2、 理解C++中同名函数之间的管理方法。 3、 掌握C++中多态性的应用。
三、实验学时:2
四、实验组人数:1
五、实验设备环境:
1、 PC计算机一台;
2、 Dev-C++开发环境。
六、实验内容和要求:
1、 对Point类重载++和――运算符
编写C++程序完成以下功能:
(1) Point类的属性包括点的坐标(x,y); (2) 实现 Point类重载++和――运算符:
? ++p,--p,p++,p--。
? ++和――分别表示x,y增加或减少1。
2、 实现复数类的运算重载
编写C++程序完成以下功能:
(1) 实现复数类的运算重载:+,-,*,/,^(乘方)。
3、 参考【实验二】中分数类,为分数类重载运算符,使之能够进行+,-,*,/,^(乘方)的运算。
4、 参考【实验三】中矩阵(三),重载运算符+和-,实现矩阵的加减。
5、 求积分(选做)
阅读理解和掌握教材第8.5节实例,编程实现求函数定积分的程序,并且上机调试通过。
实验六 流式IO
一、实验类别:设计性 + 操作性
二、实验目的:
1、 理解C++的IO流类库的概念和结构。 2、 掌握C++流类库的简单应用。
三、实验学时:2
四、实验组人数:1
五、实验设备环境:
1、 PC计算机一台;
2、 Dev-C++开发环境。
六、实验内容和要求:
1、 流式IO(一)
编写C++程序完成以下功能:
(1) 使用ofstream 向一个文本文件中输出各种类型的数据,并打开文件观察结
果:
?
整数、无符号整型、长整型、浮点型、字符串、……
(2) 用十进制、八进制、十六进制方式向文本文件中输出整数; (3) 使用控制符和成员函数来控制输出的格式:
?
set() precision() ...
2、 流式IO(二)
编写C++程序完成以下功能: (1) 输入一个文本文件名
(2) 使用ofstream 向一个二进制文件中输出各种类型的数据,并打开文件观察
结果:
?
整数、无符号整型、长整型、浮点型、字符串、……
3、 流式IO(三)
编写C++程序完成以下功能: (1) 输入一个文本文件名;
(2) 打开文件名,在该文件的每一行前面加上一个行号,保存在另外一个文本
文件中。
实验七 C++程序设计应用
一、实验类别:设计性 + 操作性 + 综合性
二、实验目的:
3、 掌握应用面向对象程序设计方法解决实际问题的能力。 4、 综合运用C++编程的能力。
三、实验学时:4
四、实验组人数:1
五、实验设备环境:
1、 PC计算机一台;
2、 Dev-C++开发环境。
六、实验内容和要求:
1、 电话本
编写C++程序完成以下功能:
(1) 实现简单电话本功能,用姓名来搜索电话号码; (2) 用户输入姓名,程序查找并输出结果; (3) 用户可以通过输入,添加姓名和电话号码; (4) 用户可以删除姓名和电话号码; (5) 电话本可以保存在指定文件中; (6) 电话可被从指定文件中读入到内存。

