10秋数据结构与算法课程设计题目要求徐红梅

上传人:平*** 文档编号:11006147 上传时间:2017-10-11 格式:DOC 页数:5 大小:66.43KB
返回 下载 相关 举报
10秋数据结构与算法课程设计题目要求徐红梅_第1页
第1页 / 共5页
10秋数据结构与算法课程设计题目要求徐红梅_第2页
第2页 / 共5页
10秋数据结构与算法课程设计题目要求徐红梅_第3页
第3页 / 共5页
10秋数据结构与算法课程设计题目要求徐红梅_第4页
第4页 / 共5页
10秋数据结构与算法课程设计题目要求徐红梅_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《10秋数据结构与算法课程设计题目要求徐红梅》由会员分享,可在线阅读,更多相关《10秋数据结构与算法课程设计题目要求徐红梅(5页珍藏版)》请在金锄头文库上搜索。

1、一、学生成绩管理1. 问题描述要求以学生成绩管理业务为背景,设计一个“学生成绩管理系统”程序。对于学校来讲,学生成绩管理系统是不可缺少的组成部分,主要是对学生成绩资料的录入、浏览、插入和删除等基本功能的实现。2. 设计要求编制一个学生成绩管理程序。设学生成绩以一个学生一条记录的形式存储,每个学生记录包含的信息有学号和各门功课的成绩。设每位学生学习数学、英语、语文、物理和化学 5 门课程。3. 数据结构本课程设计使用单链表作为实现该问题的数据结构。4. 问题分析程序设计一般由算法和数据结构两部分组成。管理学生的成绩适合用单链表,方便随时插入和删除学生记录,实现动态管理。一个学生作为一个结点,该结

2、点类型为结构体,结构体中的域表示学生的属性。每个结点除了存放属性外,还存放指向后继结点的指针。二、马踏棋盘1. 问题描述设计一个国际象棋的马踏遍棋盘的演示程序。2. 设计要求(1)程序的输入:设计程序按要求输入马的初始位置(相应的坐标) 。(2)程序的输出:程序的设计完成后应给出马从初始位置走遍棋盘的过程,并按照求出的行走路线的顺序,将数字 1,2,64 依次填入一个 8*8 的方阵并输出。3. 数据结构本课程设计使用的数据结构是栈,利用顺序栈来实现。4. 问题分析所谓马踏棋盘问题,是指将马随机放在国际象棋的 8*8 棋盘的某个方格中,马按走棋规则(马走日子)进行移动。要求每个方格只进入一次,

3、走遍棋盘上全部 64 个方格。由用户自行指定一个马的初始位置,求出马的行走路线,并按照求出的行走路线的顺序,将数字 1,2,64 依次填入一个 8*8 的方阵并输出。从用户给出的初始位置开始判断,按照顺时针顺序,每次产生一个新的路点,并验证此路点的可用性,需要考虑的是当前路点是否超出棋盘范围和此路点是否已经走过,如果新路点可用,则入栈,并执行下一步,重复进行如上步骤,每次按照已走路点的位置生成新路点。如果一个新路点的可扩展路点数为 0,进行回溯,直到找到一个马能踏遍棋盘的行走路线并输出。三、停车场管理1. 问题描述设停车场内是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在

4、停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端) ,若停车场内已停满 n 辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在其之后开入的车辆必须先退出车场让路,待该辆车开出大门外,其他车辆再按原次序进入停车场,每辆停放在停车场的车在其离开停车场时必须按其停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。2. 设计要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据的方式进行模拟管理。输入 1,表示车辆到达;输入 2,表示车辆离开;输入 3

5、,表示显示出停车场内及便道上的停车情况;输入 4,表示退出系统。车辆到达操作,需输入汽车汽车牌照号码及到达的时刻;车辆离开操作,需输入汽车在停车场的位置及离开的时刻,且应输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费) 。3. 数据结构本课程设计使用的数据结构是顺序栈和链式队列。4. 问题分析模拟停车场车辆进出时需要输入车辆的信息,包括车牌号码及进入与离开的时刻,因此可以定义一个时间结点类型和一个车辆信息结点类型,在顺序栈及链式队列中定义结点类型为车辆信息结点类型。四、大整数计数器1. 问题描述实现大整数(200 位以内的整数)的加、减、乘、除运算。2. 设计要求设计程序

6、实现两个大整数的四则运算,输出这两个大整数的和、差、积、商及余数。3. 数据结构本课程设计采用顺序串来实现。4. 问题分析由于整数数据存储位数有限,因此引入串的概念,将整型数据用字符串进行存储,利用字符串的一个字符存储大整数的一位数值,然后根据四则运算规则,对相应位依次进行相应运算,同时保存进位,从而实现大整数精确的运算。具体设计思路如下:(1)计算大整数加法时,采用数学中列竖式的方法,从个位(即字符串的最后一个字符)开始逐位相加,超过或达到 10 则进位,同时将该位计算结果存到另一个字符串中,直至加完大整数的所有位为止。(2)计算大整数减法时,首先调用库函数 strcmp 判断这两个大整数是

7、否相等,如果相等则结果为 0,否则用 compare 函数判断被减数和减数的大小关系,进而确定结果为正数还是负数,然后对齐位依次进行减法,不够减则向前借位,直至求出每一位减法之后的结果。(3)计算大整数乘法时,首先让乘数的每一位都和被乘数进行乘法运算,两个乘数之积与进位相加作为当前位乘积,求得当前位的同时获取进位值,进而实现大整数的乘法运算。(4)计算大整数除法时,类似做减法,基本思想是反复做减法,从被除数里最多能减去多少次除数,所求得的次数就是商,剩余不够减的部分则是余数,这样便可计算出大整数除法的商和余数。五、魔方阵1. 问题描述魔方阵是一个古老的智力问题,它要求在一个 m*m 的矩阵中填

