数据结构与数据库实验作业(最新)(1) (1)

更新时间:2023-07-27 23:17:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《数据结构与数据库/操作系统》实验课作业和要求

数据结构与数据库课程组实验课教学研讨会讨论稿

2012年7月第1次研讨 2013年3月第2次研讨

实验一、线性表的应用:稀疏一元多项式运算器

实验目的:

熟练掌握指针和链表操作的基本功 熟练掌握数组操作的基本功

模块化程序设计(程序的分层结构、函数的功能和接口) 人机交互界面设计(界面美观,使用方便、操作的弹性好) 源程序的书写风格(缩进式,加注释,可读性要好) 对程序健壮性的处理

程序的调试技术训练(debug方法和测试数据的选择) 时空效率

实验学时:

12学时(第1,2,3次实验)

实验内容:

基本功能(必做):

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))

实验学时:4学时(第4次实验课当堂完成)

实验报告:

实验检查和评分标准:

实验三、二叉树的运算

实验目的:

掌握二叉树的递归特性

掌握二叉树的常用存储结构----二叉链表 掌握二叉树的创建、遍历等基本运算

了解递归函数的执行过程,学会编写递归程序

实验内容:

(在题目1、2中任选1题) 题目1. 二叉树运算 1. 创建二叉树

2. 遍历二叉树(先序、中序、后序、层序遍历)

3. 二叉树的计算(二叉树的结点数、叶子数、高度、宽度等) 4. 二叉树的处理(复制、销毁)

题目2.哈夫曼编码和解码 1. 输入电文串

2. 统计电文字符集和每种字符在电文中出现的次数 3. 构建huffman树

4. 产生每种字符的huffman编码 5. 将电文串翻译成比特流 6. 对电文比特流进行解码

附加题:用huffman压缩技术实现对文件的压缩和解压缩处理

实验学时:4学时(第5次实验课当堂完成)

实验报告:

实验检查和评分标准:

实验四、图

实验目的:

掌握图的两种存储结构: 邻接矩阵表示法和邻接表表示法 掌握图的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算法计算从始发站到终点站的最短路径

实验学时:4学时(第6次实验课当堂完成)

实验报告:

实验检查和评分标准:

实验五、哈希表

实验目的:

掌握哈希表的定义和特点

掌握哈希函数的构造方法和解决冲突的技术,实现哈希造表 掌握哈希表的查找、插入和删除技术 掌握哈希表平均查找长度ASL的计算方法

实验内容:

(1-5必做,其他选做) 1. 输入关键字序列;

2. 用除留余数法构建哈希函数,用线性探测法解决冲突,构建哈希表HT1; 3. 用除留余数法构建哈希函数,用拉链法解决冲突,构建哈希表HT2; 4. 分别对HT1和HT2计算在等概率情况下查找成功和查找失败的ASL; 5. 分别在HT1和HT2中查找给定的关键字(注意对墓碑的处理),给出比较次数 6. 在HT1中删除指定的关键字(注意对墓碑的处理) 7. 在HT1中插入新的关键字(注意对墓碑的处理)

实验学时:

4学时(第7次实验课当堂完成)

实验报告:

实验检查和评分标准:

实验六 数据库SQL语言

实验目的:

1.熟悉本实验所使用的DBMS环境:SQL SERVER 2005, 学会使用SQL SERVER 客户端工具查询分析器。

2.完成SQL语言的基本操作: 1)创建表

2)插入、删除 、修改、查询。 3)创建视图

实验内容:

1.下载SQL Server 客户端工具:,解压后执行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的定义和关系。

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网页。 实验学时:

4学时(第8次实验课当堂完成)

本文来源:https://www.bwwdw.com/article/mujm.html

Top