《数据结构》课程设计题目及要求2015
2015年数据结构课程设计任务书
《数据结构》课程设计任务书班级:网工14102班地点E3-A501课程设计周数:1周(星期一、二、三、四下午,星期五为元旦节)指导老师:周学清一、课程设计的目的《数据结构》主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。
数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础,广泛的应用于信息学、系统工程等各种领域。
学习数据结构是为了将实际问题中所涉及的对象在计算机中表示出来并对它们进行处理。
通过课程设计可以提高学生的思维能力,促进学生的综合应用能力和专业素质的提高。
通过此次课程设计主要达到以下目的:⏹了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;⏹初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;⏹提高综合运用所学的理论知识和方法独立分析和解决问题的能力;⏹训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计的基本要求1.问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?2.逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。
逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3.详细设计:定义相应的存储结构并写出各函数的伪码算法。
在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。
详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4.程序编码:把详细设计的结果进一步求精为程序设计语言程序。
数据结构课程设计题目
数据结构课程设计题目一、题目背景在现代科技发展的背景下,数据结构作为计算机科学的重要基础课程,对于培养学生的编程思维、数据处理能力具有重要的作用。
本篇课程设计将围绕数据结构的实际应用,设计一个能够提升学生数据结构理论与实践能力的题目。
二、题目描述你需要设计一个软件,实现以下功能:能够记录学生信息并进行相关的数据操作。
具体要求如下:1. 学生信息包括:学生学号、姓名、性别、年龄、身高、体重等基本信息;2. 软件需要实现以下操作:a. 添加学生信息:可以手动添加每个学生的详细信息,并将其记录到数据库中;b. 删除学生信息:能够根据学号或姓名删除指定学生的信息;c. 修改学生信息:能够根据学号或姓名修改指定学生的信息;d. 查询学生信息:能够按照学号、姓名、性别、年龄等条件进行学生信息的查询,并将结果以列表形式展示;e. 统计学生信息:能够统计学生的平均年龄、平均身高、平均体重等统计数据,并展示在界面上;f. 数据导入导出:能够将学生信息导入/导出到文件或数据库中,实现数据的持久化存储。
三、设计思路为了实现上述功能,你可以采用以下的设计思路:1. 数据结构选择:可以使用链表、数组、树等数据结构存储学生信息,具体根据功能需求来选择合适的数据结构;2. 界面设计:考虑采用图形界面或者命令行界面,以提供方便的操作方式;3. 数据存储:可以使用文件、数据库等方式进行数据的存储和读取,以实现数据的持久化;4. 算法设计:在实现功能的过程中,需要考虑合适的算法来实现快速的查找、删除和修改等操作;5. 错误处理:在设计过程中,需要考虑各种可能的错误情况,并进行相应的处理和提示。
四、实施步骤为了顺利完成该课程设计,你可以按照以下步骤进行:1. 分析题目需求:仔细阅读以上题目描述,明确实现各项功能的具体要求;2. 设计数据结构:选择合适的数据结构来存储学生信息,考虑数据的增删改查等操作的效率;3. 设计算法:根据功能需求,设计相应的算法来实现各项操作;4. 实现界面:根据选择的界面方式,设计相应的图形界面或命令行交互界面;5. 实现功能:按照题目要求,逐个实现各项功能,并进行测试;6. 完善细节:对界面进行美化,完善用户交互体验,处理各种错误情况;7. 测试与调试:对整个软件进行全面的测试,并进行调试修复可能存在的问题;8. 编写报告:撰写课程设计报告,详细记录设计过程、实现方法、遇到的问题以及解决方案等。
《算法与数据结构》课程设计题目及要求(2015)
《算法与数据结构》课程设计目录一、课程性质与教学目的 (3)二、课程设计要求 (3)1.分组设计 (3)2.题目选择 (3)3.考核标准 (3)4.提交材料 (3)5.时间安排 (3)三、开发过程要求 (4)四、课程设计报告要求规范 (4)五、课程设计题目: (4)(一)课程设计1 (4)1. 一元稀疏多项式计算器 (4)2. joseph环 (5)3. 表达式求值 (5)4. 集合基本运算 (6)5. 二叉链表结构的相关函数库 (6)(二)课程设计2 (6)1. 校园导游咨询 (6)2. 设计散列表实现电话号码查找系统 (7)3. 宿舍管理查询软件 (7)4. 学生信息管理问题 (7)5.捉羊计划 (8)附件1:封面格式 (9)附件2:分组登记表 (10)附件3:考核表 (11)一、课程性质与教学目的《算法与数据结构》课程设计的目的是利用本课程内的以及到目前为止所学到的有关知识和技术解决一些不算太复杂却具有综合性的问题。
在解决实际问题时,可能涉及并运用多个方面的知识,具有较强的综合性,这就需要进行一些综合性的设计练习,来提高分析和解决实际应用问题的能力。
通过课程设计,在建立问题模型、构造求解算法、设计数据结构、编写程序代码及上机调试等方面得到全面的锻炼,从而能更深刻地理解《算法与数据结构》的精髓,包括,熟练掌握数据结构的一些常用算法和经典算法;熟练的运用常用的算法和经典算法解决具有一定规模和复杂程度的实际问题;熟练掌握分析问题和解决问题的方法,合理选择数据结构,学会分析算法的优劣,分析算法的复杂度。
二、课程设计要求1.分组设计按小组方式进行组织设计,小组成员为4~6人,班级内自由组合,并确定小组组长,分组名单汇总到各班班长,最后交给老师。
2.题目选择每个小组至少选择2个题目,其中:在课程设计1中任选1道题,在课程设计2中任选1道题。
3.考核标准总的要求:组内每位同学,一起协商承担的任务,每人都要参与设计和编程工作,不能只负责撰写论文。
中南大学《数据结构》课程设计题目及要求
《数据结构》课程设计指导书(一):设计目的:1)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3)提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4)进行全面综合的训练,对课堂教学、实验等环节的有益补充。
5)提高解决实际问题和培养软件工作所需的动手能力。
6)深化理解和灵活掌握教学内容7)进行软件工程的综合训练。
训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
(二):设计要求:1) 学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。
有问题及时主动通过各种方式与教师联系沟通。
2) 学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
3) 课程设计按照教学要求需要两周时间完成,两周中每天(按每周5天)至少要上3-4小时的机来调试C/C++语言/JAVA设计的程序,总共至少要上机调试程序30小时4) 课程设计题目如下,题后有要求的按要求完成,没有要求的至少从中选择并完成二个题目。
5) 设计期间,要求严格遵守学校规章制度和实验室管理制度。
6) 按指定时间上机,服从指导教师和实验室其他老师的安排。
7) 上机前,应编写相应的程序,禁止无准备的上机。
(三):课程设计题目:一、试设计一个航空客运订票系统。
基本要求如下:1、每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。
2、系统能实现的操作和功能如下:1)查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;2)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少余订票额,则需重新询问客户要求。
《数据结构》课程设计题目及要求
《数据结构》课程设计题目及要求一、数据结构课程设计要求1.学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。
有问题及时主动通过各种方式与教师联系沟通。
2.学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。
3.课程设计按照教学要求需要两周时间完成,两周中每天至少要上2小时的上机来调试C或C++语言设计的程序。
学院安排上机时间学生不得缺席。
二、上交相关内容要求上交的成果的内容必须由以下四个部分组成,缺一不可1.上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);2.上交程序的说明文件:(保存在.txt中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;3.课程设计报告:(保存在word 文档中,文件名要求按照"姓名-学号-课程设计报告题目"起名,如文件名为"张三-001-二叉树动态演示".doc )按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;其中包括:a)需求分析:在该部分中叙述,每个模块的功能要求。
b)概要设计在此说明每个部分的算法设计说明(可以是描述每一个算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。
c)详细设计各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)源程序要按照写程序的规则来编写。
要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
d)调试分析测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。
e) 总结:总结可以包括: 课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容。
《数据结构》课程设计题目及要求2015
一、关于本次课程设计1、每位同学限选1题,并到所在自然班的班长处登记,同一题不超过4人(一个班之内)。
2、课程设计成绩分为5级:优秀(5分)、良好(4分)、中等(3分)、及格(2分)、不及格(1分)。
3、题目有难易和工作量大小之分(具体见题目后的“星级”),为体现公平,请参见下表,请同学们结合自身情况选择题目。
4、课程设计报告和源代码严禁抄袭,报告要严格遵照“课程设计任务书”的要求来撰写,大致包含以下内容:①需求分析:叙述每个模块的功能性要求;②概要设计:阐述每个模块的算法设计(可以是描述算法的流程图)、使用的存储结构(如果指定存储结构请写出该存储结构的struct或typedef定义);③详细设计:各个算法的实现源代码(注意只写算法的源代码,完整的源代码放在附录里面)。
源代码必须正确缩进,关键性代码(如关键变量/ 参数/ 语句的意义、每个函数的功能等)要给出清楚的中文注释;④调试分析:需要测试数据的至少给出3组测试数据,记录每一组数据输出的结果;并用文字描述调试过程中遇到的问题(问题是哪些?问题如何得以解决?);⑤课设总结:课程设计过程的收获、遇到的问题、解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考等内容(严禁套话);⑥附录:完整的源代码(必须正确缩进)。
5、程序运行时,要有友好的说明界面和操作提示菜单(以英文文字显示即可),严禁出现“一运行屏幕一片黑”的情形;程序要有良好的容错性,当输入数据不合理或非法,程序必须能处理之并显示友好的提示信息而不能崩溃。
二、可选题目1、一元多项式计算器(★★)问题描述:创建两个一元多项式A和B,计算A+B, A-B, A*B并显示。
多项式的项数和每一项的系数/指数在运行时指定。
2、航空订票系统(★★★★)问题描述:编写程序模拟航空订票系统,要求实现以下功能:①允许增、删、改航班信息,包括“航班号/ 机型/ 起降城市/ 起降时间/ 座位数/ 票价等”(所有航班信息存储在数据文件中,数据结构自定义);②允许以“航班号/ 起降城市” 等条件查询航班信息;③订票:无票时应能提供相关可选择的航班以继续操作(订票数据存储在数据文件中)。
数据结构课程设计题目及要求
数据结构课程设计题目及要求一、要求本次课程设计可以从以下的题目中任选其一,每个题目基本实现的要求是:有菜单功能有读写数据存盘功能成品应包括以下内容:程序设计书(Word格式)。
包括程序设计目标、问题描述、需求分析、概要设计、详细设计、源程序清单(要求格式整齐400行以上,要有注释说明)、软件说明书(给出软件如何使用,使用时的注意事项)、测试报告(每个函数的功能测试,输入条件,输出结果)和课程设计总结。
2、可执行程序源代码。
3、答辩时使用的ppt。
二、设计题目题目一:仓库管理系统(线性表应用)[问题描述]建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物以及建立新的仓库存储系统。
[实现提示]可以采用双向链表的存储结构,如可定义如下的存储结构:typedef struct dnode /*定义双向链表结构体*/{int number; /*货物编号*/char name[max]; /*货物名称*/int counter; /*货物数量*/struct dnode *prior,*next; /*定义两指针,分别指向其前驱和后继*/}dlnode;题目二:单位员工通讯录管理系统(线性表应用)[问题描述]为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。
其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
[实现提示]可以采用单链表的存储结构,如可定义如下的存储结构:typedef struct { /*员工通讯信息的结构类型定义*/char num[5]; /*员工编号*/char name[10]; /*员工姓名*/char phone[15]; /*办公室电话号码*/char call[15]; /*手机号码*/}DataType;/*通讯录单链表的结点类型*/typedef struct node{ DataType data; /*结点的数据域*/struct node *next; /*结点的指针域*/}ListNode,*LinkList;题目三: 哈夫曼编码/译码系统(树应用)[问题描述]利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。
数据结构课程设计题目及要求(2015-2016-2)概论
课程设计题目每位同学在本次课程设计期间须选择两道题目(1,2任选一题,3.4任选一题)并按照要求完成。
1考试报名管理系统1.1题目简介考试报名工作给各髙校报名工作带来了新的挑战,给教务管理部门增加了很大的工作量,报名数据手工录入既费时又会不可避免地出现错误,同时也给不少学生以可乘之机。
本项目是对考试报划管理的简单模拟,用菜单选择方式完成下列功能:输入考生信息:输出考生信息;査询考生信息:添加考生信息:修改考生信息;删除考生信息。
1.2设计思路本项目的实质是完成对考生信息的建立、查找、插入、修改、删除等功能,可以首先泄义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。
1.3数据结构本项目的数据是一组考生信息,每条考生信息由准考证号、姓名、性别、年龄、报考类别等信息组成,这组考生信息具有相同特性,属于同一数据对象,相邻数据元素之间存在序偶关系。
由此可以看出,这些数据也具有线性表中数据元素的性质,所以该系统的数据可以采用线性表来存储。
我们知道,线性表的顺序存储结构的特点是逻辑关系相邻的两个元素在物理位豊上也相邻, 因此可以随机存储表中任一元素,它的存储位置可用一个简单、直观的公式来表示。
然而,从另一个方而来看,这个特点也铸成了这种存储结构的弱点:在做插入或删除操作时,需要移动大量元素。
为克服这一缺点,我们引入另一种存储形式一一链式存储。
链式存储是线性表的列一种表示方法,由于它不要求逻辑上相邻的元素在物理位置上也相邻,因此它没有顺序存储结构的弱点,但同时也失去了顺序表可随机存取的特点。
链式存储的优点是插入或删除元素时很方便,使用灵活。
缺点是存储密度小,存储空间利用率低。
事实上,链表插入、删除运算的快捷是以空间代价来换取时间。
顺序表适宜于做查找这样的静态操作:链表宜于做插入、删除这样的动态操作。
若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
数据结构课程设计题目
1.二叉排序树的实现
【基本要求】用二叉链表作存储结构。
1) 输入数列L,生成一棵二叉排序树T;
2) 对二叉排序树T作中序遍历,输出结果;
3) 输入元素x, 查找二叉排序树T, 若存在含x的结点, 则删除该结点, 并作中序遍历(执行操作2);否则输出信息“无x”。
2. 利用栈求表达式的值。
3.编写程序完成两个高次多项式的加法和乘法运算
4.对给定的图,给出其深度优先序列
5.对给定的图,给出其广度优先序列
6.对给定的图,编写求最小生成树算法,用prim思想
7.散列表的设计与实现
【问题描述】
设计散列表实现电话号码查找系统。
【基本要求】
1) 设每个记录有下列数据项:电话号码、用户名、地址;
2) 从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;
3) 采用一定的方法解决冲突;
4) 查找并显示给定电话号码的记录;
5) 查找并显示给定用户名的记录。
8.采用三元组的存储方式实现矩阵的转置运算(用2种方法实现转
置)1)按照列进行转换,2)利用快速转置的方法进行转换
9.采用三元组的存储方式实现矩阵的乘法运算。
10.排序综合利用随机函数产生N个随机整数,对这些数进行多种方法进行排序。
要求:至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。
数据结构课程设计题目2015概述
《数据结构》课程设计题目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. 长整数的代数计算问题描述应用线性数据结构解决长整数的计算问题。
数据结构课程设计题目及要求
实验一~实验四任选一题;实验五~实验九任选一题。
实验一运动会分数统计一、实验目的:(1)熟练掌握线性表的两种存储方式(2)掌握链表的操作和应用。
(3)掌握指针、结构体的应用(4)按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单、团体总分报表。
二、实验内容:【问题描述】参加运动会的n个学校编号为1~n。
比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。
由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。
写一个统计程序产生各种成绩单和得分报表。
【基本要求】产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。
【测试数据】对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。
【实现提示】可以假设m≤20,m≤30,w≤20,姓名长度不超过20个字符。
每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。
【选作内容】允许用户指定某些项目可采取其他名次取法。
实验二停车场管理一、实验目的:(1)熟练掌握栈顺存和链存两种存储方式。
(2)掌握栈的基本操作及应用。
(3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
二、实验内容:【问题描述】设停车场是一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。
数据结构课程设计题目汇总及要求
数据结构课程设计题目课程设计题一:线性表子系统一.设计目的: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.设计一个整型数据元素的链队列。
数据结构课程设计题目
数据结构课程设计题目以下7个题目任选其一。
1.排序算法比较利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并且(1)统计每一种排序上机所花费的时间。
(2)统计在完全正序,完全逆序情况下记录的比较次数和移动次数。
(3)比较的指标为关键字的比较次数和记录的移动次数(一次记录交换计为3次移动)。
(4)对结果作简单分析,包括对各组数据得出结果波动大小的解释。
2.图的深度遍历对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用堆栈的五种基本运算(清空堆栈、压栈、弹出、取栈顶元素、判栈空)实现图的深度优先搜索遍历。
画出搜索顺序示意图。
3.图的广度遍历对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用队列的五种基本运算(置空队列、进队、出队、取队头元素、判队空)实现图的广度优先搜索遍历。
画出搜索顺序示意图。
4.二叉树的遍历对任意给定的二叉树(顶点数自定)建立它的二叉链表存贮结构,并利用栈的五种基本运算(置空栈、进栈、出栈、取栈顶元素、判栈空)实现二叉树的先序、中序、后序三种遍历,输出三种遍历的结果。
画出搜索顺序示意图。
5.链表操作利用链表的插入运算建立线性链表,然后利用链表的查找、删除、计数、输出等运算反复实现链表的这些操作(插入、删除、查找、计数、输出单独写成函数的形式),并能在屏幕上输出操作前后的结果。
画出搜索顺序示意图。
6.一元稀疏多项式简单计数器(1)输入并建立多项式(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……cn,en,其中n是多项式的项数,ci,ei分别为第i项的系数和指数。
序列按指数降序排列。
(3)多项式a和b相加,建立多项式a+b,输出相加的多项式。
(4)多项式a和b相减,建立多项式a-b,输出相减的多项式。
用带头结点的单链表存储多项式。
测试数据:(1)(2x+5x8-3.1x11)+(7-5x8+11x9)(2)(6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15)(3)(x+x2+x3)+0(4)(x+x3)-(-x-x-3)7.实现两个链表的合并基本功能要求:(1)建立两个链表A和B,链表元素个数分别为m和n个。
数据结构课程设计题目和规范说明
《数据结构》课程设计规范一、课程设计教学目的1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4.训练用系统的观点和软件开发一般规范进行软件开发。
二、基本要求1. 每位学生从所给的两个项目的备选题目中分别选择1题,独立完成,2. 在自身能力允许的范围内,鼓励学生多作题目,对完成规定2题基础上多作题的同学可以适当加分。
3. 课程设计时间:11~18周;上机时间:周一至周五下午3:00—6:00为规定时间,作为考勤依据,下午时间作为自由上机时间,机房免费开放;规定上机地点为实验中心。
4. 遵守课程设计的时间、过程要求;遵守实验室有关规定。
三、考核方法1.综合成绩(100分)设计报告(100分),2.最终,按照优(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、不及格(60分以下)给出考核结论。
四、课程设计过程规范1.遵守课程设计的各项要求。
2.遵守实验中心的各项规定和要求。
3.随时接受指导教师的提问,自查任务完成后主动申请指导教师提问和审查。
五、课程设计报告的规范课程设计报告要求规范书写。
应当包括如下六个部分:1、设计目的与内容。
进行需求分析,确定每个模块的功能要求。
即根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)2、算法的基本思想进行概要设计和详细设计。
说明用到的数据结构定义、主程序的流程及各程序模块之间的调用关系。
并用自然语言描述每个模块所涉及的算法。
3、测试数据列出对于给定的输入所产生的输出结果。
4、源程序及系统文件使用说明附上关键数据结构的定义及关键算法的源代码。
5、心得体会谈谈课程设计过程的收获、遇到问题及解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容。
15级 数据结构课程设计
数据结构课程设计教学大纲名称:数据结构课程编码:英文名称:Data Structure实习周数:2周其中实验学时:32学时学分:2学分安排学期:第二学年第1学期适用专业:计算机科学与技术一、课程设计目的及任务1、培养学生运用所学《数据结构》课程的理论知识和技能,分析解决数据结构应用实际问题的能力。
2、培养学生综合运用《数据结构》的知识,分析设计计算机课题的思想和方法。
3、通过课程设计,要求学生在指导教师的指导下,以课题小组协作方式完成设计课题的全部内容,包括:(1)通过调查研究和上机实习,收集和调查有关技术资料。
(2)掌握设计课题的基本步骤和方法。
(3)根据课题的要求进行上机实验调试。
二、课程设计的基本要求在指导教师的指导下,根据自己实际的知识掌握情况和动手能力确定相符的题目,课题小组(1-3人)对于每个题目,理解题目的相关理论知识,掌握正确的操作和调试方法,并写出详细的课程设计报告。
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;三、课程设计地点及要求地点:计算机实验室 3教9楼四、课程设计的选题原则根据学生所学的数据结构相关知识点,布置适当难度的题目,学生可在老师布置的题目中选择自己感兴趣的题目,独立或合作完成。
布置的题目尽量涉及数据结构知识的各个方面,尽量结合实际项目。
五、课程设计的内容1、建通讯录设计内容:设计散列表实现通讯录查找系统,使得平均查找长度不超过2,完成相应的建表和查表程序。
设计要求:(1)设每个记录有下列数据项:用户名、电话号码、地址;(2)从键盘输入各记录,分别以姓名为关键字建立散列表;(3)假设人名为中国人姓名的汉语拼音形式。
待填入哈希表的人名共有30个,取平均查找长度的上限为2;(4)构造哈希函数,可采用除留余数法,采用二次探测再散列法解决冲突;(5)查找并显示给定电话号码的记录;(6)通讯录信息保存。
数据结构课设题目及要求
《数据结构》课程设计题目题目—:一、课题名称:哈夫曼编码算法的实现二、课题来源:课程组自拟三、课题类型:综合型四、目的意义:1.了解哈夫曼算法的思路核心,掌握哈夫曼算法在压缩算法中的基本应用2.全面提高学生的程序设计、开发能力五、基本要求:1.任意性:用户输入任意的字符串,系统自动给出每个字符的哈夫曼编码和对应的哈夫曼树2.友好性:界面要友好,输入有提示,尽量展示人性化3.可读性:源程序代码清晰、有层次4.健壮性:用户输入非法数据时,系统要及时给出警告信息六、主要参考资料:[1] 严蔚敏等,《数据结构》,清华大学出版社,北京.2000[2] 谭浩强,《C语言程序设计》,清华大学出版社,北京.题目二:一、课题名称:排序算法的比较二、题目来源:课程组自拟三、课题类型:综合型四、目的意义:1.掌握各种排序算法(直接插入排序、冒泡排序、快速排序、简单选择排序)的思路核心,比较它们之间的优劣2.全面提高学生的程序设计、开发能力五、基本要求:1.任意性:系统首先生成1000个随机整数,然后分别用不同的排序方法对其进行升序排序,给出每种方法的比较次数或所用时间2.友好性:界面要友好,输入有提示,尽量展示人性化3.可读性:源程序代码清晰、有层次4.健壮性:用户输入非法数据时,系统要及时给出警告信息六、主要参考资料:[1] 严蔚敏等,《数据结构》,清华大学出版社,北京.2000[2] 谭浩强,《C语言程序设计》,清华大学出版社,北京.题目三:一、课题名称:最小生成树的构建二、课题来源:课程组自拟三、课题类型:综合型四、目的意义:1.了解最小生成树的构建算法,掌握高级语言的编程方法2.全面提高学生的程序设计、开发能力五、基本要求:1.任意性:用户任意给出—个网,系统画出该图,并给出对应的最小生成树2.友好性:界面要友好,输入有提示,尽量展示人性化3.可读性:源程序代码清晰、有层次4.健壮性:用户输入非法数据时,系统要及时给出警告信息六、主要参考资料:[1] 严蔚敏等,《数据结构》,清华大学出版社,北京.2000[2] 谭浩强,《C语言程序设计》,清华大学出版社,北京.七、评分标准:程序的正确性:40%程序的可读性:15%界面的友好性:15%课程设计报告:20%工作态度:10%八、课程设计报告的基本格式设计报告的基本内容至少包括封面、正文、参考文献三部分。
数据结构课程设计题目
数据结构课程设计题目题目1:设计链表结构的相关函数库,以便在程序设计中调用。
要求:(1)实现链表的各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。
(限选1-2人)题目2:设计顺序表结构的相关函数库,以便在程序设计中调用。
要求:(1)实现顺序表的各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。
(限选1-2人)题目3:设计程序以实现任意两个高次多项式的加法和减法运算。
要求:(1)所设计的数据结构应尽可能节省存储空间;(2)程序的运行时间尽可能少。
(限选1-2人)题目4:设计一个模拟计算机器程序,要求能对包含加、减、乘、除、括号运算符及SQR 和ABS函数的任意整型表达式进行求解。
要求:运算前应先检查有关运算条件,并对错误产生报警。
(限选2-3人)题目5:设计二叉链表结构的相关函数库,以便在程序设计中调用。
要求:(1)实现二叉树的各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。
(限选1-2人)题目6:设计树结构的相关函数库,以便在程序设计中调用。
要求:(1)包括树的存储结构及各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。
(限选1-2人)题目7:设计程序以实现构造哈夫曼树的哈夫曼算法。
要求:求解所构造的哈夫曼树的带权路径长度。
(限选1-2人)题目8:设计图结构的相关函数,以便在程序设计中调用。
要求:(1)实现图的存储结构及各种基本函数以及常用函数;(2)给出1-2个例子,通过调用自己的库函数来实现问题的求解。
(限选1-2人)题目9:设计程序完成如下功能:对给定的图和起点,产生其所有的深度优先遍历序列。
(1-2人)题目10:设计程序完成如下功能:对给定的网和起点,实现求解最小生成树的Prim算法。
(限选1-2人)题目11:设计程序完成如下功能:对给定的网和起点,实现求解最小生成树的Kruskal算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、关于本次课程设计
1、每位同学限选1题,并到所在自然班的班长处登记,同一题不超过4人(一个班之内)。
2、课程设计成绩分为5级:优秀(5分)、良好(4分)、中等(3分)、及格(2分)、不及格(1
分)。
3、题目有难易和工作量大小之分(具体见题目后的“星级”),为体现公平,请参见下表,请同学
们结合自身情况选择题目。
4、课程设计报告和源代码严禁抄袭,报告要严格遵照“课程设计任务书”的要求来撰写,大致包含
以下内容:
①需求分析:叙述每个模块的功能性要求;
②概要设计:阐述每个模块的算法设计(可以是描述算法的流程图)、使用的存储结构(如
果指定存储结构请写出该存储结构的struct或typedef定义);
③详细设计:各个算法的实现源代码(注意只写算法的源代码,完整的源代码放在附录里面)。
源代码必须正确缩进,关键性代码(如关键变量/ 参数/ 语句的意义、每个函数的功能等)要给出清楚的中文注释;
④调试分析:需要测试数据的至少给出3组测试数据,记录每一组数据输出的结果;并用文
字描述调试过程中遇到的问题(问题是哪些?问题如何得以解决?);
⑤课设总结:课程设计过程的收获、遇到的问题、解决问题过程的思考、程序调试能力的思
考、对数据结构这门课程的思考等内容(严禁套话);
⑥附录:完整的源代码(必须正确缩进)。
5、程序运行时,要有友好的说明界面和操作提示菜单(以英文文字显示即可),严禁出现“一运
行屏幕一片黑”的情形;程序要有良好的容错性,当输入数据不合理或非法,程序必须能处理之并显示友好的提示信息而不能崩溃。
二、可选题目
1、一元多项式计算器(★★)
问题描述:创建两个一元多项式A和B,计算A+B, A-B, A*B并显示。
多项式的项数和每一项的系数/指数在运行时指定。
2、航空订票系统(★★★★)
问题描述:编写程序模拟航空订票系统,要求实现以下功能:
①允许增、删、改航班信息,包括“航班号/ 机型/ 起降城市/ 起降时间/ 座位数/ 票价等”(所有航班
信息存储在数据文件中,数据结构自定义);
②允许以“航班号/ 起降城市” 等条件查询航班信息;
③订票:无票时应能提供相关可选择的航班以继续操作(订票数据存储在数据文件中)。
④退票:退票后应修改相关数据文件。
3、迷宫问题(★★)
问题描述:迷宫以16*16的矩阵存储在数据文件中(迷宫中的障碍物要占到一定比例),编写非递归的程序求出一条从入口到出口的路径并显示之(若能用TC的绘图函数显示迷宫和路径则另加1分)。
4、约瑟夫环问题(★★★)
问题描述:编号是1,2,……,N的N个人按照顺时针方向围坐一圈,每个人持有一个密码(一个正整数)。
一开始任选一个正整数作为报数上限值M,从第一个人开始顺时针方向自1开始顺序报数,报到M时停止报数。
报M的人出列,并将他持有的密码作为新的M值,再从他的顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。
编写程序求出列顺序(采用单循环链表实现,N、M、每个人的密码均在运行时指定)。
5、二叉树的创建和遍历(★★)
问题描述:根据运行时输入的先序序列创建一棵二叉树,分别对其进行先、中、后、层序遍历并显示遍历结果。
6、算术表达式的求值(★★★)
问题描述:若干个算数表达式存放在数据文件中(每行一个),形如“(6+6)*6+2-3*(2.4/6)”,编写程序计算每个表达式的值(算法参见清华的中文版教材第三章)。
7、二叉查找树的创建、查找、插入和删除(★★★)
问题描述:运行时产生若干个随机整数,依次插入到一棵初始为空的二叉查找树中,并能在其中查找、插入、删除指定的整数。
8、校园导游咨询(★★★★★)
问题描述:为本校设计一个校园导游咨询程序,满足以下要求(③、④的结果若能用TC的绘图函数显示则另加1分):
①校园地图存储于数据文件中(格式自定,至少15个景点,25条边),包括景点编号、名称、简介、景点
间道路长度等信息;
②能根据“景点编号/ 名称”查询任意景点的相关信息;
③在用户指定出发和目的景点后,能提供两景点间的最短路径信息;
④能为用户提供从指定景点出发游览完其他所有景点的路线信息。
9、校园网布线问题(★★★★)
问题描述:为本校设计一个校园网布线方案,并编写程序满足以下要求(最终结果若能用TC的绘图函数显示则另加1分):
①校园内建筑物信息存储于数据文件中(格式自定,至少15个建筑物),包括建筑物编号、名称、简介等
信息;
②能根据“建筑物编号/ 名称”查询任意建筑物的相关信息;
③施工成本最低且任意两建筑物可以相互通信。
10、马踏棋盘问题(★★)
问题描述:一棋子随机放在8×8棋盘的某个方格中,该棋子下一步能走到的方格如图,编写非递归程序满足以下要求:
①每个方格只走一次;
②走遍棋盘上全部64个方格;
③求出某个满足①、②的行走路线(将1,2,…,64依次填入8×8的矩阵,若能用TC的绘图函数显示
则另加1分)。
11、八皇后问题(★★)
问题描述:编写非递归程序将8个棋子放在8×8棋盘的8个方格中,满足以下要求:
①棋盘的每行每列上有且仅有一个棋子;
②求出所有满足①的解(若能用TC的绘图函数显示则另加1分)。
12、排序算法性能比较(★★★)
问题描述:编写程序在运行时产生50个随机整数,分别用冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序对该50个随机整数进行排序,统计每一种排序算法在执行过程中的比较次数、赋值次数。
13.哈夫曼编码/译码器(★★★)
问题描述:设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。
将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中) ;
分别采用动态和静态存储结构
初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;
编码:利用建好的哈夫曼树生成哈夫曼编码;
输出编码;
译码功能;
14散列法的实验研究(★★★)
问题描述:散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突的方法也可以不同。
两者是影响查询算法性能的关键因素。
对于几种典型的散列函数构造方法,做实验观察,不同的解决冲突方法对查询性能的影响。