温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
数据结构与算法课程设计
2023
数据结构
算法
课程设计
任务书
新编
数据结构与算法课程设计任务书2023年
愚昧从来没有给人带来幸福;幸福的根源在于知识。——左拉数据结构课程设计教学任务书计算机202223-1课程设计周数:第20周指导老师:刘文娟
一、课程设计的目的
数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要根底,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。通过此次课程设计主要到达以下目的:x了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;x初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等根本方法和技能;x提高综合运用所学的理论知识和方法独立分析和解决问题的能力;x训练用系统的观点和软件开发一般标准进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的根本要求
1、独立思考,独立完成。课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝。
2、做好上机准备。每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
3、按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;
其中包括:
a)需求分析:
在该局部中表达,每个模块的功能要求
b)概要设计
在此说明每个局部的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义)。
c)详细设计
各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)
源程序要按照写程序的规那么来编写。要结构清晰,重点函数的重点变量,重点功能局部要加上清晰的程序注释。
d)调试分析
测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些。问题如何解决。),算法的改进设想。
e)课程设计总结:(保存在word文档中)总结可以包括:课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考
对数据结构这门课程的思考、在课程设计过程中对数据结构课程的认识等内容;
4、每组实现的结果必须进行检查和演示;程序源代码和程序的说明文件必须上交,作为考核内容的一局部;(上交时每人交一份,文件夹的取名规那么为:"学号姓名",如"202213498高魁"。该文件夹下至少包括:"源代码"、"课程设计报告"、"可执行文件"。由学习委员收集刻盘按规定时间统一上交)。
5、报告提交时间:第20周星期五检查,第20周星期五下午5点之前由学习委员收集上交,迟交无成绩。形式:课程设计报告(要求打印)和电子文档(统一刻盘)。
三、课程设计内容:
1、排序算法演示系统【问题描述】
设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。【根本要求】
(1实现各种内部排序。包括冒泡排序,直接选择排序,希尔排序,快速排序,堆排序。(2待排序的元素的关键字为整数。其中的数据要用随机数产生(如2023000个,至少用5组不同的数据做比较,再使用各种算法对其进行排序,记录其排序时间,再汇总比较。(3演示程序以人机对话的形式进行。每次测试完毕显示各种比较指标值的列表,用饼图或条形图进行表示,以便比较各种排序的优劣。(4界面友好,易与操作。采用菜单方式进行选择。【选做内容】
(1对不同表长进行比较;(2验证各算法的稳定性;(3输出界面的优化。(4使用汉字显示。
2、校园导游咨询系统【问题描述】
设计一个校园导游程序,为来访的客人提供各种信息查询效劳。【根本要求】
(1设计安徽理工大学的校园平面图,所含景点不少于2023个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2为来访客人提供图中任意景点相关信息的查询。(3为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。【选做内容】
(1系统功能的完善;(2提供求任意两个景点之间的所有路径的功能;(3提供校园图中多个景点的最正确访问路线查询,即求途经这多个景点的最正确(短)路径。(4使用汉字显示。
3、通讯录【问题描述】
设计散列表实现通讯录查找系统。【根本要求】
(1设每个记录有以下数据项: 号码、用户名、地址;(2从键盘输入各记录,分别以 号码为关键字建立散列表;(3采用线性探测再散列法解决冲突;(4查找并显示给定 号码的记录;(5通讯录信息文件保存;(6要求人机界面友好,使用图形化界面;【选做内容
】
(1系统功能的完善;(2设计不同的散列函数,比较冲突率;(3在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。(4使用汉字显示。【实现提示】
如果不用界面编程,可用以下函数实现:主函数:根据选单的选项调用各函数,并完成相应的功能。menu(的功能:显示英文提示选单。quit(的功能:退出选单。create(的功能:创立新的通讯录。append(的功能:在通讯录的末尾写入新的信息,并返回选单。find(:查询某人的信息,如果找到了,那么显示该人的信息,如果没有那么提示通讯录中没有此人的信息,并返回选单。alter(的功能:修改某人的信息,如果未找到要修改的人,那么提示通讯录中没有此人的信息,并返回选单。delete(的功能:删除某人的信息,如果未找到要删除的人,那么提示通讯录中没有此人的信息,并返回选单。list(的功能:显示通讯录中的所有记录。save(的功能:保存通讯录中的所有记录到指定文件中。load(的功能:从指定文件中读取通讯录中的记录。
4、哈夫曼编码/译码器【问题描述】
设计一个哈夫曼编码/译码系统,对一个文本文件中的字符进行哈夫曼编码,生成编码文件(压缩文件,后缀名.cod);反过来,可将一个压缩文件译码复原为一个文本文件(.txt。【根本要求】
(1输入一个待压缩的文本文件名,统计文本文件中各字符的个数作为权值,生成哈夫曼树;(2将文本文件利用哈夫曼树进行编码,生成压缩文件(后缀名cod),(3输入一个待解压的压缩文件名称,并利用相应的哈夫曼树将编码序列译码;(4显示指定的压缩文件和文本文件;(5界面友好,易与操作。采用菜单方式进行选择。【选做内容】
(1把哈夫曼编码用二进制位紧缩到一个变量中,利用位运算进行真正的数据压缩,并求压缩比。(2显示哈夫曼树;(3使用汉字显示。愚昧从来没有给人带来幸福;幸福的根源在于知识。——左拉
5、二叉树遍历算法集成功能要求:(1)界面友好,易于操作。可采用菜单或其它人机对话方式进行选择。(2)实现各种二叉树的遍历。包括先序遍历、中序遍历、后序遍历的递归或非递归算法。(3)要求能查找任一结点在某种遍历序列中的前驱和后继。(4)演示程序以人机对话的形式进行。每次测试完毕正确显示各种遍历序列。在上交资料中请写明:存储结构、根本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
6、航班信息的查询与检索功能要求:(1
)界面友好,易于操作。可采用菜单或其它人机对话方式进行选择。(2)实现对飞机航班信息进行排序与查找。可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。每个航班记录包括八项:航班号、起点站、到达站、班期、起飞时间、到达时间、飞机型号以及票价。除了票价为数值型外,其它的均定义为字符串。航班号起点站终点站班期起飞时间到达时间飞机型号票价ca1544合肥北京1.3.5202355124202333960mu5341上海广州每日14202315m901280cz3869重庆深圳2.4.620235520233573320232023
7、学生成绩管理系统(图书管理系统、个人账簿管理系统)功能要求:(1)界面友好,易于操作。可采用菜单或其它人机对话方式进行选择。(2)实现对学生成绩信息进行排序与查找。可按学生学号、姓名等信息进行查询。每个学生信息包含:学号,姓名,班级,语文,数学,英语,物理,化学等项。学生信息的存储结构可以选择顺序结构,也可以选择链式结构。
8、表达式求值功能要求:
当用户输入一个合法的表达式后,能够返回正确的结果。能够计算的运算符包括:加、减、乘、除、括号;能够计算的数要求在实数范围内。能执行多重括号嵌套运算。对于异常表达式给出错误提示。(要求使用静态栈数据结构。)
9、飞机订票系统功能要求:(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;(3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;(4)退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。(5)修改航班信息:当航班信息改变可以修改航班数据文件
2023、多项式运算功能要求。(1)输入并建立多项式;(2)输出多项式,输出形式为整数序列n,c1,e1,c2,e2,......,cn,en,其中n是多项式的项数,ci和ei分别是第i项的系数和指数,序列按指数降序排列;(3)多项式a和b相加,建立多项式a+b;输出相加的多项式(4)多项式a和b相减,建立多项式a-b。输出相加的多项式(5)用带表头结点的单链表存储多项式。
11、猴子选大王问题描述:n只猴子要
选大王,选举方法是:所有猴子按1,2,...,n编号围坐一圈,从第1号开始按1,2,...,m报数,凡
报到m号的退出圈外,如此循环报数,直到圈内剩下一只猴子时,这只猴子就是大王。根本要求:
分别选择顺序表和单向循环链表作为存储结构模拟整个过程,并依次输出出列的各猴子的编号和最终所选出猴王的编号。
12、停车场管理问题描述:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,那么后来的车只能在停车场大门外的便道上等待,一旦停车场内有车开走,那么排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆次序。编制一程序模拟该停车场的管理。提示:
停车场采用栈式结构,停车场外的便道采用队列结构(即便道就是等候队列)。
13、文本编辑器
功能要求。运用链表与数组来处理字符串的各项操作。如插入,