77范文网 - 专业文章范例文档资料分享平台

C++课程设计_矩阵运算

来源:网络收集 时间:2018-12-11 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

矩阵运算系统的研究与设计

摘要

矩阵运算系统是一个数据运算系统,程序主要包括矩阵的基本数据成员,矩阵运算成员函数,以及矩阵系统界面等,实现矩阵的运算和文件读入和输出操作等。

本系统用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++课程设计_矩阵运算在线全文阅读。

C++课程设计_矩阵运算.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/359568.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: