面向对象程序设计课程设计报告

上传人:桔**** 文档编号:512292650 上传时间:2023-10-29 格式:DOC 页数:26 大小:146KB
返回 下载 相关 举报
面向对象程序设计课程设计报告_第1页
第1页 / 共26页
面向对象程序设计课程设计报告_第2页
第2页 / 共26页
面向对象程序设计课程设计报告_第3页
第3页 / 共26页
面向对象程序设计课程设计报告_第4页
第4页 / 共26页
面向对象程序设计课程设计报告_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《面向对象程序设计课程设计报告》由会员分享,可在线阅读,更多相关《面向对象程序设计课程设计报告(26页珍藏版)》请在金锄头文库上搜索。

1、 面向对象程序设计课程设计报告院 系 物理与电子工程系 专 业 电子信息工程(本) 班 级 电子信息工程(本)121班 姓 名 学 号 _指导教师单位广西民族师范学院数计系_指导教师姓名_ _ 完成日期 2014年 6月 27 日 / 文档可自由编辑打印第一章 需求分析1.1引言 当我们在学线性代数的时候,都需要学习矩阵的相关内容,在学习的时候,当然离不开矩阵的相关计算,例如求矩阵的加、减、乘、运算,判断两个矩阵是否相等,求矩阵的行列式以及矩阵的逆等等。要知道其结果,往往要花比较多的时间去计算,因此,设计一个能完成这些计算的程序是很有必要的。它可以帮助我们便捷、快速地完成计算,节约我们宝贵的时

2、间。1.2任务概述 (A) 使用C+设计矩阵类及相应的测试主程序。该矩阵类可进行基本的统计计算,矩阵类的每一行为一向量,基本统计计算针对该向量进行。矩阵生成可如1方式实现,也可以从磁盘文件中读入。矩阵的行、列数有默认值,也可通过类成员函数设置更改;如从磁盘文件读入,该磁盘文件名及其存储路径有默认值,也可通过类成员函数设置更改;矩阵类有加、减、乘、判断相等的运算成员函数;基本统计计算包括求均值、协方差;基本统计计算结果在该类对象退出作用域时可自动存入磁盘文件,该磁盘文件名及其存储路径有默认值,也可通过类成员函数设置更改。(B) 在按上述要求实现的C+类中添加可求协方差矩阵对应的行列式值和求矩阵(

3、方阵)逆的类成员,更改测试主程序对此加以验证要求: (1)提交类声明头文件、类实现文件和测试程序文件3个源代码文件; (2)2014年6月27日前完成并提交。1.3数据描述 该程序包含一下信息: 1)、声明一个矩阵类 2)、有矩阵的输入、输出功能 3)、有完成矩阵计算个功能函数1.4功能需求根据要求设计一个矩阵类及相应的测试主程序,该矩阵类可进行基本的统计计算,矩阵类有加、减、乘、判断相等的运算成员函数,可求协方差矩阵对应的行列式值和求矩阵(方阵)逆的类成员。1.5运行需求 应用VisualC+,VisualC+6.0不仅仅是一个C+编译器,而且是一个基于Windows操作系统的是集成开发环境

4、,这种环境开发出来的软件稳定性好、可移植性强,可以编制各种的Windows应用程序。 第二章 概要设计2.1 矩阵类(Matrix)设计 根据题目要求,设计矩阵类及相应的测试主程序:矩阵类可进行基本的统计计算 详细程序代码如下:class Matrix public: Matrix(); /无参构造函数 friend void In(Matrix &); /设置为友元的输入函数 friend void Out(Matrix &); /设置为友元的输出函数 Matrix operator +(Matrix &); /加法重载函数 Matrix operator -(Matrix &); /减法重

