数据结构课程设计报告

发布 2022-10-05 19:18:28 阅读 7610

滨江学院。

2011 --2012 年度第 2 学期)

课程名称: 数据结构。

题目: 排序系统设计

院系: 滨江学院计算机系

班级: 软降工程动漫(1)班

学号: 20102359024

姓名: 徐希芝。

指导教师: 李振宏。

设计周数: 两周。

日期:2012 年5 月24 日。

目录。一。设计目的 3

二、需求分析 3

2.1选题的意义及背景 3

2.2 输入/输出形式和输出值的范围 4

三.概要设计 4

3.1设计思想 4

3.2函数间的关系 4

四、详细设计 5

4.1哈夫曼的主要结构 5

4.1.1结构定义 5

4.1.2主要函数声明及功能描述 6

4.2源程序 7

4.2.1头文件 7

4.2.2源文件 8

五。程序测试结果及问题分析 14

5.1程序测试结果 14

5.2 问题分析 15

六。总结 15

七。参考文献 16

数据结构作为一门学科主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。因此,主要有三个方面的内容:数据的逻辑结构;数据的物理存储结构;对数据的操作(或算法)。

通常,算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。

在当今信息时代,信息技术己成为当代知识经济的核心技术。我们时刻都在和数据打交道。比如人们在外出工作时找最短路径,在银行查询存款、通过互联网查新闻、以及远程教育报名等,所有这些都在与数据发生关系。

实际上,现实世界中的实体经过抽象以后,就可以成为计算机上所处理的数据。

。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。

学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要达到以下目的:

1、了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;

2、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

3、提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

4、训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。

排序(sorting)是指将一个数据元素序列排列成为一个有序序列的过程。排序是计算机科学的一个重要领域,并广泛应用于数据处理,情报检索,商业金融及企业管理等许多方面。资料表明,在当今的计算机系统中,有50%以上的cpu时间是用在排序数据上的。

目前人们已经提出了许多不同的排序算法,本文选择其中最基本也是最常用的一些算法进行讨论,介绍它们的基本思想和实现过程,分析各种算法的时间与空间复杂度,以清晰描述排序演示系统。

作为计算机科学中一项复杂而重要的技术,排序一直是计算机领域内人们感兴趣的课题,寻找速度快、附加存储空间开销小的高效排序算法也一直是人们追寻的目标。本文讨论整数数组元素的排序,分析几种常见排序算法并进行比较。排序是程序设计中非常重要的内容,每一种程序设计语言中都涉及到排序,它的功能是将一组无序的数据序列变成有序的数据序列,结果一般只有两种情况:

数据从大到小排列或者从小到大排列。排序的算法有很多种,常用的有三种,即冒泡排序、选择排序和插入排序。要判断排序算法的优劣,一般有两个标准:

一是算法执行所需的时间,又称时间复杂度;二是算法所需的存储空间,又称空间复杂度。排序算法的优劣将直接影响到程序的性能。

随着计算机技术的飞速发展,排序(sorting)仍将成为计算机科学的一个重要组成部分。早期计算机多用于进行简单的数值计算,输入和输出的数据量不大,数据元素之间的关系较为简单,数据处理时间较长,但是自从第一台计算机诞生,随着操作系统从简单到复杂,从低级到高级的发展,排序速度也越来越快,当处理大批量数据,特别是成千上万的数据时,时间也挺长,但是效率已相当高了。操作系统大概经历了以下几个阶段:

一。手工操作阶段二。早期批量处理阶段三。

管理程序阶段四。多道程序设计与多道批处理系统。有了这许多硬件和软件的支持,排序算法的实现就有了强大的支撑力,从而为我们的计算机科学注入了活力。

计算机已经深入到人类社会的各个领域,其应用已经不再局限于科学计算,而更多用于控制,管理及数据处理等非数值计算的处理工作。另外,计算机加工处理的对象由纯粹的数值发展到字符,**和图象等各种具有一定结构的数据,这就必须分析待处理对象的特性以及各处理对象之间存在的关系,而排序是其中必不可少的一份子。所以展望计算机世界,数据结构是它的支持框架,而作为数据结构中排序一大块,其作用是非同小可的,我们不再论述,且用我们有限的时间去不断学习计算机这门科学,让它为我们的学习生活服务。

另一方面,锻炼我们的编码能力,真正理解数据结构的编码思想,并且锻炼我们的动手能力和成员间的配合,提高程序编写能力。

在信息传递时,希望长度能尽可能短,即采用最短码。赫夫曼编码的应用,就是采用这种有效的数据压缩技术可以节省数据文件的存储空间和计算机网络的传送时间。

1.输入模块:利用随机函数产生n个数,产生的数据个数由用户自己输入。

2.输出模块:输出排序前的,或者排序后的数据元素到屏幕上显示,并且输出某一种算法排序后的数据元素到文件中保存。

这是一个关于排序的综合系统,该系统包含就平时记录操作中比较常见的几种排序方法;其中包括的排序算法有:直接插入排序、希尔排序、冒泡排序、非递归的快速排序、递归的快速排序、简单排序、堆排序。应用该系统可以完成数据记录的排序操作。

对不同的数据量、不同的数据结构可以采用不同的排序方法。

程序流程:模块设计:

以visual c++编写一个基于对话框的程序,我们假设待排序的数字的总数为10,排序的整个过程为(每个步骤对应一个按钮):

1)数字分散:模拟编号分散开来的过程。

对应的按钮为:idc_button1

按钮标题为:编号分散

(2)分配数字:模拟给每个编号一个3位或4位的数字的过程。

对应的按钮为:idc_button2

按钮标题为:产生数字。

3)集合:所有编号在获得数字后,为进行排序,他们需要先集合。

对应的按钮为:idc_button3

按钮标题为:编号集合。

4)排序:a.

对应的按钮为:idc_button4

按钮标题为:冒泡排序。

b.交换排序。

对应的按钮为:idc_button5

按钮标题为:交换排序。

c.选择排序。

对应的按钮为:idc_button6

按钮标题为:选择排序。

整个对话框的消息映射关系为:

begin_message_map (cmy520dlg, cdialog)

//}afx_msg_map

end_message_map ()

4.1随机数生成的设计及注释。

srand ((unsigned) time (null));

//产生10个3/4位的数。

for (int i = 0; i < 10; i++)

sortobject[i].inumber = temp % 1000;

else//产生4位数。

sortobject[i].inumber = temp % 10000;

4.2排序介绍。

排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。

内部排序和外部排序:

若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序;

反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中。

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...