数据结构综合实验任务书-总
- 格式:doc
- 大小:87.00 KB
- 文档页数:9
《数据结构与算法实验》任务书《数据结构与算法实验》任务书实验一动态链表的设计与应用一、实验目的、要求1、掌握使用VC 6.0上机调试线性表的基本方法;2、掌握线性表的基本操作:插入、删除、查找以及线性表合并等运算在顺序存储结构和链式存储结构上的运算。
二、实验内容1.输入一组学生信息,建立一个单链表。
2.遍历该链表,输出学生信息。
3.查找某特定的学生,查找成功返回1,否则返回0。
4.编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。
5.利用算法4建立两个非递减有序单向链表,然后合并成一个非递增链表。
*6.采用单向链表实现一元多项式的存储并实现两个多项式相加并输出结果。
7.编写一个主函数,调试上述算法。
*8.综合训练:利用链表实现一个班级学生信息管理(数据录入、插入、删除、排序、查找等,并能够实现将数据存储到文件中)三、实验说明1.存储定义#define MAXSIZE 100 //表中元素的最大个数typedef int ElemType;//元素类型typedef struct list{ElemType elem[MAXSIZE];//静态线性表int length; //表的实际长度}SqList;//顺序表的类型名2.建立顺序表时可利用随机函数自动产生数据。
四、注意问题1.插入、删除时元素的移动原因、方向及先后顺序。
2.了解不同的函数形参与实参的传递关系。
一、实验目的、要求1.掌握栈、队列的思想及其存储实现。
2.掌握栈、队列的常见算法的程序实现。
二、实验内容1.采用链式存储实现栈的初始化、入栈、出栈操作。
2.采用顺序存储实现栈的初始化、入栈、出栈操作。
3.采用链式存储实现队列的初始化、入队、出队操作。
4.采用顺序存储实现循环队列的初始化、入队、出队操作。
5.在主函数中设计一个简单的菜单,分别测试上述算法。
*6.综合训练:1)利用栈实现表达式求值算法。
数据结构⼤型实验任务书-2014年(第三稿)[⼤型实验基本要求]1.原则上可以1-3位同学组成实验⼩组,进⾏分⼯合作,但必需保证每位组员都充分参与实验过程,每位组员应对实验程序的结构、算法、主要技术完全掌握,⽅可参加实验验收。
但⼀个⼩组内最终只能⼀个⼈得到优秀成绩。
2.每组可参考下⾯⼤型实验题⽬和要求,选择⼀道实验题⽬,共同设计开发。
3.⼤型实验时间从第8周开始⾄16周,要求在考试之前全部验收结束。
原则上,申请⼤型实验验收后,若实验没有达到规定的要求,不可再次申请验收,故请⼤家务必确认程序正确(程序代码和运⾏结果)后,再申请验收。
[报告规范]实习报告的开头应该给出题⽬、班级、姓名、学号、和完成⽇期,如果是多⼈完成的,必须写明所有同组⼈员的班级、姓名和学号,并标明谁是主要负责⼈,其它为参与者。
实验报告要求有以下五个内容:1.实验内容分析:明确实验题⽬⽬的,设计实验的基本数据结构、类、以及程序的基本流程,程序流程要求以程序流程图明确表⽰,类及类间关系需明确图⽰,并给出各函数之间的调⽤关系。
可以适当粘贴关键代码进⾏说明;2.实验验证分析:(1)输⼊的形式和输⼊值的范围;(2)输出的形式;(3)程序所能达到的功能;(4)测试数据:包括正确的输⼊及其输出结果和含有错误的输⼊及其输出结果。
3.调试分析(1)讨论分析调试过程中的主要技术问题以及具体的解决⽅法(⾄少3个);(2)技术难点分析(⾄少3个);(3)印象最深刻的3个调试错误,及修正⽅法;4.测试结果:(1)展⽰程序的运⾏结果,包括输⼊和输出,分析数据的正确性;(2)应⽤边界数据、或极端数据测试系统,分析结果的正确性。
5.附录:附上源代码,并标明源代码的所属⽂件,并且源代码必须有注释。
[提交内容]1.电⼦压缩包:包括实验报告电⼦稿和所有源代码⽂件(包括.h⽂件和.cpp⽂件)。
2.压缩⽂件名为:“学号+姓名”;如果是多⼈合作的,则压缩⽂件名为:“负责⼈学号+负责⼈姓名+参与者1学号+参与者1姓名+参与者2学号+参与者2姓名”。
《数据结构》实验指导书重庆大学数学与统计学院2008-12前言《数据结构》是计算机科学与技术、网络工程等专业的专业基础必修课,主要介绍如何合理地组织数据、有效地存储和处理数据,正确地设计算法以及对算法进行分析和评价。
本课程的学习应使学生深刻地理解数据结构的逻辑结构和物理结构的基本概念及有关算法,培养学生基本的、良好的程序设计技能以及针对具体问题,选择适当的数据结构,设计出有效算法的能力。
《数据结构》是一门理论和实践相结合的课程,它在整个计算机专业教学体系中处于举足轻重的地位,是计算机科学的算法理论基础和软件设计的技术基础,其上机实验的目的主要是编程实现数据结构各章的主要算法,训练学生实际动手进行程序设计和程序调试的能力,加深对数据结构相关概念和算法的理解。
实验一、单链表的基本操作一、实验目的1、掌握线性链表的操作特点,即指针是逻辑关系的映像。
2、掌握动态产生单链表的方法。
3、熟练掌握单链表的插入、删除操作特点,即指针赋值的先后次序。
二、实验内容1、动态创建单链表2、实现线性表链式存储结构中元素的插入。
3、实现线性表链式存储结构中元素的删除。
三、具体要求1、单链表的存储结构定义typedef struct LNode {ElemType data; // 数据域struct LNode *next; // 指针域} LNode, *LinkList;2、从键盘上依次输入21、18、30、75、42、56,逆序创建单链表,并输出单链表中的各元素值。
3、分别在单链表的第3个位置和第9个位置插入67和10,给出插入成功或失败的信息,并输出单链表中的各元素值。
4、删除单链表中的第6个数据元素和第8个数据元素,给出删除成功或失败的信息,并输出单链表中的各元素值。
四、实验报告内容1、实验目的2、实验内容和具体要求3、完成情况和实验记录,实验记录为实验过程中遇到的问题及解决方法4、程序清单5、所输入的数据及相应的运行结果实验二栈、队列算法设计一、实验目的1、熟悉栈这种特殊线性结构的特性;2、熟练掌握栈在顺序存储结构和链表存储结构下的基本运算;3、熟悉队列这种特殊线性结构的特性;4、熟练掌握队列在链表存储结构下的基本运算。
沈阳工程学院课程设计任务书课程设计题目:数据结构与算法课程设计系别信息工程系班级学生姓名学号指导教师职称课程设计进行地点:任务下达时间:年月日起止日期:年月日起——至年月日止教研室主任年月日批准一、课程设计的原始资料及依据数据结构与算法课程设计是在完成数据结构理论课程学习之后进行的一个综合性的实践教学环节,是对课程理论和课程实验的一个补充。
通过课程设计,培养学生综合运用已学过的理论和技能去分析和解决实际问题的能力,并使所学知识得到进一步巩固、深化和扩展。
二、课程设计主要内容及要求设计内容:1、设有一元素为整数的线性表L=(a1,a2,a3,…,an),存放在一维数组A[N]中,设计一个算法,以表中an作为参考元素,将该表分为左、右两部分,其中左半部分每个元素小于等于an,右半部分每个元素都大于an, an位于分界位置上(要求结果仍存放在A[N]中)。
2、设线性表存于A[1..size]的前num各分量中,且递增有序。
请设计一个算法,将x插入到线性表的适当位置上,以保持线性表的有序性。
3、线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。
要求设计一算法完成:4、用最少时间在表中查找数值为x的元素。
5、若找到将其与后继元素位置相交换。
6、若找不到将其插入表中并使表中元素仍递增有序。
7、已知数组A[0:n-1]的元素类型为int,试设计算法将其调整为左右两个部分,左边所有元素为奇数,右边所有元素为偶数。
8、设计一个算法从顺序表L中删除所有值为x的元素9、设计一个算法从顺序表L中删除所有值为x到y之间(x<=y)的元素10、假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。
请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。
11、已知L1、L2分别为两循环单链表的头结点指针,m,n分别为L1、L2表中数据结点个数。
目录实验1 顺序表的应用 (2)实验2 链表的应用 (5)实验3 栈的应用 (6)实验4 队列的应用 (7)实验5 树的应用 (9)实验6 图的应用 (10)实验7 图的应用 (11)实验8 查找与排序 (12)0 实验要求一、实验步骤⒈问题分析充分地分析和理解问题本身,弄清要求做什么,包括功能要求、性能要求、设计要求和约束以及基本数据特性,数据间的联系等。
⒉数据结构设计针对要求解决的问题,考虑各种可能的数据结构,并且力求从中找出最佳方案(必须连同算法一起考虑),确定主要的数据结构及全局变量。
对引入的每种数据结构和全局变量要详细说明其功能、初值和操作特点。
⒊算法设计算法设计分概要设计和详细设计,概要设计着重解决程序的模块设计问题,这包括考虑如何把被开发的问题程序自顶向下分解成若干顺序模块,并决定模块的接口,即模块间的相互关系以及模块之间的信息交换问题.详细设计则要决定每个模块内部的具体算法,包括输入、处理和输出,采用类C语言描述。
⒋测试用例设计准备典型测试数据和测试方案,测试数据要有代表性、敏感性,测试方案包括模块测试和模块集成测试。
⒌上机调试对程序进行编译,纠正程序中可能出现的语法错误,测试前,先运行一遍程序看看究竟将会发生什么,如果错误较多,则根据事先设计的测试方案并结合现场情况进行错误跟踪,包括打印执行路径或输出中间变量值等手段。
二、实验报告每次实验结束后,均应撰写实验报告。
实验报告应包括如下内容:1、问题描述:简述题目要解决的问题是什么。
2、设计:概要设计采用抽象数据类型描述,详细设计包括存储结构的定义、主要操作算法设计等。
用类C语言或用框图描述。
3、调试报告:调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。
4、运行结果。
可以贴相应的运行结果截图。
5、算法分析与改进:算法的时间复杂度和空间复杂度分析;算法改进的设想。
6、经验和体会所有实验做完后,上交上机实验源程序和相应的运行结果截图。
数据结构与算法课程设计任务书一.数据结构与算法课程设计的目的和要求(一)设计的目的数据结构与算法课程设计是在学完数据结构与算法课程之后的实践教学环节。
该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。
要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。
学生通过数据结构课程设计在下述各方面得到锻炼:1.能根据实际问题的具体情况,结合数据结构与算法课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。
2.提高程序设计和调试能力。
学生通过上机实习,验证自己设计的算法的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。
3.培养算法分析能力。
分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。
(二)设计要求1.学生必须仔细阅读《数据结构与算法》课程设计方案,认真主动完成课设的要求。
有问题及时主动通过各种方式与教师联系沟通。
2.学生要发挥自主学习的能力,充分利用时间,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
3.课程设计按照教学要求需要一周时间完成,属教师安排上机时间学生不得缺席。
二.设计内容及步骤1.分析问题,给出数学模型,设计相应的数据结构。
(1)分析问题的特点,用数学表达式或其它形式描述其数学模型。
(2)选择能够体现问题本身特点的逻辑结构。
(3)在逻辑结构确定的情况下,为算法的设计选择相应的存储结构,顺序存储结构和非顺序存储结构的不同存储方式,其对应的算法也不相同。
2.算法设计在已经选择好数据结构的前提下,为解决问题设计算法。
(1)确定所需模块对于稍复杂的程序设计,要充分利用模块化程序设计方法,自顶向下,逐步细化,在整体思路确定的情况下,考虑所需模块数,各模块完成功能以及模块之间的数据联系和调用关系。
(2)各子模块功能描述给出主要模块的算法描述,用流程图或伪代码表示。
封面作者:Pan Hongliang仅供个人学习1006401《数据结构》课程设计任务书一、设计目地1.了解并掌握数据结构与算法地设计方法,具备初步地独立分析和设计能力;2.初步掌握软件开发过程地问题分析、系统设计、程序编码测试等基本方法和技能;3.提高综合运用所学地理论知识和方法独立分析和解决问题地能力;4.训练用系统地观点和软件开发一般规范进行软件开发,培养软件工作者所应具备地科学地工作方法和作风.《数据结构》是一门实践性较强地软件基础课程,为了学好这门课程,必须在掌握理论知识地同时,加强上机实践.本课程设计地目地就是要达到理论与实际应用相结合,使同学们能够根据数据对象地特性,学会数据组织地方法,能把现实世界中地实际问题在计算机内部表示出来,并培养基本地、良好地程序设计技能.二、设计地点湖南城市学院实验楼计算机房403三、设计时间2012年6月4日——6月8日四、设计分组(26人)五、指导教师:陈强设计课题:1.学校超市选址问题要求:对于某一学校超市,其他各单位到其地距离不同,同时各单位人员去超市地频度也不同.请为超市选址,要求实现总体最优.2.通讯录地制作模块要求:第一个模块——主函数main()地功能是:根据选单地选项调用各函数,并完成相应地功能.第二个模块——Menu()地功能是:显示英文提示选单.第三个模块——Quit()地功能是:退出选单.第四个模块——Create()地功能是:创建新地通讯录.第五个模块——Add()地功能是:在通讯录地末尾,写入新地信息,并返回选单.第六个模块——Find()地功能是:查询某人地信息,如果找到了,则显示该人地信息,如果未找到,则提示通讯录中没有此人地信息,并返回选单.第七个模块——Alter()地功能是:修改某人地信息,如果未找到要修改地人,则提示通讯录中没有此人地信息,并返回选单.第八个模块——Delete()地功能是:删除某人地信息,如果未找到要删除地人,则提示通讯录中没有此人地信息,并返回选单.第九个模块——List()地功能是:显示通讯录中地所有记录.;设计要求:1)每条信息至包含:姓名(NAME)、性别(GENDER)、电话(TEL)、城市(CITY)邮编(EIP)几项.2)作为一个完整地系统,应具有友好地界面和较强地容错能力3.图书管理系统设计一个计算机管理系统完成图书管理基本业务.【基本要求】1)每种书地登记内容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书地现存量大于0,则借出一本,登记借阅者地书证号和归还期限,改变现存量;*归还:注销对借阅者地登记,改变该书地现存量.【进一步完成内容】1)系统功能地进一步完善;2)索引表采用树表.3)设计内容4)程序流程图5)源程序6)软件测试报告(包括所用到地数据及结果)4.图书借阅管理系统主要分为两大功能:1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);2)会员管理(增加会员、查询会员、删除会员、借书信息);5.学生成绩管理实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出.6.散列法地实验研究散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突地方法也可以不同.两者是影响查询算法性能地关键因素.对于几种典型地散列函数构造方法,做实验观察,不同地解决冲突方法对查询性能地影响.7.树地应用实现树与二叉树地转换地实现.以及树地前序、后序地递归、非递归算法,层次序地非递归算法地实现,应包含建树地实现.8.数制转换问题任意给定一个M进制地数x,请实现如下要求1)求出此数x地10进制值(用MD表示)2)实现对x向任意地一个非M进制地数地转换.3)至少用两种或两种以上地方法实现上述要求(用栈解决,用数组解决,其它方法解决). 9.顺序结构、动态链表结构下地一元多项式地加法、减法、乘法地实现设有一元多项式Am(x)和Bn(x).Am(x)=A0+A1x1+A2x2+A3x3+…+AmxmBn(x)=B0+B1x1+B2x2+B3x3+…+Bnxn请实现求M(x)=Am(x)+Bn(x)、M(x)=Am(x)-Bn(x)和M(x)=Am(x)×Bn(x).要求:1)首先判定多项式是否稀疏2)分别采用顺序和动态存储结构实现;3)结果M(x)中无重复阶项和无零系数项;4)要求输出结果地升幂和降幂两种排列情况10.宿舍管理查询软件为宿舍管理人员编写一个宿舍管理查询软件,程序要求采用交互工作方式,并建立相应地数据文件.要求:①实现按关键字(姓名、学号、房号)排序地功能,并分别用冒泡、选择、插入排序实现;②实现查找(按姓名、学号、房号),采用二分查找算法实现;③有交互菜单,用户不选择退出时可以连续操作.11.文章编辑功能:输入一页文字,程序可以统计出文字、数字、空格地个数.静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现地次数,并输出该次数;(3)删除某一子串,并将后面地字符前移.存储结构使用线性表,分别用几个子函数实现相应地功能;输入数据地形式和范围:可以输入大写、小写地英文字母、任何数字及标点符号.输出形式:(1)分行输出用户输入地各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出删除某一字符串后地文章.12.稀疏矩阵实现与应用要求:实现三元组、十字链表下地稀疏矩阵地加、转、乘地实现.13.线索二叉树地应用要求实现线索树建立、插入、删除、恢复线索地实现.14.纸牌游戏任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2地倍数地牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3地倍数地牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4地倍数地牌翻一次,直到最后一张牌;...再依次5地倍数地牌翻一次,6地,7地直到以52为基数地翻过,输出:这时正面向上地牌有哪些?15.表达式翻译要求:编写完整程序,将不包含括号地算术中缀表达式翻译成后缀表达式.输入:中缀表达式,80个字符以内.输出:转换后地后缀表达式.要求:界面友好,函数功能要划分好16.简单地职工管理系统1.问题描述对单位地职工进行管理,包括插入、删除、查找、排序等功能.2.要求职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息.(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中.(2)删除一名职工:从职工管理文件中删除一名职工对象.(3)查询:从职工管理文件中查询符合某些条件地职工.(4)修改:检索某个职工对象,对其某些属性进行修改.(5)排序:按某种需要对职工对象文件进行排序.3.实现提示职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换.(1)由键盘输入职工对象,以文件方式保存.程序执行时先将文件读入内存.(2)对职工对象中地"姓名"按字典顺序进行排序.(3)对排序后地职工对象进行增、删、查询、修改、排序等操作.4.选做内容将职工对象按散列法存储,并设计解决冲突地方法.在此基础上实现增、删、查询、修改、排序等操作.17.校园导航问题设计要求:设计你地学校地平面图,至少包括10个以上地场所,每两个场所间可以有不同地路,且路长也可能不同,找出从任意场所到达另一场所地最佳路径(最短路径).1、基本要求:1)设计校园平面图,在校园景点选10个左右景点.以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息.2)为来访客人提供图中任意景点相关信息地查询.3)为来访客人提供任意景点地问路查询,即查询任意两个景点之间地一条最短路径.2、实现提示:一般情况下,校园地道路是双向通行地,可设计校园平面图是一个无向网.顶点和边均含有相关信息.18.学生成绩管理系统现有学生成绩信息文件1(1.txt),内容如下姓名学号语文数学英语张明明01677882李成友02789188张辉灿03688256王露04564577陈东明05673847….......…学生成绩信息文件2(2.txt),内容如下:姓名学号语文数学英语陈果31576882李华明32889068张明东33484256李明国34504587陈道亮35475877….......…试编写一管理系统,要求如下:1)实现对两个文件数据进行合并,生成新文件3.txt2)抽取出三科成绩中有补考地学生并保存在一个新文件4.txt3)对合并后地文件3.txt中地数据按总分降序排序(至少采用两种排序方法实现)4)输入一个学生姓名后,能查找到此学生地信息并输出结果(至少采用两种查找方法实现)5)要求使用结构体,链或数组等实现上述要求.6)采用多种方法且算法正确者,可适当加分19.学校超市选址问题设计要求:对于某一学校超市,其他各单位到其地距离不同,同时各单位人员去超市地频度也不同.请为超市选址,要求实现总体最优.20.字符串操作基本功能要求:(1)字符串采用数组存储,建立两个字符串String1和String2.输出两个字符串.(2)将字符串String2地头n个字符添加到String1地尾部.输出结果.(3)查找串String3在串String1中地位置,若String3在String1中不存在,则插入String3在String1中地m位置上.输出结果.测试数据:(1)String1: “typedefstructArcBox”String2: “VertexTypedata”String3: “data”n:6,m:7(2)String1: “structArcBox”String2: “VertexType”String3: “Box”n:3,m:321.一元稀疏多项式计算器要求:设计一个一元多项式加法器.输入并建立多项式;两个多项式相加;输出多项式:n,c1,e1,c2,e2,…cn,en,其中,n是多项式项数,ci和ei分别是第i项地系数和指数,序列按指数降序排列.计算多项式在x处地值22.利用Hash技术统计C源程序中关键字地频度扫描一个C源程序,用Hash表存储该程序中出现地关键字,并统计该程序中地关键字出现地频度.用线性探测法解决Hash冲突.设Hash函数为:Hash(Key)=[(Key地首字母序号)*100+(Key地尾字母序号)] Mod 41.关键字39个(参考C语言教材).23.学生搭配问题一班有m个女生,有n个男生(m不等于n),现要开一个舞会.男女生分别编号坐在舞池地两边地椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴.请设计一系统模拟动态地显示出上述过程,要求如下:输出每曲配对情况计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞地情况.至少求出K地两个值.尽量设计出多种算法及程序,可视情况适当加分.(提示:用队列来解决比较方便)24.人事管理系统:每个员工地信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等.以二叉排序树形式存储员工信息,完成员工信息地查询、更新、插入、删除等功能.功能要求:(1)查询:按特定条件查找员工.(2)更新:按编号对某个员工地某项信息进行修改.(3)插入:加入新员工地信息.(4)删除:按编号删除已离职地员工地信息25.猴子选大王任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1--m地顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王.要求:输入数据:输入m,n. m,n 为整数,n<m输出形式:中文提示按照m个猴子,数n 个数地方法,输出出队猴子地先后顺序(编号),最后输出为大王地猴子地编号.(建立一个函数来实现此功能)26.商店存货管理系统功能:建立一商店存货管理系统,要求每次出货时取进货时间最早且最接近保质期中止时间地货物.分步实施:1.初步完成总体设计,搭好框架,确定人机对话地界面,确定函数个数;2.完成最低要求:建立一个文件,包括5个种类地货物情况,能对商品信息进行扩充(追加),修改和删除以及简单地排序;3.进一步要求:扩充商品数量,以及完成系统查询功能.有兴趣地同学可以自己扩充系统功能.版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。
课程设计任务书《数据结构》课程设计一、课程设计的目的课程设计是《数据结构》课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的理解与巩固,是将计算机课程与实际问题相联接的关键步骤。
通过课程设计,能够提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。
二、课程设计的要求1.明确课设任务,复习与查阅有关资料。
2.按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。
3.应用程序应具有一定的可用性。
凡用户输入时,给出足够的提示信息。
格式明显易懂,使用户感到方便使用。
4.程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行:对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入。
三、课程设计报告内容课程设计报告中应包括封面、内容摘要、关键词、目录、正文、参考文献、附录、致谢等几部分。
正文包括绪论、需求分析、概要设计、详细设计、调试分析、测试结果、总结等。
具体:(1)封面包括设计题目、所在系、专业、班级、姓名、指导教师姓名和完成日期。
(2)内容摘要应扼要叙述课设的主要内容、特点,文字要精练,是一篇具有独立性和完整性的短文,包括基本研究方法、理论与实际意义。
关键词是供检索用的主题词条,应采用能够覆盖课程设计报告主要内容的通用专业术语。
(3)绪论一般作为第1章,综述课程设计选题的目的、背景和意义,所要研究的主要内容。
(4)需求分析陈述说明课程设计的任务。
明确规定:输入/输出形式和输出值的范围;程序所能达到的功能;测试的数据:包括正确的输入和错误的输入及其相应的输出结果。
(5)概要设计包括设计思想、实现方法、系统中主要函数及各函数间的关系描述。
(6)详细设计包括实现概要设计中定义的所有数据类型,对每个操作需要写出伪代码算法。
(7)调试分析包括:调试过程中遇到的问题,如何解决的以及对设计实现的回顾讨论和分析;对算法的分析和改进设想;经验和体会等。
2009级数据结构课程设计任务书课程设计教学目的数据结构是计算机专业的核心课程,是计算机科学的算法理论基础和软件设计的技术基础。
数据结构是实践性很强的课程。
课程设计是加强学生实践能力的一个强有力手段。
本课程属于集中实践教学环节,是在学习了C语言、面向对象程序设计(C++)和数据结构后开设的。
要求学生掌握数据结构的应用、算法的编写、类C语言的算法转换成C(C++,Java)程序并上机调试的基本方法。
课程设计要求学生在完成程序设计的同时能够写出比较规范的设计报告。
严格实施课程设计这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用:1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
设计要求1、学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。
有问题及时主动通过各种方式与教师联系沟通。
每个学生必须独立完成;2、课程设计时间为2周;3、设计语言不限;鼓励学生采用GUI设计;4、充分利用课余时间完成源程序和课程设计报告等文档书写工作,上机时带上源程序、数据结构教材、C++语言教材。
5、上机任务1)选择合适的数据结构,并定义数据结构的结构体;2)根据程序所要完成的基本要求和程序实现提示,设计出完整的算法;3)设计出主程序或界面,使其成为完整的程序。
6、无论在校外、校内,都要严格遵守学校的学习和劳动纪律、规章制度,学生有事离校必须请假。
课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。
7、学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
数据结构综合实验任务书本次课程设计安排在第19周,教师提供了26道选题,按照题目的难易程序度分为一类、二类及三类,一类选题9个,难度稍高,二类选题5个,难度中等,三类选题12个,难度较低。
根据自身情况选题,必须保证自己完成。
自选题必须事先由教师看过并同意才可以做。
选题原则上一人一组形式进行。
课程设计按照软件工程的步骤进行,先写出需求分析,再进行概要设计和详细。
基本要求是给出题中所涉及的数据的逻辑结构、存储结构、算法核心设计流程、输入输出、源程序、测试数据及结果,并在总结部分给出设计及实现过程中出现的问题及解决思路,探讨算法的改进方法。
系统实现在Visual C++控制台环境下实现,要求有简单界面的设计,课程设计最后以设计报告及软件形式提交,设计报告按照指导书的要求编写。
课程设计从学习态度、程序运行及答辩情况、文档写作情况分项打分,学习态度包括考勤及投入情况,程序运行考查编码的独立完成情况、程序的执行情况及工作量大小,文档的写作包括需求分析文档的写作,概要设计和详细设计情况以及数据结构的定义情况等等。
课程设计第一天,必须写出需求分析和概要设计。
课程设计任务书一类题(9个):NO. 11、题目:工程求解2、设计内容及要求:✧内容:一个工程上的关键活动直接影响着整个工程的进展情况,要求实现关键路径上问题的求解。
✧要求:(1)画出AOE网,以边表示子工程,顶点表示子工程的开始和结束,边上权值表示子工程完成需要的时间,整个工程一个开始点,一个结束点。
在计算机上以邻接表存储该AOE网。
(2)输出工期和影响工程进展的关键活动。
编程实现基本要求。
NO. 21、题目:哈夫曼编码/译码器的设计与实现2、设计内容及要求:✧内容:信息在通讯线路中是以编码形式进行传输的,在接收端采取一种译码的机制将信息“译”出来。
✧要求:(1)对下表所示字符及频度,建立哈夫曼树;(2)输出每个字符的编码;(3)利用哈夫曼树,对输入的报文进行编码,并将结果显示出来;(4)利用哈夫曼树,对输入的译文进行译码。
NO. 31、题目:教学计划编制问题2、设计内容及要求:✧内容:大学的每个专业都要制定教学计划,课程在开设时间的安排上必须满足先修关系,每门课程恰好开设一个学期,每门课都有对应学分,每个学期的学分总上限是一致的。
按照下表所示课程的先修关系,给图中的课程按7学期排课。
✧要求:(1)在纸上表示出课程之间优先关系的有向图,并用邻接表存储图;(2)给出课程的线性序列;(3)设定每个学期的总学分上限,试排定一种课表。
NO. 41、题目:煤气管道铺设2、设计内容及要求:✧内容:若在n个城市之间铺设煤气管道,只需要架设n-1条线路即可。
如何以最低的经济代价铺设煤气管道。
✧要求:(1)在纸上模拟设计n个城市的网络平面图,城市数不少于10个,相通的城市数不少于2(n-1),顶点表示各城市,边表示城市间的距离。
在计算机中表示该图;(2)编写算法,求解最小代价煤气管道网络;(3)输出该煤气管道网络中各边及其权值。
选择一种数据结构并编程实现基本要求。
NO. 51、题目:通信网络建设2、设计内容及要求:✧内容:若在n个城市之间建设通信网络,只需要架设n-1条线路即可。
如何以最低的经济代价建设这个通信网。
✧要求:(1)在纸上模拟设计n个城市的网络平面图,城市数不少于10个,相通的城市数不少于2(n-1),顶点表示各城市,边表示城市间的距离。
在计算机中表示该图;(2)编写算法,求解最小代价通信网络;(3)输出该通信网络中各边及其权值。
选择一种数据结构并编程实现基本要求。
NO. 61、题目:校园导游咨询12、设计内容及要求:✧内容:设计一个校园导游程序,为来访的客人提供各种信息查询服务✧要求:(1)模拟设计学校的平面图,景点不少于10个,顶点表示校园内各景点,有关景点的信息包括名称、代号、简介等信息,边表示路径,存放路径长度。
在计算机中表示该图;(2)为来访客人提供图中任意景点相关信息的查询;(3)为来访客人提供从某个起点到达任意景点的最短路径查询。
选择一种数据结构模拟此过程,编程实现基本要求。
1、题目:航班订票系统2、设计内容及要求:✧内容:航班客运订票业务活动包括:查询航线、客票预订和办理退票。
试设计一个航班订票系统,实现订票业务。
✧要求:(1)录入,录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)(2)查询,查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);(3)订票,可以订票,如果该航班有票,则输出座位号,如已经无票,则登记排队等候;已订票客户资料有姓名,证件号,订票数量及航班情况,订单要有编号,客户信息存储在链表中,并按姓名有序排列;未订上票客户信息放在队列中。
(4)退票:根据客户提供的情况(日期、航天班),办理退票手续,退票后查询该航班是否有人排队等候,按先登记先服务原则给等候者补票。
编写算法,并编程实现基本要求。
NO. 81、题目:算术表达式求值2、设计内容及要求:✧内容:以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。
选取教科书表3.1中给出的算符优先关系的一部分,实现限定范围的算术四则混合运算表达式的求值✧要求:选择一种数据结构模拟此过程,编写通用算法,采用C语言编程实现设计题目NO.91、题目:停车场管理2、设计内容及要求:✧内容:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出,汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车才可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车按它停留的时间长短交费。
试为停车场编制按以上要求进行管理的模拟程序。
✧要求:(1)以栈模拟停车场,以队列模拟停车场外便道,按照从终端读入的输入数据序列进行模拟管理。
栈以顺序结构实现,队列以链表结构实现。
(2)给出数据的逻辑结构、存储结构、基本算法(使用程序流程图)、输入输出、源程序、测试数据和结果、算法的时间复杂度;(3)探讨算法的改进方法;在Visual C++控制台环境下实现软件,实现基本要求。
二类题:(5个)1、题目:哈希表的设计与实现(1)2、设计内容及要求:✧内容:假设人名为汉语拼音,针对班级的“人名”设计一个哈希表,待输入人名为30个,取平均查找长度不超过2。
✧要求:(1)采取除留余数法构造哈希表;(2)采用链地址法处理冲突,输出哈希表结果;(3)考查平均查找长度。
编写算法,并编程实现基本要求。
NO.111、题目:哈希表的设计与实现(2)2、设计内容及要求:✧内容:假设人名为汉语拼音,针对班级的“人名”设计一个哈希表,待输入人名为20个,取平均查找长度不超过2。
✧要求:(4)采取除留余数法构造哈希表;(5)采用线性探测再散列方法解决冲突,输出哈希表结果;(6)考查平均查找长度。
编写算法,并编程实现基本要求。
NO. 121、题目:校园导游咨询22、设计内容及要求:✧内容:设计一个校园导游程序,为来访的客人提供各种信息查询服务✧要求:(1)模拟设计学校的平面图,景点不少于10个,顶点表示校园内各景点,有关景点的信息包括名称、代号、简介等信息,边表示路径,存放路径长度。
在计算机中表示该图;(2)为来访客人提供图中任意景点相关信息的查询;(3)为来访客人提供从某个起点到达任意景点的路径查询。
选择一种数据结构模拟此过程,编程实现基本要求。
NO. 131、题目:工程管理2、设计内容及要求:✧内容:一个工程上的关键活动直接影响着整个工程的进展情况,要求实现关键路径上问题的求解。
✧要求:(3)画出AOE网,以边表示子工程,顶点表示子工程的开始和结束,边上权值表示子工程完成需要的时间,整个工程一个开始点,一个结束点。
在计算机上以邻接矩阵存储该AOE网。
(4)能够查询任一子工程的最早开始时间和最迟开始时间;编程实现基本要求。
NO. 141、题目:教学计划编制问题2、设计内容及要求:✧内容:大学的每个专业都要制定教学计划,课程在开设时间的安排上必须满足先修关系,每门课程恰好开设一个学期,每门课都有对应学分,每个学期的学分总上限是一致的。
按照下表所示课程的先修关系,给图中的课程按7学期排课。
✧要求:(4)在纸上表示出课程之间优先关系的有向图,用矩阵存储图;(5)可以查询任一门课程的先修课程;(6)可以查询任一门课程的后继课程。
三类题:(12个)NO. 151、题目:简单的安全审计系统2、设计内容及要求:内容:安全审计系统通过日志收集用户使用信息,并且利用预设的告警规则向管理员发出告警。
✧要求:日志文件中每条记录的格式如下,假设为用户名、用户命令和命令注释:登录时间用户名用户命令命令注释20100615 user1 ls *.txt 列出所有的txt文件20100615 user2 rmdir test 删除test目录20100615 user1 more readme.txt 打印readme.txt文件内容20100615 user1 cp a1.doc a2.doc 复制文件a1.doc为a2.doc20100616 user2 delete *.doc 删除所有的doc文件……(1) 构造日志文件,并在内存中用动态链表存放每个用户的信息;(2) 查询输出某个用户使用的所有命令;(3) 假设rmdir命令、cp命令为敏感命令,分别输出使用过这两个命令的所有用户;(4)查找某个时间段登录的所有用户。
编写算法并编码实现基本要求。
NO. 161、题目:简单的网络计费系统2、设计内容及要求:内容:网络服务器对每个登录的用户都要记载下他登录的信息,并且放在日志文件中,以便计算他使用网络的时间。
✧要求:假设日志文件中每条记录的格式如下,假设以秒计上线时间和离线时间:用户名上线时间离线时间user1 10051 10622user2 20001 20200user3 30111 30333user1 45000 45789……(1)构造日志文件,并在内存中用动态链表存放每个登录的信息;(2)查询输出某个用户上网情况(什么时间上线,什么时间离线);(3)计算每个用户使用网络的总时间。
选择一种数据结构并编程实现基本要求。
NO. 171、题目:选择类排序算法实现和比较2、设计内容及要求:内容:实现简单选择排序、堆排序算法,并比较两种算法的比较次数和移动次数。
✧要求:(1)输入不少于10个元素的无序、正序、降序三组序列;(2)排序算法进行排序,输出每组元素序列每种算法的比较次数和移动次数。