数据结构课程设计指导书
数据结构是计算机科学与技术以及相关专业的一门专业基础课程,在计算机科学领域的主干课程中具有承上启下的作用。本指导书旨在帮助学生更好地理解数据结构课程的设计目的及意义,掌握程序设计的技能与方法,并初步感受软件开发过程的项目管理方法与规范。
一、课程设计目的及意义
数据结构课程设计是一个独立的实践环节,是对数据结构课程教学理论的延伸和补充,是对数据结构抽象理论知识的综合应用。它有助于学生进一步掌握程序设计的技能与方法,初步感受软件开发过程的项目管理方法与规范,更重要的目的是培养学生分析问题、解决问题、编写程序、动手操作的能力以及锻炼学生的设计创新能力。
二、课程设计要求
在指导教师指导下,学生在两周内完成对所选题目的程序设计和设计说明书的撰写。具体包括:
1. 对系统进行功能模块分析、控制模块分析正确
2. 系统设计要能完成题目所要求的功能
3. 编程简练,可用,尽可能的使系统的功能更加完善和全面
4. 说明书、流程图要清楚
5. 特别要求自己独立完成
三、课程设计内容
课程设计题目可从以下参考题目中选择,学生也可自拟题目,但必须征得指导老师同意。
1. 一元多项式的代数运算设计要求:计算任意两个一元多项式的加法、减法以及乘法
2. 算术表达式求值设计要求:将任意一个算术表达式转化为逆波兰表示,并根据逆波兰表示计算表达式的值
3. 舞伴问题设计要求:模拟上述舞伴系统,并能计算对于任何男士 A 和女士B在哪一轮舞曲中的 k 次跳舞
4. 集合的等价划分设计要求:对于任何一个集合及其上的一个等价关系(要验证此关系的等价性),给出该集合的等价划分
5. 树或二元树的层次遍历设计要求:对于任何一个给定的树或二元树依据其层次关系从上到下(层次之间),从左到右(同一层内)进行遍历
6. 哈夫曼编码与译码设计要求:针对字符集 A 及其各字符的频率值(可统计获得)给出其中给字符哈夫曼编码,并针对一段文本(定义在 A 上)进行编码和译码,实现一个哈夫曼编码/译码系统
7. 地图着色问题设计要求:已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少
8. 小型文本编辑器设计要求:设计一个文本编辑器,使其具有通常编辑器(如 Notepad)具备的功能
9. 校园导航问题设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)和路径长度
10. 学校超市选址问题(带权有向图的中心点)设计要求:对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同,为超市选址,要求实现总体最优
11. 教学计划编制问题设计要求:针对哈工大计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同
12. 散列法的实验研究设计要求:散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突的方法也可以不同,两者是影响查询算法性能的关键因素,对于几种典型的散列函数构造方法,做实验观察,不同的解决冲突方法对查询性能的影响
13. 关键路径问题设计要求:对于任何大型工程项目(由若干小工程组成),求其关键路径和关键活动
14. 最小生成树问题设计要求:在 n 个城市之间建设网络,只需保证连通即可,求最经济的架设方法
15. 平衡二叉树的判定设计要求:给定一个二叉树的先序遍历或后序遍历结果,判定其是否为平衡二叉树
16. 简单学生信息管理系统问题描述:设计一个简单学生信息管理系统基本要求:(1)学生基本信息包括:学号、姓名、性别、出生日期、家庭住址、宿舍号、宿舍电话等。(2)学生信息以文件方式保存。(3)具有建立、打开文件,增加、删除、修改、查询、打印、浏览功能
17.牌照的快速查找设计要求:排序和查找是在数据信息处理中使用频度极高的操作,为加快速度需先对数据记录按关键字排序,在汽车数据模型中,汽车牌照是关键字