文档库 最新最全的文档下载
当前位置:文档库 › 《计算机体系结构》第五次实验 WARWAWBTB实验

《计算机体系结构》第五次实验 WARWAWBTB实验

《计算机体系结构》第五次实验 WARWAWBTB实验
《计算机体系结构》第五次实验 WARWAWBTB实验

WAR\WAW\BTB实验姓名:王宇航学号:09283020

WAR\WAW\BTB实验

一、实验目的:

通过本实验,理解读后写、写后写数据相关以及转移目标缓冲方法。

二、实验内容:

1、用WinMIPS64模拟器执行一段循环程序(习题3.4),采用BTB转移控制策略。指出

程序每次迭代所需的时钟周期数和程序执行所需的总时钟周期数。

2、设计产生WAR、WAW数据相关的程序段,并在WinMIPS64模拟器上执行。

三、实验环境

操作系统:Windows 7 旗舰版

处理器:Intel(R) Core(TM) i5 双核

内存:2.00GB

软件:winmips64模拟器

四、实验过程:

1、分析BTB转移控制策略

(1)BTB转移控制策略

BTB即分支目标缓冲区转移控制策略处理分支指令的作用是为了最大限度地减少分支指令造成的延迟。其思想及实现方法为:BTB可以看成是用专门的硬件实现的一张表,表中的每一项至少有两个字段:执行过的成功分支指令的地址和预测的分支目标地址。在每次取指令的同时,将指令地址与BTB中的所有项的第一个字段进行顺次比较。若在BTB中存在和该指令地址匹配的项,则可以确定该指令确实是分支指令且上一次分支成功,据此预测这次执行也将分支成功,将该匹配项中的第二个字段中的地址送给PC寄存器,从分支目标处开始取指令。若在BTB中不存在和该指令地址匹配的项,则把该指令当做普通的指令来执行。

若预测正确,则不会有任何分支延迟;若预测错误或者在BTB中不存在匹配的项,则会有至少两个时钟周期的延迟,因为需要花费一个时钟周期停止取指令来更新BTB中的项,再花费一个时钟周期来取新的指令。

(2)修改习题3.4的循环指令序列,使之可以在WinMIPS64模拟器上执行,修改后的指令序列如下:

.data

.text

DADDI R2,R0,0

DADDI R3,R0,396

LOOP: LW R1,0(R2)

DADDI R1,R1,1

SW R1,0(R2)

DADDI R2,R2,4

DSUB R4,R3,R2

BNEZ R4,LOOP

NOP

(3)将该程序导入WinMIPS64模拟器,在模拟器菜单栏的Configure下,选中“Enable Branch Target Buffer”选项,即采用BTB转移控制策略。

(4)按F7执行该程序,重点观察分支指令“BNEZR4,LOOP”的执行,第一个循环周期如下图所示:

可以看到,采用BTB转移控制策略后,分支指令“BNEZR4,LOOP”在IF阶段将其PC值即该指令的地址送入指令存储器取指的同时,将指令地址与BTB中的所有项的第一个字段进行顺次比较。由于此时BTB为空,不存在和该分支指令地址匹配的项,所以就把该指令当做普通的指令来执行。下一个时钟周期,该指令进入ID段,其后的指令“NOP”开始取指。在ID段判断出该指令是分支指令并且计算出分支目标地址,但是在该分支指令“BNEZR4,LOOP”和上一条指令“DSUB R4,R3,R2 ”之间存在一个RAW冲突,引起一个RAW 暂停,从而导致了结构冲突,使得其后一条指令“NOP”也无法在下一个时钟周期进行指令译码而必须暂停一个周期。再下一个时钟周期时,流水线停止取指用来更新BTB,即将分支指令“BNEZR4,LOOP”的地址和其成功分支的目标“LW R1,0(R2)”的地址分别作为BTB表中的第一个字段和第二个字段写入BTB中。然后便可以在下一个时钟周期中取分支目标指令来执行了。因此共造成了3个时钟周期的延迟。

故第一个循环周期所需的时钟周期数为10个。

下图是第二个循环周期,还是重点观察分支指令“BNEZR4,LOOP”的执行。

同样可以看到,分支指令“BNEZR4,LOOP”在IF阶段将其指令地址送入指令存储器取指的同时,将指令地址与BTB中的所有项的第一个字段进行顺次比较。因为在第一个循环周期中已经将该分支指令的地址和其成功分支的目标地址写入了BTB中,因此BTB中必定存在和该指令地址匹配的项,从而在该分支指令进行ID段的同时流水线将BTB中匹配项的第二个字段即分支的目标地址送给PC寄存器,来取分支目标指令执行,不存在任何延迟。

故第二个循环周期所需的时钟周期数为7个。

下图是第三个循环周期,重点观察循环周期开始指令“LWR1,0(R2)”的执行。

在第三个循环周期中,分支指令的处理和第二个循环周期完全相同,只是在循环周期开始即“LWR1,0(R2)”取指时,比第二个循环周期多了一个暂停。因为第二个循环周期中在这里没有结构冲突,故取指后能顺利进入ID段;而在第三个循环周期中由于前一条指令“BNEZR4,LOOP”因RAW冲突引起的暂停导致了结构冲突,使“LWR1,0(R2)”不得不在IF 段暂停一个时钟周期,因此会多出一个时钟周期,故第三个循环周期所需的时钟周期数为8个。

第四至九十八循环周期和第三个循环周期执行过程完全相同,所需时钟周期数也均为8个。

下图是最后一个循环周期即第99个循环周期:

可以看到,分支指令“BNEZR4,LOOP”仍然根据BTB转移控制策略执行。因为存在匹配项,所以在该分支指令进行ID段时流水线将BTB中分支目标地址送给PC寄存器,并取分支目标指令。与此同时,该分支指令判断出当前分支条件不满足,分支失败。分支指令由于RAW冲突将流水线暂停一个时钟周期后,流水线将继续停止一个时钟周期,用来更新BTB,即从BTB中删除以分支指令“BNEZR4,LOOP”的地址和其成功分支的目标“LWR1,0(R2)”的地址分别作为其两个字段的这一项。然后再取分支指令的后继指令“NOP”来执行,总共也造成了3个时钟周期的延迟。

