本关任务:设计一个矩阵类,并实现简单的矩阵运算。

任务描述
本关任务:设计一个矩阵类,并实现简单的矩阵运算。

相关知识
完成本关需要具备的知识介绍请参见第一、二关卡。

矩阵运算参考资料

编程要求
在右侧编辑器中的Begin-End之间补充代码,设计一个矩阵类( Matrix ),并实现矩阵的简单运算,具体要求如下:

成员变量:这一部分学员可以自由发挥,但要求都是私有成员。

成员函数:

构造函数:Matrix(int r,int c),参数 r 和 c 分别代表矩阵的行和列。

全部设值函数:void Fill(int value),函数将矩阵内所有的元素都设置为参数 value 的值。

指定位置设值函数:void Set(int r,int c,int value),函数将矩阵第 r 行 c 列的元素设置为 value 的值。

获取元素函数:int Get(int r,int c)函数,函数返回矩阵第 r 行 c 列的元素。

打印函数:void Print(),函数按照矩阵的形状打印出矩阵内容,每一个值后跟着一个空格。比如一个2x4元素全为1的矩阵,打印结果为(更明显表示格式,空格均用下划线_代替):

1_1_1_1_
1_1_1_1_
普通函数:

Matrix operator+(Matrix &m1,Matrix &m2)函数,重载Matrix类的加法运算符,实现矩阵的加法运算。

Matrix operator-(Matrix &m1,Matrix &m2)函数,重载Matrix类的减法运算符,实现矩阵的减法运算。

Matrix operator*(Matrix &m1,Matrix &m2)函数,重载Matrix类的乘法运算符,实现矩阵的乘法运算。

测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:

注意:对于输入数据的具体测试,请查看右侧 step3/run.cpp 文件

测试输入:1 1
预期输出:

m1 + m2 :
3
m1 - m2 :
-1
m1 * m3 :
1
测试输入:2 2
预期输出:

m1 + m2 :
3 3
3 3
m1 - m2 :
-1 -1
-1 -1
m1 * m3 :
1 2
1 2
那个.cpp文件:

#include "usr.h"
int main()
{
    int i,j;
    cin >> i >> j;
    Matrix m1(i,j),m2(i,j),m3(j,i);
    m1.Fill(1);
    m2.Fill(2);
    m3.Fill(0);
    for(int s = 0 ; s < i ; s++){
        for(int c = 0 ; c < j ; c++){
            if(s==c)
                m3.Set(s,c,s+1);
        }
    }
    //m1.Print();
    //m2.Print();
    //m3.Print();
    cout << "m1 + m2 :" << endl ;
    (m1 + m2).Print();
    cout << "m1 - m2 :" << endl ;
    (m1 - m2).Print();
    cout << "m1 * m3 :" << endl ;
    (m1 * m3).Print();
    
}