实验五 查找

合集下载

实验五 检疫性害虫的检验

实验五 检疫性害虫的检验
荧光屏直接观察对桧、杉、粟等小粒种子不适用,
必须通过摄影、冲洗出底片才能正确检测。
2.应用举例

松籽中落叶松种子小蜂的检验
事先把2号或3号放大纸在暗室用黑纸
软X光摄影检验
包好,把种子检验样品放在放大纸具有药膜的那一面,置 于X光机载物台上拍摄。

软X光照片判别
种皮内颜色均为暗色者为空粒种子,种
皮、种仁连为一体均为白色者是健康饱满的种子。种皮内
② ③
氢氧化钾溶液固定30 s;
清水漂洗15~20 s,之后镜检。凡豆粒表面有l~2 mm直径 的黑色圆斑者,即为虫蛀粒,再进行剖检。 适于被豆象类蛀害的豆粒检验。
(3)适用范围

(七)软X光透视检验
软X光透视和摄影检验种子,首先由瑞典皇家林学院Simak、
Kamra等人创造并提出。
原理:利用软X光波长较长(大于0.01nm),能级较低,
试剂和溶液浓度的选择主要考虑样品的比重。如检查谷象、
米象为害的粮谷籽粒时,选用2%的硝酸铁溶液;检查豆粒等
的种子,可用饱和食盐水;检查松籽中是否携带落叶松种子 小蜂,用清水即可。
四、染色检验
利用某些植物或器官被害虫为害后,经特殊的 化学品处理后,可染上特有的颜色,以帮助检验害 虫或判断害虫成活与否的方法。
根据染色剂的不同,可分为高锰酸钾染色法、
品红染色法、碘或碘化钾染色法和油脂浸润法。各
种方法各有其一定的应用范围。
1. 高锰酸钾染色法
(1)试剂 1%高锰酸钾溶液、硫酸和过氧化氢混合液(1%硫 酸100 ml加3%过氧化氢液1 ml)与清水。 (2)步骤
将15g粮粒样品放入30℃温水中浸1min; 然后转移到1%高锰酸钾液内染色1min; 清水漂洗; 滤纸吸干多余液体并镜检,将出现直径0.5

数据库实验5 多表查询及视图

数据库实验5 多表查询及视图

实验五:多表查询及视图一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握数据表的连接查询、嵌套查询、集合查询的使用方法。

3.掌握创建及管理视图的方法;二、实验学时2学时三、实验要求1.了解SELECT语句的基本语法格式和执行方法;2.掌握连接查询、嵌套查询和集合查询的语法规则;3.掌握使用界面方式和命令方式创建及管理视图;4.完成实验报告;四、实验内容1.以实验3数据库为基础,请使用T-SQL 语句实现进行以下操作:1)查询选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;2)查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;3)按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。

其中已修学分为考试已经及格的课程学分之和;4)查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;5)查询只被一名学生选修的课程的课程号、课程名;6)使用嵌套查询出选修了“数据结构”课程的学生学号和姓名;7)使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;8)使用ANY、ALL 查询,列出其他院系中比WM系所有学生年龄小的学生的姓名;9)使用集合查询查询选修1号课程同时选修2号课程的同学的学号与姓名;2.以实验数据库为基础数据,利用对象资源管理器创建以下视图:1)创建所有学生学号、姓名及年龄的信息视图v_stu_info2)创建CS系学生基本信息视图v_stu_cs3)创建选修课成绩在80分以上的学生的信息视图v_stu_80,包括学生基本情况及成绩。

3. 以实验数据库为基础数据,请使用T-SQL语句完成以下内容,并将SQL语句写在实验报告册中:1) 创建v_CS视图,包括CS系各学生的学号、姓名及年龄,要求进行修改和插入操作时仍需保证该视图只有CS系的学生;2) 创建v_CS_age20视图,包括CS系学生年龄在20岁以上的基本信息;并保证对视图文本的修改都要符合年龄大于20这个条件。

实验五 数据表操作命令练习

实验五 数据表操作命令练习

