数据结构课程设计报告

发布 2022-10-05 19:26:28 阅读 8494

作者:panhongliang

仅供个人学习。

数据结构课程设计。

题目: 赫夫曼树的建立。

运动会分数统计。

订票系统。猴子选大王。

姓名:**学号: *

专业: *指导教师: *

一:绪言31.1课题设计背景3

1.2课题研究的目的和意义3.

1.3课题研究的内容4

二:具体程序设计62.1赫夫曼树的建立6

2.2运动会设计8

2.3订票系统12

2.4猴子选大王15

三:总结与展望15

四:参考文献15

附:程序源**。

1. 绪言。

1.1 课题背景。

数据结构》作为一门独立的课程最早是美国的一些大学开设的,2024年美国唐·欧·克努特教授开创了数据结构的最初体系,他所著的《计算机程序设计技巧》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。从60年代末到70年代初,出现了大型程序,软件也相对独立,结构程序设计成为程序设计方法学的主要内容,人们就越来越重视数据结构,认为程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法。从70年代中期到80年代初,各种版本的数据结构著作就相继出现。

目前在我国,《数据结构》也已经不仅仅是计算机专业的教案计划中的核心课程之一,而且是其它非计算机专业的主要选修课程之一。

数据结构》在计算机科学中是一门综合性的专业基础课。数据结构的研究不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素更为方便。

因此,可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程,在计算机科学中,数据结构不仅是一般程序设计(特别是非数值计算的程序设计)的基础,而且是设计和实现编译程序、操作系统、数据系统及其它系统程序和大型应用程序的重要基础。 值得注意的是,数据结构的发展并未终结,一方面,面向各专门领域中特殊问题的数据结构得到研究和发展,如多维图形数据结构等;另一方面,从抽象数据类型的观点来论数据结构,已成为一种新的趋势,越来越被人们所重视。

1.2课题研究的目的和意义

通过对此次数据结构大型作业内容的实际操作及分析,加深对数据结构丰富功能的理解及增强实际动手能力,在实践中不断提高对汇编语言的运用能力。锻炼学生分析与编写大型软件**的能力。通过与同组同学的合作,锻炼协作的能力。

二:具体程序设计。

2.1 赫夫曼树的建立。

1.任务 :建立建立最优二叉树函数

2.要求:可以建立函数输入二叉树,并输出其赫夫曼树。

3.概要设计。

程序流程图如下:

4.调试分析。

运行时显示:

输入 a b c d e时:

输入110时:

这时按任意键则返回编辑窗口。

2.2运动会分数统计。

1.任务:参加运动会有n个学校,学校编号为1……n.比赛分成m个男子工程,和w个女子工程。

工程编号为男子1……m,女子m+1……m+w.不同的工程取前五名或前三名积分;取前五名的积分分别为,前三名的积分分别为;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20).

2.功能要求:1).可以输入各个工程的前三名或前五名的成绩; 2).能统计各学校总分, 3).可以按学校编号、学校总分、男女团体总分排序输出;4).

可以按学校编号查询学校某个工程的情况;可以按工程编号查询取得前三或前五名的学校。

3. 规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动工程的名称)

4.抽象数据类型结构体数组的定义如下:

#define m 66 个男子工程 */

#define w 44 个女子工程 */

#define n 10

typedef struct{

int man[5+1排名,此数组中存放学校** */

int women[3+1]。

char iname[m+w+1工程名称 */

item工程**,m的为女子 */

typedef struct{

int scoret学校总分 */

int scorem男子总分 */

int scorew女子总分 */

int man[m+1男子工程 */

int women[w+1女子工程 */

int flag排序用旗帜*/

school。

item item[m+w+1m+w个工程 */

school sch[n+1n个学校,0不用 */

char name[n+1][100]。

void input输入函数。

void initial初始化函数。

void school_f按学校**查询函数。

void item_f运动工程查询函数。

void find查询菜单函数。

void order_st总分排序函数。

void order_sm男子总分排序函数。

void order_sw女子总分排序函数。

void find_o排序菜单函数。

void output输出到文件函数。

void 5.本程序包括5个模块。

a.主程序模块:

void main()

do接受命令;

处理命令。while(“命令”=退出);

b.信息输入模块——实现信息的输入;

c.信息查询模块——实现信息的查询;

d.信息排序查询模块——实现各种的有序输出;

e.信息存盘模块——实现输出到文件。

各模块的关系如下:

主程序模块——信息输入模块——信息查询——信息排序查询模块—信息存盘模块。

6.流程图。

7.调试分析。

a. 本程序在工程上采用了数字**操作,并且能同步输入输出工程名和学校名。实现方法为在学校结构体内增加字符数组用来存储学校的名称。

缺点就是没有考虑有一个学生参加两项比赛的情况,这就要再次增加循环参加比赛的数目。

b.算法的时空分析。

1)本程序时间复杂度为n*n主要集中在按积分排序的过程,在排序时采用了冒泡排序,而且在交换数据时也较大地耗费内存,至今未能解决。

2)另外一点在于工程查询时,会增加时间复杂度,为了减少时间复杂度,我把按工程查找分为按女子和按男子查找,这样在查询工程时可先判断是男子工程还是女子工程,再查找,这样就减少时间复杂度。

3)在空间复杂度方面,本程序几乎没有用到辅助空间,只是未用到所有的数组,会浪费一些存储空间。

8.测试结果。

这是在学校个数为1,工程数为2(包括一个男子工程一个女子工程)时的输出文件情况:

1 a 学校。

总分: 7 ,男子总分: 7,女子总分: 0

2 b 学校。

总分: 7 ,男子总分: 5,女子总分: 2

3 c 学校。

总分: 6 ,男子总分: 3,女子总分: 8

4 d 学校。

总分: 2 ,男子总分: 2,女子总分: 8

5 e 学校。

总分: 6 ,男子总分: 1,女子总分: 5

6 学校。总分: 0 ,男子总分: 0,女子总分: 8

7 学校。总分: 0 ,男子总分: 0,女子总分: 0

8 学校。总分: 0 ,男子总分: 0,女子总分: 0

9 学校。总分: 0 ,男子总分: 0,女子总分: 0

10 学校。

总分: 0 ,男子总分: 0,女子总分: 0

男子工程1排名:

第1名: 1 第2名: 2 第3名: 3 第4名: 4 第5名: 5

男子工程2排名:

第1名: 0 第2名: 0 第3名: 0 第4名: 0 第5名: 0

男子工程3排名:

第1名: 0 第2名: 0 第3名: 0 第4名: 0 第5名: 0

男子工程4排名:

第1名: 0 第2名: 0 第3名: 0 第4名: 0 第5名: 0

男子工程5排名:

第1名: 0 第2名: 0 第3名: 0 第4名: 0 第5名: 0

男子工程6排名:

第1名: 0 第2名: 0 第3名: 0 第4名: 0 第5名: 0

女子工程7排名:

第1名: 0 第2名: 0 第3名: 0

女子工程8排名:

第1名: 5 第2名: 3 第3名: 2

女子工程9排名:

第1名: 0 第2名: 0 第3名: 0

女子工程10排名:

第1名: 0 第2名: 0 第3名: 0

2.3订票系统。

1.任务:通过此系统可以实现如下功能:

a.录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

b.查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);

数据结构课程设计报告

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

数据结构课程设计报告

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

数据结构课程设计报告

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