目录
1 红旗渠景区年卡信息管理系统........................................... 1
2 停车场管理系统.................................................................. 1
3 同学录管理系统.................................................................. 2
4 旅游导航系统.............................................................. 2
5 电话号码查询系统.............................................................. 2
6 图书管理销售系统.............................................................. 3
7 道路规划............................................................................. 4
8 关键路径问题..................................................................... 4
9 数据压缩............................................................................. 5
10 内部排序算法比较............................................................ 6
11 百家姓信息管理系统........................................................ 7
12 商人好酒........................................................................... 7
13 迷宫问题求解................................................................... 8
14 运动会分数统计系统........................................................ 9
15 数据结构成绩管理系统.................................................. 10
1 红旗渠景区年卡信息管理系统
[项目描述]
红旗渠,位于河南安阳林州市,是国家AAAAA级旅游景区,全国重点文物保护单位,被誉为“世界第八大奇迹”。红旗渠是20世纪60年代林县(今林州市)人民在极其艰难的条件下,从太行山腰修建的引漳入林的工程,被人称之为“人工天河”。 红旗渠修建孕育了伟大的红旗渠精神,它成为民族精神的一座丰碑,中华文化的一个符号。为了弘扬红旗渠精神,红旗渠景区在21年推出红旗渠超值旅游年卡,正式上线!98元全年不限次打卡红旗渠,包括景区门票+往返观光车!请用所学知识管理这些手握年卡的VIP人员的信息。
[项目目的]
- 掌握线性表的顺序存储实现;
- 掌握线性表的链式存储实现;
- 针对具体复杂问题,能够对项目进行合理的数据抽象,选择或构建合适的数据结构和算法,具有初步解决复杂工程问题的能力;
- 在分析复杂工程问题时,能够通过文献研究给出多种数据结构和算法的解决方案,并能够分析相应的优缺点。
[项目任务]
(1)将VIP年卡人员信息进行数据抽象(元素类型ElementType:人员信息 );
(2)能实现选择用顺序表或者链表实现人员信息的存储并能进行插入、删除、查找等相关操作;
(3)能统计VIP年卡人员的总数;
(4)排序功能:能实现选择按身份证号升序或降序排序并显示数据。
2 停车场管理系统
[基本要求]
设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门外,其他车辆再按原次序进入车场,每辆车停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
试为停车场编制按上述要求进行管理的模拟程序。
3 同学录管理系统
[基本要求]
采用二叉树存储结构,利用预置数组建立二叉树;实现对同学录的查找,基于查找实现对同学录的修改和新增成员;求所要操作节点的父节点,从而顺利地编写对同学录的删除操作。
4 旅游导航系统
[基本要求]
(1)设计安阳的旅游景点平面图,所包含景点不少于10个,以图中顶点表示安阳的各景点,存放景点名称、代号、简介等信息:以边表示路径,存放路径长度等相关信息。注意:设校园平面图是无向图。
(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
(3)为来访客人提供图中任意景点相关信息的查询。
(4)提供图中任意景点问路查询,即求任意两个景点之间的所有路径。
(5)若要改建高速公路,要求能够连通每一个景点,请设计算法给出修路建议。
5 电话号码查询系统
[基本要求]
(1)使用哈希查找表存储信息
(2)实现查找、插入、删除、统计、输出等功能。
提示:
(1)构建电话号码表
(2)编写一个电话号码查询系统,要求实现对电话号码记录的录入(插入)存储、查询、记录删除、排序、打印等模块。
6 图书管理销售系统
[问题描述]
安阳,河南省地级市,位于中国中北部、河南省最北部,地处河南、山西、河北三省交界处, 安阳是中国八大古都之一,是早期华夏文明的中心之一,甲骨文的故乡、周易的发源地、红旗渠精神的发祥地。历史上,先后有商朝、曹魏、后赵、冉魏、前燕、东魏、北齐等在安阳建都,故安阳素有“七朝古都”之称。为了让更多的人领略它的风采,开设了一个安阳文化书店,书店中有很多书,请用所学的知识管理这些图书。
图书名称 | ISBN | 定价 | 销售量 | 库存 |
安阳小屯 | 9787506259262 | 128 | 2 | 98 |
殷墟甲骨文 | 9787501044740 | 56 | 5 | 95 |
甲骨文有故事 | 9787122376138 | 88 | 10 | 5 |
红旗渠精神 | 9787509850695 | 46 | 15 | 10 |
中国红旗渠 | 9787555900436 | 45 | 6 | 20 |
山腰上的中国:红旗渠 | 9787559651259 | 58 | 8 | 15 |
国学经典丛书:易经 | 9787516909263 | 36 | 7 | 3 |
周易 | 9787547233726 | 26 | 3 | 2 |
...... |
[基本要求]
利用顺序存储结构,构建图书管理销售系统,完成以下功能:
(1)构建图书信息库表
(2)根据书号查找图书信息
(3)根据书名查找图书信息
(4)修改图书信息
(5)根据书号删除图书信息
(6)根据书名删除图书信息
(7)插入一个书号不重复的图书信息
(8)将图书按价格排序
(9)将图书按销售量排序
(10)将图书按库存量排序
(11)根据图书库存量设置报警信息
(12)显示所有图书的基本信息
7 道路规划
[问题描述]
对于如下地图,实现图的基本算法。
[基本要求]
(1)以邻接表作交通图的存储结构,表示该图。
(2)若要改建快速道路,要求能够连通图中所有的城市,且快速道路的修建成本最低(修建成本和距离成正比),求要改建道路及总长度(图的最小生成树)。
(3) 针对用户所输入的两个城市、求出其最小距离,并输出所经历的城市及总距离。
8 关键路径问题
[问题描述]
红旗渠工程于1960年2月动工,林县县委开始对引漳入林的艰巨性认识不足,认为几个月就可以完工通。事实上红旗渠的修建是一个浩大的水利工程,林县人民在极其艰难的条件下,众志成城,最终于1969年7月支渠配套工程全面完成,历时近十年。红旗渠是毛泽东时代林州人民发扬“自力更生,艰苦创业、自强不息、开拓创新、团结协作、无私奉献”精神创造的一大奇迹,全长1500公里的红旗渠,结束了林州十年九旱、水贵如油的苦难历史。假如现在你负责一个工程项目,对于下图,你能否估算出工程的工期呢?
[基本要求]
(1)以邻接矩阵或者邻接表的存储结构,表示该图。
(2)求解每个活动的最早发生时间和最迟发生时间以及每个活动的时间余量(延迟时间)。
(3) 输出关键活动。
9 数据压缩
[实践目的]
通过实践,掌握如下内容:
了解赫夫曼树的思想和相关概念
学习使用二叉树解决实际问题的能力
[实践内容]
利用二叉树结构实现赫夫曼树的构建、赫夫曼编码、译码。
[基本要求]
- 初始化(Init):能够对输入的任意长度的字符串s进行统计,统计每个字符的频度,并建立赫夫曼树
- 建立编码表(CreateTable):利用已经建好的赫夫曼树进行编码,并将每个字符的编码输出。
- 编码(Encoding):根据编码表对输入的字符串进行编码,并将编码后的字符串输出。
- 译码(Decoding):利用已经建好的赫夫曼树对编码后的字符串进行译码,并输出译码结果。(选作)
- 打印(Print):以直观的方式打印赫夫曼树(选作)
- 计算输入的字符串编码前和编码后的长度,并进行分析,讨论赫夫曼编码的压缩效果。
[测试数据]:
I love data Structure, I love Computer. I will try my best to study data Structure.
[提示]:
(1)用户界面可以设计为“菜单”方式:能够进行交互。
(2)根据输入的字符串中每个字符出现的次数统计频度,对没有出现的
字符一律不用编码。
10 内部排序算法比较
[问题描述]
各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。试通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。
[基本要求]
(1) 对以下8种常用的内部排序算法任意选择8种进行比较:直接插入排序;希尔排序;冒泡排序;快速排序;简单选择排序;堆排序;归并排序;基数排序。
(2) 待排序表的表长不小于100;其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字移动次数(关键字交换计为3次移动)。
[测试数据]
由随机产生器决定。
[实现提示]
主要工作是设法在程序中适当的地方插入计数操作。程序还可以包括计算几组数据得出结果波动大小的解释。注意分块调试的方法。
11 百家姓信息管理系统
[问题描述]
针对百家姓设计一个哈希表,使得平均查找长度不超过R,并完成相应的建表和查表程序。
[基本要求]
假设百家姓采用汉语拼音形式。待填入哈希表的姓不少于100个,取平均查找长度的上限为2。哈希函数用除留余数法构造,用线性探测再散列法或链地址法处理冲突。
[测试数据]
取读百家姓中的姓进行测试。
[选作内容]
(1) 从教科书上介绍的集中哈希函数构造方法中选出适用者并设计几个不同的哈希函数,比较他们的地址冲突率(可以用更大的数据集进行实践)。
(2) 研究这300个姓的特点,努力找一个哈希函数,使得对于不同拼音的姓一定不发生地址冲突。
(3) 在哈希函数确定的前提下尝试各种不同处理冲突的方法,考察平均查找长度的变化和造好的哈希表中关键字的聚集性。
12 商人好酒
[问题描述]
在我国发现的商朝贵族墓葬中,青铜酒器的比重是最大的,占到有70%—80%。
且在甲骨文中酒字多有出现。
假设有殷商贵族m人席地按照1~m的顺序围坐一圈,每数到第n个,该人满饮一爵(杯)酒,设这些人的酒量为t,达到t杯后醉倒不再参与,这样依次下来,直到圈中只剩下最后一人。输入m,n和t,坚持到最后的是第几人。
[项目的目的]
- 掌握队列的顺序存储实现及基本操作;
- 掌握队列的链式存储实现及基本操作;
- 针对具体复杂问题,能够对项目进行合理的数据抽象,选择或构建合适的数据结构和算法,具有初步解决复杂工程问题的能力;
- 在分析复杂工程问题时,能够通过文献研究给出多种数据结构和算法的解决方案,并能够分析相应的优缺点。
[项目的任务]
- 抽象数据:定义一结构体,成员包括编号、酒量和结构体指针;
- 建立链式队列,并能实现节点的插入、访问和删除。
13 迷宫问题求解
利用栈结构实现迷宫求解问题。迷宫求解问题如下:
心理学家把一只老鼠从一个无顶盖的大盒子的入口赶进迷宫,迷宫中设置很多隔壁,对前进方向形成了多处障碍,心理学家在迷宫的唯一出口放置了一块奶酪,吸引老鼠在迷宫中寻找通路以到达出口,测试算法的迷宫如下图所示。
提示:1、可以使用递归或非递归两种方法实现
2、老鼠能够记住已经走过的路,不会反复走重复的路径
3、可以自己任意设置迷宫的大小和障碍
4、使用“穷举求解”的方法
14 运动会分数统计系统
[项目的任务]:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)
[功能要求]:
- 可以输入各个项目的前三名或前五名的成绩;
- 能统计各学校总分,
- 可以按学校编号、学校总分、男女团体总分排序输出;
- 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:有中文提示,各学校分数为整数
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;
15 数据结构成绩管理系统
[基本要求]
(1)学生信息及成绩的录入
要求包括的学生信息有:学号、姓名、性别、出生日期、民族及数据结构成绩(具体内容可自行假设,至少录入10名以上学生)
所录入的学生按学号散列存储(散列函数为:学号%5 取整,如 1002%5 =2),采用拉链法解决冲突。
(2)学生成绩的查询
要求根据提供的学号完成学生成绩的查询(必须采用哈希查找)
(3)学生成绩的分段统计和排序输出
统计出各分数段学生人数(60分以下,60~70,71~80,...)
采用任何一种排序方法,将学生成绩从高到低排序输出