c++课程设计-矩阵的运算

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《C++程序设计》学号:1167111113姓名:张新班级:计算机一班目录第1章需求分析.....................................................................................................................................................2第2章总体设计.....................................................................................................................................................4第3章类的设计.....................................................................................................................................................43.1matrix类的设计..........................................................................................................................................4第4章详细设计.....................................................................................................................................................54.1函数的调用关系........................................................................................................................................64.2主程序流程图............................................................................................................................................7第5章测试.............................................................................................................................................................8第6章总结...........................................................................................................................................................12附录:程序代码.....................................................................................................................................................13第1章需求分析内蒙古科技大学课程设计任务书课程名称C++语言课程设计设计题目矩阵类的设计指导教师时间2011-2012春学期第17、18周一、教学要求1.巩固和加深学生对C++语言课程的基本知识的理解和掌握2.掌握C++语言编程和程序调试的基本技能3.利用C++语言进行基本的软件设计4.掌握书写程序设计说明文档的能力5.提高运用C++语言解决实际问题的能力二、设计资料及参数用C++设计一个程序,能提供下列功能:设计一个矩阵类,包含行、列和矩阵数据元素,完成如下功能:(1)输入矩阵。按照行顺序输入矩阵的每一个元素。(2)矩阵的运算。重载“+”和“*”实现矩阵的加法和矩阵的乘法。(3)转置。重载“-”运算符实现矩阵的转置。(4)输出。重载“”运算符实现矩阵的输出。三、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和力一法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书第2章总体设计系统的功能结构,用文字描述系统要完成的功能,用结构框图表示各个功能之间的关系。第3章类的设计matrix类输入+运算*运算-转置运算输出定义格式如下:3.1Matrix类的设计Classmatrix{数据成员:intlength;//长intwidth;//宽int*p//矩阵的存储空间函数成员:matrix(matrix&jz)//拷贝构造函数matrixoperator+(matrix&jz);//重载+加法matrixoperator*(matrix&jz);//重载*乘法voidoperator=(matrixjz);//重载=matrixoperator-();//重载-转置friendostream&operator(ostream&sss,matrix&jz);//友源重载输出friendistream&operator(istream&sss,matrix&jz);matrix()//无参构造函数matrix(intl,intw,int*c)//有参构造函数matrix(intl,intw)//构造函数~matrix()//析构函数第4章详细设计4.1函数的调用关系4.2主程序流程图main()主函数输入函数+运算函数*运算函数-运算函数退出系统输出函数进入函数,进入输入目录选择所需运算+运算*运算-运算输出结果第5章测试程序的运行结果截图。选择需要的运算加法运算矩阵输入乘法运算第6章总结因为对编程语言不太感兴趣,所以没怎么用心去学,学的不太好,只能做到这种成度,虽然简单了一点,但是尽力了啊!!!!!!!!!!!!!!!附录:程序代码#includeiostream.h#includestdio.h#includemath.hclassmatrix{private:intlength;intwidth;int*p;public:matrix(matrix&jz){width=jz.width;length=jz.length;p=newint[width*length];for(inti=0;iwidth*length;i++){p[i]=jz.p[i];}}matrixoperator+(matrix&jz);matrixoperator*(matrix&jz);voidoperator=(matrixjz);matrixoperator-();friendostream&operator(ostream&sss,matrix&jz);friendistream&operator(istream&sss,matrix&jz);matrix(){length=0;width=0;p=0;}matrix(intl,intw,int*c){length=l;width=w;p=newint[width*length];for(inti=0;iwidth*length;i++){p[i]=c[i];}}matrix(intl,intw){length=l;width=w;p=newint[l*w];}~matrix(){deletep;}};voidmatrix::operator=(matrixjz){intj;width=jz.width;length=jz.length;p=newint[width*length];for(inti=0;iwidth*length;i++){p[i]=jz.p[i];}}matrixmatrix::operator+(matrix&jz){inti,j;int*c=newint[length*width];for(i=0;ilength*width;i++){c[i]=p[i]+jz.p[i];}matrixa(length,width,c);returna;}matrixmatrix::operator*(matrix&jz){inti,j,t,s;s=0;int*c=newint[length*width];for(i=0;iwidth;i++)for(j=0;jlength;j++){for(t=0;twidth;t++){s+=p[i*width+t]*jz.p[j*length+t];}c[i*width+j]=s;}matrixa(length,width,c);returna;}matrixmatrix::operator-(){inti,j;int*c=newint[length*width];for(i=0;iwidth;i++)for(j=0;jlength;j++){c[i*width+j]=p[j*length+i];}matrixa(length,width,c);returna;}ostream&operator(ostream&sss,matrix&jz){inti,j;for(i=0;ijz.width;i++){for(j=0;jjz.length;j++){coutjz.p[i*jz.width+j];}coutendl;}returnsss;}istream&operator(istream&sss,matrix&jz){intl,w,*c,i,j;cout请输入矩阵endl;cinlw;jz.p=newint[l*w];jz.width=w;jz.length=l;c=jz.p;for(i=0;ijz.width*jz.length;i++){cinc[i];}returnsss;}voidmain(){matrixa,b,c;intx;cina;cinb;cout(1)两矩阵相加endl;cout(2)两矩阵相乘endl;cout(3)矩阵转置endl;cout请输入需要运算的序号:endl;cinx;switch(x){case1:c=(a+b);break;case2:c=(a*b);break;case3:c=a.operator-();break;}cout结果:endl;coutc;}参考资料:c++课本;C课本;同学指导;t

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功