第9周任务4

来源:互联网 发布:java实用教程第三版pdf 编辑:程序博客网 时间:2024/05/21 13:26
#include <iostream>   using namespace std;  #include "p.h"  class Douary  {  public:      Douary(int m, int n);//构造函数:用于建立动态数组存放m行n列的二维数组(矩阵)元素,并将该数组元素初始化为       Douary(const Douary &d);//构造函数:用于建立动态数组存放m行n列的二维数组(矩阵)元素,并将该数组元素初始化为       ~Douary(); //析构函数:用于释放动态数组所占用的存储空间       friend istream &operator>>(istream &input, Douary &d);//重载运算符“>>”输入二维数组,其中d为Dousry类对象;       friend ostream &operator<<(ostream &output, Douary &d);//重载运算符“<<”以m行n列矩阵的形式输出二维数组,其中d为Douary类对象。       friend Douary operator+(const Douary &d1,const Douary &d2);//两个矩阵相加,规则:对应位置上的元素相加       friend Douary operator-(const Douary &d1,const Douary &d2);//两个矩阵相减,规则:对应位置上的元素相减       bool operator==(const Douary &d);//判断两个矩阵是否相等,即对应位置上的所有元素是否相等   private:      int * Array;      //Array 为动态数组指针。       int row;          //row  为二维数组的行数。       int col;          //col   为二维数组的列数。   };  Douary::Douary(int m, int n)  {      row=m;      col=n;      Array = new int[m*n];     for(int i=0; i<row; i++)          for(int j=0; j<col; j++)              Array[i*col+j]=0; }    Douary::Douary(const Douary &d)  {      row=d.row;      col=d.col;      Array = new int[row*col];      for(int i=0; i<row; i++)   {        for(int j=0; j<col; j++)   {            Array[i*col+j]=d.Array[i*col+j];   } }}    Douary::~Douary() //析构函数:用于释放动态数组所占用的存储空间   {      delete [] Array;  }    istream &operator>>(istream &input, Douary &d) {      for(int i=0; i<d.row; ++i)  {        for(int j=0; j<d.col; ++j)    {            cin>>d.Array[i*d.col+j];    } }    return input;  }    ostream &operator<<(ostream &output, Douary &d)  {      for(int i=0; i<d.row; ++i)      {          for(int j=0; j<d.col; ++j)              cout<<d.Array[i*d.col+j]<<"\t";         cout<<endl;      }      cout<<endl;      return output;  }    Douary operator+(const Douary &d1,const Douary &d2)//两个矩阵相加,规则:对应位置上的元素相加   {             Douary d(d1.row,d1.col);      for(int i=0; i<d1.row; ++i)      {          for(int j=0; j<d1.col; ++j)              d.Array[i*d1.col+j]=d1.Array[i*d1.col+j]+d2.Array[i*d1.col+j];      }      return d;  }    Douary operator-(const Douary &d1,const Douary &d2)//两个矩阵相减,规则:对应位置上的元素相减   {         Douary d(d1.row,d1.col);      for(int i=0; i<d1.row; ++i)      {          for(int j=0; j<d1.col; ++j)    {            d.Array[i*d1.col+j]=d1.Array[i*d1.col+j]-d2.Array[i*d1.col+j];    }    }      return d;  }  bool Douary::operator ==(const Douary &d)//判断两个矩阵是否相等,即对应位置上的所有元素是否相等   {      if(row!=d.row||col!=d.col)   return false;      bool flag = true;      for(int i=0; i<row; ++i)      {          for(int j=0; j<col; ++j)    {            if (Array[i*col+j]!=d.Array[i*col+j])               {                  flag=false;                  break;              }              //if (!flag) break;    }    }      return flag;  }    int main()  {      Douary d1(3,5),d2(3,5);      cout<<"输入d1(3,5):"<<endl;      cin>>d1;      cout<<"输入d2(3,5):"<<endl;      cin>>d2;      cout<<"d1="<<endl;      cout<<d1;      cout<<"d2="<<endl;      cout<<d2;      cout<<"d1+d2="<<endl;      Douary d3=(d1+d2);      cout<<d3;      cout<<"d1-d2="<<endl;      cout<<(d1-d2);      cout<<"d1"<<((d1==d2)?"==":"!=")<<"d2"<<endl;      system("pause");      return 0;  }  


感悟:

老师:if (!flag) break    是啥意思啊?没有它不也行吗?
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 包裹遗忘在郑州东站安检口了怎么办 锁书包的锁头钥匙全掉了怎么办 平板电脑恢复出厂设置变英语怎么办 给国外银行汇款账号写错账号怎么办 顺丰快递暴力运输产品坏了怎么办 亚航订机票名字少写一个字母怎么办 如果淘宝付款七天内不发货怎么办 浪琴手表调了一下日期不走了怎么办 收件人号码写错快递柜已签收怎么办 医院名字写错了怎么办保险报销 电脑在使用中出现了英文字慕怎么办 下雨天了怎么办我好想你是什么歌 安卓手机不支持微信运动怎么办 装系统时无法跳过密匙怎么办 在msdn里下的系统没有网怎么办 w7电脑更新后系统没法激活怎么办 手机使用加速器后网速变卡怎么办 奥特曼ol分解了迪迦石像怎么办 左右棋牌游戏兑换总说系统护怎么办 四季海棠扦插以后黄叶卷叶怎么办 竹节海棠浇水多了叶子蔫了怎么办 社保停缴了里面的钱怎么办 王者荣耀英雄释放技能有延迟怎么办 买的桑拿木板颜色太深了怎么办 万一填写了奔跑吧诈骗信息该怎么办 深圳限行时段堵在路上怎么办 开车堵在路上到了限行时间怎么办 兄妹之间都不想照顾母亲我该怎么办 小孩扁体发炎睡觉呼吸声沉重怎么办 客所思pk3老驱动有杂音怎么办 手机打不开解压包密码怎么办 在香港专柜买东西柜员少给货怎么办 恶魔猎手第二神器任务没选择怎么办 电脑放久了开不了机怎么办 你在主持时说错话了怎么办 1、你在主持时说错话了怎么办? 领导让你替他参加重要会议怎么办 在备孕期老公照了片怎么办 和混混打架后被混混纠缠怎么办 开了一年的瑜伽馆想关掉会员怎么办 广东工厂宿舍里面床板有臭虫怎么办