稀疏矩阵的操作 --课程设计

上传人:第*** 文档编号:55670535 上传时间:2018-10-03 格式:DOC 页数:28 大小:286.01KB
返回 下载 相关 举报
稀疏矩阵的操作 --课程设计_第1页
第1页 / 共28页
稀疏矩阵的操作 --课程设计_第2页
第2页 / 共28页
稀疏矩阵的操作 --课程设计_第3页
第3页 / 共28页
稀疏矩阵的操作 --课程设计_第4页
第4页 / 共28页
稀疏矩阵的操作 --课程设计_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《稀疏矩阵的操作 --课程设计》由会员分享,可在线阅读,更多相关《稀疏矩阵的操作 --课程设计(28页珍藏版)》请在金锄头文库上搜索。

1、攀枝花学院攀枝花学院 学生课程设计(论文)学生课程设计(论文)题 目: 稀疏矩阵的操作稀疏矩阵的操作 学生姓名: 学 号: 所在院(系): 数学与计算机学院 专 业: 计算机科学与技术 班 级: 1 班 指 导 教 师: 职称: 讲师 2016 年 6 月 24 日攀枝花学院教务处制攀枝花学院本科课程设计(论文) 课程设计计划 书攀枝花学院本科学生课程设计任务书攀枝花学院本科学生课程设计任务书题题 目目稀疏矩阵的操作稀疏矩阵的操作1、课程设计的目的、课程设计的目的 培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力; 培养学生以科学理论和工程上能力的技术,规范地开发大型、

2、复杂、高质量的应用软件和 系统软件具有关键性作用;通过课程设计的实践,学生可以在程序设计方法、上机操作等 基本技能和科学作风方面受到比较系统和严格的训练。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)、课程设计的内容和要求(包括原始数据、技术要求、工作要求等) 基本功能要求: (1)稀疏矩阵采用三元组表示,求两个具有相同行列数的稀疏矩阵 A 和 B 的相加矩 阵 C,并输出 C。 (2)求出 A 的转置矩阵 D,输出 D。 (3)求两个矩阵 A 和 B 的乘积。 测试数据:0908070000045010A0000010906007002B3、主要参考文献、主要参考文献 1 数

3、据结构 (C 语言版) ,严蔚敏,清华大学出版社,2003 2 数据结构题集 ,严蔚敏,清华大学出版社,2005 3 数据结构 (C 语言版) ,刘大有,高等教育出版社,2004 4 Data Structure with C+ ,William FordWilliam Topp,清华大学出版社, 20034、课程设计工作进度计划、课程设计工作进度计划 第第 1 天天 完成方案设计与程序框图 第第 2、3 天天 编写程序代码 第第 4 天天 程序调试分析和结果 第第 5 天天 课程设计报告和总结指导教师指导教师(签字)日期日期年 月 日教研室意见:教研室意见:年 月 日学生学生(签字): 接受

4、任务时间: 年 月 日注:注:任务书由指导教师填写。课程设计(论文)指导教师成绩评定表课程设计(论文)指导教师成绩评定表题目名称题目名称稀疏矩阵的操作稀疏矩阵的操作评分项目评分项目分分 值值得得 分分评价内涵评价内涵01学习态度6 6遵守各项纪律,工作刻苦努力,具有良好的科学 工作态度。02科学实践、调研7 7通过实验、试验、查阅文献、深入生产实践等渠 道获取与课程设计有关的材料。工 作 表 现 20%03课题工作量7 7按期圆满完成规定的任务,工作量饱满。04综合运用知识的能力1010能运用所学知识和技能去发现与解决实际问题, 能正确处理实验数据,能对课题进行理论分析, 得出有价值的结论。0

5、5应用文献的能力5 5能独立查阅相关文献和从事其他调研;能提出并 较好地论述课题的实施方案;有收集、加工各种 信息及获取新知识的能力。06设计(实验)能力,方案 的设计能力5 5能正确设计实验方案,独立进行装置安装、调试、 操作等实验工作,数据正确、可靠;研究思路清 晰、完整。07计算及计算机应用能力5 5具有较强的数据运算与处理能力;能运用计算机 进行资料搜集、加工、处理和辅助设计等。能 力 水 平 35%08对计算或实验结果的分析 能力(综合分析能力、技 术经济分析能力)1010具有较强的数据收集、分析、处理、综合的能力。09插图(或图纸)质量、篇 幅、设计(论文)规范化 程度5 5符合本

6、专业相关规范或规定要求;规范化符合本 文件第五条要求。10设计说明书(论文)质量3030综述简练完整,有见解;立论正确,论述充分, 结论严谨合理;实验正确,分析处理科学。成 果 质 量 45%11创新1010对前人工作有改进或突破,或有独特见解。成绩成绩指指 导导 教教 师师 评评 语语指导教师签名: 年 月 日攀枝花学院本科课程设计(论文) 成绩评定表攀枝花学院本科课程设计(论文) 摘 要I摘 要本课程设计主要实现在三元组存储结构与十字链表存储结构下输入稀疏矩阵,并对稀疏矩阵进行转置,相加,相乘操作,最后输出运算后的结果。在程序设计中,考虑到方法的难易程度,采用了先用三元组实现稀疏矩阵的输入

