矩阵运算系统的研究与设计
摘要
矩阵运算系统是一个数据运算系统,程序主要包括矩阵的基本数据成员,矩阵运算成员函数,以及矩阵系统界面等,实现矩阵的运算和文件读入和输出操作等。
本系统用C++语言开发,包含了矩阵的最基本数据成员,其中有矩阵的维数和矩阵的个元素。类中实现了判断矩阵维数相等,是否可以相乘,是否为空矩阵等判断功能函数。以及矩阵加法、减法、乘法、转置、求矩阵行列式、矩阵余子式等运算功能。除了基本的矩阵运算功能以外,还包含了对于文件的读写,实现了更方便的读入和输出的功能。
本系统可以先用来实现对于矩阵的各种运算,可实现在控制台和文件中的读入与输出,且可以在用户指定的位置就行输入输出操作。实现了系统更方便的使用。
另外使用了system应用,更改了控制台背景颜色,使得系统更加美观。
关键词:
矩阵运算,运算符重载,文件操作,修改控制台背景颜色。
1
目录
1.题目内容及要求 ...................................................................................................................3
1.2功能要求: .................................................................................................................3 1.2其他要求: .................................................................................................................3 2.设计思路 ..............................................................................................................................4
2.1文件的分配: .............................................................................................................4 2.3类的实现: .................................................................................................................4 2.4矩阵运算功能实现: ...................................................................................................5 2.5扩展功能实现: ..........................................................................................................6 2.6主函数编写: .............................................................................................................6 3.具体实现 ..............................................................................................................................9
3.1程序开头包含所需要使用到的头文件: .......................................................................9 3.2类的定义: .................................................................................................................9 3.3menu_use函数 ........................................................................................................... 10 3.4menu_i()函数 ............................................................................................................. 10 3.5menu_0()函数............................................................................................................. 10 3.6main函数 .................................................................................................................. 10 4运行调试与分析讨论 .......................................................................................................... 11 5.设计体会与小结 ................................................................................................................. 13
5.1遇到的问题: ........................................................................................................... 13 5.2自身所提高和学习到的能力: ................................................................................... 13 6.参考文献 ............................................................................................................................ 14
2
1.题目内容及要求
1.1基本要求:
编写矩阵类--封装矩阵的运算(加、减、乘、转置、...); 每个运算用一个方法实现
1.2功能要求:
1. 用C++面向对象的思想编写矩阵类。 2. 编写矩阵类实现矩阵的运算。
1.2其他要求:
1. 源程序应当加注释。以便于阅读。 2. 采用文本菜单界面。 3. 可自行设计增加新模块。 4. 写出课程设计报告。
3
2.设计思路
2.1文件的分配:
编写了三个文件,一个头文件,两个cpp文件。 头文件包含类的定义和声明以及所要用到的头文件 一个cpp文件编写类的具体实现
一个cpp文件实现主函数,即程序面板的功能
2.2任务分配:
小组共五人,任务分配如下:
1负责编写matrix类,以及主函数的实现。即matrix.h文件和main.cpp文件的编写。其他人负责matrix.cpp文件的编写。即类的实现。
2负责编写matrix类输入和输出部分模块,包括屏幕输入输出和文件输入输出。 3负责编写matrix类的加法和减法功能,实现“+”号和“-”号的重载。
4负责编写matrix类的乘法和转置功能,实现“*”号的重载,和trans友元函数。 5负责编写matrix类的求行列式和余子式功能,实现det友元函数和类的left成员函数。
2.3类的实现:
根据设计要求,需要先设计一个最基本的矩阵结构,用来保存矩阵的维数,以及矩阵的每个值,将这些数据设计为矩阵类的私有成员数据,防止外部程序篡改矩阵的值,导致程序运行错误。
矩阵的维数用两个整形数据保存,命名为m和n,然后使用double类型的arr数组用来保存数组的每个值。
类的代码如下:
4
class matrix { private:
int m; int n;
double arr[MAXN][MAXN];
public:
matrix();
//构造函数
//构造函数2 //通过键盘输入; //通过文件输入
matrix(double); void scr_set(); void fil_set(); void scr_show();
//在屏幕上输出矩阵;
//在文件中输出矩阵 //判断是否为方阵; //是否同型;
//判断矩阵是否可相乘
friend void fil_show(); int issquare();
friend int homotype(matrix,matrix);
friend int multipliable(matrix,matrix); matrix operator +(matrix other); matrix operator -(matrix other); matrix operator *(matrix other); friend matrix trans(matrix); friend double det(matrix); matrix left(int x,int y);
//矩阵相加,对加号重载; //矩阵机减,对减号重载; //矩阵相乘,对乘号重载; //矩阵转置 //求方阵的行列式;
//求元素arr[x][y](x,y
从0开始)的余子式; };
2.4矩阵运算功能实现:
矩阵需要实现各种运算,则应该分别设计矩阵类的成员函数实现矩阵的各种运算功能。如加减乘和数的加减乘很有相似性,可使用运算符重载来实现。运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。运算符重载的声明方式与方法的声明方式相同,但operator关键字告诉编译器,它
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++课程设计_矩阵运算在线全文阅读。
相关推荐: