2016年秋数据结构课程设计题目
数据结构课程设计题目

题目1:图的遍历功能:实现图的深度优先, 广度优先遍历算法,并输出原图结构及遍历结果。
分步实施:1) 初步完成总体设计,搭好框架;2)完成最低要求:两种必须都要实现,写出画图的思路;3)进一步要求:画出图的结构,有兴趣的同学可以进一步改进图的效果。
要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
题目2:n维矩阵乘法:A B-1功能:设计一个矩阵相乘的程序,首先从键盘输入两个矩阵a,b的内容,并输出两个矩阵,输出ab-1结果。
分步实施:1)初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2)完成最低要求:建立一个文件,可完成2维矩阵的情况;3)一步要求:通过键盘输入维数n。
有兴趣的同学可以自己扩充系统功能。
要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
题目3:数组应用功能:按照行优先顺序将输入的数据建成4维数组,再按照列优先顺序输出结果,给出任意处的元素值,并给出对应的一维数组中的序号。
分步实施:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:完成第一个功能;3.进一步要求:进一步完成后续功能。
有兴趣的同学可以自己扩充系统功能。
要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
题目4:数组应用2功能:读入数组下标,求出数组A靠边元素之和;求从A[0][0]开始的互不相邻的各元素之和;当m=n时,分别求两条对角线上的元素之和,否则打印出m!=n的信息。
数据结构课程设计题目(最终版)

数据结构课程设计题目(最终版)数据结构课程设计题目1、医务室模拟。
问题描述:假设只有一位医生,在一段时间内随机地来几位病人;假设病人到达的时间间隔为0~14分钟之间的某个随机值,每个病人所需处理时间为1~9分钟之间的某个随机值。
试用队列结构进行模拟。
实现要求:要求输出医生的总等待时间和病人的平均等待时间。
程序设计思路:计算机模拟事件处理时,程序按模拟环境中的事件出现顺序逐一处理,在本程序中体现为医生逐个为到达病人看病。
当一个病人就诊完毕而下一位还未到达时,时间立即推进为下一位病人服务,中间时间为医生空闲时间。
当一个病人还未结束之前,另有一位病人到达,则这些病人应依次排队,等候就诊。
2、招聘模拟问题描述:某集团公司为发展生产向社会公开招聘m个工种的工作人员,每个工种各有不同的编号(0,1,2,…,m-1)和计划招聘人数,参加招聘的人数有n个(编号为0,1,2,。
,n-1)。
每位应聘者可以申报两个工种,并参加公司组织的考试。
公司将按应聘者的成绩,从高到低的顺序排队录取。
公司的录取原则是:从高分到低分依次对每位应聘者按其第一志愿录取;当不能按第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其志愿考虑录取。
程序为每个工种保留一个录取者的有序队列。
录取处理循环直至招聘额满,或已对全部应聘者都做了录用处理。
实现要求:要求程序输出每个工种录用者的信息(编号、成绩),以及落选者的信息(编号、成绩)。
3、组织机构问题问题描述:以青岛理工大学为例,实现对我校组织结构的管理。
要求把我校的组织结构以树型结构存储,实现要求:(1)树中每个结点保存部门名称;(2)假定处级部门(含院系)在树中第二层,科级部门在第三层(即最后一层),软件应该能计算出处级部门有几个,有哪几个?(3)软件可以查询某部门下面的具体编制?4、最少换车次数问题问题描述:设某城市有n个车站,并有m条公交线路连接这些车站。
设这些公交车站都是单向的,这n个车站被顺序编号为0~n-1。
数据结构2016课程设计题及要求

