《计算机C++课程设计 矩阵的转置与乘法计算》由会员分享,可在线阅读,更多相关《计算机C++课程设计 矩阵的转置与乘法计算(5页珍藏版)》请在金锄头文库上搜索。
1、南京理工大学C+课程设计实验报告姓名 学号 班级 任课教师 时间 9月 教师指定题目 4-4 矩阵的转置与乘法计算 评定难易级别 A 实验报告成绩 .实验内容:1.1 程序功能介绍 该程序定义了一个向量类,里面的元素是模板形式,定义了有关向量了类的各种属性、方法及运算符重载函数。 1.2 程序设计要求(1) 利用已知的向量类对象定义一个矩阵类,矩阵类的数据是向量子对象,同样定义矩阵类的各种属性、方法及运算符重载函数。(2) 完善成员函数,使矩阵可以由文件输入,具体的输入格式自己规定。(3) 完成矩阵的赋值、转置、乘法等运算,要求用整形矩阵和浮点型矩阵分别演算。(4) 更改main函数结构,可由
2、用户选择输入矩阵数据的方法,程序可以连续运行,直到选择退出为止。2. 源程序结构流程框图与说明(含新增子函数的结构框图)Y选择退出作者:喻皓 学号:0511590125N进行运算开始进入程序提示输入的矩阵类型输入选择提示输入矩阵的方式输入选择提示选择对矩阵的操作类型输入选择输出结果是否继续执行程序结束退出3. 基本数据结构 定义的类模板,将函数用链表将一些功能函数连接起来。其中定义了构造函数,析构函数,重载赋值、乘法、数乘、输入、输出,矩阵转置等函数,实现矩阵的矩阵的赋值、转置、乘法等运算。template class CMatrixstruct nodeVector *f;/*组成矩阵的向量
3、指针int refcnt;/*被引用次数int length;/*矩阵的行数T *tmppointer;/*头指针类型 *p;public: / Vector * begin() const return p-f;CMatrix();/*默认的构造CMatrix(int xsize,int ysize,T init=0);/*构造函数CMatrix(int xlength,const Vector *vec);/*构造函数CMatrix(CMatrix &x); /*拷贝构造函数CMatrix(); /*析构函数CMatrix & operator=(const CMatrix &mat);/
4、*重载赋值运算符 int row() const;/*返回行数int col() const;/*返回列数Vector & operator ( int i);/*重载 void Inver(CMatrix &mat);/*矩阵转置operator T *();/*重载*void ReadFromFile();/*从文件中读入矩阵friend CMatrix cpy(CMatrix &v);/*拷贝函数friend std:ostream & operator(std:ostream &s,const CMatrix &mat);/重载输出函数friend std:istream & oper
5、ator(std:istream &s,const CMatrix &mat);/重载输入函数 friend CMatrix operator*(CMatrix &v1,CMatrix &v2);/*矩阵乘法friend CMatrix operator*(const CMatrix &v,T val); /*数乘;4. 程序运行结果界面图1。进入程序、选择输入方式 图2。输入两个矩阵并选择对矩阵的操作 图3。实现矩阵转置 图4。实现矩阵乘法 图5。实现矩阵数乘5. 课程设计遇到的技术问题与解决思路问题1:对于基本的输入输出符号和运算符号无法运用到矩阵中、需要重载解决办法:重载输入、输出、乘法、数乘、赋值等、使其能对矩阵进行操作问题2:当输入的数字个数异于事先设定好的矩阵的容量时会出现错误比如:当输入的行数和列数分别为2和3时 当输入“1 2 3” (个数少于2*3)则无法实现缺省状态当输入“1 2 3 4 5 6 7”时 则多出的数字7将会成为下一要求输入数据的一个数据 解决办法:在初始界面输入提示信息,本程序尚不能解决。