1、 数 据 结 构数 据 结 构 课 程 设 计 说 明 书课 程 设 计 说 明 书 题目: 稀疏矩阵的运算 院 系: 计算机科学与工程学院 专业班级: 计算机 10-*班 学 号: 201030* 学生姓名: * 指导教师: 2011 年 12 月 28 日 课程设计(论文)任务书课程设计(论文)任务书 计算机科学与工程 学院 学 号 201030* 学生姓名 * 专业(班级) 计 10-* 设计题目 稀疏矩阵的运算 设 计 技 术 参 数 系统平台:Windows XP 开发工具:Microsoft Visual C+ 6.0 设 计 要 求 (1)存储结构选择三元组存储方式; (2)实现
2、一个稀疏矩阵的转置运算; (3)实现两个稀疏矩阵的加法运算; (4)实现两个稀疏矩阵的减法运算; (5)实现两个稀疏矩阵的乘法运算。 工 作 量 课程设计报告要求不少于 3000 字。 源程序要求不少于 300 行 工 作 计 划 11 月 9 日-11 月 22 日 查找相关资料 11 月 23 日-11 月 26 日 DOS 菜单界面设计 11 月 27 日-12 月 5 日 设计算法 12 月 6 日-12 月 20 日 编写代码 12 月 21 日-12 月 28 日 撰写实验报告 参 考 资 料 1秦锋.数据结构(C 语言版).北京:清华大学出版社,2011 2温秀梅,丁学均.Vis
3、ual C+面向对象程序设计.北京:清华大学出版社,2009 3何钦铭,颜晖.C 语言程序设计.北京:高等教育出版社,2008 指导教师签字 教研室主任签字 2011 年 11 月 8 日 I 目目 录录 1 问题描述 1 2 需求分析 1 3 总体设计 2 3.1 Matrix 结构的定义 2 3.2 系统流程图 3 4 详细设计 4 4.1 “菜单”界面 4 4.2 建立矩阵 4 4.3 显示矩阵 6 4.4 矩阵的转置 7 4.5 矩阵的加法运算 8 4.6 矩阵的减法运算 9 4.7 矩阵的乘法运算 9 5 程序运行 . 11 5.1 输入矩阵. 11 5.2 矩阵转置. 11 5.3
4、 矩阵加法. 12 5.4 矩阵减法. 12 5.5 矩阵乘法. 12 5.6 退出及错误提示 . 13 6 总结 . 13 参考文献 . 14 1 1 1 问题描述问题描述 (1) 题目内容:设计稀疏矩阵运算系统实现两个稀疏矩阵的加法、减法、乘法以 及转置操作。 (2) 基本要求: 存储结构选择三元组存储方式; 实现一个稀疏矩阵的转置运算; 实现两个稀疏矩阵的加法运算; 实现两个稀疏矩阵的减法运算; 实现两个稀疏矩阵的乘法运算。 (3) 设计目的:通过本次课程设计,了解稀疏矩阵的一些基本运算操作,并通过 相关的程序代码实现。 2 2 需求分析需求分析 经过本次的课程设计,我认为稀疏矩阵运算系
5、统主要实现的功能如下: (1) 建立矩阵:只有先建立了矩阵,才能够对矩阵进行运算操作,包括建立矩阵 A 和矩阵 B; (2) 转置运算操作:对矩阵 A 或者矩阵 B 进行转置运算,输出相应的转置矩阵; (3) 四则运算操作:该步骤由两个矩阵同时参与,对其进行加法运算(A+B)、减 法运算(A-B)以及乘法运算(A*B 和 B*A); (4) 退出:当做完矩阵的运算操作之后,就可以点击它退出该界面。 在这次设计中用到了一些变量和函数,例如:void Display(Matrix M);int Max(int i,int j);Matrix Zero(Matrix M)等,下面会做进一步详细的介绍
6、。 2 3 3 总体设计总体设计 3.1 Matrix 结构的定义 struct Matrix int H; /矩阵的行数 int L; /矩阵的列数 int fly; /矩阵中的非零元个数 int zhiMaxsizeMaxsize;/非零元值所在行所在列 ; 操作集合: (1) Matrix Enter(Matrix M); /建立矩阵 M (2) void Display(Matrix M); /显示矩阵 M (3) void Transpose(Matrix M); /M 矩阵的转置 (4) void Add(Matrix M,Matrix N); /求和运算 A+B (5) void Sub(Matrix M,Matrix N); /求差运算 A-B (5) void Multi(Matrix M,Matrix N)