8、入 1m2 的数字(m 为奇数) ,使得每一行、每一列、每条对角线的累加和都相等。2. 设计要求(1)输入魔方阵的行数 m,要求 m 为奇数,程序对所输入的 m 作简单的判断,如 m有错,能给出适当的提示信息。(2)实现魔方阵。(3)输出魔方阵。3. 数据结构本课程设计使用的数据结构是数组。4. 问题分析解魔方阵问题的方法很多,这里采用如下规则生成魔方阵。(1)由 1 开始填数,将 1 放在第 0 行的中间位置;(2)将魔方阵想象成上下、左右相接,每次往左上角走一步,会有下列情况:1)左上角超出上方边界,则在最下边相对应的位置填入下一个数字;2)左上角超出左边边界,则在最右边相对应的位置填入下

9、一个数字;3)如果按上述方法找到的位置已填入数据,则在同一列下一行填入下一个数字。六、电文的编码和译码1. 问题描述从键盘接收一串电文字符,输出对应的 Huffman 编码。同时,能翻译由 Huffman 编码生成的代码串,输出对应的电文字符串。2. 设计要求(1)构造一棵 Huffman 树。(2)实现 Huffman 编码,并用 Huffman 编码生成的代码串进行译码。(3)程序中字符和权值是可变的,实现程序的灵活性。3. 数据结构本课程设计使用结构体数组作为数据结构来存储哈弗曼树及其编码。4. 问题分析在电报通信中,电文是以二进制代码传送的。在发送时,需要将电文中的字符转换成二进制代码

10、串,即编码;在接收时,要将收到的二进制代码串转化为对应的字符序列,即译码。我们知道,字符集中的字符被使用的频率是非均匀的。因此,若对某字符集进行不等长编码的设计,则要求任意一个字符的编码都不是其他字符编码的前缀,这种编码称做前缀编码。由 Huffman 树求得的编码是最优前缀码,也叫 Huffman 编码。给出字符集和各个字符的概率分布,构造 Huffman 树,将 Huffman 树中每个分支节点的左分支标 0,右分支标 1,将根到每个叶子路径上的标号连起来,就是该叶子所代表字符的编码。七、家族关系查询系统1. 问题描述建立家族关系数据库,实现对家族成员关系的相关查询。2. 设计要求(1)建

11、立家族关系并能存储到文件中。(2)实现家族成员的添加。(3)可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信息。3. 数据结构本课程设计使用的数据结构有树状结构和队列。树状结构采用三叉链表实现,队列采用链式队列实现。4. 问题分析(1)结点基本数据结构的定义和链队列的基本操作;(2)建立家族关系并存入文件;(3)建立家族关系树;(4)打开一个家族关系;(5)在家族关系树中查找一个成员是否存在;(6)向家族中添加一个新成员;(7)查找一个家族的鼻祖;(8)查找一个成员的所有祖先路径;(9)查找一个成员的双亲;(10)确定一个成员是第几代;(11)查找一个成员的兄弟;(12)查找一个成员的堂兄弟

12、;(13)查找一个成员的所有孩子;(14)查找一个成员的子孙后代。八、地铁建设问题1. 问题描述某城市要在其各个辖区之间修建地铁来加快经济发展,但由于建设地铁的费用昂贵,因此需要合理安排地铁的建设路线,使乘客可以沿地铁到达各个辖区,并使总的建设费用最小。2. 设计要求(1)从包含各辖区的地图文件中读入辖区名称和各辖区间的直接距离。(2)根据读入的各辖区的距离信息,计算出应该建设哪些辖区间的地铁路线。(3)输出应该建设的地铁路线及所需建设的总里程信息。3. 数据结构本课程设计使用的数据结构是无向图,无向图采用邻接矩阵作为存储结构。4. 问题分析根据问题的描述,需要求无向图的最小生成树。九、安排教

13、学计划1. 问题描述学校每个学期开设的课程是有先后顺序的,如计算机专业:开设数据结构课程之前,必须先开设C 语言程序设计 ,这种课程开设的先后顺序关系称为先行、后继课程关系。现在需要根据给定的课程信息及课程之间的先行、后继关系,合理安排出开设各门课程的先后顺序。2. 设计要求(1)对输入的课程先行、后继关系如果存在回路关系时应提示出现错误。(2)根据读入的课程信息及其先行、后继关系,计算出安排教学计划的序列。(3)输出教学计划的安排顺序或给出错误提示信息。3. 数据结构本课程设计使用的数据结构是有向图和栈。采用邻接表作为有向图的存储结构来实现,栈选用顺序栈。4. 问题分析根据问题的描述,需要对

14、输入的有向图进行拓扑排序。十、校园导航1. 问题描述当我们参观某校园时,就会遇到这样一个问题:从当前所处的位置出发去校园另外某个位置,要走什么样的路线距离最近(或最省时)?本课程设计的实例在给出校园各主要建筑的名称信息及有路线连通的建筑之间的距离(或行进时间)的基础上,利用校园导航系统计算出给定的起点到终点之间距离最近(或行进时间最短)的行进路线。2. 设计要求(1)从地图文件中读取校园主要建筑信息及建筑间的距离(或行进时间)信息。(2)计算出给定的起点到终点之间的距离最近(或行进时间最短)的行进路线。(3)输出该路线(包含路过哪些建筑)及其总距离(或总行进时间) 。(4)若输入错误,则给出提示信息。3. 数据结构本课程设计使用的数据结构是有向图,采用邻接矩阵作为有向图的存储结构。4. 问题分析根据问题的描述,需要求出有向图中给定顶点偶对之间的最短路径,可以利用迪杰斯特拉算法来求解实现。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号