问答题
请使用VC6或使用[答题]菜单打开考生文件夹proj3下的工程proj3,其中声明的Matrix是一个用于表示矩阵的类。operator+的功能是实现两个矩阵的加法运算。例如,若有两个3行3列的矩阵
则A与B相加的和为
请编写operator+函数。
要求:
补充编制的内容写在“//********333********”与“//********666********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//Matvix.h
#include <iostream>
#include <iomanip>
using namespace std;
const int M=18;
const int N=18;
class Matrix {
int array[M][N];
public:
Matrix() {}
int getElement(int i, int j) const{return array[i][j];}
void setElement (int i, int j, int value){array[i][j] =value;}
void show(const char * s)const
{
cout << endl << s;
for (int i = 0; i < M; i++){
cout << endl;
for (int j=0; j<N; j++)
cout << setw (4) << array[i] [j];
}
}
};
void readFromFile (const char *, Matrix&);
void writeToFile (char *, const Matrix&);
//main.cpp
#include <fstream>
#include "Matrix.h"
void readFromFile ( const char * filename, Matrix& m)
{
ifstream infile(filename);
if (! infile) {
cerr << "无法读取输入数据文件! \n";
return;
}
int d;
for (int i=0; i<M; i++)
for (int j=0; j<N; j++) {
infile >> d;
m.setElement(i, j, d);
}
}
Matrix operator + (const Matrix& m1, const Matrix& m2)
{
//******** 333********
//******** 666********
}
int main()
{
Matrix m1, m2, sum;
readFromFile("",m1);
readFromFile("",m2);
sum=m1+m2;
m1.show("Matrix m1:");
m2.show("Matrix m2:");
sum.show("Matrix sum=m1+m2:");
writeTOFile("", sum);
return 0;
}
【参考答案】
Matrix m; //定义Matrix的对象m for(int i=0; i<M; i++) //i从零到m-1遍历......
(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)