数据结构实习题目
2006-01-10 11:02
239 查看
数据结构课程设计任务书
[/b]
实验方式与基本要求
设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。
(一)问题分析和任务定义
[/b]对问题的描述应避开具体的算法和涉及的数据结构,它是对要完成的任务作出明确的回答。强调的是做什么,而不是怎么做。
(二)逻辑设计和数据结构的选择
[/b]为操作对象定义相应的数据结构,以过程化程序设计的思想方法为原则划分各个模块,定义数据的抽象数据类型。
(三)详细设计和编码
[/b]算法的具体描述和代码的书写。
(四)上机调试
[/b]源程序的输入和代码的调试
(五)实习报告
[/b]1. 需求分析
以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?明确规定:输入的形式和输出、值的范围;输出的形式;程序所能达到的功能;测试的数据:包括正确的输入和错误的输入及其相应的输出结果。
2. 概要设计
说明程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系。
3. 详细设计
实现概要设计中定义所有数据类型,对每个操作只需要写出伪代码算法(伪代码算法达到的详细程度建议为:按照伪代码算法可以在计算机键盘直接输入高级程序设计语言程序),画出函数的调用关系图。
4. 调试分析
内容包括:调试过程中遇到的问题并且是如何解决的以及对设计实现的回顾讨论和分析;
算法的时空分析(包括基本操作和主要算法的时空复杂度的分析)和改进设想;
经验和体会等
5. 测试结果
列出测试结果,包括输入的数据和相应的输出数据。这里的测试数据应该完整和严格,最好多于需求分析中所列。
6. 附录
应附上带详细注释的源程序。
实验项目的设置与内容提要
本次课程设计完成如下模块。共10个模块,可以在其中挑选3个功能块完成,必修的模块是必须要选择的。
1、运动会分数统计
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)
功能要求:
1).可以输入各个项目的前三名或前五名的成绩;
2).能统计各学校总分,
3).可以按学校编号、学校总分、男女团体总分排序输出;
4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;
2、订票系统
任务:通过此系统可以实现如下功能:
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
3、一元多项式计算
任务:能够按照指数降序排列建立并输出多项式;
能够完成两个多项式的相加、相减,并将结果输入;
在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
4、joseph环
任务:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。
要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?
要求:
输入数据:建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。
输出形式:建立一个输出函数,将正确的输出序列
5、猴子选大王
任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
要求:
输入数据:输入m,n m,n 为整数,n<m
输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能
6、建立二叉树,层序、先序遍历( 用递归或非递归的方法都可以)
任务:要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立二叉树存储结构的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数;
7、赫夫曼树的建立
任务 :建立最优二叉树函数
要求:可以建立函数输入二叉树,并输出其赫夫曼树
8、图的建立及输出
任务:建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选两种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。
9、拓扑排序
任务:编写函数实现图的拓扑排序。
10、 各种排序
任务:用程序实现插入法排序、起泡法改进算法排序;
利用插入排序和冒泡法的改进算法,将用户随机输入的一列数按递增的顺序排好。
输入的数据形式为任何一个正整数,大小不限。
输出的形式:数字大小逐个递增的数列。
考核方式与评分办法
1. 设计按优、良、中、及格、不及格五档评分,占课程总成绩的50%。2. 课程设计过程评价:在上机操作过程中学生上机能力及纪律按优、良、中、及格、差五档评定,占课程总成绩的20%。3. 设计报告评价占课程总成绩的30%。
[/b]
实验方式与基本要求
设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。
(一)问题分析和任务定义
[/b]对问题的描述应避开具体的算法和涉及的数据结构,它是对要完成的任务作出明确的回答。强调的是做什么,而不是怎么做。
(二)逻辑设计和数据结构的选择
[/b]为操作对象定义相应的数据结构,以过程化程序设计的思想方法为原则划分各个模块,定义数据的抽象数据类型。
(三)详细设计和编码
[/b]算法的具体描述和代码的书写。
(四)上机调试
[/b]源程序的输入和代码的调试
(五)实习报告
[/b]1. 需求分析
以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?明确规定:输入的形式和输出、值的范围;输出的形式;程序所能达到的功能;测试的数据:包括正确的输入和错误的输入及其相应的输出结果。
2. 概要设计
说明程序中用到的所有抽象数据类型的定义,主程序的流程以及各程序模块之间的层次(调用)关系。
3. 详细设计
实现概要设计中定义所有数据类型,对每个操作只需要写出伪代码算法(伪代码算法达到的详细程度建议为:按照伪代码算法可以在计算机键盘直接输入高级程序设计语言程序),画出函数的调用关系图。
4. 调试分析
内容包括:调试过程中遇到的问题并且是如何解决的以及对设计实现的回顾讨论和分析;
算法的时空分析(包括基本操作和主要算法的时空复杂度的分析)和改进设想;
经验和体会等
5. 测试结果
列出测试结果,包括输入的数据和相应的输出数据。这里的测试数据应该完整和严格,最好多于需求分析中所列。
6. 附录
应附上带详细注释的源程序。
实验项目的设置与内容提要
本次课程设计完成如下模块。共10个模块,可以在其中挑选3个功能块完成,必修的模块是必须要选择的。
序号 | 实验项目名称 | 实验 时数 | 每组 人数 | 实验 类型 | 实验 要求 | 实验 类别 | 内容提要 |
1 | 运动会分数统计 | 8 | 1 | 设计 | 必修 | 专业 | |
2 | 订票系统 | 12 | 1 | 设计 | 必修 | 专业 | |
3 | 一元多项式计算 | 8 | 1 | 设计 | 选修 | 专业 | |
4 | joseph环 | 8 | 1 | 设计 | 选修 | 专业 | |
5 | 猴子选大王 | 8 | 1 | 设计 | 选修 | 专业 | |
6 | 建立二叉树,层序、先序遍历 | 8 | 1 | 设计 | 选修 | 专业 | |
7 | 赫夫曼树的建立 | 8 | 1 | 设计 | 选修 | 专业 | |
8 | 图的建立及输出 | 8 | 1 | 设计 | 选修 | 专业 | |
9 | 拓扑排序 | 8 | 1 | 设计 | 选修 | 专业 | |
10 | 各种排序 | 8 | 1 | 设计 | 选修 | 专业 |
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20)
功能要求:
1).可以输入各个项目的前三名或前五名的成绩;
2).能统计各学校总分,
3).可以按学校编号、学校总分、男女团体总分排序输出;
4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;
2、订票系统
任务:通过此系统可以实现如下功能:
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
3、一元多项式计算
任务:能够按照指数降序排列建立并输出多项式;
能够完成两个多项式的相加、相减,并将结果输入;
在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
4、joseph环
任务:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。
要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?
要求:
输入数据:建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。
输出形式:建立一个输出函数,将正确的输出序列
5、猴子选大王
任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
要求:
输入数据:输入m,n m,n 为整数,n<m
输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能
6、建立二叉树,层序、先序遍历( 用递归或非递归的方法都可以)
任务:要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立二叉树存储结构的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数;
7、赫夫曼树的建立
任务 :建立最优二叉树函数
要求:可以建立函数输入二叉树,并输出其赫夫曼树
8、图的建立及输出
任务:建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选两种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。
9、拓扑排序
任务:编写函数实现图的拓扑排序。
10、 各种排序
任务:用程序实现插入法排序、起泡法改进算法排序;
利用插入排序和冒泡法的改进算法,将用户随机输入的一列数按递增的顺序排好。
输入的数据形式为任何一个正整数,大小不限。
输出的形式:数字大小逐个递增的数列。
考核方式与评分办法
1. 设计按优、良、中、及格、不及格五档评分,占课程总成绩的50%。2. 课程设计过程评价:在上机操作过程中学生上机能力及纪律按优、良、中、及格、差五档评定,占课程总成绩的20%。3. 设计报告评价占课程总成绩的30%。
相关文章推荐
- Pku acm 2406 Power Strings数据结构题目解题报告(十八)----kmp算法
- 《数据结构(C++版)》课程设计—题目4 客户咨询系统
- 左程云著算法与数据结构题目最优解笔记-删除无序链表中重复的元素
- 2014.3.29 阿里巴巴 实习校招 笔试 题目及部分参考答案
- 2012年百度校园实习招聘题目及解答(一)
- 数据结构上机题目--MST
- 数据结构期末考试题目---笔记(SYSU)
- 算法与数据结构题目的 PHP 实现:栈和队列 设计一个有 getMin 功能的栈
- 数据结构题目
- 一道关于时间复杂度的数据结构题目
- Pku acm 2253 Frogger数据结构题目解题报告(六)—单源最短路径:Dijkstra算法
- PAT数据结构与算法题目
- 南阳oj 数据结构 括号配对 题目2 NYOJ
- 互联网公司软件测试职位实习面试题目
- 南阳 oj NYoj 数据结构 最小数 题目1073
- 南阳oj 寻找球号(二) 数据结构 题目138
- 南阳oj NYOJ 动物统计加强版 数据结构 题目290
- 我思故我在系列—数据结构面试题NO.18(题目搜集整理者JVLY,非常感谢!!)
- 我思故我在系列—数据结构面试NO.20题将一串字符串转为整数(题目搜集整理者JVLY,非常感谢!!)
- 数据结构实习题-单链表的应用