数据结构与数据库实验课作业和要求
- 格式:doc
- 大小:166.00 KB
- 文档页数:9
数据结构综合实验设计题目及要求一、要求本次课程设计可以从以下的题目中任选其一,每个题目基本实现的要求是:1、程序设计书(Word格式)。
包括程序设计目标、问题描述、需求分析、概要设计、详细设计、源程序清单(要求格式整齐400行以上,要有注释说明)、软件说明书(给出软件如何使用,使用时的注意事项)、测试报告(每个函数的功能测试,输入条件,输出结果)和总结。
2、可执行程序源代码。
二、设计题目题目一仓库管理系统(线性表应用)[问题描述]建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物以及建立新的仓库存储系统。
[实现提示]可以采用双向链表的存储结构,如可定义如下的存储结构: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;题目三哈夫曼编码/译码系统(树应用)[问题描述]利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。
大作业、上机练习及报告要求一、作业要求1. 数据库设计自选一个应用系统,如学生成绩管理系统、库存管理系统、工资管理系统等,具体不限。
分析系统的信息需求,进行系统数据库的概念模型设计、逻辑模型设计,并对关系进行标准化,使其满足3NF的要求。
2.SQL Server上机练习(1)熟悉SQL Server环境及常用组件。
(2)基于上面的应用系统,在SQL Server上实现其关系数据模型的建立,包括根本表、视图、索引和数据库完整性的定义。
(3)对所建立的数据库进行数据查询操作练习,包括单表查询、多表查询、嵌套查询、聚合查询等。
(4)对所建立的数据库进行数据更新操作练习,包括数据的增加、删除、修改操作。
(5)在所建立的数据库上,定义触发器,并对其进行测试,观察结果。
二、完成方式1.提交上机报告一份,字数不少于5000字。
2.提倡相互讨论,反对抄袭。
3.提交截止时间:2011年6月5日4.请各班班长或学委收齐后统一刻录到光盘中交到老师的信箱。
注:每个学生报告文档请用“班级-学号-姓名〞命名,请用Word 2003版本保存。
三、报告内容要求1.系统背景介绍请为所设计的系统命名,简要描述系统的概况,分析系统的信息需求。
2.概念模型设计完整地画出E-R图,并给出问题的语义说明。
要求系统中至少包含两个实体。
3.数据库设计给出数据库中各根本表的数据结构描述,各关系模式至少满足3NF的要求。
分析各根本表的主码、外码,以及各数据项的完整性约束。
请参照以下格式描述数据库中的每个根本表。
外码:注:请在备注栏中描述各数据项的完整性约束。
4.数据定义语言练习给出所有根本表、索引、视图定义的SQL Server语句,仅给出T-SQL 定义语句即可。
5.数据操作语言练习数据操作语言练习内容包括数据的增加、删除、修改操作;单表查询、多表查询、嵌套查询、聚合查询操作。
每项练习至少给出2个实例,包括T-SQL定义语句及其执行结果的屏幕截图。
数据结构实验指导书一、实验目的数据结构是计算机科学中的重要基础课程,通过实验,旨在帮助学生更好地理解和掌握数据结构的基本概念、原理和算法,提高学生的编程能力和问题解决能力。
具体而言,实验的目的包括:1、加深对常见数据结构(如数组、链表、栈、队列、树、图等)的理解,掌握其特点和操作方法。
2、培养学生运用数据结构解决实际问题的能力,提高算法设计和程序实现的能力。
3、增强学生的逻辑思维能力和调试程序的能力,培养学生的创新意识和团队合作精神。
二、实验环境1、操作系统:Windows 或 Linux 操作系统。
2、编程语言:C、C++、Java 等编程语言中的一种。
3、开发工具:如 Visual Studio、Eclipse、Code::Blocks 等集成开发环境(IDE)。
三、实验要求1、实验前,学生应认真预习实验内容,熟悉相关的数据结构和算法,编写好实验程序的代码框架。
2、实验过程中,学生应独立思考,认真调试程序,及时记录实验过程中出现的问题及解决方法。
3、实验完成后,学生应撰写实验报告,包括实验目的、实验内容、实验步骤、实验结果、问题分析与解决等。
四、实验内容(一)线性表1、顺序表的实现与操作实现顺序表的创建、插入、删除、查找等基本操作。
分析顺序表在不同操作下的时间复杂度。
2、链表的实现与操作实现单链表、双向链表的创建、插入、删除、查找等基本操作。
比较单链表和双向链表在操作上的优缺点。
(二)栈和队列1、栈的实现与应用实现顺序栈和链式栈。
利用栈解决表达式求值、括号匹配等问题。
2、队列的实现与应用实现顺序队列和链式队列。
利用队列解决排队问题、广度优先搜索等问题。
(三)树1、二叉树的实现与遍历实现二叉树的创建、插入、删除操作。
实现二叉树的前序、中序、后序遍历算法,并分析其时间复杂度。
2、二叉搜索树的实现与操作实现二叉搜索树的创建、插入、删除、查找操作。
分析二叉搜索树的性能。
(四)图1、图的存储结构实现邻接矩阵和邻接表两种图的存储结构。
数据结构实验课程大纲本大纲是针对计算机科学与技术专业本科对数据结构的基本要求而编写的。
一、目的与任务数据结构是一门实践性很强的课程,每个学生必须完成一定数量的上机作业。
通过上机作业,要求在数据结构的逻辑特性和存贮表示、基本数据结构的选择和应用、算法设计及其实现等方面加深对课程基本内容的理解。
同时,在程序设计方法、程序设计风格及上机操作等基本技能和科学作风方面受到比较系统的、严格的训练。
提高分析问题和用计算机解决实际问题的能力。
为后续课程的学习以及为应用软件特别是非数值软件的开发打下良好的理论基础和实践基础。
二、课程内容1.顺序表的表示和运算(0-2学时)2.链表的表示和运算(2学时)3.栈的应用(2-3学时)4.队列的应用(2-3学时)5.二叉树的基本操作和应用(2-6学时)6.图及其应用(2-6学时)7.排序(4-6学时)8.查找(2-4学时)三、基本要求1.逐步理解和掌握程序设计和上机操作的基本方法和技能。
2.理解并实现各种基本数据结构的存贮表示、运算方法及其典型应用;学会根据实际问题的要求设计算法的数据结构,并具有一定的比较和选用数据结构及算法的能力。
3.理解并实现常用的查找和排序的基本方法。
四、学时分配五、实验内容注:带*的内容以及练习与思考题,可根据实际学时、专业方向特点等具体要求,做相应调整或从略。
实验一、顺序表实验目的:熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作。
实验要求:了解并熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作的实现和应用。
实验内容:编写程序实现下列的要求:(1) 设数据元素为整数,实现这样的线性表的顺序存储表示。
(2) 键盘输入10个数据元素,利用顺序表的基本操作,建立该表。
(3) 利用顺序表的基本操作,找出表中的最大的和最小的数据元素(用于比较的数据元素为整数)。
(4) * 若数据元素为学生成绩(含姓名、成绩等字段),重新编程,实现上面的要求。
要求尽可能少地修改前面的程序来得到新程序。
《数据结构》实验要求与规范【基本要求】1.正确实现所要求的功能,按时提交实验报告。
2.实验报告内容应依次包括:⑴实验目的;⑵实验内容与要求;⑶数据结构设计;⑷算法设计;⑸测试结果;⑹心得体会。
3.程序用C语言或C++语言实现。
4.在包含主函数的程序文件起始处添加包含如下内容的注释:所引用代码和资料的出处、设计本程序时谁在哪些地方帮助过你。
5.在程序文件起始处添加包含如下内容的注释:文件名称、创建者姓名班级学号、创建时间、最后修改时间、文件中所定义的函数的名称和主要功能、文件中所定义的全局变量的变量名和主要功能、文件中用到的他处定义的全局变量及其出处、与其他文件的依赖关系。
6.对每个函数添加包含如下内容的注释:函数名称、函数主要功能、函数调用之前的预备条件、函数的输入参数、函数的输出参数、函数的返回值、该函数与其它函数的调用和被调用关系。
// 、姓名:陈明琨班级:计科4班学号12 参考数据结构课本及部分网络文库实验二顺序表的实现和应用实验目的:⑴熟悉线性表的定义和基本操作;⑵掌握线性表的顺序存储结构设计与基本操作的实现。
实验内容与要求:⑴定义线性表的顺序存储表示;⑵基于所设计的存储结构实现线性表的基本操作;⑶编写一个主程序对所实现的线性表进行测试;⑷线性表的应用:①设线性表L1和L2分别代表集合A和B,试设计算法求A和B的并集C,并用线性表L3代表集合C;②(选做)设线性表L1和L2中的数据元素为整数,且均已按值非递减有序排列,试设计算法对L1和L2进行合并,用线性表L3保存合并结果,要求L3中的数据元素也按值非递减有序排列。
实验三、四链表的实现和应用实验目的:掌握线性表的链式存储结构设计与基本操作的实现。
实验内容与要求:⑴定义线性表的链式存储表示;⑵基于所设计的存储结构实现线性表的基本操作;⑶编写一个主程序对所实现的线性表进行测试;⑷线性表的应用:①设线性表L1和L2分别代表集合A和B,试设计算法求A和B的并集C,并用线性表L3代表集合C;②设线性表L1和L2中的数据元素为整数,且均已按值非递减有序排列,试设计算法对L1和L2进行合并,用线性表L3保存合并结果,要求L3中的数据元素也按值非递减有序排列。
《数据结构》课程实验教学手册姓名:王俊东学号:1101120216专业:计算机科学与技术班级:2012 级 2 班任课教师:王爽时间:2013-2014 年度第1 学期综合成绩:许昌学院计算机科学与技术学院《数据结构》课程实验教学手册计算机科学与技术学院《数据结构》课程组实验手册使用及要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:1、实验预习报告必须在实验前完成。
2、实验时带好实验手册方可进行实验。
3、实验时按实验预习报告内容进行实验。
并如实填写实验过程及实验小结。
4、实验结束后填写通过后的源程序。
通过后的源程序可以手写也可以打印粘贴。
实验情况一览表实验一实验名称顺序表及其应用实验性质验证性实验学时数2学时printf("请选择正确的操作!\n");break;}}while(choice!=0);printf("谢谢使用!\n");return 0;}四实验小结初步了解线性表的顺序存储结构,及其定义格式。
掌握在顺序表上进行插入、删除等操作的算法。
但在顺序表的操作上不是十分熟练。
五成绩实验二实验名称单链表及其应用实验性质综合性实验学时数4学时四实验小结初步了解线性表的链式存储结构,及其定义格式。
掌握了在链表上进行插入、删除等操作的算法。
对链表的了解不是很深入,在其使用上往往会犯一些错误比如在链表中进行插入插不到指定位置,删除时位置错误等。
五成绩实验三实验名称线性表综合练习实验性质设计性实验学时数6学时四实验小结对链式表有了进一步的了解,能够利用链式表解决一些实际问题。
了解了链式表的优势,他不会造成空间的浪费,对于插入和删除操作上链式表比顺序表有明显的优势。
五成绩实验四实验名称栈和队列及其应用实验性质设计性实验学时数4学时四实验总结对栈和队列有了初步的了解,他们都是一种特殊的操作受限制线性表,栈的特点是先进后出而队列的是先进先出。
一、引言随着信息技术的飞速发展,数据库技术在各个领域中的应用越来越广泛。
为了提高我们的数据库应用能力,我们选择了本次数据库实训大作业。
通过本次实训,我们不仅巩固了数据库的基本理论,还提升了实际操作技能,为今后从事相关工作打下了坚实的基础。
二、实训背景与目标1. 实训背景数据库是存储、管理和处理数据的系统,是现代信息社会的核心组成部分。
随着数据量的不断增长,对数据库技术的要求也越来越高。
本次实训旨在通过实际操作,让我们深入了解数据库的基本原理、设计方法和应用技巧。
2. 实训目标(1)掌握数据库的基本概念和术语;(2)熟悉关系型数据库管理系统(RDBMS)的基本操作;(3)能够根据实际需求设计数据库;(4)具备一定的数据库应用开发能力。
三、实训内容与过程1. 实训内容本次实训内容主要包括以下几个方面:(1)数据库设计:包括需求分析、概念结构设计、逻辑结构设计和物理结构设计;(2)数据库实现:包括创建数据库、创建表、定义约束、插入数据、查询数据等;(3)数据库应用开发:包括编写SQL语句、使用存储过程、触发器等。
2. 实训过程(1)前期准备:了解数据库的基本概念和术语,掌握RDBMS的基本操作;(2)需求分析:明确项目需求,确定数据库的用途和功能;(3)概念结构设计:根据需求分析,绘制E-R图,确定实体、属性和关系;(4)逻辑结构设计:将E-R图转换为关系模型,确定表结构、字段类型和约束;(5)物理结构设计:选择合适的数据库管理系统,确定数据存储方式和索引策略;(6)数据库实现:根据设计,创建数据库、创建表、定义约束、插入数据、查询数据等;(7)数据库应用开发:编写SQL语句、使用存储过程、触发器等,实现数据库应用功能。
四、实训成果与总结1. 实训成果通过本次实训,我们成功完成了以下项目:(1)设计并实现了学生信息管理系统,包括学生基本信息、课程信息、成绩信息等;(2)设计并实现了图书管理系统,包括图书信息、借阅信息、罚款信息等;(3)设计并实现了订单管理系统,包括商品信息、订单信息、客户信息等。
《数据结构》课程实验内容与要求一、课程简介本课程着重讲述①线性结构、树型结构、图等典型数据结构的逻辑特点、存储结构及其相应的基本算法。
②各种查找算法③典型内部排序算法。
二、实验的作用、地位和目的数据结构是一门技术基础课,通过实验深刻理解各种逻辑结构、存储结构的特性,培养为实际问题分析其数据对象、基本操作,选择逻辑结构、存储结构灵活应用基本算法,设计出具有专业水准的应用程序的能力。
三、实验方式与要求①首先要求学生在课下完成问题分析、算法设计,基本完成程序设计。
②实验时,每位学生使用一台微机,独立调试,完成程序。
③程序调试好后,由指导教师检测运行结果,并要求学生回答相关的问题。
教师评出检查成绩。
④学生记录程序的输入数据,运行结果及源程序。
⑤在一周内完成实验报告。
四、考核方式与实验报告要求实验成绩由指导教师根据学生的实验完成情况、源程序质量、回答问题情况、实验报告质量、实验纪律等方面给分。
学生在实验后的一周内提交实验报告。
实验报告首页按学校统一印刷的实验报告模版书写。
实验报告中应包括如下内容:实验内容按任课教师下达的实验任务填写(具体实验题目和要求);实验过程与实验结果应包括如下主要内容:算法设计思路简介算法描述:可以用自然语言、伪代码或流程图等方式算法的实现和测试结果:包括算法运行时的输入、输出,实验中出现的问题及解决办法等源程序清单与实验结果或其它说明可打印,并装订在实验报告首页之后。
实验报告雷同者,本次实验成绩为0分或雷同实验报告平分得分五、实验的软硬件环境硬件环境:PⅡ以上微型计算机软件环境:Windows98/2000,VC++6.0或turbo C六、实验内容安排实验一线性表应用实验时间:2012年3月16日,7-8节(地点:7-215)实验目的:理解线性表的逻辑特点;掌握顺序表、链表存储结构,以及线性表的基本操作,如插入、删除、查找,以及线性表合并等操作在顺序存储结构和链式存储结构上的实现算法,并能够在实际问题背景下的灵活运用线性表来解决问题,实现相应算法。
《数据结构》实验指导书软件学院2011年9月概述实习目的和要求《数据结构》在计算机科学中是一门实践性较强的专业基础课, 上机实习是对学生的一种全面综合训练, 是与课堂听讲、自习和练习相辅相成的必不可少的一个教学环节。
实习着眼于原理与应用的结合, 使学生学会把学到的知识用于解决实际问题, 起到深化理解和灵活掌握教学内容的目的。
同时, 通过本课程的上机实习, 使学生在程序设计方法及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
实习包括的步骤1. 简要描述题目要求, 对问题的描述应避开算法及所涉及的数据类型, 只是对所需完成的任务做出明确的陈述, 例如输入数据的类型、值的范围以及输入的形式, 输出数据的类型、值的范围以及输出的形式。
2. 选定数据结构, 写出算法, 根据自顶向下发展算法的方法, 首先描述算法的基本思想, 然后进行算法细化, 再对所设计的算法的时间复杂性和空间复杂性进行简单分析。
3. 准备好上机所需的程序, 选定一种程序设计语言(如C 语言), 手工编好上机程序, 并进行反复检查, 使程序中的逻辑错误和语法错误减少到最低程度。
对程序中有疑问的地方, 应做出标记, 以便在上机时给予注意。
4.上机输入和调试程序, 在调试程序过程中除了系统的问题以外, 一般应自己独立解决。
在程序调试通过后, 打印输出程序清单和运行结果。
5.上机结束后, 总结和整理实习报告。
实习报告的内容1.简述题目要解决的问题是什么, 并说明输入和输出数据的形式。
2.简述存储结构和算法的基本思想。
3.列出调试通过的源程序。
4.列出上面程序对应的运行结果。
分析程序的优缺点、时空性能以及改进思想, 写出心得体会。
实验一线性表一. 目的与要求本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现, 提高分析和解决问题的能力。
要求仔细阅读并理解下列例题, 上机通过, 并观察其结果, 然后独立完成后面的实习题。
浙江工商大学计算机与信息工程学院数据结构实验大作业报告专业:班级:学号:姓名:指导教师:年月一、大作业报告内容包括以下几个部分⒈问题描述:(题目)⒉设计:⑴数据结构设计和核心算法设计描述;⑵主控及功能模块层次结构;⑶主要功能模块的输入、处理(算法框架描述)和输出;⑷功能模块之间的调用与被调用关系等。
⒊测试:测试范例,测试结果,测试结果的分析与讨论,测试过程中遇到的主要问题及所采用的解决措施。
⒋使用说明和作业小结:⑴使用说明主要描述如何使用你的程序以及使用时的主要事项;⑵在小结中说明程序的改进思想、经验和体会;⒌整理一份程序清单及运行示例的结果。
将以上各项文字材料及程序清单等装订成册,形成一个完整的报告。
题目从以下题目中任选一个,每人1个题目。
(一)试设计一个航空客运定票系统。
基本要求如下:1、每条航线所涉及的信息有:终点站名、航班号、飞机号、飞机周日(星期几)、乘员定额、余票量、订定票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需数量)。
2、系统能实现的操作和功能如下:1)查询航线:根据客户提出的终点站名输出如下信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;2)承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少余订票额,则需重新询问客户要求。
若需要,可登记排队候补;3)承办退票业务:根据客户提出的情况(日期、航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。
3、实现提示:两个客户名单可分别由线性表和队列实现。
为查找方便,已订票客户的线性表应按客户姓名有序,并且,为了插入和删除方便,应以链表作为存储结构。
由于预约人数无法预计,队列也应以链表作为存储结构。
《数据结构与数据库》实验课作业和要求
实验一、线性表的应用:稀疏一元多项式运算器
实验目的:
✧熟练掌握指针和链表操作的基本功
✧熟练掌握数组操作的基本功
✧模块化程序设计(程序的分层结构、函数的功能和接口)
✧人机交互界面设计(界面美观,使用方便、操作的弹性好)
✧源程序的书写风格(缩进式,加注释,可读性要好)
✧对程序健壮性的处理
✧程序的调试技术训练(debug方法和测试数据的选择)
✧时空效率
实验学时:
第1,2,3,4次实验完成
实验内容:
基本功能(必做):
1. 创建
2. 显示
3. 复制
4. 求和
5. 求差
6. 求值
7. 销毁
8. 清空
9. 修改(①插入新的结点、②删除已有结点、③修改已有结点的系数和指数)
拓展功能(选做):
10. 微分(N阶导数)
11. 不定积分
12. 定积分
13. 乘法和乘方
14. 除法
15. 最大公约式和最小公倍式
16. 多项式的四则运算(如“(1+2*3)/4”)
数据组织:
✧多项式用带头结点的单链表表示
✧用指针数组存放N个多项式的头指针
存储结构示意图:
推荐用菜单驱动
实验二、栈的应用
实验目的:
✧掌握栈的后进先出特点
✧掌握栈的表示和实现技术
✧掌握如何运用栈的特点来构建算法
实验内容
(在题目1~6中任选1题):
题目1. 简单的行编辑器(提高难度:实现对文本文件的编辑)题目2. 括号配对检验(提高难度:实现对括号优先级的检测)题目3. 波兰式计算(提高难度:操作数为浮点数)
题目4. 逆波兰式计算(提高难度:操作数为浮点数)
题目5. 中缀式计算(提高难度:操作数为浮点数)
题目6. 迷宫求解(提高难度: 随机迷宫、最短路径的提取)
附加题:
一般表达式的计算,即在表达式中包含其他函数的运算,如:
2.5^3*tan(sin(1.2)+cos(
3.5))
实验学时:第5次实验课当堂完成
实验三、二叉树的运算
实验目的:
✧掌握二叉树的递归特性
✧掌握二叉树的常用存储结构----二叉链表
✧掌握二叉树的创建、遍历等基本运算
✧了解递归函数的执行过程,学会编写递归程序
实验内容:
(在题目1、2中任选1题)
题目1. 二叉树运算
1. 创建二叉树
2. 遍历二叉树(先序、中序、后序、层序遍历)
3. 二叉树的计算(二叉树的结点数、叶子数、高度、宽度等)
4. 二叉树的处理(复制、销毁)
题目2.哈夫曼编码和解码
1. 输入电文串
2. 统计电文字符集和每种字符在电文中出现的次数
3. 构建huffman树
4. 产生每种字符的huffman编码
5. 将电文串翻译成比特流
6. 对电文比特流进行解码
附加题:用huffman压缩技术实现对文件的压缩和解压缩处理实验学时:第6次实验课当堂完成
实验四、图
实验目的:
✧掌握图的两种存储结构: 邻接矩阵表示法和邻接表表示法
✧掌握图的DFS遍历和BFS遍历的算法
✧学会利用图的模型来编程解决实际应用问题
实验内容:
(在题目1、2、3中任选1题)
题目1. 图的遍历
1. 创建图G(任选邻接矩阵或邻接表)
2. 显示图
3. 深度优先搜索遍历图
4. 广度优先搜索遍历图
5. 在图中插入顶点
6. 在图中插入边
题目2: 求通讯网的最小代价生成树
1. 输入通讯网G
2. 用Prim算法构建G的最小生成树并输出
3. 用Kruskal算法构建G的最小生成树并输出
题目3. 铁路交通网的最短路径
1. 输入铁路交通网G
2. 用Dijkstra算法计算从始发站到终点站的最短路径
实验学时:第7次实验课当堂完成
实验五、哈希表
实验目的:
✧掌握哈希表的定义和特点
✧掌握哈希函数的构造方法和解决冲突的技术,实现哈希造表
✧掌握哈希表的查找、插入和删除技术
✧掌握哈希表平均查找长度ASL的计算方法
实验内容:
(1-5必做,其他选做)
1. 输入关键字序列;
2. 用除留余数法构建哈希函数,用线性探测法解决冲突,构建哈希表HT1;
3. 用除留余数法构建哈希函数,用拉链法解决冲突,构建哈希表HT2;
4. 分别对HT1和HT2计算在等概率情况下查找成功和查找失败的ASL;
5. 分别在HT1和HT2中查找给定的关键字,给出比较次数
6. 在HT1中删除指定的关键字
7. 在HT1中插入新的关键字
实验学时:
第8、9次实验课完成
实验六数据库SQL语言
实验目的:
1.熟悉本实验所使用的DBMS环境:SQL SERVER 2005, 学会使用SQL SERVER 客户端工具查询分析器。
2.完成SQL语言的基本操作:
1)创建表
2)插入、删除、修改、查询。
3)创建视图
实验内容:
1.下载SQL Server 客户端工具:http://19
2.168.50.203/querytool.rar,解压后执行isqlw.exe,【SQL SERVER(s)】输入192.168.50.211,【连接使用】选择“SQL server身份验证”,登录名和密码都是student。
此外,也可以使用实验室机器桌面上的SQL Server Management Studio Express 登录。
登录后显示如下界面,则可以执行sql语句了。
要注意,pubs数据库是系统样例数据库,里面提供了titles等实验中用到的示例表,student用户对其只有查询权,不可以修改。
学生可以在student数据库中创建自己的表,创建表时请按照题目中要求的命名规则来命名。
在操作数据库是要注意当前数据库是pubs还是student,可以在界面面的combox选择窗口中选择,也可以使用命令use pubs更改当前数据库。
2.熟悉pubs数据库中各个table的定义和关系。
http://192.168.50.203/pubs.pdf
3.查询操作(在pubs数据库中执行):
1)无条件查询
●查找pub库中authors表的全部信息。
2)简单条件查询
●查找titles表中全部书号及书名。
●查找titles 表中价格在$15~18 元之间的书的书名。
●查找titles 表中书名以T 开头的书号, 书名。
●对其他样例表构造各种简单查询条件,进行查询。
3)多条件查询
●查找书名起始字符为T,价格小于$16元的书名及价格。
●查找书名起始字符不为T的, 价格大于$16元的书号, 书名及价格。
4)用连接操作(或嵌套查询)进行查询
●对表titles, publishers 进行查询: 查找出版社的名称以及所出的书名。
●对表authors, titleauthor, titles进行查询: 查找作者的姓、名和所写的书名。
5)对查询结果排序
●查找作者的姓、名、电话号码,并按作者姓、名排列。
●查找书名和书的价格,按书价由大到小的次序排列。
6)使用函数进行查找
●列出有多少类书。
●列出书的定价有多少种。
●列出书价最低的书名和书价。
●查出书价最高的书名及书价。
●列出当年销量的总和。
4.表和视图创建及插入
1)建表:创建两个表S**和T**,并插入下面内容,其中**是本人的学号(下同)。
2)用子查询方式建新表SS**(包含title和price 两个属性)。
3)用子查询方式建视图VS**(包含title和QTY两个属性)。
5.记录的删除与更新
1)删除书名为“计算机网络”的元组。
2)把书价调整到原来价格的95%。
3)把书号以D 开头的那些书的书价减掉2.00元。
实验拓展
1)创建存储过程。
2)编写简单的数据库应用:可以基于ASP、PHP网页。
实验学时:
第10次实验课当堂完成。