故最后一个循环周期执行完所需的时钟周期数为14个。

综上可得,执行完99个循环所需的总时钟周期数为:10+7+8*96+14 = 799.

2、分析WAR、WAW数据相关

(1)设计产生WAR、WAW数据相关的程序段

借鉴Tomasulo方法实验中的浮点指令程序段,稍作修改使其执行过程中会产生WAR、WAW数据相关。修改后的程序如下图所示:

.data

.text

L.D F8,21(R3)

L.D F4,16(R4)

MUL.D F2,F4,F6

SUB.D F10,F8,F4

DIV.D F12,F2,F8

ADD.D F8,F10,F4

ADD.D F12,F10,F4

结合Tomasulo方法实验可以知道:

倒数第二条指令“ADD.DF8,F10,F4”和前一条指令“DIV.DF12,F2,F8”之间存在一个WAR 冲突,即DIV.D指令要读寄存器F8中的值,ADD.D要写寄存器F8中的值,由于DIV.D指令的执行时间比ADD.D指令长,ADD.D指令可能会先于DIV.D指令完成,将执行结果写入寄存器F8中,导致DIV.D指令可能会读到修改后的F8的值。

另外,“DIV.DF12,F2,F8”指令和最后的“ADD.DF12,F10,F4”指令之间存在一个WAW冲突,即DIV.D指令要写寄存器F12,ADD.D指令也要写寄存器F12,由于DIV.D指令的执行时间比ADD.D指令长,ADD.D指令可能会先于DIV.D指令完成,写结果至寄存器F12。若没有任何防范措施,当DIV.D指令完成后又会将其执行结果写至寄存器F12,修改刚才的ADD.D 指令的执行结果,从而导致结果错误。

(2)将该程序导入WinMIPS64模拟器,在模拟

器菜单栏的Configure Architecture中,设置各功能

部件的执行时间,如右图所示:

其中加/减法部件、乘法部件、除法部件的执行

时间分别为4个时钟周期、7个时钟周期、15个时钟

周期。

(3)在Configure下,选中“Enable Forwarding”

选项,即采用定向技术。

(4)按F7执行该程序,执行结果如下图所示:

“DIV.DF12,F2,F8”指令进入除法部件后,由于缺少操作数F2的值无法开始执行,等到前面的“MUL.D F2,F4,F6”指令计算出F2的值并通过定向技术送到该除法部件后,“DIV.DF12,F2,F8”指令才能够开始执行。在此之前,为了避免“DIV.DF12,F2,F8”指令读到错误的F8,和该指令存在WAR冲突的“ADD.DF8,F10,F4”指令即使操作数已经全部就绪也不能开始执行,必须插入War暂停,等待“DIV.DF12,F2,F8”指令开始执行后才能开始执行。以此来保证“DIV.DF12,F2,F8”指令不会因“ADD.DF8,F10,F4”指令先执行完而读到修改后的F8,消除了WAR冲突。

此外,当最后一条指令“ADD.DF12,F10,F4”进入加法部件时,其所需的操作数F10和F4已经全部就绪,但因为此时和该指令存在WAW冲突的“DIV.DF12,F2,F8”指令还没有执行完,使得该指令必须插入Waw暂停,不能开始执行,就是为了避免因为“DIV.DF12,F2,F8”指令比“ADD.DF12,F10,F4”指令执行时间长而后执行完,会修改后一条指令的执行结果,造成结果错误。当“DIV.DF12,F2,F8”指令执行完毕后,“ADD.DF12,F10,F4”才可以开始执行,从而消除WAW冲突,保证结果的正确性。

可见,WinMIPS64模拟器是采用时钟周期暂停的方法来避免WAR、WAW数据相关的。

五、实验总结:

本次实验主要是借助WinMIPS64模拟器来理解读后写、写后写数据相关以及BTB转移控制方法。通过在WinMIPS64模拟器中执行带有分支指令的循环程序段,理解了使用BTB转移控制策略处理分支指令的方法;在Tomasulo方法实验的基础上,通过在WinMIPS64模拟器中执行会产生WAR、WAW数据相关的浮点指令程序段,进一步掌握了WAR、WAW数据相

第五次实验强

计算机网络实验报告 实验名称:配置RIP 学号:12207132 姓名邹文强教师评定: 一.实验目的 1.掌握RIPv1和v2配置方法 2.掌握show ip rip database、sh ip protocol命令 3.掌握debug命令 4.掌握将RIP的广播更新方式更改为单播方式 二.设备需求 本实验需要以下设备: 1.4台2811Cisco路由器,四台都有两个FastEthernet口。 2.2条双绞线,1对V.35背靠背线缆 3.4台带有超级终端程序的PC机,以及4条Console电缆 三.拓扑结构及配置说明 本实验的拓扑如图所示。 图. 网络拓扑结构 注意:如果r2与r3之间使用如图的串口连接,配置端口时要配置串行线速率,设置为64000Kbit/s,r2的s0/0/0为DCE端。配置方法为在端口的局部配置模式下执行“clock rate 64000”命令。 实验内容 1. 配置R1路由。 r1>en r1#conf t Enter configuration commands, one per line. End with CNTL/Z. r1(config)# 2. 恢复路由器的初始配置。(若路由器末被配置过则直接做第三步) 3. 按图2-1所示配置路由器的hostname及IP地址 4. 检验相邻设备的连通性Ping各个ip地址,将结果记录到监测清单3-1 中

