当前位置:文档之家› 《数据结构》课程设计任务书

《数据结构》课程设计任务书

算法与数据结构课程设计任务书
课程编号:2409080S 课程性质:专业实践课
学时/学分:1周/1. 适用专业:计算机科学与技术(交通信息工程)教材:《数据结构》C语言版,严蔚敏、吴伟民编著,清华大学出版社
课程设计目的:
1.训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题的能力。

2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
3.培养学生在分析问题和解决问题过程严谨的科学态度和良好的工作作风课程设计要求:
1.18周周1至周5完成选题、问题分析、算法设计、程序编写、程序测试和程序验收。

2.按照课设格式提交课程设计报告(7月10日)。

3.分数=80%程序+20%报告
课程设计题目
课程设计题一:学生成绩管理系统
设计目的:
1.掌握线性链表的建立。

2.掌握线性链表的基本操作。

3.加深对线性链表及其基本操作的理解。

利用线性链表实现学生成绩管理系统。

具体功能:输入、输出、插入、删除、查找、追加、显示、分类合计,并能在屏幕上输出操作前后的结果。

设计要求:
1.初始化线性链表。

可以通过键盘输入,进行学生信息的录入。

并根据命令,
进行插入、删除、追加、遍历、分类合计等操作。

2.输出操作前后的结果。

3.如果有时间,可以添加保存功能。

即将链表中的学生记录保存到一个文本文
件中。

课程设计题二:停车场管理系统
设计目的:
1.掌握栈和队列的建立。

2.掌握栈和队列的基本操作。

3.深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。

4.加深对栈和队列的理解和认识。

设计内容:
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。

车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。

如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。

停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。

每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。

编制一程序模拟该停车场的管理。

1.以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序
列进行模拟管理。

2.每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码
以及到达或离去的时刻。

3.对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在
停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费,功能可自己添加)。

课程设计题三:约瑟夫(Joseph)环
设计目的:
1.掌握单向循环链表的建立。

2.掌握单向循环链表的操作。

3.深入了解单向循环链表的特性,以便在解决实际问题中灵活运用它们。

设计内容:
编号是1,2,……,n的n个人,按照顺时针方向围坐一圈,每个人拥有一个密码(正整数)。

一开始任选一个正整数m,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数。

报m的人出列,将他的密码作为新的m值,从他的顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。

请设计一个程序求出出列顺序。

设计要求:
1.利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。

2.测试数据:m的初值为20,n=7,7个人的密码依次为3,1,7,2,4,7,4,
首先m=6,则正确的输出是什么?
3.输入数据:建立输入函数处理输入的数据,输入m的初值,输入每个人的密
码,建立单向循环链表。

4.输出形式:建立一个输出函数,将正确的出列顺序输出。

课程设计题四:哈夫曼编/译码器
设计目的:
1.掌握建立哈夫曼树和哈夫曼编码的方法。

2.掌握哈夫曼编码的实际应用方法。

设计内容:
利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。

这要求在发送端通过一个编码系统,对待传数据预先编码,在接收端将传来的数据进行译码。

对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编\译码系统。

试为这样的信息收发站写一个哈夫曼的编\译码系统。

设计要求:
1.初始化。

根据下表给出的英文字母的使用频度,建立哈夫曼树。

空格:0.2 E:0.105 T:0.071 O:0.0644
A:0.063 N:0.059 I:0.054 R:0.053
S:0.052 H:0.047 D:0.035 L:0.029
C:0.023 U:0.0225 F:0.0221 M:0.021
P:0.0175 Y、W:0.012 G:0.011 B:0.0105
V:0.008 K:0.003 X:0.002 J、Q:0.001 Z:0.001
2.编码。

利用已建好的哈夫曼树,对电报正文进行编码。

3.译码。

对编码好的内容进行译码。

4.打印编码。

5.打印哈夫曼树。

课程设计题五:图的遍历演示
设计目的:
1.理解图的基本概念,熟悉图的各种存储结构及其构造算法。

2.掌握图的遍历方法。

设计内容:
实现图的深度优先搜索、广度优先搜索遍历算法,并输出原图结构及遍历结果。

设计要求:
1.首先利用邻接矩阵或邻接表构建图,并分别实现两种遍历方法。

2.函数功能要划分合理。

3.画出流程图。

4.程序要加必要的注释。

课程设计题六:交通咨询系统设计
设计目的:
1.掌握图的概念和其常用的存储结构;
2.熟练掌握迪杰斯特拉算法和费洛伊德算法,能够利用它们解决最短路径问题。

设计内容:
设计一个交通咨询系统,能让旅客咨询从任一个城市定点到另一个城市定点之间的最短路径或最低花费或最少时间等问题。

对于不同的咨询要求、可输入城市间的路程长度或所需时间或所需花费。

设计要求:
1.建立交通网络网的存储结构。

2.总体设计要画流程图。

3.提供程序测试方案。

课程设计题七:列车查询系统
设计目的:
1.综合运用链表知识解决实际问题的能力。

设计内容:
设计火车售票处的计算机系统,可以为客户提供下列各项服务:
1. 查询列车信息:根据旅客提出的起始站和终点站名,或者列车车次,输出下列信息:列车车次、发车时刻、到达时刻、运行时间,以及每个途经站点的站名、到达时间、发车时间、运行里程等信息;
2. 录入列车信息;
3. 修改列车信息;
4. 删除列车信息;
5. 浏览所有列车信息;
6. 其它必要功能。

设计要求:
1.要求采用链表方式存储所有列车车次基本信息(如车次名称等),对于其中的
每个列车车次,也采用链表方式存储各个途经站点信息;
2.能够支持查询、修改、增加、删除等信息;
3.如有时间,建议提供保存和打开功能,用户可以把所有信息保存到硬盘文件
上,也可以从硬盘文件上读取信息;
4.界面要友好。

课程设计题八:寻找关键路径
设计目的:
1.熟练掌握图的存储表示方法;
2.熟练掌握在AOE中进行拓扑排序以及寻找关键路径的算法。

设计内容:
建立图的存储结构,能够输入图的顶点和边的信息,并存储到相应存储结构中,再编写函数实现图的关键路径寻找方法。

设计要求:
1.选择邻接矩阵作为有向图的存储结构模拟整个过程,并输出关键路径。

2.自行设计数据调试程序
附录课程设计报告的书写格式
1.设计题目(以上题目任选其一)
2.运行环境(软、硬件环境)
3.需求分析
4.概要设计
1)抽象数据类型
2)算法设计的思想
3)程序总体(各个模块之间的调用关系)及主要算法的流程图
5.详细设计(源代码,带详细注释)
6.调试分析及运行结果
7.收获、体会及意见。

相关主题