C++程序设计矩阵操作 下载本文

摘要:

这次C++的课程设计题目是矩阵操作。矩阵是二维数组在数学上的称呼,矩阵操作是二维数组的基本运算,包括矩阵翻转、矩阵卷动、矩阵旋转等,涉及不同的方向与角度。其中矩阵翻转的实质就是沿数组的某个中心轴进行翻转,并借用第三变量,对数组的元素值进行交换。水平翻转的中心轴是垂直中心轴,而垂直翻转的中心轴是水平中心轴。矩阵卷动的实质就是进行整行或整列的移位,其中左右卷动是进行整行的循环移位,上下卷动是进行整列的循环移位,并借用第三变量进行数据的交换,矩阵卷动一定要注意行列。矩阵旋转最重要的是掌握旋转的方向与角度,矩阵旋转有顺时针与逆时针两个不同的旋转方向,并在每个不同的旋转方向中又有四种不同的角度(90度,180度,270度,360度)。在矩阵旋转中不能借用第三数组,就需要用到循环移位,并考虑到内外循环,移位时借用第三变量进行数据交换,矩阵旋转要注意的是内外圈。本课题对二维数组的基本理论进行了全面的回顾,详细研究了矩阵翻转、卷动、旋转的详细算法,给出了主要的流程图。最终,基于Visual C++6.0编写软件代码,运行结果与理论分析基本吻合。

关键词:矩阵翻转,矩阵卷动,矩阵旋转

1

目 录

一.需求分析 ................................................................. 错误!未定义书签。

1.1课程设计题目 ................................................ 错误!未定义书签。 1.2课程设计任务及要求 .......................................... 错误!未定义书签。 1.3课程设计思想 ................................................ 错误!未定义书签。 1.4软硬件运行环境及开发工具 ................................... 错误!未定义书签。

二.概要设计 ................................................................. 错误!未定义书签。

2.1课程设计所用方法及其原理 ................................... 错误!未定义书签。 2.2课程设计流程图 ................................................ 错误!未定义书签。

三.详细设计 ................................................................. 错误!未定义书签。

3.1矩阵翻转 ....................................................................... 3 3.2矩阵卷动 ....................................................................... 4 3.3矩阵旋转 ...................................................... 错误!未定义书签。

四.调试与操作说明 ................................................. 错误!未定义书签。7 总结 .................................................................................... 错误!未定义书签。 致谢 .................................................................................................................... 39 参考文献 ............................................................................................................40

2

一、需求分析

1.1课程设计题目

矩阵这一具体概念是由19世纪英国数学家凯利首先提出并形成矩阵代数这一系统理论的。但是追根溯源,矩阵最早出现在我国的<九章算术>中,在<九章算术>方程一章中,就提出了解线性方程各项的系数、常数按顺序排列成一个长方形的形状。随后移动处筹,就可以求出这个方程的解。在欧洲,运用这种方法来解线性方程组,比我国要晚2000多年。数学上,一个m×n矩阵乃一m行n列的矩形阵列。矩阵由数组成,或更一般的,由某环中元素组成。矩阵常见于线性代数、线性规划、统计分析,以及组合数学等。

矩阵的研究历史悠久,拉丁方阵和幻方在史前年代已有人研究。作为解决线性方程的工具,矩阵也有不短的历史。1693年,微积分的发现者之一戈特弗里德威廉?莱布尼茨建立了行列式论(theory of determinants)。1750年,加布里尔?克拉默其后又定下了克拉默法则。1800年代,高斯和威廉?若尔当建立了高斯—若尔当消去法。1848年詹姆斯?约瑟夫?西尔维斯特首先创出matrix一词。研究过矩阵论的著名数学家有凯莱、威廉?卢云?哈密顿、格拉斯曼、弗罗贝尼乌斯和冯?诺伊曼。

矩阵就是由方程组的系数及常数所构成的方阵。把用在解线性方程组上既方便,又直观。例如对于方程组:

a1x+b1y+c1z=d1 a2x+b2y+c2z=d2 a3x+b3y+c3z=d3

来说,我们可以构成两个矩阵:

a1b1c1a1b1c1d1 a2b2c2a2b2c2d2 a3b3c3a3b3c3d3 因为这些数字是有规则地排列在一起,形状像矩形,所以数学家们称之为矩阵,通过矩阵的变化,就可以得出方程组的解来。矩阵这一具体概念是由19世纪英国数学家凯利首先提出并形成矩阵代数这一系统理论的。根据矩阵的理论,8年前美国行销专家托马斯发现了一种新的团队排列方式,并分类为2*15

1

矩阵和3*9矩阵等等,并采用精算的方法确定矩阵中每个点为单位进行利益的分配,也是人们常说的“见点拿钱”,矩阵制度的公平、公开、公正的魅力,令这种全新的行销模式风靡欧美国家多年。

当今社会矩阵运用与很多的领域:例如“矩阵式管理”是美国加州理工学院天体物理学系F·茨维基教授发明的一种通过建立系统结构来解决问题的创新方法,后来被推广为激励创新的一种管理方法。“矩阵式管理”组织结构是在克服单项垂直式组织结构缺点的基础上形成的。“矩阵式管理”组织的主要优点有:使管理中的横向联系和纵向联系、分权化与集权化有机结合起来;便于各个管理部门之间相互协调和相互监督;信息线路较短,反馈较快,组织应变生存能力强。“矩阵式管理”,不仅解决了管理机制过程中专业化与综合化的矛盾,使装备工作达到精干、合成、高效的辐射效应,而且为未来装备管理体制的调整改革预留了接口。一旦装备品种增加,只需按专业归口编组;如果专业调整了,也可以保障力量重新组合,专业模块改变了,“群队组织”的编成依然牢固。这就克服了原来那种出现一种装备就要增加一个部门的恶性循环。还有矩阵式结构最早应用于飞机制造和航天器械的生产项目中。

1.2课程设计任务及要求

1.利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;

2.及时完成预设计,并请指导教师审查。通过后方可进行下一步工作; 3.按指导书要求设计软件,实现矩阵典型操作,并显示结果;

4.要求形成稳定的程序软件,可以运行,方可申请参加答辩,结束后,及时提交课程设计报告(含纸质稿、电子稿);

5.了解矩阵定义、性质、基本运算等理论基础;

6.理解矩阵旋转、翻转等典型操作的原理及求解思路与方法; 7.练习使用C++语言中循环、数组等知识编写应用程序的基本步骤; 8.学习软件开发过程及资料收集与整理,学会撰写课程设计报告; 9.学会对所学知识进行总结与提高,加深对课堂知识的理解与灵活应用。

1.3课程设计思想

矩阵的翻转无非就是沿某个中心轴翻转,或垂直,或水平翻转。而它的实

2