5. 配置RIP v1,并且在四台路由器上使用“show ip route”和“show ip rip database”命令查看路由表。 RIP协议的基本配置非常简单。首先使用route rip命令进入RIP协议配置模式,然后用network语句声明进入RIP进程的网络。在路由器上使用“show ip route”、“show ip rip database”和show ip protocol命令的输出,记 6.查看表。

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的容: 3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

2018高考湖南省邵东县创新实验学校2018届高三上学期第五次月考语文精校试题Word版含答案

2018年邵东创新学校第五次月考 语文试题 本试卷分第I卷(阅读题)和第Ⅱ卷(表达题)两部分。考试时间150分钟,满分150分。 第I卷(阅读题,共70分) 一、现代文阅读(35分) (一)论述类文本阅读(9分,每小题3分) 阅读下面的文字,完成1一3题。 在中华传统文化中,“鸡文化”占有重要地位,对古人生活的影响很直接。 鸡为什么叫“鸡”?明代李时珍《本草纲目·禽部》“鸡”条引南唐人徐核的话称:“鸡者稽也,能稽时也。”鸡守时且鸣叫准时,鸡鸣了天就快亮了,由此,古人送给鸡不少美称:夜烛、司晨鸟、知时畜、长鸣都尉等。 鸡能啼晨,古人称之为“司晨”。鸡这一习性,对农耕时代的古人具有重要意义。《诗经》中有这样的句子“女曰鸡鸣……”:妻子说鸡打鸣了,赶紧起来千活吧。可见,先秦时人们已开始利用鸡鸣来安排作息了。国君也以“鸡鸣”为时间节点安排作息。《诗经》中的《鸡鸣》就有贤妃提醒国君早朝:“鸡既鸣矣,朝既盈矣。”周朝还专设“鸡人”掌管供办鸡牲和报时,后来宫廷中负责打更报时的人被称为“鸡人”。但古人认为母鸡打鸣是不祥之兆,会有“鸡祸”。在古代,女人干政或主政,常被称作“扎鸡司晨”。《汉书·五行志》引《易传》的话:“妇人专政,国不静;札鸡雄鸣,主不荣。” 古人还以鸡鸣励志,现在不少人书房里都喜欢挂“闻鸡起舞”字画。《晋书·祖巡传》记载,祖邀和刘砚“共被同寝”,夜半听到鸡叫声,对刘跳说:“此非恶声也。”便踢他起来一起舞剑健身。 鸡在古人眼里还能辟邪。《山海经·中山经》中就多次提及:“用一雄鸡,攘而勿杀”,“毛用一白鸡,祈而不粉”。古人认为,鸡是一种“阳鸟”,主管日出。唐《艺文类聚·鸟部》“鸡”条的说法更清楚:“鸡为积阳,南方之象,火阳精物。”鸡鸣带来光明,而鬼怪最不敢见光明,自然便怕鸡。还有一种说法,民间把鸡当辟邪物可能与中华人文始祖虞舜有关。东晋王嘉《拾遗记》记载,尧在位七十年,有国献重明之乌,双睛在目。这里的“重明之鸟”就是一种鸡,隐指尧的接班人舜。重明之鸟“能搏逐猛兽虎狼,使妖灾群恶不能为害”,民间过年时都期盼这种鸟能飞到自家门口,等不到它,“或刻木,或铸金,为此鸟之状,置于门户之间”。王嘉认为,民间画鸡贴门上,就是由这种遗俗变化来的。, 古人认为鸡还是一种吉祥动物。“鸡”谐音“吉”,鸡年就是“吉祥之年”。古代有一种年

实验五 数据库系统设计

实验五数据库系统设计(上机时间6课时) 班级:通信1411 学号:141003410114姓名:李楠 合作成员刘蕾 1.实验目的:理要求学生掌握数据库设计的基本技术。熟悉数据库设计的每个步骤中的任务和实施方法, 并加深对数据库系统概念和特点的理解。 2.实验内容: 学生可根据自己熟悉的信息自选一个小型的数据库应用项目,进行系统分析和数据库设计。例如选择选修课管理系统、学生住宿管理系统、图书管理系统、材料管理系统或仓库管理系统等。 3.实验要求: ●要求起草数据库设计的关键步骤内容,至少包括: ?需求分析:分析用户种类及各自的功能要求;涉及主要数据实体及内容。系统设计的任务及主 要目标等。 ?完成实体建模并画出E-R图 ?起草数据字典 ?描述将关系表规范化至第三范式3NF的过程 ?构建并描述实体与实体关系 ●查阅有关书籍,熟悉MS SQL Server 2005,运用Microsoft SQL Server Management Studio Express在 MS SQL Server 2005上创建数据库。 ●运用Microsoft SQL Server Management Studio Express在MS SQL Server 2005上创建数据库基本表, 得到SQL脚本源码。(可以编写SQL DDL语句脚本源码,然后执行脚本创建基本表;也可以在Studio 中可视化创建基本表然后导出SQL脚本)。SQL脚本源码以文件名EXP5-1.sql存储上传。 ●运用Microsoft SQL Server Management Studio Express在编写SQL脚本,实现需求分析中各种用户需 要的数据库记录添加、记录修改、记录查询功能并将SQL脚本源码以文件名EXP5-2.sql存储上传。 将相应操作结果以文件名EXP5-3.txt存储上传。 ●允许有2人以内的小组合作,组与组之间数据字典、表名、属性名完全雷同视同抄袭;同学之间实 验运行结果完全雷同视同抄袭。 4.实验报告内容: 1.需求分析过程 流程:学生到学生选课系统进行选修课程,查看选修课程的课程信息,选课的老师信息,以及所选的课程号。如果学生要选某个课程,则要查询这门课程的教学老师以及它是否已经被选满;如果学生要查询所选课程的选课成绩,则要查询这门的教学老师;如果学生需要重新选课,则要求先退选所选的课程。 功能:实现学生的选课,重新退订选课,查询课程成绩。 2.E-R图

第五次实验报告

