欢迎来到天天文库
浏览记录
ID:25465853
大小:167.50 KB
页数:25页
时间:2018-11-20
《面向对象程序设计课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、面向对象程序设计课程设计报告院系物理与电子工程系专业电子信息工程(本)班级电子信息工程(本)121班姓名学号_______指导教师单位广西民族师范学院数计系_____指导教师姓名____完成日期2014年6月27日第一章需求分析1.1引言当我们在学线性代数的时候,都需要学习矩阵的相关内容,在学习的时候,当然离不开矩阵的相关计算,例如求矩阵的加、减、乘、运算,判断两个矩阵是否相等,求矩阵的行列式以及矩阵的逆等等。要知道其结果,往往要花比较多的时间去计算,因此,设计一个能完成这些计算的程序是很有必要的。它可
2、以帮助我们便捷、快速地完成计算,节约我们宝贵的时间。1.2任务概述(A)使用C++设计矩阵类及相应的测试主程序。该矩阵类可进行基本的统计计算,矩阵类的每一行为一向量,基本统计计算针对该向量进行。矩阵生成可如1方式实现,也可以从磁盘文件中读入。矩阵的行、列数有默认值,也可通过类成员函数设置更改;如从磁盘文件读入,该磁盘文件名及其存储路径有默认值,也可通过类成员函数设置更改;矩阵类有加、减、乘、判断相等的运算成员函数;基本统计计算包括求均值、协方差;基本统计计算结果在该类对象退出作用域时可自动存入磁盘文件,
3、该磁盘文件名及其存储路径有默认值,也可通过类成员函数设置更改。(B)在按上述要求实现的C++类中添加可求协方差矩阵对应的行列式值和求矩阵(方阵)逆的类成员,更改测试主程序对此加以验证24要求:(1)提交类声明头文件、类实现文件和测试程序文件3个源代码文件;(2)2014年6月27日前完成并提交。1.3数据描述该程序包含一下信息:1)、声明一个矩阵类2)、有矩阵的输入、输出功能3)、有完成矩阵计算个功能函数1.4功能需求根据要求设计一个矩阵类及相应的测试主程序,该矩阵类可进行基本的统计计算,矩阵类有加、减
4、、乘、判断相等的运算成员函数,可求协方差矩阵对应的行列式值和求矩阵(方阵)逆的类成员。1.5运行需求应用VisualC++,VisualC++6.0不仅仅是一个C++编译器,而且是一个基于Windows操作系统的是集成开发环境,这种环境开发出来的软件稳定性好、可移植性强,可以编制各种的Windows应用程序。24第二章概要设计2.1矩阵类(Matrix)设计根据题目要求,设计矩阵类及相应的测试主程序:矩阵类可进行基本的统计计算详细程序代码如下:classMatrix{public:Matrix();//
5、无参构造函数friendvoidIn(Matrix&);//设置为友元的输入函数friendvoidOut(Matrix&);//设置为友元的输出函数Matrixoperator+(Matrix&);//加法重载函数Matrixoperator-(Matrix&);//减法重载函数Matrixoperator*(Matrix&);//乘法重载函数friendMatrixAdjunct(Matrix&,int,int);//设置成友元的求代数余子式frienddoubleDet(Matrix&);//设置
6、成友元的递归求行列式friendMatrixInv(Matrix&);//设置成友元的求矩阵的逆private:intm,n;//矩阵的行数和列数Datatype*p;//矩阵的基址};2.2输入、输出显示矩阵模块设计主要功能是检验从键盘输入矩阵的保存及输出显示该矩阵。再对系统进行加、减、乘等一系列操作。程序代码如下:24voidIn(Matrix&a)//输入函数{cout<<"请输入行、列数";cin>>a.m>>a.n;inti,j;a.p=newDatatype[a.m*a.n];Datatyp
7、e*q;cout<<"请按行优先输入矩阵"<>*q;}voidOut(Matrix&b)//输出函数{inti,j;Datatype*p=b.p;double*q;for(i=0;i8、阵加、减、乘运算模块设计程序代码如下:MatrixMatrix::operator+(Matrix&b)//加法重载函数{if(m!=b.m9、10、n!=b.n){cout<<"行或列不匹配";exit(0);}Matrixc;c.m=m;c.n=n;c.p=newdouble[m*n];inti,j;24for(i=0;i
8、阵加、减、乘运算模块设计程序代码如下:MatrixMatrix::operator+(Matrix&b)//加法重载函数{if(m!=b.m
9、
10、n!=b.n){cout<<"行或列不匹配";exit(0);}Matrixc;c.m=m;c.n=n;c.p=newdouble[m*n];inti,j;24for(i=0;i
此文档下载收益归作者所有