/*此处用面向对象编程*/

#include<iostream>
#include<string.h>
using namespace std;
class Matrices
{
private:
int mat[3][3];
public:
Matrices();
void input()
{
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
cin>>mat[i][j];
}
}
}
friend Matrices operator+(Matrices &,Matrices &);
friend Matrices operator-(Matrices &a,Matrices &b);
friend ostream &operator <<(ostream &output,Matrices &);
friend istream &operator >>(istream &input,Matrices &);
}; Matrices ::Matrices()
{
memset(mat,0,sizeof(mat));
} istream &operator >>(istream &input,Matrices &a)
{
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
input>>a.mat[i][j];
}
}
return input;
} ostream &operator <<(ostream &output,Matrices &a)
{
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
output<<a.mat[i][j]<<" ";
}
cout<<endl;
}
return output;
} Matrices operator+(Matrices &a,Matrices &b)
{
Matrices c;
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
c.mat[i][j]=a.mat[i][j]+b.mat[i][j];
}
}
return c;
} Matrices operator-(Matrices &a,Matrices &b)
{
Matrices c;
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
c.mat[i][j]=a.mat[i][j]-b.mat[i][j];
}
}
return c;
} int main()
{
cout<<"请输入需要进行的三阶加法运算(+)或减法运算(-)"<<endl;
char c;
Matrices A,B,C;
while(cin>>c)
{
if(c=='+'||c=='-')
{
if(c=='+')
{
cout<<"转换成功!即将进行加法运算"<<endl;
cout<<"请依次输入矩阵1,以回车换行(确认)"<<endl;
cin>>A;
cout<<"请依次输入矩阵2,以回车换行(确认)"<<endl;
cin>>B;
C=A+B;
cout<<"运算成功!两矩阵的和为:"<<endl;
}
else
{
cout<<"转换成功!即将进行减法运算"<<endl;
cout<<"请依次输入矩阵1,以回车换行(确认)"<<endl; cin>>A;
cout<<"请依次输入矩阵2,以回车换行(确认)"<<endl;
cin>>B;
C=A-B; cout<<"运算成功!两矩阵的差为:"<<endl;
}
cout<<endl;
cout<<C;
cout<<"可输入'+'或'-'继续进行运算"<<endl;
}
else cout<<"数据格式错误!请重新输入:"<<endl;
}
} /* 测试数据 1 1 1
2 2 2
3 3 3 1 1 1
2 2 2
3 3 3
*/

C++面向对象编程解决三阶矩阵相加减的更多相关文章

  1. <R语言编程艺术>的一个错误以及矩阵相加

    R语言编程艺术讲矩阵这节时,举了个随机噪声模糊罗斯福总统画像的例子.但是里面似乎有个错误,例子本意是区域外的值保持不变,而选定区域的值加一个随机值,但是实际情况是两个行列不相等的矩阵相加,会报错,如果 ...

  2. Python黑帽编程2.9 面向对象编程

    Python黑帽编程2.9 面向对象编程 我个人认为,计算机语言的发展,有两个方向,一个是从低到高的发展过程,在这个过程中,语言的思考和解决问题的方式是面向硬件的.硬件本质上处理的是信号,在此基础上, ...

  3. [.net 面向对象编程基础] (17) 数组与集合

    [.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...

  4. Day6 - Python基础6 面向对象编程

    Python之路,Day6 - 面向对象学习   本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发 ...

  5. sdut 在机器上面向对象编程练习11(运算符重载)

    在机器上面向对象编程练习11(运算符重载) Time Limit: 1000MS Memory limit: 65536K 标题叙述性说明 有两个矩阵a和b,均为2行3列,求两个矩阵之和.重载运算符& ...

  6. day7 面向对象编程

    编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种 ...

  7. 《C++ Primer》之面向对象编程(四)

    纯虚函数 在前面所提到过的 Disc_item 类提出了一个有趣的问题:该类从 Item_base 继承了 net_price 函数但没有重定义该函数.因为对 Disc_item 类而言没有可以给予该 ...

  8. Python进阶之面向对象编程

    面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机 ...

  9. 洗礼灵魂,修炼python(41)--巩固篇—从游戏《绝地求生-大逃杀》中回顾面向对象编程

    声明:本篇文章仅仅以游戏<绝地求生>作为一个参考话题来介绍面向对象编程,只是作为学术引用,其制作的非常简易的程序也不会作为商业用途,与蓝洞公司无关. <绝地求生>最近很火,笼络 ...

随机推荐

  1. python中字符与ascii码转换

    ASCII码转字符用chr()函数:  字符转ASCII码用ord()函数:  

  2. 关于 iOS 批量打包的总结

      关于 iOS 批量打包的总结 本文作者: 伯乐在线 - Tsui YuenHong .未经作者许可,禁止转载!欢迎加入伯乐在线 专栏作者. 如果你曾经试过做多 target 的项目,到了测试人员要 ...

  3. 在唯一密钥属性“name”设置为“ScriptHandlerFactory”时,无法添加类型为“add”的重复集合项

    出错原因:同一根目录下有两个相同的WebConfig文件 解决办法:删除子其中一个webConfig文件. 详细:

  4. Mysql复制表格

    1.复制表结构及数据到新表 CREATE TABLE 新表 as SELECT * FROM 旧表 不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key.Extra(auto_i ...

  5. js 日期时间控制器

    /////////////////////////调用实例 // <div> // <span>交易查询:</span> <span>从 // < ...

  6. 使用AlarmManager定时更换壁纸----之二

    import java.io.IOException; import android.app.Service;import android.app.WallpaperManager;import an ...

  7. MySQL存储过程之事务管理

    原文链接:http://hideto.iteye.com/blog/195275 MySQL存储过程之事务管理 ACID:Atomic.Consistent.Isolated.Durable 存储程序 ...

  8. JavaOne 2016——观众得以一睹JShell的威力

    导读 在JavaOne 2016的主题演讲中,Java平台组的首席架构师Mark Reinhold指出Java 9并不仅仅是Jigsaw,针对Java 9,一共包含了85个JEP.我在这里会关注一个他 ...

  9. ArrayAdapter适配器的用法,模拟QQ发消息界面。

    import java.util.ArrayList; import android.app.Activity; import android.content.Context; import andr ...

  10. 带你揭开ATM的神秘面纱

    相信大家都用过ATM取过money吧,但是有多少人真正是了解ATM的呢?相信除了ATM从业者外了解的人寥寥无几吧,鄙人作为一个从事ATM软件开发的伪专业人士就站在我的角度为大家揭开ATM的神秘面纱吧. ...