南京邮电大学自动化学院 实验报告 实验名称:直流电机转速测控系统 课程名称:测控技术与仪器专业综合实验 所在专业:测控技术与仪器 学生姓名:董鸿祥 班级学号: B12050523 任课教师:戎舟 2014 /2015 学年第二学期 实验地点:教五-214 实验学时:8

摘要:本系统实现了直流电机的转速测试,并可以通过PID函数根据实际转速,实现相应的控制算法,完成对直流电机速度的闭环控制。本系统以LabVIEW作为上位机通过对Elvis数据采集平台的编程控制Supply输出电压的大小,已完成对电机转速的控制。通过实验验证,本系统基本达到实验要求。 一、实验目的 1、理解所用传感器的工作原理,掌握传感器的使用; 2、掌握直流电机转速测试和控制电路的设计; 3、掌握计算机测控的原理和方法。 二、实验内容 基于ELVIS平台设计电机速度测试电路,设定预计转速,根据实际转速,实现相应的控制算法,完成对马达速度的闭环控制。 三、实验设备 (1)计算机 1台 (2)ELVIS数据采集平台 1台 (3)EE-SX672A光电传感器模块 1个 (4)5V直流电机 四、实验硬件原理 直流电机转速测控系统结构和硬件 直流电机转速测控系统包括电机模块、EE-SX672A光电传感器模块、NI ELVIS平台和计算机。由传感器模块、电机上的转盘和数据采集卡对电机转速进行测试,在计算机中由程序计算出电机转速后采

用PID算法得到对电机转速控制的输出直流电压。 直流电机: 电机是使机械能与电能相互转换的硬件,直流电机就是把直流电能转换成机械能。作为机电执行元部件,直流电机内部有一个闭合的主磁路。主磁通在主磁路中流动,同时与两个电路交联,其中一个电路是用以产生磁通的,称为激磁电路,另外一个是用来传递功率,称为功率回路或者电枢回路。现行的直流电动机都是旋转电枢式,也就是说激磁绕组及其所包围的铁芯组成的磁极为定子,带换向单元的电枢绕组和电枢铁芯结合构成直流电动机的转子。 (2)光电传感器 光电传感器一般由发送器、接收器和检测电路三部分组成。发送器一般为半导体光源、发光二极管(LED)、激光二极管或及红外发射二极管,对准目标发射光束,光束连续发射,或以脉冲方式发射,脉冲宽度可调。在接收器的前面,要装有光学元件如光圈和透镜等。接收器一般由光电二极管、光电三极管或光电池组成。接收器接收信号后通过检测电路输出有效信号。 光电传感器有凹槽形光电传感器、对射型光电传感器、反光型光电开关和扩散反射型光电开关等几种类型。 以凹槽型光电传感器为例,凹槽型光电传感器把一个光发射器和一个接收器面对面地装在一个槽的两侧。发光器能发出红外线和可见光,在无阻的情况下光接收器能收到光。但当被检测物体从槽中通过时,光被遮挡,光电开关便动作。输出一个开关控制信号,切断或接

数据库上机实验

附录C 上机实验 C.1 第4章上机实验 下列实验均使用SQL Server 的SSMS工具实现。 1.用图形化方法创建符合如下条件的数据库(创建数据库的方法可参见本书附录A): ●数据库名为:学生数据库 ●主要数据文件的逻辑文件名为:Students_data,存放在D:\Data文件夹下(若D: 盘中无此文件夹,请先建立此文件夹,然后再创建数据库。),初始大小为:5MB, 增长方式为自动增长,每次增加1MB。 ●日志文件的逻辑文件名字为:Students_log,也存放在D:\Data文件夹下,初始大 小为:2MB,增长方式为自动增长,每次增加10%。 2.选用已建立的“学生数据库”,写出创建满足表C-1到4-4条件的表的SQL语句,并执行所写代码。(注:“说明”部分不作为表定义内容)

(1)在Teacher表中添加一个职称列,列名为:Title,类型为nchar(4)。 (2)为Teacher表中的Title列增加取值范围约束,取值范围为:{教授,副教授,讲师}。(3)将Course表中Credit列的类型改为:tinyint。 (4)删除Student表中的Sid和Sdate列。 (5)为Teacher表添加主键约束,其主键为:Tno。 C.2 第5章上机实验 本实验均在SQL Server 的SSMS工具中实现。首先在已创建的“学生数据库”中创建本章表5-1~5-3所示的Student、Course和SC表,并插入表5-4~5-6所示数据,然后编写实现如下操作的SQL语句,执行所写的语句,并查看执行结果。 1.查询SC表中的全部数据。 2.查询计算机系学生的姓名和年龄。 3.查询成绩在70~80分的学生的学号、课程号和成绩。 4.查询计算机系年龄在18~20岁的男生姓名和年龄。 5.查询C001课程的最高分。 6.查询计算机系学生的最大年龄和最小年龄。 7.统计每个系的学生人数。 8.统计每门课程的选课人数和最高成绩。 9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。 10.列出总成绩超过200的学生的学号和总成绩。 11.查询选了C002课程的学生姓名和所在系。 12.查询考试成绩80分以上的学生姓名、课程号和成绩,并按成绩降序排列结果。 13.查询与VB在同一学期开设的课程的课程名和开课学期。 14.查询与李勇年龄相同的学生的姓名、所在系和年龄。 15.查询哪些课程没有学生选修,列出课程号和课程名。 16.查询每个学生的选课情况,包括未选课的学生,列出学生的学号、姓名、选的课程号。 17.查询计算机系哪些学生没有选课,列出学生姓名。 18.查询计算机系年龄最大的三个学生的姓名和年龄。 19.列出“VB”课程考试成绩前三名的学生的学号、姓名、所在系和VB成绩。 20.查询选课门数最多的前2位学生,列出学号和选课门数。 21.查询计算机系学生姓名、年龄和年龄情况,其中年龄情况为:如果年龄小于18,则显 示“偏小”;如果年龄在18-22,则显示“合适”;如果年龄大于22,则显示“偏大”。 22.统计每门课程的选课人数,包括有人选的课程和没有人选的课程,列出课程号,选课人 数及选课情况,其中选课情况为:如果此门课程的选课人数超过100人,则显示“人多”; 如果此门课程的选课人数在40~100,则显示“一般”;如果此门课程的选课人数在1~40,则显示“人少”;如果此门课程没有人选,则显示“无人选”。 23.查询计算机系选了VB课程的学生姓名、所在系和考试成绩,并将结果保存到新表 VB_Grade中。

