




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.计算机高级语言(C+)实习报告题 目学生姓名:班 学 号:指导老师:实验一 矩阵操作一、需求规格说明要求实现:矩阵的创建,输出,复制,转置,加法,减法,乘以一个数,通过行列坐标设置和获取矩阵该位置元素的值。通过该题目,掌握(1)动态数组和指针的使用(2)二维数组和一维数组的关系(3)传引用调用参数(4)函数重载二、算法设计设计思想:1、首先建立矩阵结构体struct Matrixint rows, cols; /矩阵的行数和列数int* data; /指向一个容纳矩阵的动态数组的指针变量,使用上等同于数组名。;2、要求实现以下函数:矩阵的创建,写3个重载的函数CreateMat第1个函数,有
2、2个参数,分别是矩阵的行数和列数,初始化矩阵,分配内存空间,不赋初值。Matrix CreateMat (int rows, int cols);第2个函数,有3个参数,分别是矩阵的行数,列数,和矩阵各元素的值(是一个定值,也就是用一个值对矩阵初始化)Matrix CreateMat (int rows, int cols, const int scalar); 第3个函数,有3个参数,分别是矩阵的行数,列数,和矩阵各元素的值(用数组对矩阵初始化,采用数组参数)Matrix CreateMat (int rows, int cols, const int data); 矩阵的输出,Output
3、Mat函数,矩阵的引用作为参数。void OutputMat(const Matrix & mat);注意:要求输出为矩阵的形式,例如一个3*3矩阵的输出格式为(前后有中括号,数字对齐):矩阵的复制,CopyMat函数。void CopyMat(const Matrix & source, Matrix & target);/把矩阵source复制到矩阵target矩阵的转置,TransMat函数。Matrix TransMat (const Matrix & mat); 矩阵的加法,AddMat函数。Matrix AddMat (const Matrix &a
4、mp; mat1, const Matrix & mat2); 注意,应该/首先判断mat1和mat2的大小是否一致,如果不一致,报错,终止。报错采用函数exit(1),需要#include <cstdlib>。矩阵的减法,SubMat函数.Matrix SubMat (const Matrix & mat1, const Matrix & mat2); 矩阵的数乘,MulMat函数,矩阵mat乘以一个数scalarMatrix MulMat (const Matrix & mat, int scalar);获取一个位置的矩阵元素的值,GetMatV
5、alue函数int GetMatValue (const Matrix & mat, int row, int col); /获取行列坐标为row和col位置的矩阵元素的值。11.设置一个位置的矩阵元素的值,SetMatValue函数int SetMatValue (const Matrix & mat, int row, int col, int scalar); /将行列坐标为row和col位置的矩阵元素的值设置为scalar。12.释放矩阵元素做占的freestore的空间。void ReleaseMat(Matrix & m);(2)设计表示:int main(
6、)cout<<"Create a 5*5 matrix mat1 without initialization:n" Matrix mat1 = CreateMat(5, 5); /调用两个参数的重载函数 OutputMat(mat1); /调用输出函数 ReleaseMat(mat1);/调用release函数CopyMat(mat3, mat1);/调用矩阵的复制函数OutputMat (mat1); cout<<endl<<"Transpose mat1: n"mat2=TransMat(mat1);/调用矩阵的
7、转置函数OutputMat (mat2); Matrix mat4; cout<<endl<<"Add mat1 and mat3: n"mat4= AddMat(mat1, mat3);/调用矩阵的加法函数OutputMat (mat4);cout<<endl<<"Substract mat1 and mat3: n"mat4=SubMat(mat1, mat3);/调用矩阵的减法函数OutputMat (mat4);cout<<endl<<"mat1 * 2 equal
8、s to: n"mat4=MulMat(mat1, 2);/调用矩阵的乘法函数OutputMat (mat4);/设置和获取1个位置的矩阵元素值int value= GetMatValue(mat1,1,2);。cout<<" nthe value of coordinates (2,3) is: "<<value<<endl;SetMatValue(mat1,1,2,100);value= GetMatValue(mat1,1,2);cout<<" n the value of coordinates (
9、2,3) becomes: "<<value<<endl; ReleaseMat(mat1);/释放mat1所占的freestore空间 ReleaseMat(mat2);/释放mat2所占的freestore空间 ReleaseMat(mat3);/释放mat3所占的freestore空间 ReleaseMat(mat4);/释放mat4所占的freestore空间cout <<endl<< "Hello world!" << endl;return 0; (3)详细设计表示:头文件:#ifndef U
10、SEMATRIX_H#define USEMATRIX_H#include <iostream>#include <cstdlib>using namespace std;struct Matrixint rows, cols; /矩阵的行数和列数int* data; /指向一个容纳矩阵的动态数组的指针变量,使用上等同于数组名。;Matrix CreateMat (int rows, int cols); /矩阵的行数和列数,初始化矩阵,分配内存空间,不赋初值Matrix CreateMat (int rows, int cols, const int scalar);
11、 /矩阵的行数,列数,和矩阵各元素的值,用一个值对矩阵初始化,是一个定值Matrix CreateMat (int rows, int cols, const int data); /矩阵的行数,列数,和矩阵各元素的值,采用数组参数对矩阵初始化void OutputMat(const Matrix & mat); /矩阵的输出函数,矩阵的引用作为参数void CopyMat(const Matrix & source, Matrix & target);/把矩阵source复制到矩阵targetMatrix TransMat (const Matrix & ma
12、t); /矩阵的转置函数Matrix AddMat (const Matrix & mat1, const Matrix & mat2); /矩阵的加法函数Matrix SubMat (const Matrix & mat1, const Matrix & mat2); /矩阵的加法函数Matrix MulMat (const Matrix & mat, int scalar);/矩阵的数乘函数,使矩阵mat乘以一个数scalarint GetMatValue (const Matrix & mat, int row, int col); /获取
13、行列坐标为row和col位置的矩阵元素的值。int SetMatValue (Matrix & mat, int row, int col, int scalar); /设置一个位置的矩阵元素的值,将行列坐标为row和col位置的矩阵元素的值设置为scalarvoid ReleaseMat(Matrix & m);/释放矩阵元素做占的freestore的空间#endif三、调试报告问题1:在矩阵的转置函数定义时,由于行数和列数的固定规律及公式没有及时找出来,使得设计的程序无法正确输出四、用户手册先根据头文件#ifndef USEMATRIX_H#define USEMATRIX
14、_H#include <iostream>#include <cstdlib>using namespace std;struct Matrixint rows, cols; /矩阵的行数和列数int* data; /指向一个容纳矩阵的动态数组的指针变量,使用上等同于数组名。;Matrix CreateMat (int rows, int cols); /矩阵的行数和列数,初始化矩阵,分配内存空间,不赋初值Matrix CreateMat (int rows, int cols, const int scalar); /矩阵的行数,列数,和矩阵各元素的值,用一个值对矩阵
15、初始化,是一个定值Matrix CreateMat (int rows, int cols, const int data); /矩阵的行数,列数,和矩阵各元素的值,采用数组参数对矩阵初始化void OutputMat(const Matrix & mat); /矩阵的输出函数,矩阵的引用作为参数void CopyMat(const Matrix & source, Matrix & target);/把矩阵source复制到矩阵targetMatrix TransMat (const Matrix & mat); /矩阵的转置函数Matrix AddMat (
16、const Matrix & mat1, const Matrix & mat2); /矩阵的加法函数Matrix SubMat (const Matrix & mat1, const Matrix & mat2); /矩阵的加法函数Matrix MulMat (const Matrix & mat, int scalar);/矩阵的数乘函数,使矩阵mat乘以一个数scalarint GetMatValue (const Matrix & mat, int row, int col); /获取行列坐标为row和col位置的矩阵元素的值。int S
17、etMatValue (Matrix & mat, int row, int col, int scalar); /设置一个位置的矩阵元素的值,将行列坐标为row和col位置的矩阵元素的值设置为scalarvoid ReleaseMat(Matrix & m);/释放矩阵元素做占的freestore的空间#endif参考应用文件实现程序功能:#include <iostream>#include "UseMatrix.h"#include<cstdlib>using namespace std;int main()/第一种创建方式co
18、ut<<"Create a 5*5 matrix mat1 without initialization:n" Matrix mat1 = CreateMat(3,3); /创建5*5的矩阵mat1,不设初值。 OutputMat(mat1); /输出该矩阵 /第二种创建方式 cout<<endl; cout<<"Create a 4*4 matrix mat2 with value being 7:n" Matrix mat2 = CreateMat(3, 3, 7); /创建4*4的矩阵mat2,各元素初值为7。
19、OutputMat (mat2); /输出该矩阵 /第三种创建方式 cout<<endl<<"Create a 3*3 matrix mat3 being equal to data:n" int data = 1, 2, 3, 4, 5, 6, 7, 8, 9; Matrix mat3 = CreateMat (3, 3, data); /创建3*3的矩阵mat3,用data赋初值。 OutputMat (mat3);CopyMat(mat3, mat1);OutputMat (mat1); /输出该矩阵mat1,和mat3相同,3*3矩阵。/实现
20、矩阵转置(ok)cout<<endl<<"Transpose mat1: n"mat2=TransMat(mat3);OutputMat (mat2); /使用加法,减法,数乘Matrix mat4; cout<<endl<<"Add mat1 and mat3: n"mat4= AddMat(mat1, mat3);OutputMat (mat4);cout<<endl<<"Substract mat1 and mat3: n"mat4=SubMat(mat1,
21、 mat3);OutputMat (mat4);cout<<endl<<"mat1 * 2 equals to: n"mat4=MulMat(mat1, 2);OutputMat (mat4);/设置和获取1个位置的矩阵元素值int value= GetMatValue(mat1,1,2);/得到mat1第2行第3列的元素值。cout<<" nthe value of coordinates (2,3) is: "<<value<<endl;SetMatValue(mat1,1,2,100);v
22、alue= GetMatValue(mat1,1,2);/得到mat1第2行第3列的新的元素值。cout<<" n the value of coordinates (2,3) becomes: "<<value<<endl; ReleaseMat(mat1);/释放mat1所占的freestore空间 ReleaseMat(mat2);/释放mat2所占的freestore空间 ReleaseMat(mat3);/释放mat3所占的freestore空间 ReleaseMat(mat4);/释放mat4所占的freestore空间cou
23、t <<endl<< "Hello world!" << endl;return 0;五、附录头文件:#ifndef USEMATRIX_H#define USEMATRIX_H#include <iostream>#include <cstdlib>using namespace std;struct Matrixint rows, cols; /矩阵的行数和列数int* data; /指向一个容纳矩阵的动态数组的指针变量,使用上等同于数组名。;Matrix CreateMat (int rows, int co
24、ls); /矩阵的行数和列数,初始化矩阵,分配内存空间,不赋初值Matrix CreateMat (int rows, int cols, const int scalar); /矩阵的行数,列数,和矩阵各元素的值,用一个值对矩阵初始化,是一个定值Matrix CreateMat (int rows, int cols, const int data); /矩阵的行数,列数,和矩阵各元素的值,采用数组参数对矩阵初始化void OutputMat(const Matrix & mat); /矩阵的输出函数,矩阵的引用作为参数void CopyMat(const Matrix &
25、source, Matrix & target);/把矩阵source复制到矩阵targetMatrix TransMat (const Matrix & mat); /矩阵的转置函数Matrix AddMat (const Matrix & mat1, const Matrix & mat2); /矩阵的加法函数Matrix SubMat (const Matrix & mat1, const Matrix & mat2); /矩阵的加法函数Matrix MulMat (const Matrix & mat, int scalar);/
26、矩阵的数乘函数,使矩阵mat乘以一个数scalarint GetMatValue (const Matrix & mat, int row, int col); /获取行列坐标为row和col位置的矩阵元素的值。int SetMatValue (Matrix & mat, int row, int col, int scalar); /设置一个位置的矩阵元素的值,将行列坐标为row和col位置的矩阵元素的值设置为scalarvoid ReleaseMat(Matrix & m);/释放矩阵元素做占的freestore的空间#endif实现文件:#include &quo
27、t;UseMatrix.h"#include <iostream>#include<cstdlib>using namespace std;Matrix CreateMat (int rows, int cols) /矩阵的行数和列数,初始化矩阵,分配内存空间,不赋初值Matrix m;m.rows = rows;m.cols = cols;m.data = new int rows * cols;for(int i = 0; i < rows * cols; i+);return m;Matrix CreateMat (int rows, int co
28、ls, const int scalar)/*矩阵的行数,列数,和矩阵各元素的值 用一个值对矩阵初始化,是一个定值*/Matrix m;m.rows=rows;m.cols=cols;m.data = new int rows * cols;for(int i = 0; i < rows * cols; i+)m.datai =scalar;return m;Matrix CreateMat (int rows, int cols, const int data)/*矩阵的行数,列数,和矩阵各元素的值 采用数组参数对矩阵初始化*/Matrix m;m.rows = rows;m.cols
29、 = cols;m.data = new int rows * cols;for(int i = 0; i < rows * cols; i+)m.datai = datai; return m; void OutputMat (const Matrix&mat) /矩阵的输出函数,矩阵的引用作为参数cout<<""int i;for(i=0;i<mat.rows*mat.cols;i+)cout<<mat.datai;if(i=mat.rows*mat.cols-1)cout<<""<<
30、;endl;elseif(i+1)%mat.rows=0)cout<<endl;elsecout<<" "void CopyMat (const Matrix & source, Matrix & target)/把矩阵source复制到矩阵targetif(!(source.rows=target.rows && source.cols=target.cols)cout<<"error!"<<endl;exit(1);target.rows = source.rows;ta
31、rget.cols = source.cols;for(int i = 0; i < source.rows * source.cols; i+)target.datai = source.datai; Matrix TransMat (const Matrix & mat)/矩阵的转置函数Matrix m; m.rows = mat.rows;m.cols = mat.cols; m.data = new int mat.rows * mat.cols; for (int row=0;row<mat.rows; row+) for(int col=0;col<mat
32、.cols;col+) m.datacol*mat.rows+row = mat.datarow*mat.rows+col; return m; Matrix AddMat (const Matrix & mat1, const Matrix & mat2) /矩阵的加法函数 Matrix m;if(!(mat1.rows=mat2.rows&&mat1.cols=mat2.cols)cout<<"error!"<<endl;exit(1);elsem.rows = mat1.rows;m.cols = mat1.co
33、ls; m.data = new int mat1.rows * mat1.cols;for(int i=0; i<mat1.rows * mat1.cols; i+)m.datai=mat1.datai+mat2.datai;return m;Matrix SubMat (const Matrix & mat1, const Matrix & mat2)/矩阵的减法函数Matrix m;if(!(mat1.rows=mat2.rows&&mat1.cols=mat2.cols)cout<<"error!"<<e
34、ndl;exit(0);elsem.rows = mat1.rows;m.cols = mat1.cols; m.data = new int mat1.rows * mat1.cols;for(int i=0; i<mat1.rows * mat1.cols; i+)m.datai=mat1.datai-mat2.datai; return m;Matrix MulMat (const Matrix & mat, int scalar)/矩阵的数乘函数,使矩阵mat乘以一个数scalar Matrix mat0;mat0.rows = mat.rows;mat0.cols =
35、mat.cols;mat0.data=new intmat.rows * mat.cols;for(int i=0; i<mat.rows*mat.cols; i+)mat0.datai=mat.datai * scalar; return mat0;int GetMatValue (const Matrix & mat, int row, int col)/获取行列坐标为row和col位置的矩阵元素的值。if(row+1)>mat.rows|(col+1)>mat.cols)cout<<"error!"<<endl;exi
36、t(0);elsereturn(mat.datarow*mat.rows+col);int SetMatValue (Matrix & mat, int row, int col, int scalar)/*设置一个位置的矩阵元素的值 将行列坐标为row和col位置的矩阵元素的值设置为scalar*/mat.datarow * mat.rows+col=scalar;return 0;void ReleaseMat(Matrix & m) /释放矩阵元素做占的freestore的空间 delete m.data;m.data=NULL;应用文件:#include <ios
37、tream>#include "UseMatrix.h"#include<cstdlib>using namespace std;int main()/第一种创建方式cout<<"Create a 5*5 matrix mat1 without initialization:n" Matrix mat1 = CreateMat(3,3); /创建5*5的矩阵mat1,不设初值。 OutputMat(mat1); /输出该矩阵/第二种创建方式 cout<<endl; cout<<"Create
38、 a 4*4 matrix mat2 with value being 7:n" Matrix mat2 = CreateMat(3, 3, 7); /创建4*4的矩阵mat2,各元素初值为7。 OutputMat (mat2); /输出该矩阵/第三种创建方式 cout<<endl<<"Create a 3*3 matrix mat3 being equal to data:n" int data = 1, 2, 3, 4, 5, 6, 7, 8, 9; Matrix mat3 = CreateMat (3, 3, data); /创建3*
39、3的矩阵mat3,用data赋初值。 OutputMat (mat3);CopyMat(mat3, mat1);OutputMat (mat1); /输出该矩阵mat1,和mat3相同,3*3矩阵。/实现矩阵转置(ok)cout<<endl<<"Transpose mat1: n"mat2=TransMat(mat3);OutputMat (mat2); /使用加法,减法,数乘Matrix mat4; cout<<endl<<"Add mat1 and mat3: n"mat4= AddMat(mat1,
40、mat3);OutputMat (mat4);cout<<endl<<"Substract mat1 and mat3: n"mat4=SubMat(mat1, mat3);OutputMat (mat4);cout<<endl<<"mat1 * 2 equals to: n"mat4=MulMat(mat1, 2);OutputMat (mat4);/设置和获取1个位置的矩阵元素值int value= GetMatValue(mat1,1,2);/得到mat1第2行第3列的元素值。cout<<
41、" nthe value of coordinates (2,3) is: "<<value<<endl;SetMatValue(mat1,1,2,100);value= GetMatValue(mat1,1,2);/得到mat1第2行第3列的新的元素值。cout<<" n the value of coordinates (2,3) becomes: "<<value<<endl;ReleaseMat(mat1);/释放mat1所占的freestore空间 ReleaseMat(mat2);/
42、释放mat2所占的freestore空间 ReleaseMat(mat3);/释放mat3所占的freestore空间 ReleaseMat(mat4);/释放mat4所占的freestore空间cout <<endl<< "Hello world!" << endl;return 0;实验二 MyMat类定义和应用一、需求规格说明定义一个类MyMat,其对象是矩阵。该类包含3个成员变量,1是矩阵的行数,2是矩阵的列数,3是指向一个容纳矩阵的动态数组的指针变量。需要在类中定义的函数包括:(1) 定义5个构造函数,第一个是默认构造函数,指针
43、变量为NULL;第二个接收2个参数(分别是行数和列数),为矩阵分配内存空间,但不设初值;第三个接收3个参数(分别是行数,列数,以及一个int类型变量),为矩阵分配内存空间,并将矩阵所有元素的值都设置为该int类型变量的值;第四个接收3个参数(分别是行数,列数,以及一个1维数组),为矩阵分配内存空间,并将矩阵初始化为该数组的值;第五个是复制构造函数,接收MyMat类型的对象为参数。注意,在copy constructor定义中,输出一句话到屏幕(cout<<" Copy constructor is called.n"),以跟踪拷贝构造函数是何时被自动调用的。(2
44、)定义析构函数,将对象占用的内存返回给自由存储,并将指针变量设为NULL,并且输出一句话到屏幕(cout<<"Destructor is called.n"),以跟踪析构函数是何时被自动调用的。(3)定义两个初始化矩阵的重载函数(成员函数),函数名为create,一个具有2个参数(分别是行数和列数),为矩阵分配内存空间,但不设初值;另一个接收3个参数(分别是行数,列数,以及一个1维数组),为矩阵分配内存空间,并将矩阵初始化为该数组的值。(4)定义2个成员函数,分别返回矩阵的行数和列数。(5)定义at成员函数,接收2个参数,分别是行号和列号,并返回该坐标位置处的矩
45、阵的值。(6)定义1个重载的赋值=操作符(定义为成员函数),将MyMat类型的矩阵赋值给当前调用对象。(7)定义输出操作符(<<),用来将MyMat类型的矩阵进行输出(只能用友元函数实现)。并且,选择合适的流参数,使得既可以输出到屏幕,也可以输出到文件。注意矩阵输出按照矩阵的格式,例如:(8)定义重载的加号+操作符和减号-操作符(可以友元函数实现,也可以成员函数实现),实现2个矩阵的相加或者相减操作。(9)定义两个重载的数乘*操作符,一个实现1个int类型变量数据乘以矩阵(友元函数实现),一个实现矩阵乘以1个int类型变量数据(可以友元函数,也可以成员函数)。(10)定义重载的等号
46、=操作符(可以用友元函数实现,也可以用成员函数实现),判断2个矩阵是否相等。二、算法设计(1)设计思想:明确一个类的声明格式,确定好公共成员函数和私有成员变量的声明方式,掌握好授课时老师强调的典型的几个函数的声明格式还有定义应该注意的问题,明确好形参与实参之间的联系以及如何调用。最后,创建好接口文件还有实现文件以及应用文件,用学过的语言模板建立好链接。 (2)设计表示:int main()/ 初始化,构造函数的使用Mat matrix_0(5, 5);/ 调用两个参数的构造函数cout << "matrix_0= n"<<matrix_0 <&
47、lt; endl;Mat matrix_1(5, 5, 7);/ 调用三个参数,设为定值的构造函数cout << "matrix_1=n "<<matrix_1 << endl;int datas = 1, 2, 3, 4, 5, 6;Mat matrix_2(2, 3, datas);/ 调用三个参数,有数组的构造函数cout << "matrix_2= n"<<matrix_2 << endl;Mat matrix_3 = matrix_2;/ 调用拷贝构造函数cout <
48、< "matrix_3= n"<<matrix_3 << endl;/ 已有变量初始化matrix_0.create(3, 4);/ 调用两个参数的重载函数cout << "matrix_0=n "<<matrix_0 << endl;matrix_1.create(3, 2, datas);/ 调用三个参数的重载函数cout << "matrix_1=n "<<matrix_1 << endl;/ 得到/修改 指定位置的值int s
49、calar = matrix_1.at(1, 0);/ 调用at函数cout << "The value in (1,0) of matrix_1 is: "<<scalar << endl;matrix_1.at(1, 0) = 7;cout << "Now the value in (1,0) of matrix_1 becomes: "<<matrix_1.at(1, 0) << endl; matrix_0.create(4, 5);for(int i = 0; i <
50、 matrix_0.row(); i+)for(int j = 0; j < matrix_0.col(); j+)matrix_0.at(i, j) = i * matrix_0.col() + j;cout << "matrix_0=n "<<matrix_0 << endl;/ 矩阵运算,操作符重载Mat matrix_4(4, 4, 5), matrix_5(4, 4, 3);Mat matrix_6;matrix_6 = matrix_4 + matrix_5;cout << "matrix_6=n
51、"<<matrix_6 << endl;matrix_6 = matrix_4 - matrix_5;cout << "matrix_6=n "<<matrix_6 << endl;/ 矩阵乘数操作,后一个是友元函数matrix_6 = matrix_6 * 4;cout << "matrix_6=n "<<matrix_6 << endl;matrix_6 = 2 * matrix_6;cout << "matrix_6=n
52、"<<matrix_6 << endl;/判断两个矩阵是否相等if (matrix_5=matrix_6)cout<<"They are equal.n"else cout<<"They are different.n"printf("Hello worldn");return 0; (3)详细设计表示:应用文件:#include<iostream.h>#include<fstream>#include<cstdlib>#include &q
53、uot;My Mat.h"/using namespace std;MyMat:MyMat():rows(0),cols(0),datas(NULL)/默认构造函数,指针变量为NULLMyMat:MyMat (int row, int col)/接收2个参数,为矩阵分配内存空间,但不设初值rows=row;cols=col;datas = new int rows * cols;MyMat:MyMat (int row, int col, const int scalar)/*接收3个参数,为矩阵分配内存空间并将矩阵所有元素的值都设置为该int类型变量的值*/ rows = row;
54、cols = col; datas = new int rows * cols;for(int i = 0; i < rows * cols; i+)datasi = scalar;MyMat:MyMat (int row, int col, const int data)/接收3个参数,为矩阵分配内存空间,并将矩阵初始化为该数组的值rows = row;cols = col;datas = new int rows * cols;for(int i = 0; i < rows * cols; i+)datasi = datai; MyMat:MyMat (const MyMat
55、& matrix)/复制构造函数,接收MyMat类型的对象为参数 cout<<" Copy constructor is called.n"datas = new int matrix.rows * matrix.cols;for(int i = 0; i < rows * cols; i+)datasi=matrix.datasi;MyMat:MyMat ()/定义析构函数cout<<"Destructor is called.n"delete datas;void MyMat: create (int row,
56、int col)/重载成员函数,具有2个参数,为矩阵分配内存空间,但不设初值rows=row;cols=col;datas = new int rows * cols;void MyMat: create (int row, int col, const int data)/重载成员函数,接收3个参数,为矩阵分配内存空间,并将矩阵初始化为该数组的值rows = row;cols = col;datas = new int rows * cols; for(int i = 0; i < rows * cols; i+)datasi = datai; int MyMat:get_row()/
57、返回矩阵行数的成员函数return rows;int MyMat:get_col()/返回矩阵列数的成员函数return cols;int & MyMat:at (int row, int col)/at成员函数,接收2个参数,返回指定位置的函数值if(row>rows-1|col>cols-1)cout<<"error!"<<endl;exit(0);return datasrows*col+cols;void MyMat:operator = (const MyMat & matrix)/定义重载的赋值=操作符为成员函
58、数,将MyMat类型的矩阵赋值给当前调用对象MyMat m;m.rows = matrix.rows;m.cols = matrix.cols; m.datas = new int matrix.rows * matrix.cols;for(int i = 0; i < matrix.rows * matrix.cols; i+)m.datasi = matrix.datasi; MyMat operator + (const MyMat & matrix1,const MyMat & matrix2)/定义重载的加号+操作符MyMat m;if(!(matrix1.rows=matrix2.rows && ma
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 泰州防水涂装施工方案
- 2025年中考语文满分作文的精彩构思:标题+开头段+主体段+结尾段
- 广东省深圳实验学校高中部2024-2025学年高二上学期期末考试英语试题【含答案】
- 回填基坑施工方案范本
- 树木粉碎施工方案
- 2025年液晶电视维修试题及答案
- 6年级科学小发明
- coqh2-细胞色素c还原酶
- cia年检继续教育积分填报流程
- cascode电流镜环路增益
- GB/T 10895-2004离心机分离机机械振动测试方法
- 805不读书-不吃苦-你要青春干嘛
- 研究生实验报告模板(word可修改)
- 部编版语文市级公开教学讲座《口语交际》培训课件
- 高中英语-新外研版必修一unit5-The-Monarchs-Journey-公开课reading课件
- 建设项目用地预审与选址意见课件讲解
- DB44∕T 1049-2012 物业服务 绿化养护检查规范
- 腹膜透析治疗的护理-课件资料
- 国家开放大学《调剂学(本)》形考任务1-4参考答案
- 幼儿园小班绘本:《一步一步_走啊走》 PPT课件
- 《基础和声学》试习题库(6套答案)
评论
0/150
提交评论