问答题

请使用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遍历......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题