5、载函数 Matrix operator *(Matrix &); /乘法重载函数 friend Matrix Adjunct(Matrix &, int , int ); /设置成友元的求代数余子式 friend double Det(Matrix &); /设置成友元的递归求行列式 friend Matrix Inv(Matrix &); /设置成友元的求矩阵的逆 private: int m,n; /矩阵的行数和列数 Datatype *p; /矩阵的基址;2.2 输入、输出显示矩阵模块设计主要功能是检验从键盘输入矩阵的保存及输出显示该矩阵。再对系统进行加、减、乘等一系列操作。程序代码如下

6、:void In(Matrix &a) /输入函数 couta.ma.n;int i,j;a.p=new Datatypea.m*a.n;Datatype *q;cout请按行优先输入矩阵endl;for(j=0;ja.m;j+) for(q=a.p+j*a.n,i=0;i*q;void Out(Matrix &b) /输出函数 int i,j; Datatype *p=b.p; double *q; for(i=0;ib.m;i+) for(q=p+i*b.n,j=0;jb.n;j+,q+) cout*qt; if(j=b.n-1) coutendl; 测试输入、输出显示情况2.3两个矩阵加

7、、减、乘运算模块设计程序代码如下:Matrix Matrix:operator+(Matrix &b) /加法重载函数 if(m!=b.m|n!=b.n) coutn行或列不匹配; exit(0); Matrix c; c.m=m; c.n=n; c.p=new doublem*n; int i,j; for(i=0;im;i+) for(j=0;jn;j+) c.pi*c.n+j=pi*c.n+j+b.pi*c.n+j; Out(c); return c;Matrix Matrix:operator -(Matrix &b) /减法重载函数 if(m!=b.m|n!=b.n) coutn行或

8、列不匹配; exit(0); Matrix c; c.m=m; c.n=n; c.p=new doublem*n; for(int i=0;im;i+) for(int j=0;jn;j+) c.pi*c.n+j=pi*c.n+j-b.pi*c.n+j; Out(c); return c;Matrix Matrix:operator *(Matrix &b) /乘法重载函数 Matrix c; c.m=m; c.n=n; c.p=new doublem*n; if(m!=b.n) coutn行列不匹配; exit(0); int i,j,k; for(i=0;im;i+) for(j=0;jb

9、.n;j+) for(c.pi*b.n+j=0,k=0;kb.n;k+) c.pi*b.n+j+=pi*b.n+k*b.pk*b.n+j; Out(c); return c;测试任意两个矩阵加、减、乘情况例如,输入以下两个矩阵,矩阵a: 矩阵b:1 2 3 1 4 74 5 6 2 5 87 8 9 3 6 9其效果如下:2.4求矩阵对应的行列式值和求矩阵(方阵)逆设计模块程序代码如下:Matrix Adjunct(Matrix &a, int indexm, int indexn) /求第indexm行indexn列元素 的代数余子式 Matrix adj ; adj.m=a.m - 1;

10、adj.n=a.n - 1; adj.p = new double(a.n-1) * (a.n-1); for (int i=0; iindexm; i+) for (int j=0; jindexn; j+) adj.pi*(a.n-1) +j = a.pi*a.n+j; for (int k=indexn+1; ka.n;k+) adj.pi *(a.n-1)+k-1 = a.pi*a.n+k; for (int m=indexm+1; ma.n; m+) for (int j=0;ja.n-1;j+) adj.p(m-1)*(a.n-1)+j=a.pm*a.n+j; for (int k

11、=indexn+1; ka.n;k+) adj.p(m-1)*(a.n-1)+k-1=a.pm*a.n+k; return adj;double Det(Matrix &a) /递归求行列式 double det = 0; if (a.m != a.n) cout不是方阵,没有行列式!endl; cout求行列式退出endl; if (a.n = 1) det = a.p0; return det; else for (int i = 0; i a.n; i+) if (i % 2 = 0) det += a.pi * a.n * Det(Adjunct(a, i, 0); else det -= a.pi * a.n * Det(Adjunct(a, i, 0); return det;Matrix Inv(Matrix &a) /求矩阵的逆 Matrix temp ; temp.m=a.n; temp.n=a.m

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号