实验五数据表操作命令练习──────────────────────────────────一、实验目的和要求1.掌握数据表结构的设计、建立、修改。

2.熟悉使用有关表操作的命令。

3.了解表操作的一些应用。

二、实验内容和操作步骤(一)数据表操作前的准备先双击F:\STU\PUBLIC\VFP6\EX5下的文件EX5.EXE,然后设置VFP的默认工作目录为D:\EX5,并完成以下各操作。

最后将操作结果存入D:\EX5文件夹中。

(二)打开数据表RCDA,进行如下修改、显示、查找、复制操作。

USE RCDA EXCL1.用命令方式查看该表结构,然后打开“表设计器”,并增加“籍贯”字段。

LIST STRUCTUREMODIFY STRUCTURE( 进入“表设计器”后,增加“籍贯”字段)2.用LIST STRUCTURE 命令查看表结构。

LIST STRUCTURE3.分别用BROWSE、LIST 二种命令显示查看表内容。

BROWSELIST4.查找并显示出姓名为“王国民”的记录。

LOCA TE ALL FOR 姓名="王国民"5.查找并显示在{^1960/01/01}以后出生的,工资现状又高于2000元的记录。

LOCA TE ALL FOR 出生日期>{^1960/01/01} . AND. 工资现状>20006.复制RCDA·dbf的表结构,生成空表RCDA1·dbf。

COPY STRUCTURE TO RCDA17.复制和RCDA完全相同的表RCDA2 。

COPY TO RCDA28.关闭数据表RCDA。

USE(三)打开数据表XSCJ,进行如下修改、统计操作,然后关闭该表。

1.打开数据表XSCJ。

USE XSCJ EXCL2.计算表内每人的“平均分”。

REPLACE ALL 平均分with (高等数学+大学语文+邓小平理论+计算机应用)/4 (四)打开数据表RCDA1 ,进行如下追加、查询操作,然后关闭该表。

单片机原理应用实验指导书

单片机原理应用实验指导书

《单片机原理与应用》课程实验指导书电子、机电及电气项目与自动化专业适用吴茂屈莉莉王飞编佛山科学技术学院二00 九年十月前言以往我校的单片机实验教案通常是使用启东DAIS 系列单片机微机仿真实验系统进行单片机实验教案的,DAIS 系统可以做二十多项实验,系统机构十分复杂,功能非常强大,但是在使用过程中也发现了一些不足的地方那个: 厂家为了技术保密,把核心电路都屏蔽了,我们不能了解实验系统的工作原理,另外系统庞大,不方便学生带回宿舍实验,不方便学生课外学习。

根据我校学生对单片机课程学习的需求, 我们在参考其他公司的产品的基础上,结合课程的实际情况,开发了适合学生入门学习的单片机学习板,FD-51 学习板,该学习板设置了包括LED数码管、LCD1602液晶、AD\DA转换器件等单元电路,可以做几十个单片机实验,而且本实验板我们是以配件的形式提供给学生,让学生自己焊接调试线路板。

学生不但可以学习软件编程技术,还可以学习硬件焊接及调试技术,可以更好地锻炼学生的动手操作能力。

