矩阵的加减乘2Word文档下载推荐.docx
《矩阵的加减乘2Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《矩阵的加减乘2Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
1.遵循结构化程序设计思想编程实现,附必要注释。
2.界面友好,操作简便,容错性好。
指导教师:
李婧教研室负责人:
郑坤
课程设计评阅
评语:
指导教师签名:
年月日
摘要
设计了一个矩阵运算系统,该矩阵运算系统具有普通矩阵的相加、相减、相乘等功能。
本运算系统以MicrosoftVisualC++作为系统开发工具,采用算法表达式处理算法来实现矩阵的加、减、乘运算。
系统操作简单,界面清晰,易于为用户所接受。
关键词:
矩阵;
二维数组;
VC++
1课题描述
数据结构是一门理论性强、思维抽象、难度较大的课程,是基础课和专业课之间的桥梁只有进行实际操作,将理论应用于实际中,才能确实掌握书中的知识点。
通过课程设计,不仅可以加深学生对数据结构基本概念的了解,巩固学习成果,还能够提高实动手力。
为学生后继课程的学习打下良好的基础。
本次课设的设计内容是矩阵的相加,相减,相乘运算。
由键盘任意输入两个矩阵,对运算的合法性进行判断,根据判断结果作出相应处理。
经过分析后可以发现虽然计算存在规律,但是输入数据没有规律。
所以我就将其设计为一个循环运算的程序,这样我就把没有规律的数据有规律的存放在连续的内存单元中。
设计的过程中要遵循结构化程序设计思想,必要时附上相应的注释。
此程序的功能可以分解为三个大的部分,第一部分就是实现数据的输入与对合法性的判断;
第二部分就是实现两个矩阵的加减乘运算以及结果的保存;
第三部分的功能就是实现对第二部分运算结果的输出显示。
通过本次课设,可以使我们对程序的调试方法及思想有更进一步的理解。
并且让我们学会了使用一些编程技巧,使学我们养成良好的编程习惯。
2需求分析
1).数据由用户从键盘输入,要求用户进行输入选择再进行运算,界面要求简约。
2).实现矩阵的存储,输出,计算的功能。
3).运算系统包括矩阵的加减和乘运算,要求用户必须可以输入任何矩阵并可以实现用户需求。
3概要设计
这次试验主要运用MicrosoftVisualC++编译工具,使用C语言进行编程。
首先通过C语言考虑到用户的界面,使用选择界面进行操作。
然后在输入矩阵的时候采用二维数组的方法实现存储并按照格式输出,这样可以实现简约美。
在循环的时候采用内外嵌套循环使用使运算可以更加清楚。
因为考虑到加减运算法则一致所以采用了加减同时运算,乘法分开运算然后可以符合用户需求,在进行判断的时候必须在输入的时候就提前先进行判断,然后在输入两个矩阵之后在进行矩阵运算法则的判断。
运算完成之后可以继续选择运算不至于跳出又要重复启动程序,最后会选择退出。
演示程序以用户和计算机对话的方式执行,即在计算机的终端上的“信息提示”下进行相关的数据的输入和操作。
4详细设计
本程序用数组存储的方式建立矩阵,最终利用菜单来选择是进行相加还是相减或相乘运算,在输入每个数据前都先对其进行判断,若有错则提示重新输入,若无错将继续进行。
该程序的流程图如图所示:
图矩阵运算主流程图
图加法运算流程图
5程序编码
#include<
>
#defineM40
#defineN40
floatA[M][N];
floatB[M][N];
floatC[M][N];
inti,j,m,n,p,q,k;
intmain()
{
printf("
###########################################\n"
);
###欢迎您使用矩阵计算器系统。
###\n"
###系统功能:
###矩阵的加减乘运算;
############################################\n\n"
intx;
do{
printf("
请选择您需要的运算,若退出则选择0后按回车键结束\n"
******************************************************************\n"
0,退出\n"
1,矩阵相加减\n"
2,矩阵相乘\n"
scanf("
%d"
&
x);
switch(x)
{
case0:
printf("
谢谢您使用该系统!
"
break;
**\n\n"
printf("
请输入矩阵A的行数和列数(用逗号隔开):
scanf("
%d,%d"
i,&
j);
}
printf("
请输入矩阵B的行数和列数(用逗号隔开):
);
scanf("
m,&
n);
while(m<
=0||n<
=0)
{
***对不起,您输入有误,请重新输入.***\n\n"
while(i!
=m||j!
=n)**\n\n"
请输入矩阵A:
\n"
**\n\n"
while(j!
=m||n!
=i)**\n"
请重新输入矩阵B的行数和列数(用逗号隔开):
据结构习题与解析[M](C语言版).北京:
清华大学出版社,2002
[2]谭浩强.C程序设计教程[M].北京:
清华大学出版社,2007
[3]苏仕民.数据结构课程设计.北京:
机械工业出版社,2005
[4]陈维兴、林小茶.C++面向对象程序设计教程.北京:
清华大学出版社,2009
[5]严蔚敏、吴伟民.数据结构(C语言版).北京:
[6]徐孝凯.数据结构实用教程(C/C++描述)[M].北京:
清华大学出版社,1999