C/C++《数据结构与算法分析课程设计》任务书(9题)[2024-12-21]
《数据结构与算法分析课程设计》任务书
一、课程目标
数据结构与算法分析课程设计是数据结构课程的一个综合实践练习,是有别于课程实验的一个独立实践教学环节。数据结构与算法分析课程设计一般在课程结束后进行,教学时数为2周。
实习目标1:能对实际问题进行分析和抽象,并进行数据结构设计和算法设计,具有初步的分析问题和解决问题的能力。
实习目标2:了解软件工程的理论与方法,初步掌握软件开发过程中的需求分析、系统设计、编码、测试等基本方法和技能。
表1 毕业要求指标点与课程目标的对应关系
毕业要求指标点 | 课程目标 |
---|---|
3.3能够进行计算机领域中软硬件系统设计,在设计中体现创新意识。 | 课程目标1 |
3.4在设计中能够考虑安全、健康、法律、文化及环境等制约因素。 | 课程目标2 |
具体要求如下:
1、结合实际问题进一步理解和深化课程理论知识,做到理论与实际相结合。
2、进一步强化编程训练,提高程序设计能力。
3、设计内容要有一定的深度和难度,达到一定工作量,代码量不低于500行。
二、软课程设计内容
数据结构与算法分析课程设计的主要工作如下:
1、问题定义与需求分析:根据设计题目的要求,对问题进行分析,确定系统的功能需求和性能需求。
2、数据结构与算法设计:对问题描述中涉及的数据对象定义相应的数据结构,包括逻辑结构、存储定义和主要操作。对主要算法要进行时间和空间复杂度分析。
3、概要设计:采用面向对象方法设计软件结构,定义类及类之间的关系。要求系统结构合理、易于实现。
4、详细设计:对数据结构和基本操作做进一步的求精,写出数据存储定义,用程序流程图或伪码对算法进行描述。
5、编码与测试:用C++编程实现系统,并设计测试用例对系统进行测试,修改程序中的错误,形成格式和风格良好的源程序清单。
6、设计结果分析:对系统应用效果进行分析,评价系统的先进性、实际应用价值及在在的问题。
7、撰写课程设计报告。
三、数据结构与算法分析课程设计考核
数据结构与算法分析课程设计考核内容包括设计作品和设计报告两个部分。设计作品包括可运行的源程序,系统使用说明,主要程序代码(打印附在课程报告内)。
- 数据结构与算法分析课程设计报告主要报告系统分析、设计和实现过程,内容如下:
- 问题定义及设计要求;
- 主要设计内容:详细报告数据结构与算法分析课程设计中所做的主要工作,包括系统分析、概要设计、数据结构设计、算法设计及模块设计和编程及测试等。
- 总结与体会:写出本次数据结构与算法分析课程设计的主要创新点及存在的问题。
- 参考文献:列出所参考的主要文献。
2.数据结构与算法分析课程设计成绩分两部分,数据结构与算法分析课程设计报告占50%,数据结构与算法分析课程设计答辩50%(需提交答辩记录表)。评价因素主要有: - 知识点覆盖范围及运用能力;
- 数据结构设计与算法设计能力;
- 系统规模(代码行数);
- 数据存储方式;
- 人机交互(用户体验或评价)
四、 数据结构与算法分析课程设计考核标准
1. 初步设计内容的考核:是否有查阅资料能力?是否有设计思想? (20%,实习目标1)
2. 程序编码能力调试能力的考核:程序是否清晰、易读?在技算计上是否可独立完成程序的调试,是否熟练?(20%,实习目标1)
3. 数据结构与算法分析课程设计报告质量的考核:设计结构是否合理?叙述是否正确?方案是否可行? (20%,实习目标2)
4. 答辩:设计结果的调试能力,对自己设计是否熟练? (20%,实习目标1)
5. 出勤率极平时表现的考核:无故缺勤者成绩为不及格。 (20%,实习目标2)
五、参考题目
学号末位为下列题目编号的同学做相应的题目,参考题目基础功能如下,学生可对参考题目合理添加各种界面并进行扩充与深入研究,视难易程度及工作量给予加分。同学也可以和老师商量完成其他类似的题目。
1、对飞机航班信息进行排序和查找,可按照航班号,起点站,到达站,起飞时间和到达时间等信息进行查询。
2、稀疏矩阵是指那些多数元素为零的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。以“带行逻辑连接信息”的三元组顺序表表示系数矩阵,实现两个矩阵相加、相减和相乘等运算。
3、设计一个校园导游程序,为来访的客人提供各种信息查询服务。根据学校平面图设计一个校园导游咨询系统,系统中存有景点。可实现功能大致有:
(1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
(4)提供图中任意景点问路查询,即求任意两个景点之间的所有路径。
4、银行排队系统模拟假设某银行对外接待客户,从早晨银行9点开门起到5点关门,不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动。
5、航空客运订票的业务活动包括:航线查询、客票预定和办理退票等。试设计一个航空客运订票系统完成上述功能。
6、 学生通讯录系统。实现的主要功能有: 1) 输入数据建立通讯录。 2) 查询通讯录中满足要求的信息。 3) 插入新的通讯录信息。 4) 删除不需要的通讯录信息。 5) 查看所有的通讯录信息。
7、表达式求值。一个算术表达式是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。假设操作数是正整数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符“#”,如:#(7+15)*(23-28/4)#。引入表达式起始、结束符是为了方便。编程利用“算符优先法”求算术表达式的值。
8、二叉树基本操作模拟程序。用链式存储结构实现对二叉排序树的的创建,各种遍历,树高、节点数量等基本操作。
9、哈夫曼编码。设计一种编码,让使用频率高的字符的编码尽可能的短,并且要求一字符的编码不能与另一个字符的编码的前一部分相同。把每个叶子的使用频率作为权,构造哈夫曼树。然后能够通过字符和他的权值来构造哈夫曼编码,并且能够通过编码相反的过程来实现哈夫曼的译码功能。能够通过键盘或者纯文本文件读入字符集的大小n,以及n个字符和权值来建立哈夫曼树,
0、广义表。本设计要求实现广义表的建立、查找、输出、取表头、取表尾及求深度等运算。