目录系统介绍 (2)软件实验:实验一清零程序............. (4)实验二拆字程序.................... .. (5)实验三拼字程序.................... .. (5)实验四数据区传送子程序 (6)实验五查找相同数个数 (6)硬件实验:实验A 工业顺顺序控制 (7)实验B 简单IO口扩展实验 (8)实验一P1 口输出流水灯实验 (11)实验二P1 口输出交通灯实验 (11)实验三八段数码管显示实验 (12)实验四键盘实验.................. . (12)实验五遥控解码实验 ............. .. (12)实验六计数器实验..................... .. (13)实验七继电器控制实验 .................... (13)实验八定时器实验 (14)实验九单片机串行口通讯实验 (14)实验十电子时钟 (14)实验十一外部中断实验<急救车与交通灯) (15)实验十二AT24C02读写实验...... .......... . (15)实验十三93C46读写实验....... ........... (16)实验十四LCD1602字符型液晶控制显示实验 (16)实验十五LCD12864点阵型液晶控制显示实验 (17)实验十六A/D转换(数字电压表>实验 (17)实验十七D/A转换(波形发生器>实验 (18)实验十八计算机温度数据采集与处理 ............... . (19)系统介绍一、FD-51单片机学习板简介为了适应我校单片机课程教案的需要,我们在参考其他厂家学习板的基础上,再根据我校单片机课程教案大纲的要求,基于简单、使用的原则,开发了FD-51 单片机实验板。

数据库实验5答案

数据库实验5答案

实验五:数据库综合查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件种类和表示方法;3.掌握连接查询的表示及使用;4.掌握嵌套查询的表示及使用;5.了解集合查询的表示及使用。

二、实验环境已安装SQL Server企业版的计算机(120台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.了解SELECT语句的基本语法格式和执行方法;2.了解连接查询的表示及使用;3.了解嵌套查询的表示及使用;4.了解集合查询的表示及使用;5.完成实验报告;五、实验内容及步骤1.利用Transact-SQL嵌套语句实现下列数据查询操作。

1) 查询选修了计算机体系结构的学生的基本信息。

select*from studentwhere Sno in(select Sno from coursewhere Cno in(select Cno from sc where Cname='计算机体系结构'))2) 查询年龄比李勇小的学生的学号和成绩。

select a.sno,grade from student a,coursewhere a.sno=course.sno and sage<(select sage from student where sname='李勇')3) 查询其他系中比系编号为‘D1’的学生中年龄最小者要大的学生的信息。

select*from student where dnum<>'D1'AND SAGE>(select min(sage)from student where dnum='D1')4) 查询其他系中比系编号为‘D3’的学生年龄都大的学生的姓名。

select*from student where dnum<>'D3'AND SAGE>all(selectsage from student where dnum='D3')5) 查询‘C1’课程的成绩高于70的学生姓名。

数据结构实验五---查找的实现

数据结构实验五---查找的实现

实验五查找得实现一、实验内容1、建立一个线性表,对表中数据元素存放得先后次序没有任何要求.输入待查数据元素得关键字进行查找。

为了简化算法,数据元素只含一个整型关键字字段,数据元素得其余数据部分忽略不考虑.建议采用前哨得作用,以提高查找效率。

2、查找表得存储结构为有序表,输入待查数据元素得关键字利用折半查找方法进行查找.此程序中要求对整型量关键字数据得输入按从小到大排序输入。

