- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构与算法》课程设计说明书题目:跳跃表的实现与应用学院:计算机与信息安全学院专业:姓名:学号:指导教师:2017年3月15日成绩评定标准及成绩能按照格式进行写作,无抄袭现象(10分) 报告内容行文通畅,有条理性,无错别字,结构严谨。(10分) 能够按照数据结构课设的格式要求、排版要求和字数要求等,有需求分析,系统分析,详细设计,关键技术的介绍和参考文献。(10分) 在验收过程中,能合理的回答问题(20分) 软件能正常运行,实现所提出的功能(40分) 软件代码规范性较好(5分) 具有自己的创新或特色(5分) 总成绩:摘 要本次课程设计的内容是跳跃链表,跳跃链表是一种随机化数据结构,基于并联的链表,其效率可比拟于二叉查找树。本篇文档共由七大部分构成,分别是前言、需求分析、设计思想与流程、软件运行演示,问题与解决、结语和参考文献。本系统共实现了跳跃链表地创建,插入,删除,查找,输出等基本功能,还实现了性能测试并将测试数据输出到文件。在界面制作上使用C语言+GTK图形化库制作,并加入了后期界面优化,使其具有了更好的用户体验。关键词:界面,GTK,跳表,简约风格1.前言在确定了本次课设的题目后,在本着提高专业技能,巩固基础知识的前提下,通过查阅资料,最终选择了使用C语言+GTK图形化界面库来完成本次课设,在确定了之后,便去图书馆找了相关书籍,在简单了解了面向对象的思想之后,将本次程序设计分为了四部分:全局界面布局及核心思想分析,代码实现,程序调试及优化,课程设计报告书书写。在界面布局上,使用菜单栏,功能之间相互切换,每个功能有相应的界面的布局方式,界面使用简约风格设计,在算法刷新界面上有所创新,使用全局变量保存界面相应构件的指针数据,动态刷新界面。然后开始书写代码,由于首次接触GTK及面向对象的思想,在书写代码时遇到了N多问题,但在查阅相关书籍和网上搜索的帮助下,写出了较为满意的界面,然而在跳跃链表地核心算法上相比较界面花的时间却较少,但相应的功能是比较全面的,性能测试的大数据测试并输出文件,还有各种数据检查,弹窗警告,高效算法等无一不是程序亮点。在完成了基本功能之后,进入后期优化,通过网上学习,对界面加入了背景图片,并仔细调试试用了多种界面风格之后,选用灰色磨砂背景,高亮显示数据提示等,使得界面进一步优化,提高了用户体验。对代码进行了添加注释,多次使用的代码段封装函数等操作。因为本次课设开发环境为linux,且在运行时需要GTK库支持,所以在查阅网上资料后,对程序进行了软件封装打包,使得其可在windows下安装并运行。2.需求分析2.1软件功能需求分析问题描述:链表存在的一个缺陷是:在有序链表中查找一个元素是否存在,需要从头开始,依次顺序查找。跳跃链表是有序链表的一个变种,可以进行非顺序查找。该题目要求实现一个跳跃链表,并对其与一般链表进行比较测试。基本要求:(1)设计实现跳跃链表,用于高效地访问链表中的元素。(2)包括的基本操作:建立、查找、插入、删除等操作。(3)将其效率和链表、有序链表的效率进行比较。(4)输入:数据是随机产生;非随机产生两种情况更高要求(5)将跳跃链表的操作封装为 DLL。(6)UI 设计与实现。据题目要求,本次课设有如下基本功能:随机创建,按值创建,查找,插入,按值删除,按序删除,性能测试,全层输出,定层输出。在性能测试上使用大数据测试并将测试结果输出到文件。2.2软件判错、抗压及优化需求分析作为一款交互界面软件,软件的判错能力是评判一款软件成功与否的重要标志,本软件使用全程输入数据分析,弹窗错误警告的判错处理机制,在不影响用户操作体验的前提下,尽可能的提高操作的灵活性及准确性,使得用户在输入错误数据的情况下,软件大概率不会奔溃,判错率高达90%。在软件抗压方面,因为界面输出方面的限制,数据量在演示的情况下,正常输出最高可达16链表数据。在性能测试抗压方面,使用大数据测试,创建速度略显缓慢,但其他功能操作体验良好,数据输出正常,速度明显快于普通有序链表。在界面优化上,使用简约风格创作,并加入灰色磨砂背景图片,高亮显示操作提示,操作成功或失败有相应颜色显示,一目了然,后期美化弹窗警告,并加入系统提示音。使得用户体验得到进一步提升。2.3软件开发环境需求分析2.3.1 系统环境本次课程设计软件开发全程使用Deban的kali Rolling系统创作,选择此系统的原因有以下几点,一是因为在windows和linux上搭建GTK环境,linux更为容易,而且开源的linux环境操作更为灵活,二是在windows下操作的界面优化无法和linux媲美。第三点是因为linux系统在电脑上的配置完善,想进一步熟悉linux下的编程操作,gdb调试,vim操作等技术。综上所述,
文档评论(0)