数据库实验题目和答案

按照如下方式重新定义四张表: 定义新的books表,其所拥有的属性与属性类型与原有的books表一致 以列级完整性的方式定义属性bookId为主码,同时在定义的时候必须提供约束名 定义属性category为”非空” ,同时在定义的时候必须提供约束名 create table Books( bookId number(9,0) constraint BooksKey primary key, title varchar(80), author varchar(40), year integer, category varchar(15) constraint B1 not null ); commit; 定义新的customers表,其所拥有的属性与属性类型与原有的customers表一致 以表级完整性的方式定义属性cid为主码 以列级完整性的方式定义属性cname为”唯一”,同时在定义的时候必须提供约束名 create table Customers ( cid number(9,0), cname char(40) constraint C1 unique, age integer, primary key(cid) ); commit; 定义新的purchases表,其所拥有的属性与属性类型与原有的purchases表一致 定义属性cid与bookId为主码,同时在定义的时候必须提供约束名 以列级完整性的方式定义属性bookId为外码,它参照Books表的主码,同时在定义的时候必须提供约束名。当删除Books表中的某一本书时,级联删 除与它相关的购买记录 以表级完整性的方式定义属性cid为外码,它参照customers表,同时在定义的时候必须提供约束名。当删除customers表中的某个顾客时,如果存在 与该客户相关的购买记录,拒绝删除。 create table Purchases( cid number(9,0), bookId number(9,0)

C语言计科11第五次实验实验报告

重庆科技学院学生实验报告 一、实验目的和要求

1、掌握while语句的语法。 2、掌握嵌套循环程序设计方法。 3、理解复合语句。 4、了解结构化程序设计。 5、学会使用F10单步调试程序,学会在watch窗口中观察变量的值。 二、实验内容和原理 1、使用嵌套循环产生下列图案: $ $$ $$$ $$$$ $$$$$ Test1.c 2、使用嵌套循环产生下列图案: a ab abc abcd ……. …… abcdefghijklmnopqrstuvwxy abcdefghijklmnopqrstuvwxyz Test2.c

3、使用嵌套循环产生下列图案: F FE FED FEDC FEDCB FEDCBA Test3.c 4、让程序要求用户输入一个大写字母,使用嵌套循环产生像下面的金字塔图案: A ABA ABCBA ABCDCBA ABCDEDCBA 这种图案要扩展到用户输入的字符。例如,前面的图案是在输入E时需要产生的。提示:使用一个外部循环来处理行,在每一行中使用3个内部循环,一个处理空格,一个以升序打印字母,一个以降序打印字母。 Test4.c 5、编写一个程序打印一个表,表的每一行都给出一个整数、它的平方和它的立方。要求用户输入上限和下限。例如,输入3和7,输出为:

Test5.c 6、编写一个程序,要求用户输入一个下限整数和一个上限整数,然后,依次计算从下限到上限的每一个数的平方的和,最后显示结果。程序将不断提示用户输入下限整数和上限整数并显示出答案,知道用户输入的上限整数等于或小于下限整数为止程序运行结果如下所示: Enter lower and upper integer limits: 5 9 The sums of the squares from 25 to 81 is 255 Enter lower and upper integer limints: 3 25 The sums of the squares from 9 to 625 is 5520 Enter lower and upper integer limints: 5 3 Done Test6.c 7、Chuckie Lucky赢了100万美元,他把它存入一个每年利息为8%的账户。在每年的最后一天,Chuckie取出10万美元。编写一个程序,计算需要多少年Chuckie就会清空他的账户。 (注意:将源程序分别命名为test1.c,test2.c,test3.c,test4.c,test5.c,test6.c和test7.c。实验完成后提交实验报告。)

第五届全国大学生化学实验竞赛笔试题及答案

第五届全国大学生化学实验邀请赛 笔试试卷 选手编号:总成绩: 题型一、选择题二、填空题总分 得分 评卷人 可能用到的原子量数据: 元素H C N O Na S Cl Cu Fe Zn 原子量 1 12 14 16 23 32 35.5 63.5 56 65.4 一、选择题(选择题为单项选择,每题1分,共70分),请将答案填入答题卡中 1、某同学在玻璃加工实验过程中,不小心被灼热的玻璃棒烫伤,正确的处理方法是()。 A、用大量水冲洗即可 B、直接在烫伤处涂上烫伤膏或万花油 C、直接在烫伤处涂上碘酒 D、先用水冲洗,再在烫伤处涂上烫伤膏或万花油 2、实验过程中,不慎有酸液溅入眼内,正确的处理方法是()。 A、用大量水冲洗即可 B、直接用3%~5% NaHCO3溶液冲洗 C、先用大量水冲洗,再用3%~5% NaHCO3溶液冲洗即可 D、先用大量水冲洗,再用3%~5% NaHCO3溶液冲洗,然后立即去医院治疗 3、被碱灼伤时的处理方法是( )。 A、用大量水冲洗后,用1%硼酸溶液冲洗 B、用大量水冲洗后,用酒精擦洗 C、用大量水冲洗后,用1%碳酸氢钠溶液冲洗 D、涂上红花油,然后擦烫伤膏 4、停止减压蒸馏时,正确的操作顺序是( )。 A、通大气、关泵后停止加热 B、边通大气、边关泵后停止加热 C、边通大气、边关泵、边停止加热 D、停止加热后再通大气、最后关泵 5、在玻璃真空系统中安置稳压瓶的作用是()。

C、减小系统真空度的波动范围 D、便于实验操作 6、实验室内因用电不符合规定引起导线及电器着火,此时应迅速()。 A、首先切断电源,并用任意一种灭火器灭火 B、切断电源后,用泡沫灭火器灭火 C、切断电源后,用水灭火 D、切断电源后,用CO2灭火器灭火 7、有关气体钢瓶的正确使用和操作,以下哪种说法不正确?()。 A、不可把气瓶内气体用光,以防重新充气时发生危险 B、各种压力表可通用 C、可燃性气瓶(如H2、C2H2)应与氧气瓶分开存放 D、检查减压阀是否关紧,方法是逆时针旋转调压手柄至螺杆松动为止 8、氧化剂要与()之类的化学品分隔开来存放。 A、还原剂 B、腐蚀性物料 C、易燃性液体 D、有机溶剂 9、恒温槽中的水银触点温度计的作用是()。 A、既作测温使用,又作控温使用 B、只能用于控温 C、只能用于测温 D、控制搅拌器马达的功率 10、某学生做完实验后,采用以下方法洗涤所用仪器:①用稀硝酸清洗做过银镜反应的试管;②用酒精清 洗做过碘升华的烧杯;③用浓盐酸清洗做过高锰酸钾分解实验的试管;④用盐酸清洗长期存放过三氯化铁的试剂瓶;⑤用氢氧化钠溶液清洗盛过苯酚的试管。其中操作正确的是()。 A、①③④⑤ B、①②⑤ C、①②③ D、全部正确 11、下列实验操作时,一般情况下不应该相互接触的是()。 A、用胶头滴管向试管滴液体时,滴管尖端与试管内壁 B、向容量瓶中注入溶液时,移液用的玻棒与容量瓶颈内壁 C、用移液管向锥形瓶内注液时,移液管的尖嘴与锥形瓶内壁 D、实验室将HCl气体溶于水时,漏斗口与水面 12、实验中正确配制0.2 mol?L-1的Na2CO3溶液的方法是()。 A、用托盘天平称取5.72 g Na2CO3?10H2O于100 mL容量瓶中,加蒸馏水至刻度。 B、用托盘天平称取5.72 g Na2CO3?10H2O于100 mL烧杯中,加100 mL蒸馏水、搅拌溶解。 C、用托盘天平称取5.7 g Na2CO3?10H2O于100 mL烧杯中,用100 mL量筒量取100 mL蒸馏水,先加 少量蒸馏水于烧杯中,搅拌溶解完全后加剩余蒸馏水。

数据库实验五说课讲解

数据库实验五

武汉纺织大学《数据库系统概论》实验报告 班级:级专业班姓名:学号: 实验时间: 2013 年 5 月 28 日指导教师:张星 实验五:窗体的设计 一、实验目的 1、掌握窗体的结构。 2、掌握用“自动向导”方式创建窗体。 3、掌握窗体的控件属性的定义。 4、掌握用“设计视图”方式创建窗体。 5、掌握表单控件的合理组合。 二、实验准备: 本实验需要用到实验一所创建的“学生成绩管理”的数据库和student、course以及sc表 三、实验内容 1、实验5-1 实验题目:利用已有的“学生成绩管理”数据库中的已知数据表“student”设计窗体“学生信息一览表”。 实验要求:用“自动创建窗体”的方式建立窗体,要求为表格式窗体。

2、实验5-2 实验题目:利用已有的“学生成绩管理”数据库中的已知数据表“student”设计窗体“学生详细信息录入”。 实验要求:用“设计视图”建立窗体,要求为纵栏式窗体。 详细要求: ①窗体要添加一个标题“学生详细信息录入”。 ②student表中的每个字段都要在窗体中有对应的输入文本框,并设置文本 框的标签。 ③给student表添加一个photo字段,并在窗体中设置对应的输入控件。给 学生添加照片。 ④设置一组按钮,实现“第一条”、“上一条”、“下一条”和“最后一条”的功 能,实现数据的保存、删除、新增的功能。设置一组导航按钮,实现“第一条”、“上一条”、“下一条”和“最后一条”的功能。 3、实验5-3 实验题目:利用已有的“学生成绩管理”数据库中的已知数据表“course”设计窗体“课程详细信息录入”。 实验要求:用“设计视图”建立窗体,要求为纵栏式窗体。 详细要求: ①窗体要添加一个标题“课程详细信息录入”。

数据库实验五题目答案

实验五 实验5.1 数据查询 1)要求 以School数据库为例,在该数据库中存在四表格,分别为: ●表STUDENTS(sid, sname, email, grade); ●表TEACHERS(tid, tname, email, salary); ●表COURSES(cid, cname, hour); ●表CHOICES(no, sid, tid, cid, score) 在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。在表CHOICES中保存学生的选课记录。 按以下要求对数据库进行查询操作: (1)查询年级为2001的所有学生的名称并按编号升序排列。 程序:Select sname from students where grade='2001' order by sid asc; (2)查询学生的选课成绩合格的课程成绩。 程序:Select score from choices where score>'59';

