14软工《数据结构课程设计任务书》Word格式.docx
《14软工《数据结构课程设计任务书》Word格式.docx》由会员分享,可在线阅读,更多相关《14软工《数据结构课程设计任务书》Word格式.docx(30页珍藏版)》请在冰豆网上搜索。
题目22:
二叉树用二叉链表表示(1人完成)5
题目23:
线索二叉树(1人完成)5
题目24:
二叉排序树(1人完成)5
题目25:
二叉排序树的实现(1人完成)5
题目26:
二叉树操作(1人完成)6
题目27:
二叉树的中序、前序、后序的递归、非递归遍历算法的实现(1人完成)6
题目28:
树与二叉树的转换的实现(1人完成)6
题目29:
最小生成树问题(1人完成)6
题目30:
树的应用(1人完成)6
题目31:
迷宫问题或为马踏棋盘或八皇后问题(1人完成)6
题目32:
算术运算式的转换及求值(1人完成)6
题目33:
运动会分数统计(1人完成)6
飞机订票系统(1人完成)7
题目34:
散列表的设计与实现(1人完成)7
题目35:
文章编辑(1人完成)8
题目36:
宿舍管理查询软件(1人完成)8
题目37:
纸牌游戏(1人完成)8
题目38:
地图着色问题(1人完成)9
题目39:
校园导航问题(1人完成)9
题目40:
学校超市选址问题(1人完成)9
题目41:
教学计划编制问题(1人完成)9
题目42:
散列法的实验研究(1人完成)10
题目43:
图书借阅管理系统(1人完成)10
题目44:
学生成绩管理(1人完成)10
题目45:
活期储蓄帐目管理(1人完成)10
题目46:
通讯录的制作(1人完成)10
题目47:
哈夫曼编码/译码器(1人完成)10
题目48:
图书管理系统(1人完成)11
题目49:
散列表的设计与实现(1人完成)11
题目50:
走迷宫游戏(1人完成)12
题目51:
顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现(1人完成)12
题目52:
利用栈求表达式的值(1人完成)12
题目53:
简易文本编辑器(1人完成)12
题目54:
学生搭配问题(1人完成)13
题目55:
敢死队问题(1人完成)13
题目56:
猴子吃桃子问题(1人完成)13
题目57:
数制转换问题(1人完成)13
题目58:
排序综合(1人完成)13
题目59:
学生成绩管理系统(1人完成)13
题目60:
图的遍历和生成树求解实现(1人完成)14
题目61:
线索二叉树的应用(1人完成)14
题目62:
稀疏矩阵实现与应用(1人完成)14
题目63:
简单的职工管理系统(1人完成)14
题目64:
全国铁路运输网最佳经由问题(1人完成)14
题目65:
学生成绩管理系统(1人完成)15
题目66:
停车场管理系统(1人完成)15
题目67:
约瑟夫(Joseph)环(1人完成)15
题目68:
文学研究助手的实现(1人完成)15
题目69:
一元稀疏多项式计算器(1人完成)16
题目70:
哈夫曼树及其应用(1人完成)16
题目71:
哈夫曼编/译码器(1人完成)16
题目72:
图的遍历演示(1人完成)16
题目73:
交通咨询系统设计(1人完成)16
题目74:
航班信息的查询与检索(1人完成)16
《数据结构课程设计任务书》
一、课程设计的目的与要求
1.教学目的
在《数据结构》课程理论与实验教学的基础上,根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统,复习与深入掌握算法设计思想与相关技术方法。
同时,作为整个实践教学体系一部分,系统培养学生采用分析问题与解决问题的能力及团体组织与协作能力。
2.教学要求
从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:
1)根据实现的功能,分析出合理的解决问题的方法。
2)编程简练,程序功能齐全,能正确运行。
3)说明书、算法描述、流程图要清楚,规范。
4)课题完成后必须按要求提交“程序文件”和“课程设计报告”,格式规范,内容详实。
3、检查要求
(1)每个人必须有程序运行结果;
(2)每个人必须上交的材料如下:
①.《数据结构课程设计报告》打印版本1份
-注:
用A4纸双面打印实验报告书,封面统一(见“14网工《数据结构课程设计报告》”式样)。
②.《数据结构课程设计报告》电子文档,命名为“14网工《数据结构课程设计》题目+姓名+学号”;
4、打分标准
(1)根据程序运行结果。
(2)根据《数据结构课程设计报告》,学生能对自己的程序面对教师提问能熟练地解释清楚。
以上二项缺一不可,否则不能到得相应学分。
二、课程设计的内容与安排
成绩管理系统(可1人完成)
【设计要求】对一个班级的多门课程的成绩进行管理,能够实现一个班级学生信息的输入、输出、查找、删除、修改、排序、求平均分和及格率等操作。
图书馆管理系统(可1人完成)
【设计要求】对图书进行管理,系统具有如下功能
1.图书入库:
新购一种书,确定书号后,登记到图书目录表中,如果表中已有,则只将库存量增加;
图书数据包括图书书号,书名,作者,数量,单价等;
2.排序:
以书号按升序进行排序(可以任选一种排序方法);
3.查找:
能按书名、书号进行查找(分别用顺序查找和折半查找方法);
4.删除:
从表中删除指定的图书;
5.借阅:
如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;
6.归还:
注销对借阅者的登记,改变该书的现存量。
八皇后问题(可1人完成)
【设计要求】编写程序实现将八个皇后放置在国际象棋棋盘的无冲突的位置上的算法,并给出所有的解。
提示:
在国际象棋上放置皇后时,任何一个皇后的水平、竖直和斜45º
都不能有另一个皇后。
解决该问题采用逐次试探的方法,即采用递归调用putchess函数的方法。
首先将第一个皇后放于第一行第一列,然后开始向下一行递归。
每一步递归中,首先检测待放置位置是否与已放置的皇后冲突,如不冲突,则进行下一行的放置,否则,选择该行的下一个位置进行检测。
如整行的位置都冲突,则回到上一行,重新选择位置。
一元多项式计算器(1人完成)
【设计要求】设计一个一元多项式的计算器,功能包括
1、输入并建立多项式(一个多项式最多不超过10项)。
2、输出多项式,输出形式可以是图形方式,也可以是文本方式;
3、实现两个多项式相加,并输出和多项式;
4、实现两个多项式相减,并输出差多项式;
5、实现两个多项式相乘,并输出乘积多项式;
师大校园导航图(可1人完成)
【设计要求】对广西师范大学校园导航系统的模拟,至少包括10个以上的场所,设计一个校园导航程序,为来访的客人提供各种信息的查询服务。
1、设计学校的校园平面图,所含地点10个以上。
以图中顶点表示校内各地点,存放地点名称、代号、简介等信息;
以边表示路径,存放路径长度等相关信息。
2、为来访客人提供图中任意景点相关信息的查询。
3、提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径。
4、提供校园地图预览和最小连通地图。
医院选址问题(1人完成)
【设计要求】设某地区有N(N>
=10)个村庄,村庄之间的距离已知。
现在要从这N个村庄中选择一个村庄新建一所医院,问这所医院应建在哪个村庄,才能使所有的村庄离医院都比较近?
(即求图的中心点,中心点到各顶点的最短距离总和是最小的)
迷宫求解(1人完成)
【设计要求】输入一个任意大小的迷宫数据(以一个n*n的正方阵表示迷宫,0和1分别表示迷宫中的通路和障碍)。
设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路并将路径输出,或得出没有通路的结论。
注:
可以用递归或非递归的方法。
表达式求值(1人完成)
【设计要求】以字符序列的形式从终端输入语法正确的表达式,利用给定的优先关系实现对算术四则混合表达式进行求值。
家谱(1人完成)
【设计要求】1、建立一棵族谱树表,实现家族成员信息的保存
2、能查询家庭成员信息
3、计算家族的代数
4、查找家族中某成员祖先
5、查找家庭某成员的兄弟等
排序算法比较(1人完成)
【设计目的】
1.掌握各种排序的基本思想。
2.掌握各种排序方法的算法实现。
3.掌握各种排序方法的优劣分析及花费的时间的计算。
4.掌握各种排序方法所适应的不同场合。
【设计要求】
利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。
图的深度周游(1人完成)
1.掌握图的邻接表存贮结构。
2.掌握堆栈的基本运算实现。
3.掌握图的邻接表的算法实现。
4.掌握图的深度优先搜索周游算法实现。
【设计要求】对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用堆栈的五种基本运算(清空堆栈、压栈、弹出、取栈顶元素、判栈空)实现图的深度优先搜索周游;
图的广度周游(1人完成)
【设计目的】
2.掌握队列的基本运算实现。
4.掌握图的广度优先搜索周游算法实现。
【设计要求】对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用队列的五种基本运算(置空队列、进队、出队、取队头元素、判队空)实现图的广度优先搜索周游。
链表操作(1人完成)
1.掌握线性链表的建立。
2.掌握线性链表的基本操作。
【设计要求】利用链表的插入运算建立线性链表,然后实现链表的查找、删除、计数、输出、排序、逆置等运算,插入、删除、查找、计数、输出、排序、逆置要单独写成函数,并能在屏幕上输出操作前后的结果。
双向链表的操作(1人完成)
1.掌握双向链表的建立。
2.掌握双向链表的基本操作。
1.建立双向链表L,含n个结点且按整数值递增排列的(输入任意);
2.删除双向链表中多余的值相同的元素
3.求出的长度
4.将双向链表就地逆置
5.向双向链表中插入值,插入后双向链表仍有序
循环链表的操作(1人完成)
1.掌握循环线性链表的建立。
2.掌握循环线性链表的基本操作。
1.用含有各种字符的串,建立循环单链表,每个结点含有一个字符
2.
将循环单链表分解为三个单链表,分别是字母、数字和其他字符且按ascii值有序
3.能删除指定单链表中指定位子或指定值的元素
4.求出的长度
实现两个链表的合并(1人完成)
【设计目的】1.掌握线性链表的建立。
(1)建立两个链表A和B,链表元素个数分别为m和n个。
(2)假设元素分别为(x1,x2,…xm),和(y1,y2,
…yn)。
把它们合并成一个线形表C,使得:
当m>
=n时,C=x1,y1,x2,y2,…xn,yn,…,xm
当n>
m时,C=y1,x1,y2,x2,…ym,xm,…,yn
输出线形表C
(3)用直接插入排序法对C进行升序排序,生成链表D,并输出链表D。
(4)能删除指定单链表中指定位子和指定值的元素。
一元多项式计算(1人完成)
2.掌握线性链表的基本操作。
【设计要求】1.建立链式存储的一元多项式
(
3+x3-5x5+11x9
)
2.一元多项式的输出。
3.一元多项式的求导
3x2-25x4+99x8
4.两个一元多项式的求和
5.两个一元多项式的求积
字符串的操作(1人完成)
1.掌握顺序表的建立。
2.掌握顺序表的基本操作。
3.掌握串的基本操作。
(1)字符串采用数组存储,建立两个字符串String1和String2。
输出两个字符串。
(2)将字符串String2的头n个字符添加到String1的尾部。
输出结果。
(3)查找串String3在串String1中的位置,若String3在String1中不存在,则插入String3在String1中的m位置上。
(4)求任意子字符串SUBSTR及删除子字符串。
(5)求字符串的单词个数。
稀疏矩阵的操作(1人完成)
1.掌握多维数组的逻辑结构和存储结构。
2.掌握稀疏矩阵的压缩存储及基本操作。
1.稀疏矩阵采用十字链表表示,求两个具有相同行列数的稀疏矩阵A和B的相加矩阵C,并输出矩阵C。
2.求出A的转置矩阵D,输出D(用两种方法实现,原始算法和改进的算法)。
3.求两个稀疏矩阵A和B的相乘矩阵E,并输出E。
哈夫曼树与哈夫曼码(1人完成)
1.掌握哈夫曼树的建树原理
掌握哈夫曼树与哈夫曼码逻辑结构和存储结构。
3.掌握哈夫曼树与哈夫曼码的基本操作。
1.输入一个文本,统计各字符出现的频度,输出结果
2.使用字符出现的频度构造哈夫曼树
3.确定和输出各字符的哈夫曼码
4.输入一个由0和1组成的代码序列,翻译并输出与之对应的文体,若最后的代码子序列不能译为文本,则输出相关信息
完全二叉数操作演示(1人完成)
1.掌握二叉树的概念和性质
掌握完全二叉树存储结构。
3.掌握完全二叉树的基本操作。
(1)创建完全二叉树(用字母表示节点)(用顺序方式存储)
(2)求二叉树的深度和叶子结点数
(3)实现二叉树的前序、中序、后序和层次遍历。
(4)查找给定结点的双亲、祖先和左右孩子节点。
二叉树用二叉链表表示(1人完成)
掌握任意二叉树存储结构。
3.掌握任意二叉树的基本操作。
1.实现二叉树的建立、前序(非递归)、中序和层次遍历;
2.求二叉树高度、结点数、度为1的结点数和叶子结点数;
3.插入结点到指定位置、删除指定结点;
4.将二叉树所有结点的左右子树交换。
线索二叉树(1人完成)
1.掌握线索二叉树的概念
掌握线索二叉树存储结构。
3.掌握线索二叉树的基本操作。
1.建立中序线索二叉树,并且遍历;
2.求中序线索二叉树上已知结点中序的前驱和后继;
3.插入结点到指定位置;
试着删除指定结点
二叉排序树(1人完成)
1.掌握二叉排序树的概念
掌握二叉排序树的建树原理方法。
3.掌握二叉排序树的删除算法。
1.输入一个数列L,生成一棵二叉排序树T
2.对二叉排序树T作递增、递减输出
3.
计算二叉排序树T的平均查找长度,输出结果
4.在二叉排序树T上删除指定结点
5.输出二叉排序树T中指定结点的平衡因子
二叉排序树的实现(1人完成)
【设计要求】用顺序和二叉链表作存储结构:
1)以回车('
\n'
)为输入结束标志,输入数列L,生成一棵二叉排
序树T;
2)对二叉排序树T作中序遍历,输出结果;
3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);
否则输出信息“无x”;
二叉树操作(1人完成)
1.已知二叉树的后序、中序序列,恢复此二叉树;
2.求二叉树高度、分支结点数和叶子结点数;
3.插入结点到指定位置、删除指定结点;
4.将二叉树中所有结点的左右子树交换。
5.对二叉树进行层序、非递归中序遍历。
二叉树的中序、前序、后序的递归、非递归遍历算法的实现(1人完成)
【设计要求】①.包含建树的实现;
②.遍历的内容应是千姿百态的。
树与二叉树的转换的实现(1人完成)
【设计要求】1、以及树的前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。
2、遍历的内容应是千姿百态的。
最小生成树问题(1人完成)
【设计要求】在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。
存储结构采用多种。
求解算法多种。
树的应用(1人完成)
【设计要求】实现树与二叉树的转换的实现。
以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。
迷宫问题或为马踏棋盘或八皇后问题(1人完成)
1.掌握栈的概念和运算。
掌握队列的概念和运算。
【设计要求】以一个m×
n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。
设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
算术运算式的转换及求值(1人完成)
1.掌握二叉树的概念和性质及基本操作
掌握栈的概念和操作。
1)对中序输入串进行合法性判断,若不合法重新输入,否则建立表达式二叉树。
2)转换为后缀表达式(逆波兰式)
3)转换为前缀表达式(波兰式)
4)计算表达式的值
5)输出计算结果及转换后串。
运动会分数统计(1人完成)
1.掌握结构体数组的表示和存储。
掌握链表的存储和操作。
3.掌握文件的操作。
【设计要求】
任务:
参加运动会有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)可以按学校编号查询学校某个项目的情况;
可以按项目编号查询取得前三或前五名的学校。
5)数据存入文件并能随时查询;
6)规定:
输入数据形式和范围:
可以输入学校的名称,运动项目的名称
输出形式:
有中文提示,各学校分数为整形
界面要求:
有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:
学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:
要求使用1、全部合法数据;
2、整体非法数据;
3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;
飞机订票系统(1人完成)
通过此系统可以实现如下功能:
录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
订票:
(订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票:
可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:
当航班信息改变可以修改航班数据文件
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;
散列表的设计与实现(1人完成)
二、设计内容和要求
【设计要求】设计散列表实现电话号码查找系统。
1)设每个记录有下列数据项:
电话号码、用户名、地址;
2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;
3)采用一定的方法解决冲突;
4)查找并显示给定电话号码的记录;
5)查找并显示给定用户名的记录。
【进一步完成内容】
1)系统功能的完善;
2)设计不同的散列函数,比较冲突率;
3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。
文章编辑(1人完成)
掌握线形表的存储和操作。
【设计要求】功能:
输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;
要求
(1)分别统计出其中英文字母数和空格数及整篇文章总字数;
(2)统计某一字符串在文章中出现的次数,并输出该次数;
(3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;
输入数据的形式和范围:
可以输入大写、小写的英文字母、任何数字及标点符号。
(1)分行输出用户输入的各行字符;
(2)分4行输出"
全部字母数"
、"
数字个数"
空格个数"
文章总字数"
(3)输出删除某一字符串后的文章;
宿舍管理查询软件(1人完成)
为宿舍管理人员编写一个宿舍管理查询软件,
程序设计要求:
A.采用交互工作方式
B.建立数据文件
,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)
查询菜单:
(用二分查找实现以下操作)
C.按姓名查询
D.按学号查询
E.按房号查询
打印任一查询结果(可以连续操作)
纸牌游戏(1人完成)
【设计要求】编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最