《数据结构》课程设计报告
摘要
本次课程设计设计的是人口信息查询系统方案验证,通过测试、比较和实际的数字说明,
得出一套整体设计方案,使其查询速度最快,稳定性最好。
本次设计的难点在于,测试的数据量比较庞大,怎样实现一种快捷准确的方式来实现人
口信息的生成,所以得先写程序自动生成随机的 10000000 个测试数据,每个数据包括姓
名、性别、地址、出生日期、工作信息和电话,其中每个人的信息是采用结构体数组来存放 ,
再用 C++中的类来封装,考虑到查找的速度,数据尽量不存在内存中,于是之前生成的数
据就是采用线性表的顺序结构存放在文本文档中的。为此必须使用大量的文件读写操作,分
块将数据写入读出。
查找每个人的信息,有多种方案可实现查找,一种方案是先把数据从文本中取出来放到
链表中,输入所要查找人的姓名,就按照顺序查找的方法逐一地查找。另一种方案是把文本
里的数据保存为索引表,按地名相同放在一起,然后查找的时候就是采用索引表查找,也叫
分块查找。最后,通过实际的数据比较及性能测试,可以确定的是,索引表查找效率明显高
于顺序表查找。
通过多种方案的比较,最终得出一个较为快捷准确的查找方案,即存储采用顺序表存储,
查找采用索引表查找,这样能够最大限度的实现系统的优化处理,即提高查找速率。
关键字:数组、线性表,链表、索引表
I
《数据结构》课程设计报告
目录
1.1 问题描述.........................................................................................................................................................1
1.2 主要功能实现.................................................................................................................................................1
1.3 各功能模块描述.............................................................................................................................................1
1.4 测试数据.........................................................................................................................................................3
2.1 随机信息生成.................................................................................................................................................4
2.2 查找实现.........................................................................................................................................................6
2.2.1 顺序表存储..........................................................................................................................................6
2.2.2 链表结构存储......................................................................................................................................6
2.3 抽象数据类型定义.........................................................................................................................................7
3.1 顺序表查找算法.............................................................................................................................................9
3.2 索引表查找算法............................................................................................................................................9
3.3 直接插入排序...............................................................................................................................................10
3.4 希尔排序.......................................................................................................................................................10
3.5 折半查找.......................................................................................................................................................11
4.1 进入界面.......................................................................................................................................................12
4.2 选择查询方式...............................................................................................................................................12
4.3 查询结果显示...............................................................................................................................................13
4.4 人口信息随机生成.......................................................................................................................................13
II
信息生成
查找 性能比较
主模块
《数据结构》课程设计报告
第一章 问题需求说明书
1.1 问题描述
现在整个中国有 1300000000 人口,现在假设中国人口普查中以要设计一套人口查询
系统,询中国任何一个人的基本信息(如:姓名,出生年月,性别,住址,电话,工作单位 ,
及其它历信息),但要求查询速度特尽可能地快,设计合理的数据结构,及存储结构,查询
算法,通过实际的实验,比较,且实际的数字说明,该系统采用什么样的一整套方案。
测试数据要求:自己写程序,不少于 10000000 的测试数据,每个数据包括姓名,出
生年月,性别,住址,电话,工作单位信息。
1.2 主要功能实现
1、界面友好,易与操作。采用菜单或其它人机对话方式进行操作。
2、通过输入个人信息,如姓名、地址,以实现个人信息的查找,其中信息生成采用随机
方式,并存储于磁盘上,数据量大,查找采用多种方式查找。
3、存储结构采用线性表和链表结构,查找采用顺序表查找和索引表查找,通过数据测试
比较,从中比较得到最佳的查询方案。
4、演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标的列表,以便比较
各种查找方式的优劣。
1.3 各功能模块描述
1、主函数模块
本模块的主要功能是界面初始化,调用各模块,实现软件功能。
1
《数据结构》课程设计报告
2、人口信息随机生成模块
本模块的主要功能是实现人口信息的随机生成,这个功能是在查询功能以前,由用户自
己运行生成的。
2
《数据结构》课程设计报告
3、查找模块
本模块主要功能是实现多种查找方式,如顺序表查找、索引表查找等。
4、性能比较模块
本模块主要功能主要是实现对不同存储方式下的不同查找方式的性能比较,从中找出性能
较为优越的存储方式及查找方式。
1.4 测试数据
1、人口信息随机生成,包括姓名,出生年月,性别,住址,电话,工作单位,及其它
历信息。(崔水桃 女 吉林 01-22-86 教师 13650531686)。
2、查询个人信息测试。
3、查找算法验证。
3