问答题
则A的转置为
请编写成员函数transpose,以实现矩阵转置功能。 要求:
补充编制的内容写在“//********333********”与“//********666********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//Matrix.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 transpose(); 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); } }
voidMatrix::transpose() { //********
333******** //******** 666******** }
int main () { Matrix m;
readFromFile("", m); m.show("Before
transpose:"); m.transpose(); m.show("After
transpose:"); writeToFile("",m); return
0; }