国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
矩陣(三)

 

6、                      矩陣(三)

編寫C++程序完成以下功能:

(1)    用類來實現矩陣,定義一個矩陣的類,屬性包括:

l        矩陣大小,用 lines, rows(行、列來表示);

l        存貯矩陣的數組指針,根據矩陣大小動態(tài)申請(new)。

(2)    矩陣類的方法包括:

l        構造函數,參數是矩陣大小,需要動態(tài)申請存貯矩陣的數組;

l        析構函數,需要釋放矩陣的數組指針;

l        拷貝構造函數,需要申請和復制數組;

l        輸入,可以從cin中輸入矩陣元素;

l        輸出,將矩陣格式化輸出到cout;

l        矩陣相加的函數,實現兩個矩陣相加的功能,結果保存在另一個矩陣類,但必須矩陣大小相同;

l        矩陣相減的函數,實現兩個矩陣相減的功能,結果保存在另一個矩陣類,但必須矩陣大小相同。

(3)    定義三個矩陣:A1、A2A3;

(4)    初始化A1、A2

(5)    計算并輸出A3 = A1A2,A3=A1A2;

(6)    new動態(tài)創(chuàng)建三個矩陣類的對象:pA1、pA1、pA3

(7)    初始化pA1、pA2;

(8)    計算并輸出pA3=pA1pA2,pA3=pA1pA2;

(9)    釋放pA1、pA1、pA3。

 

#include<iostream>

#include <iomanip>

using namespace std;

 

class Matrix

{

private:

    int lines;

    int rows;

   

public:

       int **Array;

      

    Matrix(int Nlines=3,int Nrows=3)

 {

        int i;

        lines=Nlines;

        rows=Nrows;

              Array=new int *[lines];

        for(i=1;i<=lines;i++)

        {

            Array[i]=new int(rows);

        }

 }

 

       void Setmatrix(int Nlines,int Nrows);

    Matrix(Matrix &p);

    int Getlines() {return lines;}

    int Getrows() {return rows;}

    int*GetArray() {return Array[lines];}

                         

    void putin();

       void putin(int x,int y,int a);

    void putout();

    friend void Matrixplus(Matrix* a,Matrix* b,Matrix* c);

    friend void Matrixsub(Matrix* a,Matrix* b,Matrix* c);

    ~Matrix()

    {

        int i;

        for(i=1;i<=lines;i++)

        {

            delete [] Array[i];

        }

              delete [] Array;

    }

};

 

Matrix::Matrix(Matrix &p)

{

     lines=p.lines;

     rows=p.rows;

     Array[lines]=p.Array[p.lines];

}

 

 

void Matrix::Setmatrix(int Nlines,int Nrows)

 {

      int i;

      lines=Nlines;

      rows=Nrows;

         Array=new int *[lines];

      for(i=1;i<=lines;i++)

      {

          Array[i]=new int(rows);

      }

 }

 

void Matrix::putin()

{

     int i,j;

     cout<<"請輸入一個"<<lines<<"*"<<rows<<"矩陣:"<<endl;

     for(i=1;i<=lines;i++)

     {

         for(j=1;j<=rows;j++)

         {

             cin>>Array[i][j];

         }

         getchar();

     }

}

 

void Matrix::putin(int x,int y,int a)

{

       int i,j;

       for(i=1;i<=x;i++)

     {

         for(j=1;j<=y;j++)

         {

             Array[i][j]=a;

         }

     }

}

 

 

void Matrix::putout()

{

     int i,j;

     for(i=1;i<=lines;i++)

     {

         for(j=1;j<=rows;j++)

         {

             cout<<setw(5)<<Array[i][j];

         }

         cout<<endl;

     }

}

   

void Matrixplus(Matrix* a,Matrix* b,Matrix* c,int l,int r)

{

     int i,j;

     for(i=1;i<=l;i++)

     {

         for(j=1;j<=r;j++)

         {

             c->Array[i][j]=a->Array[i][j]+b->Array[i][j];

         }

     }

}                                      

   

void Matrixsub(Matrix* a,Matrix* b,Matrix* c,int l,int r)

{

     int i,j;

     for(i=1;i<=l;i++)

     {

         for(j=1;j<=r;j++)

         {

             c->Array[i][j]=a->Array[i][j]-b->Array[i][j];

         }

     }

}

 

 

 

int main()

{

    Matrix PA1(3,4),PA2(3,4),PA3(3,4),PA4(3,4);

    int l,r;

       char z;

 

       cout<<"采用默認值(y/手動輸入(非y)?"<<endl;

       cin>>z;

       if(z=='y')

       {

              PA1.Setmatrix(3,4);

        PA1.putin(3,4,3);

        PA2.Setmatrix(3,4);

              PA2.putin(3,4,3);

       }

      

       else

       {

        cout<<"請輸入矩陣的行和列(用空格隔開):"<<endl;

        cin>>l>>r;

      

         PA3.Setmatrix(l,r);

          PA4.Setmatrix(l,r);

 

        PA1.Setmatrix(l,r);

        PA1.putin();

        PA2.Setmatrix(l,r);

        PA2.putin();

       }

   

       cout<<endl<<"矩陣PA1為:"<<endl;

    PA1.putout();

       cout<<endl<<"矩陣PA2為:"<<endl;

    PA2.putout();

 

       if(z=='y')

       {

              Matrixplus(&PA1,&PA2,&PA3,3,4);

        Matrixsub(&PA1,&PA2,&PA4,3,4);

       }

       else

       {

        Matrixplus(&PA1,&PA2,&PA3,l,r);

        Matrixsub(&PA1,&PA2,&PA4,l,r);

       }

    cout<<endl<<"PA1+PA2="<<endl;

    PA3.putout();

    cout<<endl<<"PA1-PA2="<<endl;

    PA4.putout();

   

    system("pause");

    return 0;

}
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
燕山大學C++實驗報告
在Visual C++ 6.0上實現矩陣的各種運算
Map a Eigen Matrix to an C array
矩陣類的模板實現(C++)
Eigen入門指導書3-數組類和基于元素操作
一文學會Eigen庫
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服