经典算法的设计与实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过上传到指定班级目录中 每组一份报告,包括:
– 开题报告 – 中期报告 – 源代码 – 项目报告 – 演示PPT
成绩评定
同学评定(30分)
– 演示、答辩 – 各小组为其他小组评分
老师评定(70分)—演示(30分)、文档(40分)
– 文档完整,所有文档参考软件工程要求的格式 – 内容正确,条理清楚 – 程序能正确运行
百度文库 难度系数=3
– 1、 纸牌游戏 – 2、交通问路系统 – 3、西文图书管理系统(要求B树建立书号索引) – 4、交通咨询系统设计(最短路径问题) – 5、校园导游咨询
– 6、关键路径查找
该算法虽然较复杂,涉及到的知识也比较多,但书中毕竟有源 码,而且讲解也较为详细。已掌握并实现线性表操作、编程有 一定能力的同学,可选此题目。
– 2、 运动会分数统计 – 3、模拟旅馆管理系统中的床位分配和加收 – 4、实现所有的静态查找表
该部分算法较好理解,不太复杂,已掌握并实现线性表操作的 同学,可选此题目。
要求最后关于各种静态查找表的性能比较得出一个结论。
– 5、订票系统 – 6、图的拓扑排序 – 7、银行业务活动的模拟 – 8、计算机辅助考核系统 – 9、学籍管理系统
– 总结
注明组长,以及小组中每位同学负责的工作 课程设计过程的收获 遇到问题以及解决问题的思路和方法 程序调试能力的思考 对数据结构这门课程的思考 在课程设计过程中对《数据结构》课程的认识等内容
– 特别要求
源程序美观 程序效率高:时间和空间 注释完备
作业上缴方式
项目报告内容(一)
– 问题描述与分析
在该部分中描述该课程设计的总体要求 每个模块的功能的具体要求
– 数据结构设计
为实现每个功能所选择的数据存储结构,说明原因和合理性。
– 软件结构设计
在此说明软件的构架,模块之间的关系。 每个部分的算法设计说明(可以是描述算法的流程图);每个
程序中使用的存储结构设计说明(如果指定存储结构请写出该 存储结构的定义;每个模块的输入和输出分别是什么?
– 6、计算器的实现。
主要利用栈实现表达式求值,要求功能与界面模拟WINDOWS 计算器,支持鼠标。
– 7、通讯录管理 – 8、实现主要的哈希函数构的造法和解决冲突的方法
书中算法只有思想,没有代码。已掌握并实现线性表操作的同 学,可选此题目。
难度系数=2
– 1、 文本编辑
要求功能与界面模拟WINDOWS记事本,支持鼠标,因为记事 本功能较多,可以根据自己的能力模拟出部分功能即可。
– 10、给定一图,求任意两点间的最短路径
该算法有一定的复杂性,老师的讲解尽管不详细,但书中 毕竟有源码。建议已掌握并实现线性表操作、编程有一定 能力的同学,选此题目。
要求以图形界面呈现结果。
– 11、实现所有的动态查找表。
该部分算法有一定的难度,尤其二叉排序树与平衡二叉树, 涉及树的插入与删除等复杂操作。实现不易,尽管书中给 出的代码较为详细
– 11、提供手机号码的管理方案。
由于手机号码的特殊性,将号码组织成何种结构是关键。因此 从如何组织逻辑结构、物理结构,实现哪些算法,如何实现, 这些都需要设计者分析考虑。
分析过程需要综合书中全部知识,实现可能只会使用书中部分 知识。因为没有任何可以参考的方案,全部需要自己分析与考 虑,建议能力强的同学选择此题目。
要求以图形界面呈现结果。
– 7、图形实体的描述
根据提供的数据,能显示该实体,并对实体进行裁剪等功能。(8 人)
该设计内容主要涉及到面、线、点的表示,主要用线性表链式 存储方面的知识,会采用多级链表,因此要比书中相应的知识 的复杂很多。
该题目出自教图形图像方面的老师,题目所涉及的内容会在大 三、大四或毕业设计时使用。建议能力强的同学,选择此题目。
内容及时间安排
项目分组完成
– 项目分组完成,每组3人,每个小组设一个小组长,负责:组 内任务的分配和协调和与老师进行沟通联系
题目可以自选,但需要老师确认 从本周开始,连续六周完成
– 项目开题报告 – 系统演示、答辩和评讲 – 学生要发挥自主学习的能力,充分利用时间,安排好课设的
时间计划,并在课设过程中不断检测自己的计划完成情况, 及时的向教师汇报 – 所有实验必须独立完成,平时有问题应及时通过各种方式与 老师取得联系(上课时咨询或发邮件咨询)
经典算法的设计与实现
主要内容
目的和要求 项目内容 题目选择 上交报告的结构和内容 成绩评定
课程设计的目的和要求
《数据结构》与《C++程序设计》 本项目的目的就是要达到理论与实际相结合,
培养同学们灵活运用所学数据结构和C++的知 识解决各类实际问题的能力,包括:
– 问题分析 – 数据结构的设计 – 软件的总体结构设计 – 用户界面设计 – 算法实现 – 程序测试 – 程序设计的基本技巧和方法
– 10、管理系统的设计与实现。
实现的管理系统要求功能较全,且能与现实生活接近考虑数据 量大,如有上百万条的情况。主要用线性表的知识(顺序与链 式存储都会涉及),涉及查找与排序算法,文件的知识是必须。
这里综合用到数据结构的知识,都不复杂,但有些锁碎,建议 想强化基本知识掌握的同学选此题目。
项目报告内容(二)
– 算法设计
各个算法的流程图,算法实现的源程序以及算法分 析。
源程序要按照软件工程的规则来编写。要结构清晰, 重点函数的重点变量,重点功能部分要加上清晰的 程序注释。
– 调试分析
针对每个模块选择测试数据,测试输出的结果(用 表格显示)
时间复杂度和空间复杂度的分析
项目报告内容(三)
– 注:游戏中要考虑的因素:可以实现二维游戏,也可 以是三维游戏。二维游戏要求考虑:碰撞检测\加截 场景\声音加载\文件保存与加载\鼠标拾取与操作\地 图之生成。三维游戏要求考虑:碰撞检测\骨骼动画 之实现\灵活摄像机设置\粒子系统之实现\地形生成\ 天空生成\动态流体之模拟\场景之渲染\输入之交互 处理。
建议能力强的同学选择此题目。
– 12、飞机游戏的实现
该游戏的基本要求:飞机能飞,有声音,鼠标与键盘控制 灵活、合理,能发射子弹,碰雷爆炸。
– 13、精灵动画之实现
– 14、游戏中部分主要功能之模拟,如寻路功能、 地图之生成之模拟。
游戏可以设计的简单,也可以复杂,这取决于你个人的能 力,但界面一定要美观,操作方便。
– 5、一元多项式的各种运算
除了考虑书中已提供的加法功能外,可以实现更多的运算。
该算法主要涉及线性表的链式操作,是数据结构中最基本,也 是日后应用最常用的操作,也是后续课程认为学生在这方面编 程能力最差的一部分知识。
没有完整控制过链表的同学只能选择此题目,因为这是最基本 的知识,必须掌握。
– 8、图的连通性判定
给定一图,在遍历的基础上确定其是否是连通。已掌握并 实现线性表操作、编程有一定能力的同学,可选此题目。 书中虽然有源码,但离实现有一些距离,加上老师没有讲 解,考验分析代码之能力。
– 9、求其最小生成树
已掌握并实现线性表操作、编程有一定能力的同学,可选 此题目。
书中提到的一个方法有源码,关于算法的讲解也很详细; 另一个方法只有思想,完全没有代码,实现它考验有算法 的基础上,如何表示与实现算法之能力。
课程设计题目
难度系数=1
– 1、八皇后问题 – 2、哈夫曼编/译码器
建议已掌握并实现线性表操作的同学,但编程能力仍不算 高的同学可选择此题目,毕竟书中已提供了主要源码,自 己可发挥的余地较小。
– 3、迷宫问题求解 – 4、各种排序算法的实现与比较
要求实现复杂排序算法。已掌握并实现线性表操作的同学, 可选此题目。
相关文档
最新文档