栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++小作业-矩阵类(运算符+-及输入>>输出<<重载)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++小作业-矩阵类(运算符+-及输入>>输出<<重载)

一、问题描述

【问题描述】设计一个2行3列的矩阵类,重载运算符"+"和"-“,能实现矩阵类对象的加减运算;重载流插入运算符”<<“和流提取运算符”>>",使之能用于矩阵的输入和输出。

【输入形式】输入2个2行3列的矩阵数据。

【输出形式】输入的两个矩阵的加和减运算后的结果矩阵。
【样例输入】

请输入2行3列矩阵内容:

1 2 3

4 5 6

请输入2行3列矩阵内容:

1 2 3

4 5 6

【样例输出】

m1+m2=

2      4      6

8     10     12

m1-m2=

0      0      0

0      0      0
二、代码实现
#include 
using namespace std;
#include 

class Juzhen {
	private:
		int mat[2][3] ;
	public:
		Juzhen();
		//这里全部重载为友元函数
		friend Juzhen operator +(Juzhen &a, Juzhen &b);
		friend Juzhen operator -(Juzhen &a, Juzhen &b);
		//输入输出流只能重载为友元函数
		friend istream &operator >>(istream &in, Juzhen &a);
		friend ostream &operator <<(ostream &out, Juzhen &a);

};

Juzhen::Juzhen() {
	for (int i = 0; i < 2; i++) {
		for (int j = 0; j < 3; j++) {
			mat[i][j] = 0;//所有元素默认为0
		}
	}
}

Juzhen operator +(Juzhen &a, Juzhen &b) {
	Juzhen c;
	for (int i = 0; i < 2; i++) {
		for (int j = 0; j < 3; j++) {
			c.mat[i][j] = a.mat[i][j] + b.mat[i][j];
		}
	}
	return c;
}

Juzhen operator -(Juzhen &a, Juzhen &b) {
	Juzhen c;
	for (int i = 0; i < 2; i++) {
		for (int j = 0; j < 3; j++) {
			c.mat[i][j] = a.mat[i][j] - b.mat[i][j];
		}
	}
	return c;
}

istream &operator >>(istream &in, Juzhen &a) {
	cout << "请输入2行3列矩阵内容:" << endl;
	for (int i = 0; i < 2; i++) {
		for (int j = 0; j < 3; j++) {
			in >> a.mat[i][j];
		}
	}
	return in;
}

ostream &operator <<(ostream &out, Juzhen &a) {
	for (int i = 0; i < 2; i++) {
		for (int j = 0; j < 3; j++) {
			out  << setw(5) << a.mat[i][j] << "  " ;

		}
		out << endl;
	}
	return out;
}

int main() {
	Juzhen a, b, c;
	cin >> a;
	cin >> b;
	cout << "m1+m2=" << endl;
	c = a + b;
	cout << c;
	c = a - b;
	cout << "m1-m2=" << endl;
	cout << c;
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/875402.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号