(3)查询课时是48或60的课程的名称。 程序:select cname from courses where hour='48'or hour='60'; (4)查询所有课程名称中含有data的课程编号。 程序:select cid from courses where cname like'%data%';

(5)查询所有选课记录的课程号(不重复显示)。 程序:select distinct cid from choices; (6)统计所有教师的平均工资。 程序:select avg(salary) from teachers;

第五次无线传感器网络实验

南昌航空大学实验报告 二O 一六年五月 3 日 课程名称:无线传感器网络实验名称:点对点通信实验 班级:姓名: 指导教师评定:签名: 一、实验目的 1. 了解CC2530无线通信的基本原理和用法; 2. 掌握实验编译、下载和测试的方法; 3. 分析CC2530 BasicRF工程的文件组织和源代码,为学习Z-Stack协议 栈奠定基础。 二、实验内容 1.将一个CC2530节点(称为1号节点)编程为受控节点,将另一个CC2530 节点(称为2号节点)编程为控制节点; 2.将2号节点的USB232通信接口通过USB线连接PC;在串口调试助手输 入命令,以无线通信的方式控制1号节点上的LED。 三、基础知识 1. 工程文件介绍 CC2530 BasicRF有三个文件夹,本实验所使用的eww文件(workspace)是经过删减的,删掉了4个不使用的工程,仅保留了light_switch工程,并且此工程内部的LCD、button等硬件不具备的资源或不使用的资源相关的.h和.c文件进行了删减。 docs文件夹: 打开文件夹里面仅有一个名为CC2530_Software_Examples的PDF文档,文档的主要内容是介绍BasicRF的特点、结构及使用,里面Basic RF包含三个实验例程:无线点灯、传输质量检测、谱分析应用。

