《数据结构》课程设计报告书

发布 2022-10-05 19:50:28 阅读 5845

《数据结构》课程设计报告。

报告(**)题目1.迷宫问题。

2.哈夫曼编码。

作者所在系部: 计算机科学与工程系。

作者所在专业网络工程。

作者所在班级b08522

作者姓名马洪彪。

作者学号20084052227

指导教师姓名贾振华。

完成时间2024年12月31日。

北华航天工业学院教务处制。

课程设计任务书。

摘要。本次课设目的在于检验学生在《数据结构》课程一学期中的学习成果,从而加深学生对所学知识的进一步理解与巩固。

本次课程设计过程中我主要根据课本中的实现思想及算法编写程序,体现以课本知识的应用为主,在学习了线性表、栈、队列、二叉树、树和图等结构的基础上,以能够更加熟练的应用所学知识,并能结合一些著名算法来实现对一些实际问题的应用,例如,哈夫曼树等,从而更为深刻理解数据结构的内涵,熟悉它们各自的应用场合及方法。有些在平时课程中并没有掌握的内容在这次课程设计中都是先通过看课本学懂了,然后再在课程设计中加深印象,实现算法的应用和扩展。这次课程设计的设计内容主要是通过实际的例子和程序来实现课本中所学习的算法的应用。

我主要做了迷宫问题、哈夫曼编码/译码实现两个题目。

本文利用c++语言编写程序,分别实现了对自定义的迷宫有无路径的判定和发送端对待传送数据的编码和接收端对传送来的数据的译码。

其中,迷宫问题以栈的应用为基础,随机生成迷宫,然后寻找所以路径并输出,对没有路径的迷宫,继续随机生成,直到生成存在路径的迷宫。

哈夫曼编译系统分为五个功能模块:原始数据载入,打印编码规则、编码、译码。以二叉树的应用为基础,包括统计信息,并通过构建哈夫曼树、对信息进行哈夫曼编码,将编码信息等存入文档。

两个系统均已经过全面的测试,能够很好的运行,达到了预期的效果。

关键词:数据结构栈和队列二叉树哈夫曼编码迷宫

随着信息产业的飞速发展,信息化管理及查询已经引入并应用到各行业管理领域,各种形式的百货商场、大型仓储超市、便利店、连锁超市和专卖店等形式的零售业鳞次栉比,不断改变、影响着人们的价值观念和生活方式。因此,要提升企业竞争力,就要大力推进企业信息化建设,利用先进的办公自动化系统来实现企业内部信息管理、共享及交流,才能使企业在竞争激烈的21世纪取得先机。

为大家解决一些生活中实际的问题,在这个过程中,编程人员自身的能力也在不断地提高。此次程序设计综合运用所学知识解决实际问题,将课堂的书本知识有效的在程序中体现出来,让学生更理解了c++功能之强大,进一步让学生对面向对象的方法以及c++的编程思想有了较好了解和认识。此外,此次设计培养独立开发、设计、调试、运行程序的能力,激发了学生较强的自学兴趣,锻炼学生之间以及学生与老师的交通能力,培养学生合作精神,让学生更好的认识到合作的重要性,使学生在今后的学习中加强对合作精神的培养。

1)迷宫问题。

迷宫相信大家都玩过,但是有的迷宫在开始构造时的错误就没有出路,而让游戏者花费很多时间去寻找出路,所以需要一个程序来判断此迷宫是否有出路,避免了浪费时间。

2)哈夫曼系统的设计。

在这信息量发达的时代,随着社会的进步,信息不断地增多和更新,为了使信息更加快速、准确有的传递。需要一个程序来完成。

一般来说,课程设计要比教学实验复杂一些,涉及的深度深,而且更加实用些。其目的是通过课程设计的综合训练,培养学生分析解决实际问题和编程等动手能力,最终目标是想通过这种形式,帮助同学系统掌握c++这门课程的主要内容,使老师更好的完成教学任务。

结合实际应用的要求,使课程设计既覆盖教学所要求的知识点,又接近工程的实际需要,训练自己实际分析问题和解决问题以及编程的能力。

通过详细的实例分析,循环渐进的描述,启发学生顺利的完成设计。课程设计将设计要求、需求分析、算法设计、编程和实例测试运行分开,为学生创造分析问题、独立思考的条件。只要学生在吃透要求和算法的前提下,完全可以不按书中提示的参考程序,自己设计出更具有特色的程序。

1)迷宫问题。

