C++面向对象编程解决三阶矩阵相加减
/*此处用面向对象编程*/ #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++面向对象编程解决三阶矩阵相加减的更多相关文章
- <R语言编程艺术>的一个错误以及矩阵相加
R语言编程艺术讲矩阵这节时,举了个随机噪声模糊罗斯福总统画像的例子.但是里面似乎有个错误,例子本意是区域外的值保持不变,而选定区域的值加一个随机值,但是实际情况是两个行列不相等的矩阵相加,会报错,如果 ...
- Python黑帽编程2.9 面向对象编程
Python黑帽编程2.9 面向对象编程 我个人认为,计算机语言的发展,有两个方向,一个是从低到高的发展过程,在这个过程中,语言的思考和解决问题的方式是面向硬件的.硬件本质上处理的是信号,在此基础上, ...
- [.net 面向对象编程基础] (17) 数组与集合
[.net 面向对象编程基础] (17) 数组与集合 学习了前面的C#三大特性,及接口,抽象类这些相对抽象的东西以后,是不是有点很累的感觉.具体的东西总是容易理解,因此我们在介绍前面抽象概念的时候,总 ...
- Day6 - Python基础6 面向对象编程
Python之路,Day6 - 面向对象学习 本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发 ...
- sdut 在机器上面向对象编程练习11(运算符重载)
在机器上面向对象编程练习11(运算符重载) Time Limit: 1000MS Memory limit: 65536K 标题叙述性说明 有两个矩阵a和b,均为2行3列,求两个矩阵之和.重载运算符& ...
- day7 面向对象编程
编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种 ...
- 《C++ Primer》之面向对象编程(四)
纯虚函数 在前面所提到过的 Disc_item 类提出了一个有趣的问题:该类从 Item_base 继承了 net_price 函数但没有重定义该函数.因为对 Disc_item 类而言没有可以给予该 ...
- Python进阶之面向对象编程
面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机 ...
- 洗礼灵魂,修炼python(41)--巩固篇—从游戏《绝地求生-大逃杀》中回顾面向对象编程
声明:本篇文章仅仅以游戏<绝地求生>作为一个参考话题来介绍面向对象编程,只是作为学术引用,其制作的非常简易的程序也不会作为商业用途,与蓝洞公司无关. <绝地求生>最近很火,笼络 ...
随机推荐
- DOM事件流
DOM事件标准定义了两种事件流:Capture(捕获)和Bubbing(冒泡):捕获和冒泡是javascript针对dom事件处理的先后顺序,所谓的先后顺序是指针对父标签与其嵌套子标签,如果父标签与嵌 ...
- 《Java程序设计》 实验一 实验报告
实验一 Java开发环境的熟悉(Windows + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.完成 ...
- hdu-------(1848)Fibonacci again and again(sg函数版的尼姆博弈)
Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- MVC中使用HTML Helper类扩展HTML控件
文章摘自:http://www.cnblogs.com/zhangziqiu/archive/2009/03/18/1415005.html MVC在view页面,经常需要用到很多封装好的HTML控件 ...
- query attr prop区别
大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked", ...
- 数据库索引<二> 补充前篇 (上一篇抽风了,这个补上)
在前一个创建索引中已经大概说了三部分的影响,基本应该注意哪一些.写完上一篇后我感觉有很多地方没有写清楚,所以这篇就是更深入一些的理解索引到底是怎么和数据表关联,怎么快速查询的. 先看一下下面的图,图是 ...
- java集合——Collection接口
Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...
- HBase HMaster Architecture - HBase Master架构
HBase architecture follows the traditional master slave model where you have a master which takes de ...
- comboBox的id返回System.Data.DataRowView
关系到ComboBox的DataSource,DisplayMember和ValueMember属性的设置顺序的问题. ComboBox的DataSource属性为object类型,但是需要实现ILi ...
- LCD驱动 15-1
app: read() ---------------------------------------------------------------------------------------- ...