Ide文件夹: 有三个文件夹,及一个cc2530_sw_examples.eww工程,在IAR环境中打开,在workspace看到。 Ide\Settings文件夹: 主要保存有读者自己的IAR环境里面的设置。 Ide\srf05_CC2530文件夹: 仅有一个iar文件夹,进入之后有工程light_switch.eww,还有temp文件夹存放临时文件,settings文件夹存放工程的一些设置文件。 Source文件夹: 打开文件夹里面有apps文件夹和components文件夹 Source\apps文件夹: 存放BasicRF实验的应用实现的源代码 Source\components文件夹: 包含着BasicRF的应用程序使用不同组件的源代码。 打开实验工程: 打开文件夹WSN CC2530 BasicRF\ide\路径里的cc2530_sw_examples.eww,并点击application的light_switch.c。 2、Basic RF layer介绍及其工作过程 关键字: CCM ‐Counter with CBC‐MAC (mode of operation) HAL ‐Hardware Abstraction Layer (硬件抽象层) PAN ‐Personal Area Network (个人局域网) RF ‐Radio Frequency (射频) RSSI ‐Received Signal Strength Indicator(接收信号强度指示) 在介绍Basic RF之前,来看看这个实验例程设计的大体结构,如图所示Basic RF例程的软件设计框图就如一座建筑物,Hardware layer放在最底,肯定是你实现数据传输的基础了。Hardware Abstraction layer它提供了一种接口来访问TIMER,GPIO,UART,ADC等。这些接口都通过相应的函数进行实现。Basic RF layer为双向无线传输提供一种简单的协议

第五次实验报告

第五次实验报告 一、实验名称 门电路逻辑功能及测试 二、实验目的 1.熟悉门电路逻辑功能 2.熟悉数字电路实验箱及示波器的使用方法 3.学会上述电路的测试和分析方法 三、实验仪器及材料 函数信号发生器 EE1641B1 一台 示波器 GOS-620 一台 万用表 Fluke-15B 一块 数字电路实验箱 TPE-D 一台 器件:74LS20 双四输入“与非”门一片 74LS86 二输入端四“异或”门一片 74LS00 二输入端四“与非”门一片 74LS04 六反相器一片 四、实验内容和步骤 实验前先检查实验箱电源是否正常,然后选择实验用的集成电路,按自己设计的实验接线图接好连线,特别注意 U及地线不能接 CC 错(否则芯片容易烧坏)。实验中改动接线须先断开电源,接好线后再通电实验。 1.测试门电路逻辑功能

(1)选用双四输入“与非”门74LS20一只,插入插座中,如图接线,输入端S1-S4(电平开关输出插口)输出端解电平 显示二极管 (2)将电平开关按表5-1置位,分别测出电压及逻辑状态。 表5-1 门电路功能数据表 2.“异或”门逻辑功能测试 (1)选二输入四“异或”门电路74LS86,按图接线,输入端1、2、 4、5接电平开关,输入端A、B、Y接电平显示发光二极管。

表5-2 “异或”门逻辑功能测试数据 (1)用74LS00如图5-3、5-4接线,将输入输出逻辑关系分别填入

表5-3、5-4中。 表5-3 测试电路1数据 表5-4 测试电路2数据

