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

#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. POJ--2158--------------Milking Grid(最小覆盖字符矩阵)---(开二维kmp)

    Milking Grid Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 6169   Accepted: 2573 Desc ...

  2. Redis(7)Creating and Using Cluster Mode

    1. DocumentsCluster will not support SELECT, it only contains database 0.All the nodes use TCP bus a ...

  3. 《Play for Java》学习笔记(二)基本的CRUD应用

    注解:  CRUD——Create,Retrieve, Update, Delete 文件结构

  4. SecureCRT快捷键

    ctrl + a :  移动光标到行首ctrl + e :移动光标到行尾crtl + b:  光标前移1个字符crtl + f :  光标后移1个字符 crtl + h :  删除光标之前的一个字符c ...

  5. Floyd 算法的动态规划本质

    [转载自:http://www.cnblogs.com/chenying99/p/3932877.html] Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(A ...

  6. Centos 下搭建SVN + Apache 服务器(转载)

    安装软件包 ? 1 # yum install httpd ? 1 # yum install mod_dav_svn ? 1 # yum install subversion 2.  验证安装 ? ...

  7. java正则表达式之java小爬虫

    这个java小爬虫, 功能很简单,只有一个,抓取网上的邮箱.用到了javaI/O,正则表达式. public static void main(String[] args) throws IOExce ...

  8. HDU 4089 Activation 概率DP 难度:3

    http://acm.hdu.edu.cn/showproblem.php?pid=4089 这道题中一共有两个循环: 1.事件1 如果一直落在Activation failed事件上,那么就会重新继 ...

  9. opencv实现图片缩放

    源码 #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/imgproc/img ...

  10. ASP.NET 学习笔记

    1.ASP.NET 服务器控件是可被服务器理解的标签 有三种类型的服务器控件(所有服务器控件必须出现在 <form> 标签内,同时 <form> 标签必须包含 runat=&q ...