欢迎来到天天文库
浏览记录
ID:7226079
大小:110.00 KB
页数:12页
时间:2018-02-07
《c++课程设计矩阵乘法计算》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C++课程设计报告姓名学号班级0804任课教师时间2009.9教师指定题目矩阵乘法计算评定难易级别A级实验报告成绩自评成绩:优一、题目名称:矩阵乘法计算二、难易等级:A级三、程序设计思想1、建立矩阵类的类模板,通过实例化形成模板类,再实例化成矩阵对象,大大缩短了代码的长度,同时也方便了对象的建立;classCMatrix//矩阵类的模板{T**Mat;//矩阵的头指针intnRow;//矩阵的行数intnCol;//矩阵的列数public:CMatrix();//缺省构造函数CMatrix(T**mat,intr
2、ow,intcol);//构造函数CMatrix(introw,intcol);//构造函数CMatrix(introw,intcol,intk);//构造函数,从键盘输入矩阵VoidShow();//输出VoidInputFromFile();//从文件中输入矩阵friendCMatrixoperator*(CMatrix&mat1,CMatrix&mat2);//重载乘法};2、依照模板,在模板外依次定义相关的函数模板,再通过实例化建立相应的成员函数,同样方便快捷,避免了代码的冗长,程序层次
3、清晰;templateCMatrix::CMatrix(introw,intcol)//两个参数的构造函数{……}3、建立选择函数choose,实现程序的多态性,同时也简化了主函数的内容,主函数只需简单调用choose函数就能执行整个程序的相关功能;voidchoose()//数据类型选择函数{cout<<"时间:2009年9月26日"<整型"
4、<浮点型"<双精度型"<>sjlx;switch(sjlx){case1:{choose1(1);}break;case2:{choose1(0.0);}break;case3:{choose1(1e-10);}break;default:cout<<"输入选择错误!!!"<5、稳定可靠;四、程序增加功能及实现办法1、模板的使用本程序使用了大量的模板,譬如矩阵类模板、相关函数模板,以T为模板参数,通过对T的不同类型的选择实现相应的运算处理。其中choose1()函数本是无参函数,为了方便模板化,给其赋以伪参数T,在执行时通过T的取值生成相应的函数模板,真可谓方便!!templatevoidchoose1(T)//数据输入类型选择函数模板,其中T为伪参数,用于函数模板实例化{…………}调用时:switch(sjlx){case1:{choose1(1);//生成int型模板6、}break;case2:{choose1(0.0);//生成float型模板}break;case3:{choose1(1e-10);//生成double型模板}break;default:cout<<"输入选择错误!!!"<Mat[0]----->Mat[0][0]Mat[0][1]……Mat[0][j]Mat[1]----->Mat[1][0]Mat[1][1]……Mat[1][7、j]::Mat[i]----->Mat[i][0]Mat[i][1]……Mat[i][j]实现构造的代码为:templateCMatrix::CMatrix(introw,intcol)//两个参数的构造函数{inti,j;nRow=row,nCol=col;Mat=newT*[nRow];for(i=0;i8、第["<>Mat[i][j];}}3、运算符的重载要实现矩阵间的乘法运算,有必要对其运算符进行重载。而乘法运算符又要针对不同数据类型进行运算,因此,对运算符重载函数模板化也是很有必要的。templateCMatrixoperator*(CMatrix&mat1,CMatrix&ma
5、稳定可靠;四、程序增加功能及实现办法1、模板的使用本程序使用了大量的模板,譬如矩阵类模板、相关函数模板,以T为模板参数,通过对T的不同类型的选择实现相应的运算处理。其中choose1()函数本是无参函数,为了方便模板化,给其赋以伪参数T,在执行时通过T的取值生成相应的函数模板,真可谓方便!!templatevoidchoose1(T)//数据输入类型选择函数模板,其中T为伪参数,用于函数模板实例化{…………}调用时:switch(sjlx){case1:{choose1(1);//生成int型模板
6、}break;case2:{choose1(0.0);//生成float型模板}break;case3:{choose1(1e-10);//生成double型模板}break;default:cout<<"输入选择错误!!!"<Mat[0]----->Mat[0][0]Mat[0][1]……Mat[0][j]Mat[1]----->Mat[1][0]Mat[1][1]……Mat[1][
7、j]::Mat[i]----->Mat[i][0]Mat[i][1]……Mat[i][j]实现构造的代码为:templateCMatrix::CMatrix(introw,intcol)//两个参数的构造函数{inti,j;nRow=row,nCol=col;Mat=newT*[nRow];for(i=0;i8、第["<>Mat[i][j];}}3、运算符的重载要实现矩阵间的乘法运算,有必要对其运算符进行重载。而乘法运算符又要针对不同数据类型进行运算,因此,对运算符重载函数模板化也是很有必要的。templateCMatrixoperator*(CMatrix&mat1,CMatrix&ma
8、第["<>Mat[i][j];}}3、运算符的重载要实现矩阵间的乘法运算,有必要对其运算符进行重载。而乘法运算符又要针对不同数据类型进行运算,因此,对运算符重载函数模板化也是很有必要的。templateCMatrixoperator*(CMatrix&mat1,CMatrix&ma
此文档下载收益归作者所有