1、 课课 程程 设设 计计 题题 目目 稀疏矩阵相乘稀疏矩阵相乘 学学 院院 计算机科学与技术计算机科学与技术 专专 业业 计算机科学与技术计算机科学与技术卓越工程师卓越工程师 1 目目 录录 课程设计任务书课程设计任务书 2 1问题描述 . 3 1.1 问题描述 . 3 1.2 基本要求 . 3 1.3 测试数据 . 3 2.实现分析 . 3 3程序设计 . 4 3.1 存储结构设计 . 4 3.1.1 三元组表示稀疏矩阵 . 4 3.1.2 十字链表表示稀疏矩阵 . 4 3.2 主要算法设计 . 5 3.2.1 程序主要函数原型及功能 . 5 3.2.2 各函数的实现 6 3.2.3 程序流
2、程图 11 4.调试报告 . 12 4.1 调试中的问题 . 12 4.2 设计分析 . 12 5. 程序运行结果 12 6.经验和体会 . 13 7.源程序 . 14 参考文献: 22 本科生课程设计成绩评定表 . 错误错误!未定义书签。未定义书签。 2 课程设计课程设计任务书任务书 学生姓名:学生姓名: 马良马良 专业班级:专业班级: 计算机计算机 zy1301zy1301 班班 指导教师:指导教师: 杨克俭杨克俭 工作单位:工作单位: 计算机科学系计算机科学系 题题 目目: : 稀疏矩阵相乘 初始条件:初始条件: 稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大
3、节省存储空 间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。 (1) 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵 (2) 实现两个矩阵相乘的运算。 (3) 稀疏矩阵采用十字链表十字链表表示,而运算结果的矩阵则以通常的阵列形式列出。 (4) 测试用例见严蔚敏数据结构习题集(C 语言版)p136。 要求完成的主要任务要求完成的主要任务: : (包括课内实践工作量及其技术要求, 以及说明书撰写等具体要求) 课内实践报告按学校规定格式用 A4 纸打印(书写) ,并应包含如下内容: 1. 问题描述 简述题目要解决的问题是什么。 2. 设计 存储结构设计、主要算法设计(用类 C/C+语言或
4、用框图描述) 、测试用例设计; 3. 调试报告 调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。 4. 经验和体会(包括对算法改进的设想) 5. 附源程序清单和运行结果。源程序要加注释。如果题目规定了测试数据,则运行结果要包含这 些测试数据和运行输出。 说明:说明: 1. 设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩均为 0 分。 2. 凡凡拷贝拷贝往年往年任务书任务书或课内实践充数或课内实践充数者者,成绩成绩一律一律无效无效,以,以 0 0 分记分记。 时间安排:时间安排: 1第 16 周完成,验收时间为 12 月 26 日(星期五)下午 2验收地点:实验中心 3
5、验收内容:可执行程序与源代码、课内实践报告书。 指导教师签名:指导教师签名: 20142014 年年 1111 月月 4 4 日日 系主任(或责任教师)系主任(或责任教师)签名:签名: 年年 月月 日日 3 课程设计报告书 1问题描述 1.1 问题描述 稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大 大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。 1.2 基本要求 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现两个矩阵相乘的运算。 稀疏矩阵采用十字链表十字链表表示,而运算结果的矩阵则以通常的阵列形式列出。 1.3 测试数据 测试用例:严
6、蔚敏数据结构习题集(C 语言版)p136。 4 -3 0 0 1 3 0 0 0 -6 0 0 0 0 8 0 4 2 0 8 0 0 0 0 1 0 0 * 0 1 0 = 0 1 0 0 0 0 0 70 1 0 0 0 0 0 0 0 0 2.实现分析 (1) 根据题目要求,稀疏矩阵采用三元组法顺序输入,十字链表表示。只存储稀疏 矩阵中极少的非零元素。 (2) 各元素按照在原来矩阵中的位置行优先进行存放。 (3) 在稀疏矩阵十字链表的表示中,每一行都是一个带附加头结点的循环行链表, 每一列都是一个带附加头结点的循环列链表。 (4) 逐个寻找两个矩阵中非零元的位置,第一个矩阵从第一行开始,第二个矩阵从 第一列开始