7、,输出,及其转置,相加,相乘操作的方法,再在十字链表下实现。程序通过调试运行,结果与预期一样,初步实现了设计目标。关键词 程序设计,稀疏矩阵,三元组,十字链表攀枝花学院本科课程设计(论文) 目 录1目 录摘摘 要要I I1 1 课程设计题目与要求课程设计题目与要求.11.11.1 课程设计的目的课程设计的目的1 1 1.21.2 题目要求题目要求1 12 2 总体设计总体设计22.12.1 模块示意图模块示意图.2 2 2.22.2 设计思路设计思路2 2 2.32.3 数据结构设计数据结构设计.2 2 2.42.4 软件结构设计软件结构设计.3 33 3 详细设计详细设计.53.13.1 稀

8、疏矩阵的定义稀疏矩阵的定义5 53.23.2 主程序模块主程序模块.6 3.33.3 稀疏矩阵模块稀疏矩阵模块.7 3.43.4 十字链表模块十字链表模块1515 3.4.1 创建十字链表.15 3.4.2 十字链表的输出.164 4 程序测试及运行程序测试及运行 .185 5 总结总结 21参参 考考 文文 献献 22攀枝花学院本科课程设计(论文) 课程设计题目与要 求11 课程设计题目与要求1.1 课程设计的目的1掌握多维数组的逻辑结构和存储结构。2掌握稀疏矩阵的压缩存储及基本操作。1.2 题目要求(1) 稀疏矩阵采用三元组表示,求两个具有相同行列数的稀疏矩阵 A 和 B 的相加矩阵 C,

9、并输出 C。(2) 求出 A 的转置矩阵 D,输出 D(用两种方法实现,原始算法和改进的算法)。(3) 求两个稀疏矩阵 A 和 B 的相乘矩阵 E,并输出 E。攀枝花学院本科课程设计(论文) 总体设计22 总体设计2.1 模块示意图本程序分为主程序模块、稀疏矩阵模块、十字链表模块等。系统功能模块图如图 2.1 所示。020406080100第一季度第三季度东部 西部 北部图 2.1主程序模块主要进行命令操作,接收命令,处理命令,退出操作等。稀疏矩阵模块实现矩阵的相加,矩阵的相乘和矩阵的转置。十字链表模块主要是创建十字链表和输出十字链表2.2 设计思路本实验要求是使用C语言设计三元组,十字链表实

10、现稀疏矩阵的加、转、乘。首先要进行矩阵的初始化操作,定义三元组和十字链表的元素对象。写出转置,加法,乘法的操作函数。通过主函数调用实现在一个程序下进行矩阵的运算操作。2.3 数据结构设计抽象数据类型稀疏矩阵的定义如下:ADT SparseMatrix 稀疏矩阵的操作主 程 序 模 块稀 疏 矩 阵 模 块十 字 链 表 模 块攀枝花学院本科课程设计(论文) 总体设计3数据对象:D=aij | i=1,2,m; j=1,2,n;aijElemset, m和n分别称为矩阵的行数和列数。数据关系:R=Row,ColRow= | 1 | 1t;switch(t)case 1:TransposeSMat

11、rix(); /调用矩阵转置函数break;case 2:AddSMatrix(); /调用矩阵相加函数break;case 3: MultSMatrix(); /调用矩阵相乘函数break;case 4:攀枝花学院本科课程设计(论文) 详细设计7t=0;break;return 0;主函数流程图3.3 稀疏矩阵模块1、矩阵的转置函数bool TransposeSMatrix() / 求矩阵的转置矩阵TSMatrix M, T; /定义预转置的矩阵InPutTSMatrix(M, 0); /输入矩阵int numMAXROW + 1;int cpotMAXROW + 1; / 构建辅助数组in

12、t q, p, t;攀枝花学院本科课程设计(论文) 详细设计8T.tu = M.tu;T.mu = M.nu;T.nu = M.mu;if (T.tu) for (int col = 1; col MAXSIZE) return false;Q.dataQ.tu.e = ctempccol;Q.dataQ.tu.i = arow;Q.dataQ.tu.j = ccol;OutPutSMatrix(Q);return true;攀枝花学院本科课程设计(论文) 详细设计12矩阵的相乘流程图3、矩阵的加法函数bool AddSMatrix() /矩阵的加法CrossList M, N; / 创建两个

13、十字链表对象,并初始化CreateSMatrix_OL(M);CreateSMatrix_OL(N);cout e = pb-e;p-i = pb-i;p-j = pb-j;if (NULL = pa | pa-j pb-j) / 当M此行已经检查完或者pb因该放在pa前面 if (NULL = pre)M.rheadp-i = p;elsepre-right = p;p-right = pa;攀枝花学院本科课程设计(论文) 详细设计13pre = p;if (NULL = M.cheadp-j) / 进行列插入M.cheadp-j = p;p-down = NULL; else p-down = hlp-j-down;hlp-j-down = p;hlp-j = p;pb = pb-right; elseif (NULL != pa) pa = pa-right; elseif (pa-j = pb-j) / 如果pa,pb位于同一个位置上,则将值相加 pa-e += pb-e;if (!pa-e) / 如果相加后的和为0,则删除此节点,同时改变此元素坐在行,列的前驱元素的相应值if (NULL = pre) / 修改行前驱元素值M.rheadpa-i = pa-right;elsepre-right = pa-right;p = pa;攀枝花学院本科课程设计(论文)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号