数据结构课程设计基于十字链表的矩阵运算

上传人:M****1 文档编号:484815366 上传时间:2023-09-30 格式:DOC 页数:36 大小:437.52KB
返回 下载 相关 举报
数据结构课程设计基于十字链表的矩阵运算_第1页
第1页 / 共36页
数据结构课程设计基于十字链表的矩阵运算_第2页
第2页 / 共36页
数据结构课程设计基于十字链表的矩阵运算_第3页
第3页 / 共36页
数据结构课程设计基于十字链表的矩阵运算_第4页
第4页 / 共36页
数据结构课程设计基于十字链表的矩阵运算_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《数据结构课程设计基于十字链表的矩阵运算》由会员分享,可在线阅读,更多相关《数据结构课程设计基于十字链表的矩阵运算(36页珍藏版)》请在金锄头文库上搜索。

1、数 据 结 构课 程 设 计 报 告日期: 年 月 日12200930 学 号班 级姓 名指 导 教 师2007级信息与计算科学题目:基于正交链表的矩阵运算说 明本组成员名单:组长:本人承担的课程设计的工作情况:程序的算法设计以及部分功能实现,后期程序调试、测试,主函数的设计。 目 录1 任务概述31.1 问题描述31.2 编程的基本要求31.3 程序的主要功能31.4 编程语言及选择的操作平台32 概要设计42.1 数据结构42.2 总体结构43 详细设计53.1 数据结构中的函数63.2 主函数及其他函数74 调试分析94.1调试过程 94.2测试结果 94.2改进设想 145 用户手册1

2、56 总结17参考文献18附件 源程序代码清单1921 任务概述1.1 问题描述应用三元组和正交链表存储稀疏矩阵,并实现稀疏矩阵的转置、加法和乘法运算。1.2 编程的基本要求1)应用三元组和正交链表的数据结构。2)矩阵运算由正交链表类的成员函数实现,矩阵的输入输出由类的友元重载函数实现。3)主函数用于实现菜单和调用。1.3 程序的主要功能1. 按数据结构课程设计报告格式所给出的框架撰写。2. 具体内容应尽量包含文字叙述、图表(表格,框图,流程图,UML图等)和程序代码。3. 每个同学要提交电子文档和一份打印稿。1.4 编程语言及选择的操作平台编程语言选用C+程序设计语言。程序开发平台选用Mcr

3、osoft Visual Studio 6.0的Microsoft Visual C+ 6.0开发环境。程序运行在DOS界面。2 概要设计2.1 数据结构稀疏矩阵类(matrix)matrix- Row : int- Col : int- Terms : int- termrp : int- headmode : node* - operator ( : istream, : matrix&) : istream - operator ( :ostream, :matrix) : ostream+ matrix(m :int , n : int)+ matrix()+ matrix(T : m

4、atrix&)+ matrix()+ make Empty() : void+ Insert(m : int, n :int, p : float) : void+ pelete(m : int, n :int) : void+ Locate(i : int) : node+ transport() : matrix+ Add(b :matrix) : matrix+ Mul(b :matrix) : matrix+ operator = (T : matrix&) : matrix+ Init (m :int,n :int :void)稀疏矩阵的节点类(node)node + matrix:

5、 class+ node()+ node( t : elemene*)+ down : node*+ right : node*+ head : boolean+ union2.2总体结构说明:表达式i!=0 True,向下执行,False 结束退出表达式i!=0输入所要执行的运算(i)Switch(i)结束dafaultCase 2Case 1Case 0开始Case 33 详细设计3.1 数据结构中的函数(其中函数的实现请参看源代码部分)1) 矩阵结点(matrix)中的函数:Private:friend istream&operator(istream&,matrix&);friend

6、ostream&operatorcol; triple.row=t-row; triple.item=t-item; right=down=this; head=FALSE;3.2 主函数及其他函数#includematrix.h#include void main() int i; matrix B,B1,B2,C; while(i!=0) cout -基于正交链表的稀疏矩阵的运算-endlendl; cout 1.转置 2.加法 3.乘法 0.退出程序 endlendl; couti; coutendl; switch(i) case 0: break; case 1: cout -稀疏矩

7、阵的转置-nendl; cout请输入矩阵:endlB;system(cls);cout原矩阵为:endl;coutBendl;cout转置后为endl;coutB.transpose()endl;break; case 2: cout -稀疏矩阵的加法-nendl; cout请输入矩阵1:endlB1; cout请输入矩阵2:endlB2;system(cls);cout矩阵1为:endl; coutB1endl; cout矩阵2为:endl;coutB2endl;cout两个矩阵之和为:endl;coutB1.Add(B2)endl;break; case 3: cout -稀疏矩阵的乘法

8、-nendl;cout注意:输入的矩阵必须满足矩阵相乘的条件,并且按顺序输入(即1和2的顺序)nendl; cout请输入矩阵1:B1; cout请输入矩阵2:B2; system(cls);cout矩阵1为:endl;coutB1endl;cout矩阵2为:endl;coutB2endl;cout两个矩阵之积为:endl;coutB1.Mul(B2)endl; break; default: break; if(i!=0) cout按任意继续.right!=T.Locate(i) 开始时是while(current-right!=current)再者算法中有些小漏洞没有考虑到,用断点分析法,找出漏洞,完善程序。感触最深的是:断点查错这功能太好!又快又贴近实际应用!4.2 测试结果一、转置的测试:二、

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

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