欢迎来到天天文库
浏览记录
ID:20894688
大小:117.00 KB
页数:15页
时间:2018-10-17
《c++矩阵简单的计算器》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C++课程设计---矩阵简单的计算器一、设计目的1、熟练掌握和运用c++编写程序代码的能力。2、初步了解输入、建立并输出矩阵以及矩阵加法、减法、乘法、赋值和转置的算法设计。3、掌握基本的运算符重载函数的书写。4、掌握静态数据成员和静态成员函数的具体声明和实现,体会它们的特殊作用。5、掌握并体会动态内存分配的实际应用。6、运用简单的循环实现简单的菜单程序。二、总体设计(1)UML图Matrix+Matrix(intl:int,w:int,n:int*)+Matrix()+Matrix(jz:Matrix&)+setnum(l:int
2、,w:int):void+operator+(constjz:Matrix&):Matrix+operator-(constjz:Matrix&):Matrix+operator*(constjz:Matrix&):Matrix+zhuanzhi():Matrix+show():void+~Matrix()<>+getflag():intvoidgetmn(int&m,int&n)-num:int*-length:int-width:int-flag:int=0(2)流程图真真真真真真假假假假假假A+运算flag输
3、出breakMflag-运算输出breakSflag*运算输出breakFflag=运算输出breakTflag转置输出break开始定义switchQ?退出三、详细设计(1)类中的函数功能及实现1、有参数的构造函数Matrix(intl,intw,int*n);实现:Matrix::Matrix(intl,intw,int*n){length=l;width=w;num=newint[length*width];int*p=num;for(inti=0;i4、数的对象变量初始化。1、无参构造函数(默认形式的构造函数)Matrix()实现:Matrix::Matrix(){length=1;width=1;num=newint(1);}说明:为无参数的对象进行初始化。2、矩阵的拷贝构造函数Matrix::Matrix(Matrix&jz)实现:Matrix::Matrix(Matrix&jz){length=jz.length;width=jz.width;num=newint[length*width];for(inti=0;i5、(jz.num+i);}}目的:用已存在的对象jz去初始化新建立的对象。3、矩阵输入函数voidMatrix::setnum(intl,intw)实现:voidMatrix::setnum(intl,intw){length=l;width=w;if(l==06、7、w==0){cout<<"矩阵行列不能为0"<8、<>*(p+i*width+j);}}}}说明:矩阵输入函数主要读进去需要进行计算的原始矩阵,要注意的是矩阵的行列数不能为1,所以应该用选择语句排除一行一列的矩阵出现。首先用动态内存分配,给要录入的矩阵开辟需要录入的空间length*width。然后运用循环语句,将矩阵的每个元素9、录入。1、加运算符重载函数MatrixMatrix::operator+(constMatrix&jz)实现:MatrixMatrix::operator+(constMatrix&jz){if(length==jz.length&&width==jz.width){flag=1;int*n=newint[length*width];for(inti=0;i10、th>1){delete[]n;}else{deleten;}returntemp;}else{Matrixtemp;flag=0;returntemp;}}说明:加法运算符重载为类的成员函数,可以通过类的每个对象访问重载的运算符。加法矩阵运算,要
4、数的对象变量初始化。1、无参构造函数(默认形式的构造函数)Matrix()实现:Matrix::Matrix(){length=1;width=1;num=newint(1);}说明:为无参数的对象进行初始化。2、矩阵的拷贝构造函数Matrix::Matrix(Matrix&jz)实现:Matrix::Matrix(Matrix&jz){length=jz.length;width=jz.width;num=newint[length*width];for(inti=0;i5、(jz.num+i);}}目的:用已存在的对象jz去初始化新建立的对象。3、矩阵输入函数voidMatrix::setnum(intl,intw)实现:voidMatrix::setnum(intl,intw){length=l;width=w;if(l==06、7、w==0){cout<<"矩阵行列不能为0"<8、<>*(p+i*width+j);}}}}说明:矩阵输入函数主要读进去需要进行计算的原始矩阵,要注意的是矩阵的行列数不能为1,所以应该用选择语句排除一行一列的矩阵出现。首先用动态内存分配,给要录入的矩阵开辟需要录入的空间length*width。然后运用循环语句,将矩阵的每个元素9、录入。1、加运算符重载函数MatrixMatrix::operator+(constMatrix&jz)实现:MatrixMatrix::operator+(constMatrix&jz){if(length==jz.length&&width==jz.width){flag=1;int*n=newint[length*width];for(inti=0;i10、th>1){delete[]n;}else{deleten;}returntemp;}else{Matrixtemp;flag=0;returntemp;}}说明:加法运算符重载为类的成员函数,可以通过类的每个对象访问重载的运算符。加法矩阵运算,要
5、(jz.num+i);}}目的:用已存在的对象jz去初始化新建立的对象。3、矩阵输入函数voidMatrix::setnum(intl,intw)实现:voidMatrix::setnum(intl,intw){length=l;width=w;if(l==0
6、
7、w==0){cout<<"矩阵行列不能为0"<8、<>*(p+i*width+j);}}}}说明:矩阵输入函数主要读进去需要进行计算的原始矩阵,要注意的是矩阵的行列数不能为1,所以应该用选择语句排除一行一列的矩阵出现。首先用动态内存分配,给要录入的矩阵开辟需要录入的空间length*width。然后运用循环语句,将矩阵的每个元素9、录入。1、加运算符重载函数MatrixMatrix::operator+(constMatrix&jz)实现:MatrixMatrix::operator+(constMatrix&jz){if(length==jz.length&&width==jz.width){flag=1;int*n=newint[length*width];for(inti=0;i10、th>1){delete[]n;}else{deleten;}returntemp;}else{Matrixtemp;flag=0;returntemp;}}说明:加法运算符重载为类的成员函数,可以通过类的每个对象访问重载的运算符。加法矩阵运算,要
8、<>*(p+i*width+j);}}}}说明:矩阵输入函数主要读进去需要进行计算的原始矩阵,要注意的是矩阵的行列数不能为1,所以应该用选择语句排除一行一列的矩阵出现。首先用动态内存分配,给要录入的矩阵开辟需要录入的空间length*width。然后运用循环语句,将矩阵的每个元素
9、录入。1、加运算符重载函数MatrixMatrix::operator+(constMatrix&jz)实现:MatrixMatrix::operator+(constMatrix&jz){if(length==jz.length&&width==jz.width){flag=1;int*n=newint[length*width];for(inti=0;i10、th>1){delete[]n;}else{deleten;}returntemp;}else{Matrixtemp;flag=0;returntemp;}}说明:加法运算符重载为类的成员函数,可以通过类的每个对象访问重载的运算符。加法矩阵运算,要
10、th>1){delete[]n;}else{deleten;}returntemp;}else{Matrixtemp;flag=0;returntemp;}}说明:加法运算符重载为类的成员函数,可以通过类的每个对象访问重载的运算符。加法矩阵运算,要
此文档下载收益归作者所有