DS课程设计大纲

发布 2022-10-02 11:37:28 阅读 3586

《数据结构》课程设计大纲。

课程设计名称:数据结构。

实验室名称:计算机与信息技术实验室。

适用专业:计算机科学与技术、信息管理与信息系统。

实验对象:本科生。

实验要求:必修。

一、课程设计的目的。

课程设计是《数据结构》课程教学必不可缺的一个重要环节,它可加深学生对该课程所学内容的进一步的理解与巩固,是将计算机课程与实际问题相联接的关键步骤。通过课程设计,能够提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。

二、课程设计的要求。

1.明确课程任务,复习与查阅有关资料。

2.按要求完成课程设计内容,课程设计报告要求文字和图工整、思路清楚、正确。

3.一至四名同学分为一组,完成一个应用问题的程序的编写工作。

4.应用程序应具有一定的可用性:

1)等候用户输入时,给出足够的提示信息,如“please select(1—3):”提示用户选择。

2)格式明显易懂,配上适当的颜色、声音等辅助效果,能方便地改正输入时的错误,使用户感到方便、好用。

3)有联机求助功能。用户能直接从系统得到必要的提示,不查手册也能解决一些疑难。

5.程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行:

1)对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入。

2)当可能的回答有多种时,应允许输入任何一种回答。

3)对删除数据应给出警告。

三、课程设计的内容

课程设计的题目可由教师指定,如可在下列选题中选择,或由教师另外选择,也可由学生自行选择。但选题内容、难度要适当,要有一定的实际意义,并能达到进一步巩固和强化本课程所学知识的效果。

选题1.一元稀疏多项式简单计算器。

问题描述:设计一个一元多项式简单的计算器。

基本要求:一元多项式简单计算器的基本功能为:

1)输入并建立多项式;

2)输出多项式;输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。序列按指数降序排列。

3)两个多项式相加减、相乘,建立并输出多项式。

实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数(如项数等)。

选题2.停车场管理问题。

问题描述:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。

如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排以便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。

如果停留在便道上的车未进停车场时,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。

基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。

实现提示:汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。

例如,(‘a’,1,5)表示1号牌照车在5这个时刻到达,而(‘d’,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(‘e’,0,0)时结束。本题可用栈和队列来实现。

选题3.迷宫问题。

问题描述:迷宫实验是取自心理学的一个古典的实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒中设置了许多墙,对行进方向形成了多处阻拦。

盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口到出口,而不走错一步。老鼠经多次试验终于得到它学习走通迷宫的路线。

设计一个计算机程序对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。

基本要求:要求程序输出:

(1)一条通路的二元组(i,j)数据序列,(i,j)表示通路上某一点的坐标。

(2)用一种标志(如数字8)在二维数组中标出该条通路,并在屏幕上输出二维数组。

实现提示:可以利用一个二维数组maze[i][j]表示迷宫,其中1≦i≦m,1≦j≦n。数组元素值为1表示该位置是墙壁,不能通行;元素值为0表示该位置是通路。

假定从maze[1][1]出发,出口位于maze[m][n],移动方向可以是8个方向(东、东南、南、西南、西、西北、北和东北)。

选题4.哈夫曼编/译码器。

问题描述:利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码,请设计这样的一个简单编/译码系统。

基本要求:1)接收原始数据: 从终端读入字符集大小n,n个字符和n个权值,建立哈夫曼树,存于文件中。

2)编码: 利用已建好的哈夫曼树(如不在内存,则从文件中读入)对文件中的正文进行编码,然后将结果存入文件中。

3)译码: 利用已建好的哈夫曼树将文件中的**进行译码,结果存入文件 中。

4)打印编码规则:即字符与编码的一一对应关系。

5)打印哈夫曼树:将已在内存中的哈夫曼树以直观的方式显示在终端上。

实现提示。构造哈夫曼树时使用静态链表作为哈夫曼树的存储。求哈夫曼编码,实质上就是在已建立的哈夫曼树中,从叶子结点开始,沿结点的双亲链域回退到根结点,每回退一步,就走过了哈夫曼树的一个分支,从而得到一位哈夫曼码值。

由于一个字符的哈夫曼编码是从根结点到相应叶子结点所经过的路径上各分支所组成的0,1序列,因此先得到的分支**为所求编码的低位码,后得到的分支**为所求编码的高位码。

选题5. 校园导游咨询。

问题描述:设计一个校园导游程序,为来访的客人提供各种信息查询服务。

基本要求:1)设计你所在学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径长度等相关信息。

2)为来访客人提供图中任意景点相关信息的查询。

