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

#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. pyhton2 python3 语法区别

    几乎所有的Python 2程序都需要一些修改才能正常地运行在Python 3的环境下.为了简化这个转换过程,Python 3自带了一个叫做2to3的实用脚本(Utility Script),这个脚本会 ...

  2. HTML5自学笔记[ 15 ]canvas绘图基础6

    关于线条的一些属性: lineCap,这个属性表示的是线条两端的样式,值有butt(默认)/round/square. lineJoin,这个属性表示线条相交的方式,值有miter(默认)/bevel ...

  3. javascript 函数调用方式

    1. 通过函数名直接调用 函数名(实际参数): 2. 通过指向函数的变量去调用 var 变量=函数名: 变量(实际参数):

  4. AJAX是什么? AJAX的交互模型(流程)?同步和异步的区别? AJAX跨域的解决办法?

      AJAX是什么? AJAX的交互模型(流程)?同步和异步的区别? AJAX跨域的解决办法? 分类: web前端面试题2013-07-20 22:40 630人阅读 评论(0) 收藏 举报 目录(? ...

  5. WCF服务编程中使用SvcMap实现类型共享等技巧【转】

    原文链接:http://www.cr173.com/html/19026_1.html 国外的一篇文章:Sharing DataContracts between WCF Services 文中提到的 ...

  6. [Js]缓冲运动

    一.运动框架 1.在开始运动时,关闭已有定时器(否则会不断有新的定时器执行) 2.把运动和停止隔开(if/else) 二.缓冲运动 逐渐变慢,最后停止(距离越远速度越大) 速度=(目标值-当前值)/缩 ...

  7. 二模 (6) day1

    第一题: 设 S(N)表示 N 的各位数字之和,如 S(484)=4+8+4=16,S(22)=2+2=4.如果一个正整数 x满足 S(x*x)=S(x)*S(x),我们称 x 为 Rabbit Nu ...

  8. MVC 3个重要的描述对象之ControllerDescriptor

    1.ControllerDescriptor 1.1 ReflectedControllerDescriptor public class HomeController : Controller { ...

  9. 5种JavaScript和CSS交互的方法

      分享   分享   分享   分享   分享   随着浏览器不断的升级改进,CSS和JavaScript之间的界限越来越模糊.本来它们是负责着完全不同的功能,但最终,它们都属于网页前端技术,它们需 ...

  10. 如何在windows上搭建ftp服务器

    FTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议,使得主机间可以共享文件.目前有很多软件都能实现这一功能,然而windows自带的IIS就可以帮助你搭 ...