C++面向对象程序设计实验报告(7)

2025-11-16

void visitboygirl(Boy &b,Girl &g) {

cout<<\<

int _tmain(int argc, _TCHAR* argv[]) {

Boy b; Girl n;

cout <<\ visitboygirl(b,n); return 0; }

(4)运行结果(截图)

错误显示:

①友元的不可逆性:

②Boy与Girl互为友元错误显示:

③顶层函数visitboygirl(boy &,girl &),作为两个类的友元显示:

(5)心得体会

①编写姓名时用char或者string,要在最上边声明#include;②在定义顶层函数时,遇到引用处于下边的女孩类,故应在男孩类前声明class Girl;

实验5 数组指针与字符串

1.1 实验目的和要求

1.学习使用数组。

2.掌握指针的使用方法,体会运算符&、*的不同作用。 3. 学习字符串数据的组织和处理。

4. 练习通过动态分配内存实现动态数组,并体会指针在其中的作用。

5.分别使用字符数组和标准C++库练习处理字符串的方法。

1.2 所占学时数

本实验安排4个实验课时。

1.3 实验任务

1.3.1 任务 (1)题目名称

编写C++程序完成以下功能:

用类来实现矩阵,定义一个矩阵的类,属性包括:矩阵大小,用lines, rows(行、列来表示);存贮矩阵的数组指针,根据矩阵大小动态申请(new)。 矩阵类的方法包括:

构造函数:参数是矩阵大小,需要动态申请存贮矩阵的数组; 析构函数:需要释放矩阵的数组指针;

拷贝构造函数:需要申请和复制数组(深复制); 输入函数:可以从cin中输入矩阵元素; 输出函数:将矩阵格式化输出到cout;

矩阵相加函数:实现两个矩阵相加的功能,结果保存在另一个矩

阵里,但必须矩阵大小相同;

矩阵相减的函数:实现两个矩阵相减的功能,结果保存在另一个矩阵里,但必须矩阵大小相同。 主函数功能:

定义三个矩阵:A1、A2、A3;初始化A1、A2;计算并输出A3 = A1+A2,A3=A1+A2;

用new动态创建三个矩阵类的对象:pA1、pA1、pA3;初始化pA1、pA2;计算并输出pA3=pA1+pA2,pA3=pA1+pA2; 释放pA1、pA1、pA3。

(2)构思过程(可用文字、流程图、UML图等方式表达) 首先,由题目中得到矩阵程序中要求方法,为保证调理清晰,在类中先声明,在类外具体写内容,动态构建矩阵要用到指针和关键字new,明确每个方法的要求,按要求编写程序,主函数实现为初始化以及动态构建矩阵两个内容实现程序功能。 (3)程序源码

#include using namespace std;

#include using namespace std; class Marix {

int lines;int rows;int size; public: int*p; public :

Marix();

Marix(int ,int ); ~Marix();

Marix(Marix&r); public:

void in (); void out ();

Marix add(Marix r); Marix sub( Marix r); };

Marix::Marix(){lines=rows=3;size=9;p=p=new int [9];}; Marix::Marix(int a,int b) {

lines=a;rows=b; size=lines*rows; p=new int [size]; }

Marix::~Marix() {

delete []p; }

Marix::Marix(Marix&r) {

this->lines=r.lines; this->rows=r.rows; this->size=r.size;

this->p=new int [this->size]; for (int i=0;i

void Marix::in () {

for (int i=0;i

for (int j=i*rows;j


C++面向对象程序设计实验报告(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工程经济学--课后习题

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219