经典算法的设计与实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– –

课程设计题目

难度系数=1


1、八皇后问题 2、哈夫曼编/译码器

建议已掌握并实现线性表操作的同学,但编程能力仍不算 高的同学可选择此题目,毕竟书中已提供了主要源码,自 己可发挥的余地较小。
– –
3、迷宫问题求解 4、各种排序算法的实现与比较

要求实现复杂排序算法。已掌握并实现线性表操作的同学, 可选此题目。
– –
数据结构设计

软件结构设计

项目报告内容(二)

算法设计
各个算法的流程图,算法实现的源程序以及算法分
析。 源程序要按照软件工程的规则来编写。要结构清晰, 重点函数的重点变量,重点功能部分要加上清晰的 程序注释。

调试分析
针对每个模块选择测试数据,测试输出的结果(用
表格显示) 时间复杂度和空间复杂度的分析

9、求其最小生成树


10、给定一图,求任意两点间的最短路径

wenku.baidu.com

该算法有一定的复杂性,老师的讲解尽管不详细,但书中 毕竟有源码。建议已掌握并实现线性表操作、编程有一定 能力的同学,选此题目。 要求以图形界面呈现结果。

11、实现所有的动态查找表。


该部分算法有一定的难度,尤其二叉排序树与平衡二叉树, 涉及树的插入与删除等复杂操作。实现不易,尽管书中给 出的代码较为详细 建议能力强的同学选择此题目。
项目报告内容(三)

总结

注明组长,以及小组中每位同学负责的工作 课程设计过程的收获 遇到问题以及解决问题的思路和方法 程序调试能力的思考 对数据结构这门课程的思考 在课程设计过程中对《数据结构》课程的认识等内容 源程序美观 程序效率高:时间和空间 注释完备

特别要求


6、计算器的实现。

– –
7、通讯录管理 8、实现主要的哈希函数构的造法和解决冲突的方法

书中算法只有思想,没有代码。已掌握并实现线性表操作的同 学,可选此题目。

难度系数=2

1、 文本编辑

要求功能与界面模拟WINDOWS记事本,支持鼠标,因为记事 本功能较多,可以根据自己的能力模拟出部分功能即可。

10、管理系统的设计与实现。


实现的管理系统要求功能较全,且能与现实生活接近考虑数据 量大,如有上百万条的情况。主要用线性表的知识(顺序与链 式存储都会涉及),涉及查找与排序算法,文件的知识是必须。 这里综合用到数据结构的知识,都不复杂,但有些锁碎,建议 想强化基本知识掌握的同学选此题目。 由于手机号码的特殊性,将号码组织成何种结构是关键。因此 从如何组织逻辑结构、物理结构,实现哪些算法,如何实现, 这些都需要设计者分析考虑。 分析过程需要综合书中全部知识,实现可能只会使用书中部分 知识。因为没有任何可以参考的方案,全部需要自己分析与考 虑,建议能力强的同学选择此题目。
问题分析 数据结构的设计 软件的总体结构设计 用户界面设计 算法实现 程序测试 程序设计的基本技巧和方法
内容及时间安排

项目分组完成

项目分组完成,每组3人,每个小组设一个小组长,负责:组 内任务的分配和协调和与老师进行沟通联系


题目可以自选,但需要老师确认 从本周开始,连续六周完成
– –


项目开题报告 系统演示、答辩和评讲 学生要发挥自主学习的能力,充分利用时间,安排好课设的 时间计划,并在课设过程中不断检测自己的计划完成情况, 及时的向教师汇报 所有实验必须独立完成,平时有问题应及时通过各种方式与 老师取得联系(上课时咨询或发邮件咨询)

5、一元多项式的各种运算


除了考虑书中已提供的加法功能外,可以实现更多的运算。 该算法主要涉及线性表的链式操作,是数据结构中最基本,也 是日后应用最常用的操作,也是后续课程认为学生在这方面编 程能力最差的一部分知识。 没有完整控制过链表的同学只能选择此题目,因为这是最基本 的知识,必须掌握。 主要利用栈实现表达式求值,要求功能与界面模拟WINDOWS 计算器,支持鼠标。
经典算法的设计与实现
主要内容

