1、C+课程设计试验汇报姓名 学号 班级 任课老师 时间 9月 老师指定题目 4-4 矩阵转置和乘法计算 评定难易等级 A 试验汇报成绩 .试验内容:1.1 程序功效介绍 该程序定义了一个向量类,里面元素是模板形式,定义了相关向量了类多种属性、方法及运算符重载函数。 1.2 程序设计要求(1) 利用已知向量类对象定义一个矩阵类,矩阵类数据是向量子对象,一样定义矩阵类多种属性、方法及运算符重载函数。(2) 完善组员函数,使矩阵能够由文件输入,具体输入格式自己要求。(3) 完成矩阵赋值、转置、乘法等运算,要求用整形矩阵和浮点型矩阵分别演算。(4) 更改main函数结构,可由用户选择输入矩阵数据方法,程
2、序能够连续运行,直到选择退出为止。2. 源程序结构步骤框图和说明(含新增子函数结构框图)Y选择退出作者:喻皓 学号:N进行运算开始进入程序提醒输入矩阵类型输入选择提醒输入矩阵方法输入选择提醒选择对矩阵操作类型输入选择输出结果是否继续实施程序结束退出3. 基础数据结构 定义类模板,将函数用链表将部分功效函数连接起来。其中定义了结构函数,析构函数,重载赋值、乘法、数乘、输入、输出,矩阵转置等函数,实现矩阵矩阵赋值、转置、乘法等运算。template class CMatrixstruct nodeVector *f;/*组成矩阵向量指针int refcnt;/*被引用次数int length;/*
3、矩阵行数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);/*重载赋值运算符 int row() const;/*返回行数int
4、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 & operator(std:istream &s,const CMatrix &
5、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将会成为下一要求输入数据一个数据 处理措施:在初始界面输入提醒信息,本程序尚不能处理。