3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

实现提示:一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。

选题6. 地图着色

问题描述:2024年,美国科学家appel和haken利用计算机证明了:对一张地图,可以用不超过4种颜色对其填色,使得相邻的区域填上不同的颜色。

基本要求:请模拟这一填色过程,输入一张行政区地图,用4种颜色对其填色,要求相邻的行政区域内没有相同的颜色,给出所有的填色方案,并统计方案的个数。

实现提示:首先考虑如何存储行政区地图,由于邻接矩阵能更好地描述各行政区之间的关系,所以采用邻接矩阵g来存储地图。

1 i,j 两个行政区相邻

g[i ,j]=

0 否则。邻接矩阵g可以用二维数组表示;另设一维数组color[i]记录第i(i=0…n-1)个行政区所填的颜色,分别取值为:;数据描述如下:

int g[n][n]

int color[n+1]

选题7. 均分溶剂问题

问题描述:设有两个小杯子b和c,容量分别为x ml和y ml,在一个大杯子a里装了(x+y)ml的化学溶剂,实验中需要精确地将大杯子中的溶剂分为两等份,在没有其它量具的情况下,只能利用这两个小杯子。

基本要求:设计一个算法,并编程找到最快的均分方法;如若用此方法不能得到两份相同的溶剂,请给出“no way!”的信息。

实现提示:

这是一个典型的产生式系统,用图的广度搜索可以求得最佳解。将三个杯子中溶剂的数量状态作为一个结点,从一个杯子往另一个杯子倒溶剂时,状态发生了变化,从前一状态结点到后一状态结点用箭头连接,就得到了状态图,这个图就是数据结构中的图;当x=50,y=30时,得到下面的状态图。

只要搜索到目标状态(40,40,0)时就结束。搜索的过程就是一个产生新结点的过程,需要特别注意的是:产生的新结点一定不能重复,这样就可以构成一棵生成树,避免重复搜索。

选题8. 设置棋子布局。

问题描述:在一个3*3的棋盘上,摆了8个棋子,每个棋子上分别标有1---8的数字,棋盘中留有一个空格,空格周围的棋子可以移到空格中。

基本要求:给出一种初始布局和目标布局,找到一种最少的移动方法,实现从初试布局到目标布局的移动。例如:

初始布局目标布局。

这里0代表空格。

实现提示:本题的解法同上题是一样的,每个棋子可以上,下,左,右移动,分别形成不同的状态,构成状态搜索图(树),用队列来记录搜索和产生的过程,从而找到最优解。

选题9. 农夫过河问题

问题描述:一个农夫带着一只狼,一只羊和一棵白菜,身处河的南岸。他要把这些东西全部运到北岸。

他面前只有一条小船,船只能容下他和一件物品,另外只有农夫才能撑船。如果农夫在场,则狼不能吃羊,羊不能吃白菜,否则狼会吃羊,羊会吃白菜,所以农夫不能留下羊和白菜自己离开,也不能留下狼和羊自己离开,而狼不吃白菜。

基本要求:求出农夫将所有的东西运过河的方案。

实现提示:

求解这个问题的简单方法是一步一步进行试探,每一步搜索所有可能的选择,对前一步合适的选择再考虑下一步的各种方案。

要模拟农夫过河问题,首先需要对问题中每个角色的位置进行描述。一个很方便的方法是用4位二进制数顺序分别表示农夫,狼,白菜和羊的位置。用0表示农夫或者某东西在河的南岸,1表示在河的北岸。

例如整数5(其二进制表示为0101)表示农夫和白菜在河的南岸,而狼和羊在北岸。

DS课程设计

数据结构课程设计 指导大纲。课程名称 数据结构课程设计。英文名称 course exercise in data structure 一 课程设计的目的 要求和任务。本课程设计是为了配合 数据结构 课程而开设的,通过设计完整的大型程序,使学生掌握数据结构的应用 算法的编写 类c语言的算法转换成程序并...

DS课程设计题目

校园导游程序。问题描述 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号 名称 简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍 游览路径等问题。基本要求 1 查询各景点的相关信息 2 查询图中任意两个景点间的最短路径。3 查询图中任意两...

DS课程设计题目

1 选题要求 每位同学从ds课程设计题目里任选一题,每道题目的选题人数不得超过15人。2 提交材料 班委收齐每位同学的报告 电子版 后刻成光盘上交给老师。报告需严格按照课程设计报告模板的格式。3 评分细则 报告雷同者,视情节严重程度酌情扣分。原文抄袭网上者,统一按零分处理。课程设计结束时,有演示程序...