二、源代码与执行结果1、#include〈iostream>using namespace std;#define MAX 100#define KeyType inttypedef struct{KeyType key ;}DataType;typedef struct{ﻩDataType elem[MAX] ;intlength ;}SeqTable ,*PSeqTable ;PSeqTable Init_SeqTable(){ﻩPSeqTable p =(PSeqTable)malloc(sizeof(SeqTable)) ;ﻩif(p !=NULL){p->length = 0 ;ﻩreturnp;}ﻩelse{ﻩcout〈<"Outof space!”〈〈endl ;ﻩreturn NULL;ﻩ}}int insert_SeqTable(PSeqTable p,KeyType x){if(p->length〉= MAX)ﻩ{ﻩcout〈<”overflow!"<<endl ;ﻩreturn 0 ;ﻩ}p—>elem[p—>length]、key= x ;p-〉length++;return 1 ;}int SeqSearch(SeqTable s ,KeyTypek){ﻩint n , i = 0;ﻩn = s、length ;s、elem[n]、key =k ;ﻩwhile(s、elem[i]、key != k)ﻩﻩi ++ ;ﻩif(i == n)return —1 ;elseﻩﻩreturn i ;}voidmain(){PSeqTable p ;inti , n;ﻩKeyType a ;p =Init_SeqTable();ﻩcout<〈"请输入数据个数:" ;cin>>n ;cout〈<"请输入数据:”<〈endl ;for(i = 0 ; i< n ;i++)ﻩ{ﻩcin〉>a ;ﻩinsert_SeqTable(p , a);}ﻩcout<<"请输入要查找得数据,输入32767结束:” ;cin〉〉a ;ﻩwhile(a != 32767)ﻩ{i =SeqSearch(*p, a) ;if(i == -1){ﻩﻩﻩcout<<”无此数据!请重新输入:"<〈endl ;ﻩﻩcin>>a ;ﻩ}ﻩﻩelseﻩﻩ{ﻩcout<〈"该数据得位置就是:"〈<i+1<<endl;ﻩcout〈<"请输入要查找得数据:" ;ﻩﻩcin〉〉a;ﻩ}ﻩ}}2、#include<iostream>using namespace std;#define MAX 100#define KeyType inttypedef struct{KeyType key ;}DataType;typedef struct{ﻩDataType elem[MAX] ;ﻩint length ;}BinTable ,*PBinTable ;PBinTable Init_BinTable(){ﻩPBinTable p = (PBinTable)malloc(sizeof(BinTable)) ;if(p != NULL){p->length= 0;ﻩﻩreturn p ;ﻩ}elseﻩ{ﻩcout〈<"Out of space!"〈<endl ;return NULL ;ﻩ}}int insert_BinTable(PBinTable p ,KeyType x){if(p—〉length >= MAX){ﻩcout<<"overflow!”<〈endl ;ﻩreturn 0 ;ﻩ}ﻩp-〉elem[p—>length]、key =x ;p->length ++ ;ﻩreturn 1;}int BinSearch(BinTable s ,KeyType k){ﻩint low,mid , high;ﻩlow = 0 ;high = s、length-1 ;while(low <= high){ﻩﻩmid=(low+high)/2 ;ﻩif(s、elem[mid]、key== k)ﻩﻩﻩreturnmid;ﻩelse if(s、elem[mid]、key >k)ﻩﻩhigh= mid- 1 ;ﻩﻩelseﻩlow = mid +1 ;ﻩ}ﻩreturn —1;}void main(){PBinTable p ;ﻩinti ,n ;ﻩKeyType a;p =Init_BinTable();cout<<”请输入数据个数:”;cin〉>n;ﻩcout<〈"请按从小到大得顺序输入数据:”〈<endl;for(i = 0 ;i〈 n; i ++)ﻩ{cin>〉a;ﻩinsert_BinTable(p,a);}ﻩcout<<"请输入要查找得数据,输入32767结束:” ;ﻩcin〉>a ;while(a!= 32767){ﻩi =BinSearch(*p , a);if(i ==-1)ﻩ{ﻩﻩcout〈〈"无此数据!请重新输入:"〈〈endl ;cin>>a;ﻩ}ﻩelse{ﻩcout<<"该数据得位置就是:”〈<i+1〈<endl ;ﻩﻩﻩcout<〈”请输入要查找得数据:" ;cin>〉a ;}ﻩ}}。

实验五--数据查询——复杂查询

实验五--数据查询——复杂查询

实验五数据查询——复杂查询一、实验目的1.掌握SQLServer查询语句的基本语法2.熟练使用SQL的Select语句对多表进行查询3.熟练掌握并运用SQLServer所提供的函数4.熟练使用SQL语句进行复杂的连接操作二、实验环境(实验的软件、硬件环境)硬件:PC机软件:SQL2000三、实验指导说明请复习相关的查询知识点并完成如下内容。

四、实验内容1.在订单数据库orderDB中,完成如下的查询:(1)用子查询查询员工“张小娟”所做的订单信息。

(2)查询没有订购商品的且在北京地区的客户编号,客户名称和邮政编码,并按邮政编码降序排序。

(3)查询订购了“32M DRAM”商品的订单编号,订货数量和订货单价。

(4)查询与员工编号“E2008005”在同一个部门的员工编号,姓名,性别,所属部门。

(5)查询既订购了P2*******商品,又订购了P2*******商品的客户编号,订单编号和订单金额(6)查询没有订购“52倍速光驱”或“17寸显示器”的客户编号,客户名称。

(7)查询订单金额最高的订单编号,客户姓名,销售员名称和相应的订单金额。

