C++利用类实现矩阵的数乘、乘法以及点乘

    ----------------------------------矩阵的数乘、乘法、点乘---------------------------------------*
   *-description:用户选择运算方式后输入矩阵的规模并赋值,随即进行矩阵相关运算  
   *- author:Luo                                                                                                        
   *-e-mail:[email protected]                                                                               
   *- Version    :Dev-C++ 5.11                                                                                  
   *--------------------------------------------------------------------------------------------------------*

 小的第一次在CSDN论坛发文- -

 当是简单记录生活吧!有什么问题一起交流探讨!多指点指点俺!

 程序的探索经过如下:

 ①首先考虑到后续代码的维护及其复用性,为此考虑用类实现

 ②矩阵基本的类成员应该包括矩阵的行列数以及矩阵名以及初始化、输入输出

 ③由于需要实现三种矩阵乘法运算,为此考虑利用运算符重载使用友元函数重载* +运算符分别实   现矩阵的数乘、乘法以及点乘

 源码如下:

#include 
#include 
using namespace std;
typedef long long ll;
class Matrix                                          //封装一个矩阵类便于后续使用
{
    int row;
    int col;                                       
    int** base;                                       //二维数组存放矩阵
public:
    Matrix(int r,int c)                               //构造函数初始化
    {
        row = r;
        col = c;
        create();
    }
    //在外部则写作:
    //Matrix::Matrix(int r, int c)
    //{
    //  row=r; col=c; create();
    //} 
    Matrix(const Matrix& e)                            //拷贝构造函数
    {
        row = e.getrow();
        col = e.getcol();
        create();
        for(int i = 0;i>(istream& cin,Matrix& e)           //重载>>方便输入
{ 
    int r = e.getrow();
    int c = e.getcol();
    for(int i = 0;i>e[i][j];
        }
    }
    return cin;
}
Matrix operator*(int n,Matrix& e)              //重载 * 实现数乘
{
    Matrix ret(e.getrow(),e.getcol()); 
    for(int i=0;i>choice;
    switch (choice)
    {
        case 1:
            { 
             int array1[2];
             cout<<"请输入矩阵的行数列数"<>array1[i];
             int num;
             Matrix A(array1[0],array1[1]);
             cout<<"请输入乘数"<>num;
             cout<<"请给矩阵A赋值"<>A;
             cout<<"num与A数乘\n"; 
             cout<>array2[j];
             if(array2[1]!=array2[2])
              {
                  cout<<"第一个矩阵列数不等于第二个矩阵行数"<<"\n";
                  cout<<"请重启动再次输入"<>B;
                Matrix C(array2[2],array2[3]);
                cout<<"请给矩阵C赋值"<>C;
                cout<<"矩阵B与矩阵C乘法\n";
                cout<>array3[k];
             if(array3[1]!=array3[3]||array3[0]!=array3[2])
              {
                  cout<<"两个矩阵不同形"<<"\n";
                  cout<<"请重启动再次输入"<>D;
                Matrix E(array3[2],array3[3]);
                cout<<"请给矩阵E赋值"<>E;
                cout<<"矩阵D与矩阵E点乘\n";
                cout<

 以上是源码啦!喜欢的话可以点赞收藏,感谢大家!

你可能感兴趣的:(c++,c++)