软件开发基础报告.doc

软件开发基础报告.doc

ID:56104014

大小:196.12 KB

页数:19页

时间:2020-03-16

软件开发基础报告.doc_第1页
软件开发基础报告.doc_第2页
软件开发基础报告.doc_第3页
软件开发基础报告.doc_第4页
软件开发基础报告.doc_第5页
资源描述:

《软件开发基础报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、中国矿业大学徐海学院软件开发基础实践报告姓名:学号:专业:计算机科学与技术指导教师:职称:2012年6月17徐州姓名/学号:班级:一、程序来源:网络二、程序项目名称:矩阵乘法三、程序原理:程序以二维数组作为矩阵的存储结构,通过键盘输入矩阵维数n,动态分配内存空间,创建n维矩阵。矩阵建立后再通过键盘输入矩阵的各个元素值;也可以通过文件读入矩阵的各项数据(维数及各元素值)。当要对矩阵作进一步操作(A*B或A*B^(-1))时,先判断内存中是否已经有相关的数据存在,若还未有数据存在则提示用户先输入相关数据。

2、当要对矩阵进行求逆时,先利用矩阵可逆的充要条件:

3、A

4、!=0判断矩阵是否可逆,若矩阵的行列式

5、A

6、==0则提示该矩阵为不可逆的;若

7、A

8、!=0则求其逆矩阵,并在终端显示其逆矩阵。四、程序功能:设计一个矩阵相乘的程序,首先从键盘输入两个矩阵a,b的内容,并输出两个矩阵,输出ab-1结果。五、程序内容(输入输出):1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:建立一个文件,可完成2维矩阵的情况;3.进一步要求:通过键盘输入维数n。有兴趣的同学可以自己扩充系统功能。六、

9、数据流分析(定义的变量,类型,数组,类型,结构体):数据对象:D={a(I,j)

10、i=1,2,3,…,n;j=1,2,…,n;a(i,j)∈ElemSet,n为矩阵维数}数据关系:R={Row,Col}Row={

11、1<=i<=n,1<=j<=n-1}Col={

12、1<=i<=n-1,1<=j<=n}七、程序代码分析(每个函数和代码模块的功能作用分析):1.抽象数据类型ADTMatrixMulti{数据对象:D={a(I,j)

13、i=1,2

14、,3,…,n;j=1,2,…,n;a(i,j)∈ElemSet,n为矩阵维数}数据关系:R={Row,Col}Row={

15、1<=i<=n,1<=j<=n-1}Col={

16、1<=i<=n-1,1<=j<=n}基本操作:Swap(&a,&b);初始条件:记录a,b已存在。操作结果:交换记录a,b的值。CreateMatrix(n);操作结果:创建n维矩阵,返回该矩阵。Input(&M);初始条件:矩阵M已存在。操作结果:从终端读入矩阵M的

17、各个元素值。Print(&M)初始条件:矩阵M已存在。操作结果:在终端显示矩阵M的各个元素值。ReadFromFile();操作结果:从文件读入矩阵的相关数据。Menu_Select();操作结果:返回菜单选项。MultMatrix(&M1,&M2,&R);初始条件:矩阵M1,M2,R已存在。操作结果:矩阵M1,M2作乘法运算,结果放在R中。DinV(&M,&V);初始条件:矩阵M,V已存在。操作结果:求矩阵M的逆矩阵,结果放入矩阵V中。MatrixDeterm(&M,n);初始条件:矩阵M已存在。操

18、作结果:求矩阵M的行列式的值。}ADTMatrixMulti2.矩阵求逆算法设计思想算法采用高斯-约旦法(全选主元)求逆,主要思想如下:首先,对于k从0到n-1作如下几步:①从第k行、第k列开始的右下角子阵中选取绝对值最大的元素,并记住此元素所在的行号与列号,再通过行交换和列交换将它交换到主元素位置上。这一步称为全选主元。②主元求倒:M(k,k)=1/M(k,k)③M(k,j)=M(k,j)*M(k,k);j=0,1,…,n-1;j!=k④M(i,j)=M(i,j)–M(i,k)*M(k,j);i,j

19、=0,1,…,n-1;i,j!=k⑤M(i,k)=-M(i,k)*M(k,k),i=0,1…,n-1;i!=k最后,根据在全选主元过程中所记录的行、列交换的信息进行恢复,恢复原则如下:在全选主元过程中,先交换的行(列)后进行恢复;原来的行(列)交换用列(行)交换来恢复。3.矩阵行列式求值运算算法设计思想利用行列式的性质:行列式等于它的任一行(列)各元素与其对应的代数余子式乘积,即D=∑a(i,k)*A(i,k);k=1,2,…,n;D=∑a(k,j)*A(k,j);k=1,2,…,n;再利用函数的递归

20、调用法实现求其值。4.各函数间的调用关系Main()ReadFromFile()DinV()Swap()Print()Menu_Select()MatrixDeterm()CreateMatrix()MultMatrix()Input()八、控制流分析(源程序整体流程图):否否是否是是否是否否是开始switch(Menu_Select())case1:case3:case2:n>0?是输入矩阵维数n输入矩阵A,B输出矩阵维数nsystem(“pause”

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。