(8)查询订购了“52倍速光驱”商品的订购数量,订购平均价和订购总金额。

(9)查询订购了“52倍速光驱”商品且订货数量界于2~4之间的订单编号,订货数量和订货金额。

(10)在订单主表中查询每个业务员的订单数量(11)统计在业务科工作且在1973年或1967年出生的员工人数和平均工资。

(12)在订单明细表中统计每种商品的销售数量和金额,并按销售金额的升序排序输出。

(13)统计客户号为“C20050001”的客户的订单数,订货总额和平均订货金额(14)统计每个客户的订单数,订货总额和平均订货金额。

(15)查询订单中至少包含3种(含3种)以上商品的订单编号及订购次数,且订购的商品数量在3件(含3件)以上。

(16)查找订购了“32M DRAM”的商品的客户编号,客户名称,订货总数量和订货总金额。

实验五 select数据查询

实验五  select数据查询

实验五select数据查询实验目的:1、掌握SELECT语句的基本语法2、掌握子查询的表示3、掌握连接查询的表示4、掌握数据汇总的方法5、掌握SELECT语句的GROUP BY 子句的作用和使用方法6、掌握SELECT语句的ORDER BY 子句的作用和使用方法实验内容:(基于YGGL数据库实现)1、SELECT语句的基本使用(1)查询每个雇员的所有数据(2)查询每个雇员的地址和电话(3)查询employeeid为000001的雇员的地址和电话(4)查询employees表中女雇员的地址和电话,使用as子句将结果中各列的标题分别指定为地址、电话(5)计算每个雇员的实际收入(6)找出所有姓王的雇员的部门号(7)找出所有收入在2000~3000元之间的雇员号码2、子查询的使用(1)查找在财务部工作的雇员情况(2)查找财务部年龄不低于研发部雇员年龄的雇员的姓名(3)查找研发部比所有财务部雇员收入都高的雇员的姓名(4)查找比所有财务部的雇员收入都高的雇员的姓名3、连接查询的使用(1)查询每个雇员的情况以及其薪水的情况(2)查找财务部收入在2200元以上的雇员姓名及其薪水详情4、数据汇总(1)求财务部雇员的平均收入(2)求财务部雇员的平均实际收入(3)求财务部雇员的总人数5、group by 、order by 子句的使用(1)求各部门的雇员数(2)将各雇员的情况按收入由低到高排列实验步骤:1、(1)use ygglselect * from employeesgoselect address,phonenumberfrom employeesgo(3)select address,phonenumberfrom employeeswhere employeeid='000001'go(4)select address as 地址,phonenumber as 电话from employeeswhere sex=0go(5)select employeeid,实际收入=income-outcome from salarygo(6)select departmentidfrom employeeswhere name like '王%'go(7)select employeeidfrom salarywhere income between 2000 and 3000go2、(1)select *from employeeswhere departmentid=(select departmentidfrom departmentswhere departmentname='财务部')go(2)select namefrom employeeswhere departmentid in(select departmentidfrom departmentswhere departmentname='财务部')birthday<=all(select birthdayfrom employeeswhere departmentid in(select departmentidfrom departmentswhere departmentname='研发部')) go(3)select namefrom employeeswhere departmentid in(select departmentidfrom departmentswhere departmentname='研发部') andemployeeid in(select employeeidfrom salarywhere income>all(select income from salarywhere employeeid in(select employeeidfrom employeeswhere departmentid in(select departmentidfrom departmentswhere departmentname='财务部')))) go(4)select namefrom employeeswhere employeeid in(select employeeidfrom salarywhere income>all(select incomefrom salarywhere employeeid in(select employeeidfrom employeeswhere departmentid=(select departmentidfrom departmentsgo3、(1)select employees.*,salary.*from employees,salarywhere employees.employeeid=salary.employeeidgo(2)select name,income,outcomefrom employees,salary,departmentswhere employees.employeeid=salary.employeeid and employees.departmentid=departments.departmentid and departmentname='财务部' and income>2000go4、(1)select avg(income) as '财务部平均收入'from salarywhere employeeid in(select employeeidfrom employeeswhere departmentid=(select departmentidfrom departmentswhere departmentname='财务部'))go(2)select avg(income-outcome) as '财务部平均实际收入' from salarywhere employeeid in(select employeeidfrom employeeswhere departmentid=(select departmentidfrom departmentswhere departmentname='财务部'))go(3)select count(employeeid)from employeeswhere departmentid=(select departmentidfrom departmentsgo4、(1)select departmentid,count(employeeid)from employeesgroup by departmentidgo(2)select employees.*,salary.*from employees,salarywhere employees.employeeid=salary.employeeid order by incomego实验报告:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

山东工商学院
《数据结构》实验指导及报告书 2012 / 2013 学年第上学期
姓名:
学号:
班级:
指导教师:
信电学院
2012
实验五查找
一、实验目的
1、掌握查找表、动态查找表、静态查找表和平均查找长度的概念。

2、掌握线性表中顺序查找和折半查找的方法。

3、学会哈希函数的构造方法,处理冲突的机制以及哈希表的查找。

二、实验预习
说明以下概念
1、顺序查找:
2、折半查找:
3、哈希函数:
4、冲突及处理:
三、实验内容和要求
依据顺序查找算法和折半查找算法的特点,对下面的两个查找表选择一个合适的算法,设计出完整的C源程序。

并完成问题:
查找表1 : { 8 ,15 ,19 ,26 ,33 ,41 ,47 ,52 ,64 ,90 } ,查找key = 41 查找表2 : {12 ,76 ,29 ,15 ,62 ,35 ,33 ,89 ,48 ,20 } ,查找key =35
查找key=41的算法:折半查找比较次数:
查找key=35的算法:顺序查找比较次数:
顺序查找算法算法实现代码
#include <stdio.h>
#include <stdlib.h>
int main(){
int n,s,q,i,k;//n为输入的元素个数,s为所查找的元素,k为该元素在数组中的位置
int a[100];
printf("input number:");
scanf("%d",&n);
for(i=1;i<n+1;i++){
printf("input NO%d:",i);
scanf("%d",&q);
a[i]=q;
}
printf("input element:");
scanf("%d",&s);
for(i=n;i>0;i--){
a[0]=s;
if(a[i]==s){
k=i;
break;
}
}
if(k!=0) printf("the number is :%d",k); else printf("not exist!");
return 0;
}
折半查找算法算法实现代码
#include <stdio.h>
#include <stdlib.h>
#define INIT_SIZE 5
typedef int Elem;
typedef struct{
int Tsize;
Elem *list;
int length;
}SSTable;
int search_l(Elem e,SSTable L);
void create_l(SSTable* L,int n);
int search_l(Elem e,SSTable L){
int low,high,mid;
low=1; high=L.length;
while(low<=high){
mid=(high+low)/2;
if(L.list[mid]==e) return mid;
else if(L.list[mid]>e) high=mid-1; else low=mid+1;
}
return 0;
}
void create_l(SSTable* L,int n){
int i;
L->length=n;
L->Tsize=INIT_SIZE;
L->list=(Elem*)malloc(INIT_SIZE*sizeof(Elem));
for(;;){
if(L->length>=L->Tsize){
L->list=(Elem*)malloc((INIT_SIZE+L->Tsize)*sizeof(Elem)); L->Tsize=L->Tsize+INIT_SIZE;
}else break;
}
for(i=1;i<=L->length;i++){
int q;
printf("input value of NO%d:",i);
scanf("%d",&q);
L->list[i]=q;
}return 0;
}
int main()
{
int n,s,k;
SSTable List;
printf("input the amount of list:");
scanf("%d",&n);
create_l(&List,n);
printf("intput the searching elment:");
scanf("%d",&s);
k=search_l(s,List);
if(k!=0) printf("the number is %d",k);
else printf("not exist!");
return 0;
}
四、实验小结
本次试验调试出一个内存的不能写入的错误:对数组不能直接进行键盘scanf写入操作!否则导致严重内存错误
五、教师评语。

相关文档
最新文档