(2)逻辑表达式为: 电路1:Y=A○+ B 电路2:Y=) AB+ Z=AB A (B 4.逻辑门传输延迟时间的测量 用六反相器(非门)74LS00按图接线,输入100kHz连续脉冲,用双踪示波器测量输入输出相位差,计算每个门的平均传输延迟时间 t值。 pd 平均延迟时间为47m μ 5.利用“与非”门控制输出 用一片74LS00按图接线,S接任一电平开关,用示波器观察S对输出脉冲的控制作用。 6.用“与非”门组成其他门电路并测试验证 (1)组成“或非”门 用一片二输入端四“与非”门组成“或非”门。画出电路图,测试并填入表5-5。

数据库试验答案

计算机与信息学院 数据库实验报告 专业班级 学生姓名及学号 课程教学班号 任课教师 实验指导教师 实验地点 2012 ~2013 学年第二学期

实验1 使用向导创建和删除数据库 一、实验目的 1.熟悉SQL Server 中SQL Server Management Studio的环境 2.了解SQL Server 数据库的逻辑结构和物理结构 3.掌握使用向导创建和删除数据库的方法 二、实验要求 1.熟练使用SSMS进行数据库的创建和删除操作。 2.完成实验报告。 三、实验内容 设有一学籍管理系统,其数据库名为“EDUC”。 初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长; 日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”。 日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。 四、实验步骤

1.使用SQL Server Management Studio(简称SSMS)创建数据库。 (1)启动SSMS 在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。 (2)建立数据库 在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。

jQuery第五次实验报告

电子科技大学成都学院云计算系标准实验报告 (实验)课程名称jQuery 电子科技大学成都学院云计算系

电子科技大学成都学院 实验报告 学生姓名:王建尧学号:1641310911 指导教师:康晓慧实验地点:二教实验时间:15-16 一、实验室名称:云计算系计算机实验室 二、实验项目名称:jQuery+html+css实现打地鼠游戏 三、实验学时:6 四、实验原理: jQuery技术,html5技术,css3技术 五、实验目的: (1)掌握jQuery选择器,过滤器,常用方法,常用动画 (2)掌握div ul li布局; 六、实验结果和代码展示 请分步骤描述你完成本次实验的过程 1.首页界面:点击开始出现num行num列的表格,请写出实现该 功能的jQuery代码、html代码、css代码,并截图展示。 $("#main ul li").detach(); var num=$("#num").val(); for(i=0;i");} var w=Math.floor($("#main ul").width()/num)-2; $("#main ul li").width(w); $("#main ul li").height(w);

Body 行数: 2.出现图片:页面上循环地出现和消息图片(地鼠和兔子),请写 出实现该功能的jQuery代码、html代码和css代码,并截图展示。 $("#main ul li").empty(); var num=$("#num").val(); var hh=Math.floor(Math.random()*num*num); var bb=Math.floor(Math.random()*num*num); $("#main ul li").eq(hh).html(""); while(hh==bb){bb=Math.floor(Math.random()*num*num);} $("#main ul li").eq(bb).html(""); jiange=parseInt($("#speed").val()); $(".dishu").fadeOut(jiange,function(){ if ($(this).attr('flag')!=1) { score-=1; $("#integration").html(score); } }); $(".tuzi").fadeOut(jiange,function(){ if ($(this).attr('flag')!=1) { score-=1; $("#integration").html(score);

同济大学数据库实验5答案

create proc procA as select* from student exec proca create proc procB @_year char(4) as select* from student where year(birthday )=@_year declare @_year char(4) set @_year ='1994' exec procB@_year create proc procf @_Snum char(30) as select s.snum ,avg(score)as平均成绩,count(https://www.wendangku.net/doc/744827722.html,um)as选秀门数,sum(1-score/60)as不及格门数 from student s,course c,sc,sections st where s.snum =sc.snum and sc.secnum =st.secnum and https://www.wendangku.net/doc/744827722.html,um =https://www.wendangku.net/doc/744827722.html,um and S.Snum =@_Snum group by S.Snum DECLARE @_SUNM char(30) set @_SUNM ='s001' exec procf@_sunm CREATE PROC Procd @_snum char(4),@_avg int out,@_selected_course int out,@_failed_course int out AS SELECT @_avg=AVG(score),@_selected_course=COUNT(cnum),@_failed_course=sum(1-score/60) FROM sc JOIN sections ON sc.secnum =sections.secnum WHERE snum=@_snum

数据库第五次实验报告

南昌航空大学实验报告 二0一年月日 课程名称:数据库原理实验名称:数据库的并发控制与恢复备份 班级:姓名:同组人: 指导教师评定:签名: 1、实验环境 1、 Windows2000或以上版本; 2、SQLServer2000或2005。 二、实验目的 1.掌握数据库并发控制与恢复备份基础知识; 2.掌握创建、修改、使用、数据库并发控制与恢复的不同方法。 三、实验步骤及参考源代码 实验一:数据库并发控制 1、丢失数据 create table sales (客户代号char(5)primary key, 数量int null) insert into sales values('A0001',0) create procedure modi_a as declare @i int declare @s1 int set transaction isolation level read committed select @i=1 while(@i<=2000)begin begin tran select @s1=数量from sales where客户代号 ='A0001' waitfor delay '00:00:00.002' update sales set数量=@s1+1 where客户代号 ='A0001' commit tran

select @i=@i+1 end create procedure modi_m as declare @i int declare @s1 int set transaction isolation level read committed select @i=1 while(@i<=2000)begin begin tran select @s1=数量from sales where客户代号 ='A0001' waitfor delay '00:00:00.002' update sales set数量=@s1-1 where客户代号 ='A0001' commit tran select @i=@i+1 end 同时运行存储过程modi_a和modi_m可以看到如下结果: 本应该数量一栏应该是0的,说明数据发生了丢失数据。 将两个存储过程中事务中select语句改为: select @s1=数量 from sales with(tablockx) where 客户代号=’A0001’ 然后再次同时运行两个存储过程,结果如下: 可以看到如果在存储过程中对数据加上独立锁后数量结果始终为0。 2、脏读数据 create procedure dirt_wroll as declare @i int declare @s1 int set transaction isolation level read uncommitted select @i=1 while(@i<=16000)begin select @i=@i+1

《数据库原理》课程实验报告.

2013-2014学年第一学期《数据库原理》 课程实验报告 学号: 20112723 学生姓名:林苾湲 班级:软件工程2011-2 教师:陶宏才 辅导老师:张建华刘宝菊 2013年12月

实验一:表及约束的创建1.1 实验目的与内容 目的:创建数据表、添加和删除列、实现所创建表的完整性约束。 内容:11-2、11-26~33。 报告:以11-31作为实验一的报告。 1.2 实验代码及结果 1.2.1 实验代码 (1)CREATE TABLE orderdetail20112723 ( Order_no char(6) PRIMARY KEY CONSTRAINT Order_no_constraint20112723 CHECK(Order_no LIKE'[A-Z][A-Z][0-9][0-9]'), Cust_no char(6) NOT NULL, P_no char(6) NOT NULL, Order_total int NOT NULL, Order_date datetime NOT NULL, CONSTRAINT person_contr20112723 FOREIGN KEY (P_no) REFERENCES person20112723(P_no) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT customer_contr20112723 FOREIGN KEY (Cust_no) REFERENCES customer20112723(Cust_no) ON DELETE CASCADE ON UPDATE CASCADE, ) (2)ALTER TABLE salary20112723 ADD CONSTRAINT Pno_FK20112723 FOREIGN KEY(P_no) REFERENCES person20112723(P_no) 1.2.2 实验结果 (1)

相关文档