课 程 设 计 任 务 书
学院 | 信息科学与工程 | 专业 | 电子信息科学与技术 |
学生姓名 | 学号 | ||
设计题目 | 设计一个能够实现n×n矩阵操作的类/计算器程序 | ||
内容及要求: | |||
PART I.设计一个能够实现n×n矩阵操作的类 矩阵是线性代数里一个重要的概念,在这里采用C++语言实现一个简单的n×n矩阵类,类中包括一些简单的运算等操作具体要求如下: (1)使用构造函数完成方阵的初始化赋值(动态内存分配); (2)使用析构函数完成矩阵动态内存的释放; (3)重载加法运算符+、-、*、=,实现两个矩阵的运算; (4)使用函数实现矩阵的转置; (5)使用函数求矩阵中的最大、小值、对应行列式的值; (6)重载加法运算符<<,实现矩阵按照行列的格式输出; (7)编写一个主函数测试上述功能。 PART II.计算器程序 …………………………………………… | |||
进度安排: | |||
第17周:分析题目,查阅课题相关资料,进行类设计、算法设计; 第18周:上机调试程序,程序测试与分析,撰写课程设计报告,准备答辩。 | |||
指导教师(签字): 年 月 日 | 学院院长(签字) 年 月 日 | ||
目 录
PART I
1 需求分析 2
2 算法基本原理 2
3 类设计 3
4 详细设计 4
4.1 类的接口设计 4
4.2 类的实现 5
4.3 主函数设计 11
5 运行结果与分析 12
5.1 程序运行结果 12
5.2运行结果分析 14
PART Ⅱ
1 需求分析 14
2 算法基本原理 14
3 类设计 14
4 详细设计 15
4.1 类的实现 15
4.2 主函数设计 19
5 运行结果与分析 27
5.1 程序运行结果 27
5.2运行结果分析 27
6 参考文献 28
PART I
1 需求分析
矩阵是线性代数里一个重要的概念,在这里采用C++语言实现一个简单的n×n矩阵类,类中包括一些简单的运算等操作具体要求如下:
(1)使用构造函数完成方阵的初始化赋值(动态内存分配);
(2)使用析构函数完成矩阵动态内存的释放;
(3)重载加法运算符+,实现两个矩阵的和;
(4)重载加法运算符-,实现两个矩阵的差;
(5)重载加法运算符*,实现两个矩阵的积;
(6)重载加法运算符=,实现两个矩阵之间的赋值;
(7)使用函数实现矩阵的转置;
(8)使用函数求矩阵中的最大值;
(9)使用函数求矩阵中的最小值;
(10)添加函数Det以得到矩阵对应行列式的值;
(11)重载加法运算符<<,实现矩阵按照行列的格式输出;
(12)编写一个主函数测试上述功能。
2 算法基本原理
矩阵进行加法,减法,乘法运算时,必须满足两个矩阵阶数相同的条件。加法,减法计算是把矩阵对应的各行各列的每一对数值分别进行加减法运算,结果组成一个新的同阶矩阵。矩阵乘法是这样定义的,只有当矩阵A的列数与矩阵B的行数相等时A×B才有意义。一个m×n的
矩阵a(m,n)左乘一个n×p的矩阵b(n,p),会得到一个m×p的矩阵c(m,p),满足 矩阵乘法满足结合率,但不满足交换率
3 类设计
从上面的算法分析可以看到,本设计面临的计算问题的关键是矩阵运算。可以定义一个矩阵类Matrix。矩阵类Matrix只处理n×n类型的方阵,方阵用一个一维数组来存放,矩阵类Matrix的数据成员包括数组的首地址num和阶数n。矩阵类Matrix的功能有:默认构造函数Matrix()、构造函数Matrix(int n,int *a)、手动输入矩阵函数SetMatrix(int n)、析构函数~Matrix()、重载加法运算符+,实现两个矩阵的和函数Matrix operator +(const Matrix &a)、重载加法运算符-,实现两个矩阵的差函数Matrix operator -(const Matrix &a)、重载加法运算符*,实现两个矩阵的积函数Matrix operator *(const Matrix &a)、重载加法运算符=,实现两个矩阵之间的赋值函数Matrix &operator =(const Matrix &a)、实现矩阵的转置Transpose()、求矩阵中的最大值Max()、求矩阵中的最小值Min()、求行列式Det()、重载加法运算符<<,实现矩阵按照行列的格式输出Matrix operator <<(const Matrix &a)、我的求行列式函数MyDet(int* array,int Jie)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论