可由操作者自己输入迷宫的大小,然后随机生成迷宫,。系统会对输入的数据进行判断其合法性,如不正确,系统会有提示语句,让操作者重新输入。通过计算最后输出所有迷宫的路径。

2)哈夫曼编码。

要求完成发送端对待传送数据的编码和接收端对传送来的数据的译码。要实现五个功能:接受原始数据、编码、译码、打印编码规则、将编码、译码存档。

通过系统的提示要建立哈夫曼树并对载入的原文件进行编码,并保存到文件中,同时输出到屏幕。最后将建立的哈夫曼树用某种树的储存方式储存后输出。

随着经济全球化的推进以及企业激烈的竞争,改善企业内部及整个**链各环节的管理、调度及资源配置,迅速适应客户的新需求和市场新机遇,是企业赢得竞争胜利的决定性因素。

1)迷宫定义外围为1,作为墙壁,内部用输入,0表示有可走,1表示不可走。入口默认为左上角,出口默认为右下角。

2)哈夫曼编码,输入信息以加载存档的文件为方式,加载不成功,提示出错信息,加载成功后,系统对其编码,并按照选择对各种相关信息存档。

1)迷宫问题。

在迷宫问题中,可由操作者自己输入迷宫的大小,系统会对输入的数据进行判断其合法性,如不正确,系统会有提示语句,让操作者重新输入。最后输出一条迷宫的出路。

2)哈夫曼编码问题。

可以读入操作者存在指定文件里的信息,并对其进行哈夫曼编码以及将编码信息存档。

1)迷宫问题:

在生成迷宫后,将迷宫路径输出,如图2-1所示:

图2-1 迷宫的正确输入、输出结果截图。

2)哈夫曼编码问题:

在读入文件信息后,对文件进行编码,并显示编码规则等信息,如图2-2所示:

图2-2 哈夫曼编码的正确输入、输出结果截图。

1)迷宫问题:

在输出迷宫的可行路径前,需要先生成迷宫。因此,在未生成迷宫时输入“输出可行路径”的命令时,将提示出错信息,如图2-3所示:

图2-3 测迷宫的错误输入、输出结果截图。

(2)哈夫曼编码问题:

在进行编码、译码及存储编码规则和编码、译码后的信息前,需要先读取文件信息,因此,在未读取文件信息时,输入“显示编码规则”等命令时,会提示出错:如图2-4所示:

图2-4哈夫曼的错误输入、输出结果截图。

(1)用二维数组来表示迷宫,用栈来保存走过的路径和方向,用一结构体存储方向。

2)哈夫曼树用邻接矩阵作为存储结构,借助静态链表来实现遍历。

1)迷宫问题,函数间的关系,如图3-1所示:

图 3-1 迷宫问题中函数间的关系。

2)哈夫曼系统,函数间的关系如图3-2所示:

图3-2 哈夫曼编码问题中函数间的关系。

1)结构定义如下:

#define maxsize 100

typedef struct

int x,y,d;

datatype;

/栈中元素类型定义。

typedef struct

datatype data[maxsize*maxsize];

int top;

seqstack;

//栈定义。

typedef struct

int x;

int y;

zuobiao;

/元素坐标定义。

数据结构课程设计报告书

2010 年 12 月 28 日。设计实现稀疏矩阵的基本功能,例如稀疏矩阵的相加,相减,相乘,转置等。采取的方法有三元组和十字链表来进行实现。要求运行无误,基本功能实现良好。简要说明设计方案 需要设计哪些类,以及类和类之间的关系 利用三元组实现 主要需要设计一个矩阵类和一个三元组类。将三元组做为矩阵...

数据结构课程设计报告书

课程设计说明书。设计名称 数据结构课程设计 题目 用迷宫算法对数组中的聚点数进行统计学生姓名 专业 10网络工程。班级 2班。学号 2010394201 指导教师 日期 2012年3月3日。课程设计任务书。目录。一 设计题目1 二 主要内容1 2.1设计思想1 2.2程序截图1 2.3算法流程图4 ...

《数据结构》课程设计报告书

利用hash技术统计c源程序中的关键字出现的频度。班级 计算机 姓名。指导教师。成绩。清华大学计算机系。2012 年 12 月 31 日。目录。一 题目描述 1 1.1问题描述 1 1.2实现要求 1 二 题目分析 1 2.1hash函数 1 2.2关键技术 2 2.3利用hash函数统计c源程序中...