目的和要求 项目内容 题目选择 上交报告的结构和内容 成绩评定
课程设计的目的和要求

《数据结构》与《C++程序设计》 本项目的目的就是要达到理论与实际相结合, 培养同学们灵活运用所学数据结构和C++的知 识解决各类实际问题的能力,包括:


– – – – –

11、提供手机号码的管理方案。



难度系数=3


– –

1、 纸牌游戏 2、交通问路系统 3、西文图书管理系统(要求B树建立书号索引) 4、交通咨询系统设计(最短路径问题) 5、校园导游咨询

6、关键路径查找


该算法虽然较复杂,涉及到的知识也比较多,但书中毕竟有源 码,而且讲解也较为详细。已掌握并实现线性表操作、编程有 一定能力的同学,可选此题目。 要求以图形界面呈现结果。 根据提供的数据,能显示该实体,并对实体进行裁剪等功能。(8 人) 该设计内容主要涉及到面、线、点的表示,主要用线性表链式 存储方面的知识,会采用多级链表,因此要比书中相应的知识 的复杂很多。 该题目出自教图形图像方面的老师,题目所涉及的内容会在大 三、大四或毕业设计时使用。建议能力强的同学,选择此题目。

12、飞机游戏的实现

该游戏的基本要求:飞机能飞,有声音,鼠标与键盘控制 灵活、合理,能发射子弹,碰雷爆炸。
– –
13、精灵动画之实现 14、游戏中部分主要功能之模拟,如寻路功能、 地图之生成之模拟。

游戏可以设计的简单,也可以复杂,这取决于你个人的能 力,但界面一定要美观,操作方便。

注:游戏中要考虑的因素:可以实现二维游戏,也可 以是三维游戏。二维游戏要求考虑:碰撞检测\加截 场景\声音加载\文件保存与加载\鼠标拾取与操作\地 图之生成。三维游戏要求考虑:碰撞检测\骨骼动画 之实现\灵活摄像机设置\粒子系统之实现\地形生成\ 天空生成\动态流体之模拟\场景之渲染\输入之交互 处理。
– – –
2、 运动会分数统计 3、模拟旅馆管理系统中的床位分配和加收 4、实现所有的静态查找表

该部分算法较好理解,不太复杂,已掌握并实现线性表操作的 同学,可选此题目。 要求最后关于各种静态查找表的性能比较得出一个结论。
– –

– –
5、订票系统 6、图的拓扑排序 7、银行业务活动的模拟 8、计算机辅助考核系统 9、学籍管理系统
项目报告内容(一)

问题描述与分析

在该部分中描述该课程设计的总体要求 每个模块的功能的具体要求 为实现每个功能所选择的数据存储结构,说明原因和合理性。 在此说明软件的构架,模块之间的关系。 每个部分的算法设计说明(可以是描述算法的流程图);每个 程序中使用的存储结构设计说明(如果指定存储结构请写出该 存储结构的定义;每个模块的输入和输出分别是什么?

7、图形实体的描述




8、图的连通性判定

给定一图,在遍历的基础上确定其是否是连通。已掌握并 实现线性表操作、编程有一定能力的同学,可选此题目。 书中虽然有源码,但离实现有一些距离,加上老师没有讲 解,考验分析代码之能力。 已掌握并实现线性表操作、编程有一定能力的同学,可选 此题目。 书中提到的一个方法有源码,关于算法的讲解也很详细; 另一个方法只有思想,完全没有代码,实现它考验有算法 的基础上,如何表示与实现算法之能力。
作业上缴方式

通过上传到指定班级目录中 每组一份报告,包括:
– – –


开题报告 中期报告 源代码 项目报告 演示PPT
成绩评定

同学评定(30分)
– –
演示、答辩 各小组为其他小组评分 文档完整,所有文档参考软件工程要求的格式 内容正确,条理清楚 程序能正确运行

老师评定(70分)—演示(30分)、文档(40分)
相关文档
最新文档