• (3)栈以顺序结构实现,队列以链表实现。
• 2.重点、难点
• 重点:针对停车场问题的特点,利用栈的后进 先出特点,选择栈这种数据结构来模拟停车场, 利用队列先进先出的特点,选择队列这种数据 结构来模拟车场外的便道。
• 难点:离散事件问题的模拟算法设计与求解。
• 3.作业及课外学习要求:
• 按照题意要求独立进行设计,设计结束后要按 要求写出课程设计报告。
1.基本要求
1 创建图的存储结构。 2 输入两个景点名,就可以得到从一个景点到达另一
个景点的所有简单路径、相应路径的路程公里数、 行走的方法(每一段是步行,还是坐索道);
3 输入两个景点名,就可以得到其最短路径,即:路 程最短的行进方法;如果两者无路径可通,就得出 “两景点不可达的信息”。
2.重点、难点 重点: 1 通过实验掌握图状结构数据的存储与表式; 2 通过实验掌握对图的存储、遍历、运算等各
课程设计报告规范
3. 详细设计 实现概要设计中定义的所有数据类型,对每个操作写出C/C++语言算法;对主程序和
其他模块也都需要写出C/C++语言算法;写出函数和过程的调用关系。 4. 测试与分析
测试数据,输出测试的结果。这里的测试数据应该完整和严格,包括正确的输入 及其输出结果和含有错误的输入及其输出结果。并对结果进行分析(主要包括:调试 过程中遇到的问题是如何解决的;算法的时空分析和改进设想;经验与体会等)。 5. 附录
• 1.基本要求
• (1)以栈模拟停车场,以队列模拟车场外的便道, 按照从终端读入的输入数据序列进行模拟管理。
• (2)每一组输入数据包括三个数据项:汽车“到 达”或“离去”信息、汽车牌照号码及到达或离去 的时刻,对每一组输入数据进行操作后的输出数据 为:若是车辆到达,则输出汽车在停车场内或便道 上的停车位置;若是车离去;则输出汽车在停车场 内停留的时间和应交纳的费用(在便道上停留的时 间不收费)。
《数据结构》课程设计题目

《数据结构》课程设计题目《数据结构》课程设计题目课程设计题一:学生成绩管理系统设计目的:1.2.3. 掌握线性链表的建立。
掌握线性链表的基本操作。
掌握查找的基本算法。
设计内容:利用线性链表实现学生成绩管理系统,具体功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出,并能在屏幕上输出操作前后的结果。
设计要求:1.2.3.写出系统需求分析,并建模。
编程实现,界面友好。
输出操作前后的结果。
课程设计题二:停车场管理系统设计目的:1.2.3.4. 掌握栈和队列的建立。
掌握栈和队列的基本操作。
深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。
加深对栈和队列的理解和认识。
设计内容:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。
车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。
如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在他之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆在依原来的次序进场。
每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。
如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一程序模拟该停车场的管理。
设计要求:1. 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
2. 每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。
3. 对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费,功能可自己添加)。
数据结构课程设计题目及要求(2015-2016-2)概论

课程设计题目每位同学在本次课程设计期间须选择两道题目(1,2任选一题,3.4任选一题)并按照要求完成。
1考试报名管理系统1.1题目简介考试报名工作给各髙校报名工作带来了新的挑战,给教务管理部门增加了很大的工作量,报名数据手工录入既费时又会不可避免地出现错误,同时也给不少学生以可乘之机。
本项目是对考试报划管理的简单模拟,用菜单选择方式完成下列功能:输入考生信息:输出考生信息;査询考生信息:添加考生信息:修改考生信息;删除考生信息。
1.2设计思路本项目的实质是完成对考生信息的建立、查找、插入、修改、删除等功能,可以首先泄义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。
1.3数据结构本项目的数据是一组考生信息,每条考生信息由准考证号、姓名、性别、年龄、报考类别等信息组成,这组考生信息具有相同特性,属于同一数据对象,相邻数据元素之间存在序偶关系。
由此可以看出,这些数据也具有线性表中数据元素的性质,所以该系统的数据可以采用线性表来存储。
我们知道,线性表的顺序存储结构的特点是逻辑关系相邻的两个元素在物理位豊上也相邻, 因此可以随机存储表中任一元素,它的存储位置可用一个简单、直观的公式来表示。
然而,从另一个方而来看,这个特点也铸成了这种存储结构的弱点:在做插入或删除操作时,需要移动大量元素。
为克服这一缺点,我们引入另一种存储形式一一链式存储。
链式存储是线性表的列一种表示方法,由于它不要求逻辑上相邻的元素在物理位置上也相邻,因此它没有顺序存储结构的弱点,但同时也失去了顺序表可随机存取的特点。
链式存储的优点是插入或删除元素时很方便,使用灵活。
缺点是存储密度小,存储空间利用率低。
事实上,链表插入、删除运算的快捷是以空间代价来换取时间。
顺序表适宜于做查找这样的静态操作:链表宜于做插入、删除这样的动态操作。
若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
数据结构课程设计-学生-21个题目

