数据结构实验 矩阵的运算

发布 2019-09-12 05:01:20 阅读 2875

目录。实验目的 2

功能描述 2

输入描述 2

输出描述: 2

程序分析 2

基本操作 2

主要算法分析 2

矩阵的构建 2

矩阵的加法 3

矩阵的减法 3

矩阵的乘法 4

算法的选择 5

程序运行过程 5

软件启动界面 5

加法运算 6

乘法运算 7

实验总结 8

用户手册 8

运行平台 8

系统要求 8

编译平台 8

使用方法 8

附录 9功能描述:根据用户输入的矩阵进行矩阵的加、减、乘法运算。

输入描述:根据程序的提示进行矩阵运算的选择和矩阵的输入。

输出描述:在显示屏上输出运算结果。

基本操作:构造一个空的二维数组用于存储矩阵。

addition()实现两个等行等列的矩阵的加法运算

subtraction()实现两个等行等列的矩阵的减法运算。

multiplication()实现两个任意矩阵的乘法运算。

main()主函数。

矩阵的构建:int a1,b1,a2,b2;

double **x1,**x2;

cout<<"输入第一个行数,列数:";

cin>>a1>>b1;

cout<<"输入第二个行数,列数:";

cin>>a2>>b2;

if(a1!=a2 ||b1 !=b2)

cout<<"无法相加!"<

分配地址空间。

x1=new double *[a1]; x1[动态分配指针数组。

for(int i=0;ix1[i]=new double [b1]; 为x1的每个元素动态分配数组空间。

cout<<"输入第一个矩阵:";

for(int i=0;ifor(int j=0;jcin>>x1[i][j];

分配地址空间。

x2=new double *[a2]; x2[

for(int i=0;ix2[i]=new double[b2];

cout<<"输入第二个矩阵:";

for(int i=0;ifor(int j=0;jcin>>x2[i][j];

cout<<"相加后:"<矩阵的加法:for(int i=0;i

cout<}

/释放。for(int i=0;i

cout<}

for(int i=0;i

x1=new double *[a1]; x1[

for(int i=0;ix1[i]=new double[b1];

cout<<"输入第一个矩阵:";

for(int i=0;ifor(int j=0;jcin>>x1[i][j];

x2=new double *[a2]; x2[

for(int i=0;ix2[i]=new double[b2];

cout<<"输入第二个矩阵:";

for(int i=0;ifor(int j=0;jcin>>x2[i][j];

cout<<"相乘后:"<相乘运算。

double **r=new double *[a1];

for(int i=0;ir[i]=new double[b2];

for(int q=0;qfor(int w=0;w

cout<}

for(int i=0;i

错误的使用。

1. 本次作业不是很难,总共就只有3个函数分别对应实现一种矩阵的运算。结构不是很复杂,所以调试的时候遇到的问题不是很多,但由于if和for语句比较多,而且自身没有一个良好的编程习惯,中途不少错误是缺少大括号引起的,烦了不该犯的多余的低级错误。

今后的作业中,编程一定得细心,调试得要有耐心。

2. 在这次作业中,学习到了借助debug调试器和数据观察窗口,可以加快找到程序的瑕疵,从而快速的修改错误。

运行平台:dos平台。

系统要求:xp、windows7、windows8

编译平台:windows8

使用方法:1.双击生成的文件,从而进入软件界面。

2.根据软件的提醒选择需要进行的运算。

3.倘若选择加(减)法,若两个矩阵的行、列数不相等的话,软件会报错。

4.注意输入矩阵的每一个成员是要以空格(space)键隔开。

5.依次输入完两个矩阵成员后,按下回车键,结果将出现显示屏。

附录:#include <>

/矩阵加法。

void addition()

int a1,b1,a2,b2;

double **x1,**x2;

cout<<"输入第一个行数,列数:";

cin>>a1>>b1;

cout<<"输入第二个行数,列数:";

cin>>a2>>b2;

if(a1!=a2 ||b1 !=b2)

cout<<"无法相加!"<

/分配地址空间。

x1=new double *[a1]; x1[动态分配指针数组。

for(int i=0;ix1[i]=new double [b1]; 为x1的每个元素动态分配数组空间。

cout<<"输入第一个矩阵:";

for(int i=0;i

数据结构课程设计特殊矩阵运算

特殊矩阵运算。1.1程序功能简介。对特殊矩阵能够在界面上以人们熟悉的方式显示,可以对特殊矩阵进行加法运算和减法运算,矩阵转置。按照要求使用了多种数据结构来求解问题,具体为二维数组和类似图的数据结构。由于题目要求使用多种数据结构,因此分开写了两段程序,均实现了上述要求的功能,以下将分开说明。先说明的是...

数据结构实验四 矩阵的压缩存储 题目和源程序

第11周星期三 节 一 实验目的。1 掌握下三角矩阵的输入 输出 转置算法。2 理解稀疏矩阵的三元组表类型定义,掌握稀疏矩阵的输入 输出 转置算法。二 实验要求。1 认真阅读和掌握本实验的算法思想。2 编写完整程序完成下面的实验内容并上机运行。三 实验内容。1 所谓上 下 三角矩阵是指矩阵的下 上 ...

《数据结构》实验安排

实验一线性表及其应用。实验属性 验证性。实验目的 1.深入了解线性表的各种存储结构。2.熟练掌握在各种存储结构上进行插入 删除等操作的算法。3.通过线性表结构解决现实中的一些问题。实验内容 1.顺序表就地逆置。2.单链表就地逆置。3.一元多项式的表示及相加。参考教材第39页2.4节 以上3个题目选择...