您好,欢迎访问三七文档
攀枝花学院学生课程设计(论文)课程名称设计题目学生姓名:学号:所在院(系):专业:班级:指导教师:职称:年月日攀枝花学院教务处制攀枝花学院数据结构课程设计题目稀疏矩阵的操作1、课程设计的目的培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;通过课程设计的实践,学生可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)基本功能要求:(1)稀疏矩阵采用三元组表示,求两个具有相同行列数的稀疏矩阵A和B的相加矩阵C,并输出C。(2)求出A的转置矩阵D,输出D。测试数据:0908070000045010A0000010906007002B3、主要参考文献[1]《数据结构》(C语言版),严蔚敏,清华大学出版社,2003.[2]《数据结构题集》,严蔚敏,清华大学出版社,2005.[3]《数据结构》(C语言版),刘大有,高等教育出版社,2004.[4]《DataStructurewithC++》,WilliamFord.WilliamTopp,清华大学出版社,2003.4、课程设计工作进度计划第1天完成方案设计与程序框图第2、3天编写程序代码第4天程序调试分析和结果第5天课程设计报告和总结指导教师(签字)日期年月日教研室意见:年月日学生(签字):接受任务时间:年月日注:任务书由指导教师填写。攀枝花学院数据结构课程设计课程设计(论文)指导教师成绩评定表题目名称稀疏矩阵的操作评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名:年月日摘要I摘要本课程设计主要实现在三元组存储结构与十字链表存储结构下输入稀疏矩阵,并对稀疏矩阵进行转置,相加,相乘等操作,最后输出运算后的结果。考虑到难易程度,先用三元组实现稀疏矩阵的输入,输出,及其转置,相加,相乘等操作的方法,再在十字链表下实现。程序通过调试运行,结果与预期一样,初步实现了设计目标。关键词:程序设计,稀疏矩阵,三元组,十字链表目录II目录摘要........................................................................I绪论........................................................................11.设计目的与要求.........................................................21.1题目名称:稀疏矩阵的操作..................................................21.2设计要求.................................................................21.3设计涉及知识.............................................................22、功能设计................................................................22.1需求分析.................................................................22.2总体设计.................................................................32.3数据结构.................................................................33.功能模块图..............................................................33.1概要设计.................................................................43.2系统流程图...............................................................53.3菜单函数.................................................................64.稀疏矩阵的操作的源代码及说明.........................................74.1矩阵的声明与结构体定义...................................................74.2矩阵的输出函数模块.......................................................74.3两矩阵相加...............................................................84.4矩阵的转置...............................................................94.5创建矩阵...............................................................104.6主函数模块..............................................................125程序运行结果............................................................135.1经过调试,无错误,无警告................................................135.2创建矩阵并显示登录页面即主菜单..........................................135.3运行操作................................................................145.4转置矩阵A...............................................................145.5转置矩阵B...............................................................155.6输出矩阵R...............................................................155.7退出程序................................................................156编程中遇到的困难及解决方法............................................167总结心得及良好建议.....................................................178致谢.....................................................................189参考文献.................................................................19绪论1绪论培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;通过课程设计的实践,学生可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。本课程设计主要实现在三元组存储结构与十字链表存储结构下输入稀疏矩阵,并对稀疏矩阵进行转置,相加,相乘操作,最后输出运算后的结果。稀疏矩阵采用三元组和十字链表表示,并在两种不同的存储结构下,求两个稀疏矩阵A和B的和为矩阵R,并输出R;求出A的转置为矩,输R。设计目的与要求和功能设计21.设计目的与要求1.1题目名称:稀疏矩阵的操作1.2设计要求①实现矩阵的输入,并用并采用三元组表示。②实现两个矩阵(A,B)的加法。③实现对任意一个矩阵(A,B)的转置。④可以输出任意矩阵(A,B,R)。1.3设计涉及知识注意合理地设计三元组或者十字链表,结合稀疏矩阵的压缩存储方式和特点,将每一功能模块以函数形式分别实现。在此基础上用C/C++实现其操作。2、功能设计以三元组、十字链表为存储形式,分别实现两个稀疏矩阵的加法运算、两个稀疏矩阵的乘法运算,以及对任意稀疏矩阵的转置运算。稀疏矩阵要求可为键盘录入的任意矩阵。2.1需求分析根据题目要求应提供键盘式菜单实现功能选择,还应提供信息的输入操作,可以在程序中提供矩阵相加,转置矩阵和矩阵输出等操作。本模块要求设计函数建立稀疏矩阵并初始化,包括在三元组结构下和十字链表结构下。首先要定义两种不同的结构体类型,在创建稀疏矩阵时,需要设计两个不同的函数分别在三元组和十字链表下创建稀疏矩阵,在输入出现错误时,能够对错误进行判别处理,初始化稀疏矩阵都为空值,特别注意在十字链表下,对变量进行动态的地址分配。在设计输出稀疏矩阵的值的函数时,也要针对两种不同的情况,分别编制函数,才能准确的输出稀疏矩阵。在对稀疏矩阵功能设计和功能模块图3进行初始化及输出值时,均只输出非零元素的值和它所在的所在行及所在列。2.2总体设计根据上面的需求分析,可以将这个系统的设计分为1矩阵相加,2矩阵转置,3输出矩阵。2.3数据结构数据结构采用三元组存储的结构体(包括两个结构体),第一个结构体包括行列下标和非零元素的值,第二个结构体包括非零元素个数的最大值与矩阵的行列值。3.功能模块图本系统设计的函数是由一个主函数几个子函数组成的。首先构思大局编出一个主函数,然后根据要实现的功能逐步细分设计,分别解决矩阵相加,矩阵转置,矩阵输出的子函数编程中遇到的问题。首先通过结构体的定义,确定矩阵的大小和非零元素的个数。首先通过创建函数创建矩阵,输入矩阵信息,然后再逐步编写和验证其它功能。显示函数的设计利用C语言的循环功能(while,do_while)依次输出信息。矩阵相加是通过判断非
本文标题:稀疏矩阵
链接地址:https://www.777doc.com/doc-6097026 .html