选题一:迷宫与栈问题【问题描述】以一个mXn的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。
设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
【任务要求】1)首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。
求得的通路以三元组(i,j,d)的形式输出。
其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。
如,对于下列数据的迷宫,输出一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…。
2)编写递归形式的算法,求得迷宫中所有可能的通路。
3)以方阵形式输出迷宫及其通路。
【测试数据】迷宫的测试数据如下:左上角(0,1)为入口,右下角(8,9)为出口。
出口出口选题二:算术表达式与二叉树【问题描述】一个表达式和一棵二叉树之间,存在着自然的对应关系。
写一个程序,实现基于二叉树表示的算术表达式的操作。
【任务要求】假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,*,/,^(乘幂))。
实现以下操作:1)ReadExpre(E)—以字符序列的形式输入语法正确的前缀表达式并构造表达式E。
2)WriteExpre(E)—用带括弧的中缀表达式输出表达式E。
3)Assign(V,c)—实现对变量V的赋值(V=c),变量的初值为0。
4)Value(E)—对算术表达式E求值。
5)CompoundExpr(P,E1,E2)--构造一个新的复合表达式(E1)P(E2)【测试数据】1)分别输入0;a;-91;+a*bc;+*5^x2*8x;+++*3^x3*2^x2x6并输出。
2)每当输入一个表达式后,对其中的变量赋值,然后对表达式求值。
选题三:银行业务模拟与离散事件模拟【问题描述】假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:00am,关门5:00pm)起不断有客户进入银行。
数据结构课程设计题目汇总及要求
数据结构课程设计题目课程设计题一:线性表子系统一.设计目的:1.掌握线性表的特点2.掌握线性表的顺序存储结构和链式存储结构的基本运算3.掌握线性表的基本操作二.设计内容和要求:1.设计一个选择式菜单。
线性表子系统******************************************************* 1 ……建表** 2 ……插入** 3 ……删除** 4 ……显示** 5 ……查找** 6 ……求表长** 0 ……返回*******************************************************请选择菜单号(0…6):2.采用单链表创建线性表。
3.在线性表中实现插入、删除元素,显示线性表中所有元素,查找元素和求线性表长的基本操作。
课程设计题二:栈子系统一.设计目的:1.掌握栈的特点及其描述方法2.掌握链式存储结构实现一个栈3.掌握链栈的各种基本操作4.掌握栈的典型应用的算法二.设计内容和要求:1.设计一个选择式菜单。
栈子系统****************************************************** * 1 ……入栈* * 2 ……出栈* * 3 ……显示* * 4 ……数制转换* * 0 ……返回* ****************************************************** 请选择菜单号(0…4):2.设计一个整型数据元素的链栈。
3.编写入栈、出栈和显示栈中全部元素的程序。
4.编写一个把十进制数转换成八进制数的应用程序。
课程设计题三:队列子系统一.设计目的:1.掌握队列的特点及其描述方法2.掌握链式存储结构实现一个队列3.掌握队列的各种基本操作4.掌握队列简单应用的算法二.设计内容和要求:1.设计一个选择式菜单。
队列子系统******************************************************* 1 ……入队** 2 ……出队** 3 ……读队首元素** 4 ……显示** 5 ……报数问题** 0 ……退出*******************************************************请选择菜单号(0…5):2.设计一个整型数据元素的链队列。
数据结构课程设计题目
数据结构课程设计题⽬《数据结构》课程设计题⽬1. 排序算法的性能分析问题描述设计⼀个测试程序,⽐较⼏种内部排序算法的关键字⽐较次数和移动次数以取得直观感受。
基本要求(1)对冒泡排序、直接排序、选择排序、箱⼦排序、堆排序、快速排序及归并排序算法进⾏⽐较。
(2)待排序表的表长不⼩于100,表中数据随机产⽣,⾄少⽤5组不同数据作⽐较,⽐较指标:关键字参加⽐较次数和关键字的移动次数(关键字交换记为3次移动)。
(3)输出⽐较结果。
选做内容(1)对不同表长进⾏⽐较。
(2)验证各算法的稳定性。
(3)输出界⾯的优化。
2. 排序算法思想的可视化演⽰—1基本要求排序数据随机产⽣,针对随机案例,对冒泡排序、箱⼦排序、堆排序、归并算法,提供排序执⾏过程的动态图形演⽰。
3. 排序算法思想的可视化演⽰—2基本要求排序数据随机产⽣,针对随机案例,,对插⼊排序、选择排序、基数排序、快速排序算法,提供排序执⾏过程的动态图形演⽰。
4. 线性表的实现与分析基本要求①设计并实现线性表。
②线性表分别采取数组(公式化描述)、单链表、双向链表、间接寻址存储⽅式③针对随机产⽣的线性表实例,实现线性表的插⼊、删除、搜索操作动态演⽰(图形演⽰)。
5. 等价类实现及其应⽤问题描述:某⼯⼚有⼀台机器能够执⾏n个任务,任务i的释放时间为r i(是⼀个整数),最后期限为d i(也是整数)。
在该机上完成每个任务都需要⼀个单元的时间。
⼀种可⾏的调度⽅案是为每个任务分配相应的时间段,使得任务i的时间段正好位于释放时间和最后期限之间。
⼀个时间段不允许分配给多个任务。
基本要求:使⽤等价类实现以上机器调度问题。
等价类分别采取两种数据结构实现。
6. ⼀元稀疏多项式计算器问题描述设计⼀个⼀元稀疏多项式简单计算器。
基本要求⼀元稀疏多项式简单计算器的基本功能是:(1)输⼊并建⽴多项式;(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,c n,e n,其中n是多项式的项数,c i,e i,分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相加,建⽴多项式a+b;(4)多项式a和b相减,建⽴多项式a-b;(5)计算多项式在x处的值;(6)计算器的仿真界⾯(选做)7. 长整数的代数计算问题描述应⽤线性数据结构解决长整数的计算问题。
数据结构课程设计(2016-2017-2)
必做线性表1、某软件公司大约有30名员工,每名员工有姓名、工号、职务等属性,每年都有员工离职和入职。
把所有员工建立一个线性表,建立离职和入职函数,当有员工离职或入职时,修改线性表,并且显示最新的员工名单。
要求:1)顺序表存储;实现顺序表的插入、删除、查找、输出等基本操作;调用基本操作完成。
2)链表存储;实现链表的插入、删除、查找、输出等基本操作;调用基本操作完成。
栈和队列2、假设一个算术表达式中可以包含三种括号:园括号“(”和“)”、方括号“[”和“]”、花括号“{”和“}”,且这三种括号可按任意的次序嵌套使用。
编写判别给定表达式中所含括号是否正确配对出现的算法(已知表达式已存入数据元素为字符的顺序表中)。
要求:顺序栈存储;实现顺序栈的基本操作;调用基本操作完成。
3、某商场有一个100个车位的停车场,当车位未满时,车辆可以进入;当车位已满时,车辆需排队等待,当有车辆离开后,等待的车辆才能进入。
要求实现车辆进入和离开停车场的功能,并可以显示停车场内的车辆信息。
树和二叉树4、以下问题要求统一在一个大程序里解决。
●按先序遍历的扩展序列建立二叉树的二叉链表存储结构,实现二叉树先序、中序、后序遍历的递归算法,实现二叉树中序遍历的非递归算法,实现二叉树层次遍历的非递归算法(要求使用顺序队列,调用顺序队列基本操作实现),求二叉树的深度(后序遍历)。
5、以下问题要求统一在一个大程序里解决。
●自上而下输入边来建立树的存储结构(例如#A,AB,AC,BD,##),求树的深度。
图6、要求建立图的邻接表存储结构,输入或存储任意一个无向图,显示图的深度优先搜索遍历路径和广度优先搜索遍历路径。
7、建立任意一个无向网的邻接矩阵存储结构,用普里姆(Prim)算法构造最小生成树。
查找8、设计一个读入一串整数构成一棵二叉排序树的程序,并对其中序遍历。
9、设定哈希函数 H(key) = key MOD 11 ( 表长=11 ),输入一组关键字序列,根据线性探测再散列解决冲突的方法建立哈希表的存储结构,显示哈希表,任意输入关键字,判断是否在哈希表中。
《数据结构》课程设计选题参考
《数据结构》课程设计选题参考. 集合运算器设计编写程序实现两个集合的并、交、相对补、对称差运算,并判断这两个集合是否相等、是否有包含关系。
题目要求:()输入集合和集合的元素;()输出集合和的并∪、交∩、相对补、对称差运算⊕;()输出集合与是否相等的判定结果;()输出一个集合是否为另一个集合的子集的判定结果;()输出集合幂集。
输入输出要求:()集合输入输出形式为:{集合元素,集合元素,…,集合元素}。
()编写相应菜单,用户通过选择菜单中的相应项来完成相应功能。
. 矩阵计算器设计编写程序实现任意两个矩阵的加法、减法、乘法运算和矩阵转置运算。
题目要求:()编写菜单允许用户选择相应的运算操作;()矩阵的维数可以任意;()程序能检查在所选择的运算在给定矩阵上是否可执行。
输入输出要求:(1)矩阵输入输出形式为:集合元素()集合元素()…()集合元素1m(回车)集合元素()集合元素()…()集合元素2m(回车)……集合元素()集合元素()…()集合元素(回车). 大整数运算器设计编写程序实现任意大整数的加法、减法、乘法运算。
题目要求:()大整数长度在十位以上;()输入两个任意长度的大整数;()实现两个大整数的加、减、乘法运算;()输出运算结果;()编写相应菜单,允许用户选择运算类型。
. 大素数查询器设计输出指定范围内的所有素数。
指定范围不小于。
题目要求:()找出指定范围内的所有素数;()统计素数的个数;()将结果保存到文件。
输入要求:以上限和下限的形式指定查找范围输出要求:查找结果输出到文件,且每个素数占一行。
. 银行排队模拟系统银行业务越来越丰富,有一般的客户存款或取款、理财金(股票、基金等业务)、外币服务等。
每天来银行的客户越来越多,为免除客户排队等待,日前银行均设计有排队管理系统。
试编程模拟管理银行的排队业务。
题目要求:()设置有排队机器,可以实现“理财金”“外币”“个人服务”等种业务的排队。
()银行窗口接待服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、对给定的图,编写求最小生成树算法,用prim思想
六:
约瑟夫生者死者游戏
约瑟夫生者死者游戏的大意是:30个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免遇难。
无奈,大家只得同意这种办法,并议定30个人围成一圈,由第一个人开始,依次报数,数到第9人,便把他投入大海中,然后从他的下一个人数起,数到第9人,再将他投入大海,如此循环,直到剩下15个乘客为止。
问哪些位置是将被扔下大海的位置。
2 设计思路本游戏的数学建模如下:假设n个旅客排成一个环形,依次顺序编号1,2,…,n。
从某个指定的第1号开始,沿环计数,每数到第m个人就让其出列,且从下一个人开始重新计数,继
续进行下去。
这个过程一直进行到剩下k个旅客为止。
本游戏的要求用户输入的内容包括: 1. 旅客的个数,也就是n的值; 2. 离开旅客的间隔数,也就是m的值; 3. 所有旅客的序号作为一组数据要求存放在某种数据结构中。
本游戏要求输出的内容是包括 1. 离开旅客的序号; 2. 剩余旅客的序号;所以,根据上面的模型分析及输入输出参数分析,可以定义一种数据结构后进行算法实现。
3 数据结构为了解决这一问题,可以用长度为30的数组作为线性存储结构,并把该数组看成是一个首尾相接的环形结构,那么每投入大海一个乘客,就要在该数组的相应位置做一个删除标记,该单元以后就不再作为计数单元。
这样做不仅算法较为复杂,而且效率低,还要移动大量的元素。
用单循环链表解决这一问题,实现的方法相对要简单得多。
首先要定义链表结点,单循环链表的结点结构与一般的结点结构完全相同,只是数据域用一个整数来表示位置;然后将它们组成具有30个结点的单循环链表。
接下来从位置为1的结点开始数,数到第8个结点,就将下一个结点从循环链表中删去,然后再从删去结点的下一个结点开始数起,数到第8个结点,再将其下一个结点删去,如此进行下去,直到剩下15个结点为止。
七.散列表的设计与实现
【问题描述】
设计散列表实现电话号码查找系统。
【基本要求】
1) 设每个记录有下列数据项:电话号码、用户名、地址;
2) 从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;
3) 采用一定的方法解决冲突;
4) 查找并显示给定电话号码的记录;
5) 查找并显示给定用户名的记录。