文档库 最新最全的文档下载
当前位置:文档库 › answer 实验六

answer 实验六

answer 实验六
answer 实验六

实验六

实验名称:

管道通信

实验目的:

1.掌握管道的通信原理与过程

2.可以使用管道实现进程间通信

实验时间

6学时

预备知识:

1.概念

管道有两种类型:无名管道和有名管道。无名管道没有名字,也从来不在文件系统中出现,只是和内存中的一个索引节点相关联的两个文件描述符,该索引节点指向指向内存中的一个物理块。写进程向管道写入数据时,字节被复制到共享数据页面中,读进程从管道读出数据时,字节从共享页面中读出。无名管道是半双工的,数据只能在一个方向传送,而且只能在相关的、有共同祖先的的进程之间使用。

有(命)名管道(FIFO)可以为两个不相关的进程提供通信。它不是临时对象,是文件系统中的一个实体,可以用mknod和mkfifo创建。在写进程使用之前,必须让读进程先打开管道,任何读进程从中读取之前必须有写进程向其写入数据。FIFO有一个路径与之关联,故无亲缘关系的进程可以访问同一个FIFO。

2.无名管道工作原理

无名管道由单个进程创建,但很少在单个进程内使用。其典型用途是在一个父进程和子进程之间通信。首先由一个进程创建一个管道后调用fork派生一个自身的拷贝,如图1:

然后,父进程关闭该管道的读出端,子进程关闭同一管道的写入端,这样就在父子进程间提供了一个单项数据流,如图2。

当需要一个双向数据流时,必须建立两个管道,每个方向一个,实际步骤如下: 1. 创建管道1(fd1[0]和fd1[1])和管道2(fd2[0]和fd2[1]) 2. fork()

3. 父进程关闭管道1的读出端fd1[0] 4. 父进程关闭管道2的写入端fd2[1] 5. 子进程关闭管道1的写入端fd1[1] 6. 子进程关闭管道2的读出端fd2[0] 管道布局如图3: 道

读写分别使用read和write系统调用,其中读取字节数不应大于PIPE_BUF(中定义,主要是为了保证原子操作),因此通常定义缓冲区大小为PIPE_BUF。管道使用完后要关闭(close)。

3.基本命令

2.1 $command1 | command2

将command1的标准输出作为command2的标准输入。

3.2mknod 创建块、字符或管道文件

3.3mkfifo 创建一个命名管道(FIFO)

4.系统调用

4.1 pipe(建立管道)

表头文件#include

定义函数int pipe(int filedes[2]);

函数说明pipe()会建立管道,并将文件描述词由参数filedes数组返回。filedes[0]为管道里的读取端,filedes[1]则为管道的写入端。

返回值若成功则返回零,否则返回-1,错误原因存于errno中。

错误代码EMFILE 进程已用完文件描述词最大量。

ENFILE 系统已无文件描述词可用。

EFAULT 参数filedes数组地址不合法。

4.2 mkfifo(建立具名管道)

表头文件#include

#include

定义函数int mkfifo(const char * pathname,mode_t mode);

函数说明mkfifo()会依参数pathname建立特殊的FIFO文件,该文件必须不存在,而参数mode为该文件的权限(mode&~umask),因此umask值也会影响到FIFO文件的权限。mkfifo()建立的FIFO文件其他进程都可以用读写一般文件的方式存取。当使用open()来打开FIFO文件时,O_NONBLOCK旗标会有影响

1、当使用O_NONBLOCK 旗标时,打开FIFO 文件来读取的操作会立刻返回,但是若

还没有其他进程打开FIFO 文件来读取,则写入的操作会返回ENXIO 错误代码。

2、没有使用O_NONBLOCK 旗标时,打开FIFO 来读取的操作会等到其他进程打开

FIFO文件来写入才正常返回。同样地,打开FIFO文件来写入的操作会等到其他进程打

开FIFO 文件来读取后才正常返回。

返回值若成功则返回0,否则返回-1,错误原因存于errno中。

错误代码EACCESS 参数pathname所指定的目录路径无可执行的权限

EEXIST 参数pathname所指定的文件已存在。

ENAMETOOLONG 参数pathname的路径名称太长。

ENOENT 参数pathname包含的目录不存在

ENOSPC 文件系统的剩余空间不足

ENOTDIR 参数pathname路径中的目录存在但却非真正的目录。

EROFS 参数pathname指定的文件存在于只读文件系统内。

4.3 open(打开文件)

表头文件#include

#include

#include

定义函数int open( const char * pathname, int flags);

int open( const char * pathname,int flags, mode_t mode);

函数说明参数pathname 指向欲打开的文件路径字符串。下列是参数flags 所能使用的旗标:

O_RDONL Y 以只读方式打开文件

O_WRONL Y 以只写方式打开文件

O_RDWR 以可读写方式打开文件。上述三种旗标是互斥的,也就是不可同时使用,但可与下列的旗标利用OR(|)运算符组合。

O_CREAT 若欲打开的文件不存在则自动建立该文件。

O_EXCL 如果O_CREAT 也被设置,此指令会去检查文件是否存在。文件若不存在则建立该文件,否则将导致打开文件错误。此外,若O_CREAT与O_EXCL同时设置,并且欲打开的文件为符号连接,则会打开文件失败。

返回值若所有欲核查的权限都通过了检查则返回0 值,表示成功,只要有一个权限被禁止则返回-1。

错误代码EEXIST 参数pathname 所指的文件已存在,却使用了O_CREAT和O_EXCL 旗标。

EACCESS 参数pathname所指的文件不符合所要求测试的权限。

EROFS 欲测试写入权限的文件存在于只读文件系统内。

EFAULT 参数pathname指针超出可存取内存空间。

EINV AL 参数mode 不正确。

ENAMETOOLONG 参数pathname太长。

ENOTDIR 参数pathname不是目录。

ENOMEM 核心内存不足。

ELOOP 参数pathname有过多符号连接问题。

EIO I/O 存取错误。

4.4 close(关闭文件)

表头文件#include

定义函数int close(int fd);

函数说明当使用完文件后若已不再需要则可使用close()关闭该文件,二close()会让数据写回磁盘,并释放该文件所占用的资源。参数fd为先前由open()或creat()所返回的文件描述词。

返回值若文件顺利关闭则返回0,发生错误时返回-1。

错误代码EBADF 参数fd 非有效的文件描述词或该文件已关闭。

4.5 read(由已打开的文件读取数据)

表头文件#include

定义函数ssize_t read(int fd,void * buf ,size_t count);

函数说明read()会把参数fd 所指的文件传送count个字节到buf指针所指的内存中。

若参数count为0,则read()不会有作用并返回0。返回值为实际读取到的字节数,如果返回0,表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动。

错误代码EINTR 此调用被信号所中断。

EAGAIN 当使用不可阻断I/O 时(O_NONBLOCK),若无数据可读取则返

回此值。

EBADF 参数fd 非有效的文件描述词,或该文件已关闭。

4.6 write(将数据写入已打开的文件内)

表头文件#include

定义函数ssize_t write (int fd,const void * buf,size_t count);

函数说明write()会把参数buf所指的内存写入count个字节到参数fd所指的文件内。

当然,文件读写位置也会随之移动。

返回值如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。

错误代码EINTR 此调用被信号所中断。

EAGAIN 当使用不可阻断I/O 时(O_NONBLOCK),若无数据可读取则返

回此值。

EADF 参数fd非有效的文件描述词,或该文件已关闭。

4.7 unlink(删除文件)

表头文件#include

定义函数int unlink(const char * pathname);

函数说明unlink()会删除参数pathname指定的文件。如果该文件名为最后连接点,但有其他进程打开了此文件,则在所有关于此文件的文件描述词皆关闭后才会删除。如果参数pathname为一符号连接,则此连接会被删除。

返回值成功则返回0,失败返回-1,错误原因存于errno

错误代码EROFS 文件存在于只读文件系统内

EFAULT 参数pathname指针超出可存取内存空间

ENAMETOOLONG 参数pathname太长

ENOMEM 核心内存不足

ELOOP 参数pathname 有过多符号连接问题

EIO I/O 存取错误

5.标准库函数

5.1 popen(建立管道I/O)

表头文件#include

定义函数FILE * popen( const char * command,const char * type);

函数说明popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令。参数type可使用“r”代表读取,“w”代表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个文件指针。随后进程便可利用此文件指针来读取子进程的输出设备或是写入到子进程的标准输入设备中。此外,所有使用文件指针(FILE*)操作的函数也都可以使用,除了fclose()以外。

返回值若成功则返回文件指针,否则返回NULL,错误原因存于errno中。

错误代码EINV AL参数type不合法。

5.2 pclose(关闭管道I/O)

表头文件#include

定义函数int pclose(FILE * stream);

函数说明pclose()用来关闭由popen所建立的管道及文件指针。参数stream为先前由popen()所返回的文件指针。

返回值返回子进程的结束状态。如果有错误则返回-1,错误原因存于errno中。

错误代码ECHILD pclose()无法取得子进程的结束状态。

实验要求:

1.阅读以下程序:

#include

#include

#include

main()

{

int filedes[2];

char buffer[80];

if(pipe(filedes)<0)

printf(“pipe error”);

if(fork()>0){

char s[ ] = “hel lo!\n”;

close(filedes[0]);

write(filedes[1],s,sizeof(s));

close(filedes[1]);

}else{

close(filedes[1]);

read(filedes[0],buffer,80);

printf(“%s”,buffer);

close(filedes[0]);

}

}

编译并运行程序,分析程序执行过程和结果,注释程序主要语句。

2.阅读以下程序:

#include

#include

#include

main()

{

char buffer[80];

int fd;

char *FIFO;

unlink(FIFO);

mkfifo(FIFO,0666);

if(fork()>0){

char s[ ] = “hello!\n”;

fd = open (FIFO,O_WRONLY);

write(fd,s,sizeof(s));

close(fd);

}else{

fd= open(FIFO,O_RDONL Y);

read(fd,buffer,80);

pri ntf(“%s”,buffer);

close(fd);

}

}

编译并运行程序,分析程序执行过程和结果,注释程序主要语句。

3.阅读以下程序:

#include

main()

{

FILE * fp;

char buffer[80];

fp=popen(“cat /etc/passwd”,”r”);

fgets(buffer,sizeof(buffer),fp);

printf(“%s”,buffer);

pclose(fp);

}

编译并运行程序,分析程序执行过程和结果,注释程序主要语句。

4.编写一个程序,读取一个数据文件,对每一个数据进行某种运算,再在屏幕输出计算结

果。要求以上工作用两个进程实现,父进程负责读文件和显示,子进程进行计算,进程

间通信使用无名管道。(使用系统调用)

5.编写两个程序,一个创建一个FIFO,并读管道,并显示在屏幕上,另一个每过一段时

间向该管道写数据(进程PID)。运行多个写程序和一个读程序,观察运行结果。(使用系统调用)

实验六 触发器实验报告

实验五 触发器实验报告 [实验目的] 1. 理解Oracle 触发器的种类和用途 2. 掌握行级触发器的编写 [预备知识] 1. PL/SQL 程序设计 [实验原理] 1. 建立触发器 CREA TE [OR REPLACE] TRIGGER <触发器名> BEFORE|AFTER INSERT|DELETE|UPDA TE OF <列名> ON <表名> [FOR EACH ROW] WHEN (<条件>) ON 子句中的名称识别与数据库触发器关联的数据库表 触发器事件指定了影响表的 SQL DML 语句 ( INSERT 、 DELETE 或 UPDA TE) AFTER 指定了触发器在处理完成后触发 BEFORE 指定了触发器在处理完成前触发 默认情况下,触发器每个表触发一次 FOR EACH ROW 选项指定触发器每行触发一次(即触发器为行级触发器) 要使触发器触发,WHEN 子句中布尔型表达式的值必须判定为 TRUE 可以将 REPLACE 添加到 CREA TE 语句以自动删除和重建触发器 2. 行级触发器中引用表数据 在行级触发器中,使用伪记录来表示旧数据:old 和新数据:new 引用示例::new.customer_name, :old.customer_name 3. 行级触发器中的谓词 在一个多条件触发的触发器中,使用谓词可以区分当前触发的操作的类型:触发事件 :old :new Insert 无定义,所有字段都是NULL 该语句完成后插入的值 Update 更新前该行的旧值 更新后该行的值 Delete 删除前该行的值 无定义,所有字段

第5章上机实验报告

第5章上机实验报告 一、实验目的 (1)观察程序运行中变量的作用域74。 (2)学习类的静态成员的使用。 (3)学习多文件结构的C++程序中的使用。 二、实验任务 (1)运行下面的程序,观察变量x,y的值。 【代码lab5-1】 #include"iostream" usingnamespace std; void fun(); int x=1,y=2; int main() { cout<<"Begin..."<

实验3-组合逻辑电路数据选择器实验

南通大学计算机科学与技术学院计算机数字逻辑设计 实验报告书 实验名组合逻辑电路数据选择器实验 班级_____计嵌151_______________ 姓名_____张耀_____________________ 指导教师顾晖 日期 2016-11-03

目录 实验一组合逻辑电路数据选择器实验 (1) 1.实验目的 (1) 2.实验用器件和仪表 (1) 3.实验内容 (1) 4.电路原理图 (1) 5.实验过程及数据记录 (2) 6.实验数据分析与小结 (9) 7.实验心得体会 (9)

实验三组合逻辑电路数据选择器实验 1 实验目的 1. 熟悉集成数据选择器的逻辑功能及测试方法。 2. 学会用集成数据选择器进行逻辑设计。 2 实验用器件和仪表 1、8 选 1 数据选择器 74HC251 1 片 3 实验内容 1、基本组合逻辑电路的搭建与测量 2、数据选择器的使用 3、利用两个 74HC251 芯片(或 74HC151 芯片)和其他辅助元件,设计搭建 16 路选 1 的电路。 4 电路原理图 1、基本组合逻辑电路的搭建与测量 2、数据选择器的使用

3、利用两个 74HC251 芯片(或 74HC151 芯片)和其他辅助元件,设计搭建 16 路选 1 的 电路。 5 实验过程及数据记录 1、基本组合逻辑电路的搭建与测量 用 2 片 74LS00 组成图 3.1 所示逻辑电路。为便于接线和检查,在图中要注明芯片编号及各引脚对应的编号。

图 3.1 组合逻辑电路 (2)先按图 3.1 写出 Y1、Y2 的逻辑表达式并化简。 Y1==A·B ·A =A + A·B=A + B Y2=B·C ·B·A = A · B+ B ·C (3)图中 A、B、C 接逻辑开关,Y1,Y2 接发光管或逻辑终端电平显示。(4)改变 A、B、C 输入的状态,观测并填表写出 Y1,Y2 的输出状态。 表 3.1 组合电路记录

实验六 触发器

一、实验目的 1)理解触发器的用途、类型和工作原理 2)掌握利用T-SQL语句创建和维护触发器的方法 3)掌握利用企业管理器创建、维护触发器的方法 二、实验内容 说明:在所有触发器取名时,请各位同学在所给定的名称后加上下划线及学号后四位数字构成自己的实验触发器名。如:deltr_20051101.各触发器中的所用到的参数变量名自取。 1、利用企业管理器创建与维护触发器 (1)创建简单触发器 创建一个触发器stu_modify在修改student表后,显示一个提示信息,告诉用户有多少行数据被修改了。 创建步骤: create trigger stu_modify on student after insert,delete,update as print'(所影响的行数为:'+cast(@@rowcount as varchar(10))+'行'; 触发器的触发执行测试语句(T-SQL): update Student_20083386 set sex='男' where sno='20050001' 执行结果:

(2)修改触发器 修改stu_modify触发器,使其为一个加密触发器。(提示:加with encpytion关键子句)修改步骤: USE[XSGL_20083386] GO /****** Object: Trigger [dbo].[stu_modify] Script Date: 05/17/2010 19:59:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER trigger[dbo].[stu_modify] on[dbo].[Student_20083386] with Encryption after insert,delete,update as print'(所影响的行数为:'+cast(@@rowcount as varchar(10))+'行)' (3)删除触发器 删除stu_modify触发器。 删除步骤:

实验六

6.1一维数组 【实验目的】 1.熟练掌握使用一维数组编程的方法。 2.熟练掌握排序算法。 【实验内容】 1调试示例 输入一个正整数n,再输入n个整数,将它们排序后由小到大输出。(error07_1.cpp) 源程序(有错误的程序) #include void main() { int i,j,num,a[num]; int change,t; printf("Enter Number: "); scanf("%d",&num); printf("Enter Data: \n"); for(i=0;i0 && change;i--) { change=0; for(j=0;j<=i;j++) if(a[j]>a[j+1]) { /*调试时设置断点*/ t=a[j]; a[j]=a[j+1]; a[j+1]=t; change=1; } } /*调试时设置断点*/ printf("Sorted data:\n"); for(i=0;i

第五章 准实验设计

第五章准实验设计 第一节单组准实验设计 一、准实验设计 (一)定义:介于真实验和非实验之间的一种设计类型,能在一定程度上控制无关变量,操纵自变量、控制实验处理,但不能随机的选择和分配被试。 准实验设计的应用:人格研究、临床心理的研究、社会心理以及教育心理研究常常采用准实验设计。 准实验设计的特点 不需要随机化程序(与实验或真实验最大的区别);研究者只能选择那些已具有了某种不同程度特征的被试。而不能像真实验那样从总体中随机选取被试或随机分组。 能有效解决生态效度和外部效度问题,但不能从准实验研究结果中作出因 果关系的结论,其主要原因是在研究的变量上缺乏严格控制,因而其内部效度较低。 现场研究中采用最多的是准实验设计,不过准实验并不一定都在现场进行。 例:霍桑实验(照明实验、福利实验、群体实验、谈话实验); 社会心理学家所说的“霍桑效应”也就是所谓“宣泄效应”。霍桑工厂是美国西部电器公司的一家分厂。为了提高工作效率,这个厂请来包括心理学家在内的各种专家,在约两年的时间内找工人谈话两万余人次,耐心听取工人对管理的意见和抱怨,让他们尽情地宣泄出来。结果,霍桑厂的工作效率大大提高。这种奇妙的现象就被称作“霍桑效应”。 准实验设计与实验设计的关键区别 它和真实验的主要区别在于,准实验中没有运用随机化程序进行被试选择和实验处理;也不能完全主动地操纵自变量。 在实验设计中,样本的随机分配形成了具有完全可比性的两个组别:实验组和控制组。

准实验设计用对照组取代了实验设计中的控制组。研究者努力创造一个与实验组在所有重要方面都尽可能相似的对照组,但与随机分配产生的控制组而言,它的可比性已经大为逊色了。 时间序列设计 【时间系列设计】 要对实验组做周期性的一系列测量,并在测 量的这一时间系列中间呈现实验变量(X),然后比 较实验变量前后的一系列测量记录是否有显著差异。 (一)模式 O1O2O3O4XO5O6O7O8 (二)应用 坎贝尔关于康涅狄格州的交通死亡人数与实施严 惩制度的关系的研究。 可能出现的结果类型 从两方面考虑结果: 延续性:主要指引入实验处理后的成绩水平或斜率的变化是持续性的还是暂时性的(D、F、G) 。 潜伏性:指引入实验处理后的变化是即时产生的还是潜伏一段时间后才发生。 时间序列设计的统计分析 要点:要结合各次前测和各次后测成绩的变化趋势,联系起来进行统计分析。

数字电路实验报告——数据选择器

第八次实验报告 实验六 数据选择器 一、实验目的要求 1、 熟悉中规模集成电路数据选择器的工作原理与逻辑功能 2、 掌握数据选择器的应用 二、实验仪器、设备 直流稳压电源、电子电路调试器、T4153、CC4011 三、实验线路、原理框图 (一)数据选择器的基本原理 数据选择器是常用的组合逻辑部件之一,它有若干个输入端,若干个控制输入端及一个输出端。 数据选择器的地址变量一般的选择方式是: (1) 选用逻辑表达式各乘积项中出现次数最多的变量(包括原变量与反变量),以简 化数据输入端的附加电路。 (2) 选择一组具有一定物理意义的量。 (二)T4153的逻辑符号、逻辑功能及管脚排列图 (1)T4153是一个双4选1数据选择器,其逻辑符号如图1: 图1 (2) T4153的功能表如下表 其中D0、D1、D2、D3为4个数据输入端;Y 为输出端;S 是使能端,在S 是使能端,在 原SJ 符号

S =0时使能,在S =1时Y=0;A1、A0是器件中两个选择器公用的地址输入端。该器件的 逻辑表达式为: Y=S (1A 0A 0D +101D A A +201D A A +301A A A ) (3) T4153的管脚排列图如图2 图2 (三)利用T4153四选一数据选择器设计一个一位二进制全减器的实验原理和实验线路 (1)一位二进制全减器的逻辑功能表见下表: n D =n A n B 1-n C +n A n B 1-n C +n A n B 1-n C +n A n B 1-n C n C =n A n B 1-n C +n A n B 1-n C +n A n B 1-n C +n A n B 1-n C =n A n B 1-n C +n A n B +n A n B 1-n C (3)根据全减器的逻辑功能表设计出的实验线路图为图3: S 11D 3 1D 2 1D 1 1D 0 1Y

实验六 触发器实验报告

实验六触发器实验报告 触发器实验报告 [实验目的]1、理解Oracle触发器的种类和用途2、掌握行级触发器的编写 [预备知识]1、 PL/SQL程序设计 [实验原理]1、建立触发器 CREATE [OR REPLACE] TRIGGER <触发器名> BEFORE|AFTER INSERT|DELETE|UPDATE OF <列名> ON <表名> [FOR EACH ROW] WHEN (<条件>) ON 子句中的名称识别与数据库触发器关联的数据库表触发器事件指定了影响表的 SQL DML 语句 ( INSERT、 DELETE 或 UPDATE) AFTER 指定了触发器在处理完成后触发 BEFORE 指定了触发器在处理完成前触发默认情况下,触发器每个表触发一次 FOR EACH ROW 选项指定触发器每行触发一次(即触发器为行级触发器)要使触发器触发,WHEN 子句中布尔型表达式的值必须判定为 TRUE 可以将 REPLACE 添加到 CREATE 语句以自动删除和重建触发器2、行级触发器中引用表数据在行级触发器中,使用伪记录来表示旧数据:old和新数据:new 触发事件 :old :new Insert 无定义,所有字段都是NULL该语句完成后插入的值 Update 更新前该行的旧值更新后该行的值 Delete 删除前该行的值无定

义,所有字段都是NULL引用示例::new、 customer_name, :old、customer_name3、行级触发器中的谓词在一个多条件触发的触发器中,使用谓词可以区分当前触发的操作的类型:inserting,updating,deleting。 示例: IF Inserting THEN 语句 ; END IF; IF Updating THEN 语句 ; END IF; IF Deleting THEN 语句 ; END IF;4、触发器的限制 SELECT 语句必须是 SELECT INTO 语句或内部游标声明。 行级触发器不可以对触发表进行查询,包括其调用的子过程中。 不允许 DDL 声明和事务控制语句。 如果由触发器调用存储子过程,则存储子程序不能包括事务控制语句。 :old 和 :new 值的类型不能是 LONG 和 LONG RAW。 [实验内容]1、给Customer表增加一列Savings,类型为int,来存放每个顾客的存款总额。A LTER TABLE customer ADD (saving varchar2(30));select * from customer;2、更新Customer表,使得Savings字段的值正确。 3、在Account表上增加一个行级触发器,当对account的balance进行update和insert一个记录时同步修改Customer的Savings字段,保证数据的一致性。

数字电路实验二

实验2 数据选择器功能测试及设计应用 王玉通信工程 2012117266 一、实验目的 1.掌握中规模集成数据选择器的逻辑功能及测试方法。 2.掌握数据选择器的工作原理及使用方法。 二、实验仪器设备与主要器件 试验箱一个;双踪示波器一台;稳压电源一台。 双4选1数据选择器74LS153;8选1数据选择器74LS151和75LS251. 三、实验原理 能够实现从多路数据中选择一路进行传输的电路叫做数据选择器。数据选择器又称多路选择器,是中规模集成电路中应用非常广泛的组合逻辑部件之一。它是一种与分配器过程相反的器件。它有若干个数据输入端,D0,D1,D2,……,若干个控制输入端A0,A1……和一个或两个输出端Q(或Q非)。当控制输入码A0,A1……具有不同数据组合时,将选择组合码所对应的二进制数Dx输出。由于控制输入端的作用是选择数据输入端的地址,故又称为地址码输入端。 目前常用的数据选择器有2选1、4选1、8选1等多种类型。本实验主要熟悉4选1和8选1数据选择器。 四、实验内容与结果 1.测试74LS153的逻辑功能。 电路如下图: 测试结果为: A0 A1 s1s2Q1 Q2 * * 1 1 0 0 0 0 0 0 1D0 2D0 0 1 0 0 1D1 2D1 1 0 0 0 1D 2 2D2 1 1 0 0 1D3 2D3 2.用多路选择器设计实现一个8421-CD非法码检测电路。使得当输入端为非法码组合时输出1,否则为0.二进制数与BCD码的对应关系如下。写出函数Y的表达式,并进行化简,然后画出电路图,接线调试电路,用发光二极管显示输出结果,观察是否与表2-2-5相符。设

触发器实验报告

. . . . .. . 实验报告 课程名称:数字电子技术基础实验 指导老师: 周箭 成绩:__________________ 实验名称:集成触发器应用 实验类型: 同组学生姓名:__邓江毅_____ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验内容和原理 1、D →J-K 的转换实验 设计过程:J-K 触发器和D 触发器的次态方程如下: J-K 触发器:n n 1 +n Q Q J =Q K +, D 触发器:Qn+1=D 若将D 触发器转换为J-K 触发器,则有:n n Q Q J =D K +。 实验结果: J K Qn-1 Qn 功能 0 0 0 0 保持 1 1 0 1 0 0 置0 1 0 1 1 0 1 翻转 1 0 1 0 1 置1 1 1 (上:Qn ,下:CP ,J 为高电平时) 2、D 触发器转换为T ’触发器实验 设计过程:D 触发器和T ’触发器的次态方程如下: D 触发器:Q n+1= D , T ’触发器:Q n+1=!Q n 若将D 触发器转换为T ’触发器,则二者的次态方程须相等,因此有:D=!Qn 。 实验截图: 专业:电卓1501 姓名:卢倚平 学号:3150101215 日期:2017.6.01 地点:东三404

实验名称:集成触发器应用实验 姓名: 卢倚平 学号: 2 (上:Qn ,下:!Qn )CP 为1024Hz 的脉冲。 3、J-K →D 的转换实验。 ①设计过程: J-K 触发器:n n 1 +n Q Q J =Q K +, D 触发器:Qn+1=D 若将J-K 触发器转换为D 触发器,则二者的次态方程须相等,因此有:J=D ,K=!D 。 实验截图: (上:Qn ,下:CP ) (上:Qn ,下:D ) 4、J-K →T ′的转换实验。 设计过程: J-K 触发器:n n 1 +n Q Q J =Q K +, T ’触发器:Qn+1=!Qn 若将J-K 触发器转换为T ’触发器,则二者的次态方程须相等,因此有:J=K=1 实验截图:

建筑结构试验第五章建筑结构试验设计.

《建筑结构试验》第五章建筑结构试验设计 2004-12-28 建筑结构试验设计中应注意的问题 建筑结构试验设计要解决的问题:试件设计应从哪些方面进行考虑?要注意哪些问题?结构试验对试件设计有哪些要求?常用的模型材料有哪些?结构模型相似的三个定理应如何进行理解?如何确定原型与模型的相似条件?量纲分析法确定相似条件的步骤?为什么有时采用不同于设计计算所规定的荷载图式?试验的加载制度包括哪些内容?试验加载程序包括哪几部分内容?观测仪器如何选择,测读时应遵循什么原则?结构试验时应采取哪些安全措施?试验报告要如何书写? 带着所提出的问题进行有针对性的学习。主要思路如下: 结构试验设计的内容,主要是通过反复研究,确定试验的目的,试验的性质与规模,进行试件设计,选定试验场所,拟定加载与量测方案,设计专用的试验装置和仪表夹具附件以及制订安全技术措施。同时,按试验规模组织试验人员,提出试验经费预算和消耗性器材数量和设备清单。最后在设计规划的基础上提出试验大纲和进度计划。试验工作者对新型的加载设备和测量仪器方面知识准备充分。 一、试件设计 对于试件设计,包括试件的形状,尺寸和数量的选择都要遵循合理可行的规则。 试件设计之所以要注意它的形状,主要是要在试验时形成和实际工作相一致的应力状态。在从整体结构中取出部分构件单独进行试验时,必须要注意其边界条件的模拟,使其能如实反映该部分结构构件的实际工作,同时要注意有利于试验合理加载。 任一试件的设计,其边界条件的实现与试件安装、加载装置与约束条件等有密切的关系。在整体设计时必须进行周密考虑,才能付诸实施。 结构试验所用试件的尺寸和大小,总体上分为真型(实物或足尺结构)和模型两类。不同情况下选择不同的试件尺寸,采用缩尺或真型试件。必要时要考虑尺寸效应的影响,在满足构造要求的情况下,太大的试件也没有必

实验二 数据选择器及其应用

实验二数据选择器及其应用 一、实验原理 数据选择器又叫“多路开关”。数据选择器在地址码(或叫选择控制)电位控制下,从几个数据输入中选择一个并将其送到一个公共的输出端。数据选择器又叫“多路开关”。数据选择器在地址码(或叫选择控制)电位的控制下,从几个数据输入中选择一个并将其送到一个公共的输出端。数据选择器的功能类似一个多掷开关,如图4-1所示,图中有四路数据D0~D3,通过选择控制信号A1、A0(地址码)从四路数据中选中某一路数据送至输出端Q。 图4-1 4选1数据选择器示意图图4-2 74LS151引脚排列 数据选择器为目前逻辑设计中应用十分广泛的逻辑部件,它有2选1、4选1、8选1、16选1等类别。 数据选择器的电路结构一般由与或门阵列组成,也有用传输门开关和门电路混合而成的。

二、实验目的 1、掌握中规模集成数据选择器的逻辑功能及使用方法; 2、学习用数据选择器构成组合逻辑电路的方法。 三、实验设备与器件 1、+5V直流电源 2、逻辑电平开关 3、逻辑电平显示器 4、74LS151(或CC4512) 74LS153(或CC4539) 四、实验内容 1、测试数据选择器74LS151的逻辑功能。 接图4-7接线,地址端A2、A1、A0、数据端D0~D7、使能端S接逻辑开关,输出端Q接逻辑电平显示器,按74LS151功能表逐项进行测试,记录测试结果。 图4-7 74LS151逻辑功能测试

2、测试74LS153的逻辑功能。 测试方法及步骤同上,记录之。 逻辑功能见下表: 3、用8选1数据选择器74LS151设计三输入多数表决电路。 1)写出设计过程 有三个人进行表决,当其中任意两个人赞同时,输出为真,否则输出为假。真值表如下:

实验6 数据库实验——存储过程和触发器

实验6 存储过程与触发器 一、实验目的 1、加深与巩固对存储过程与触发器概念的理解。 2、掌握触发器的简单应用。 3、掌握存储过程的简单应用。 二、实验内容 一)存储过程: 1、创建一存储过程,求l+2+3+…+n,并打印结果。 CREATE PROCEDURE addresult AS DECLARE @n int=10,/*最后一个数*/ @i int=0, @result int=0 /*结果*/ BEGIN WHILE(@i<=@n) BEGIN SET @result=@result+@i SET @i=@i+1 END PRINT'1+2+3+、、、+n的结果就是:' PRINT @result RETURN(@result) END GO 2.调用上面的addresult存储过程,打印l十2+3+…+10的结果。EXEC addresult

3、修改上述存储过程为addresult1,使得@n为输入参数,其具体值由用户调用此存储过程时指定。 CREATE PROCEDURE addresult1 @n int=10 /*最后一个数*/ AS DECLARE @i int=0, @result int=0 /*结果*/ BEGIN WHILE(@i<=@n) BEGIN SET @result=@result+@i SET @i=@i+1 END PRINT'1+2+3+、、、+n的结果就是:' PRINT @result RETURN(@result) END GO 4、调用上面修改后的addresult1存储过程,打印l+2+3+…+100的结果。 EXEC addresult1 100 5.修改上述存储过程为addresult2,将@n参数设定默认值为10,并改设@sum为输出参数,让主程序能够接收计算结果。

实验六答案

实验六函数与编译预处理答案 一、断点的设置和取消、单步执行跟踪进入函数和跳出函数方法 练习 2、调试练习: 要求:模仿示例调试以下程序,直到输出正确结果,源程序名为error6_2.c 程序功能:利用函数调用求“1!+2!+3!+4!+...+10!”的值(参见实验教材72页程序填空题第(1)小题) 源程序(有错误的程序——不是语法错误,而是算法错误或逻辑错误): 改正错误后的源程序: void main() { long s=0,i; long mm(int k); for(i=1;i<=10;i++) s=s+mm(i); printf("1!+2!+3!+...+10!=%ld\n",s); } long mm(int k) { long t=1, j; for(j=1;j<=k;j++) t=t*j; return (t); } 3、综合调试、改错练习: 以下程序有多处错误,请综合运用前面所学过的所有知识和VC++的调试手段,改正程序的各种错误,使其运行出正确的结果。程序的功能是:利用函数调用求任意两个整数的和。 改正错误后的源程序:

main() { int sum(int a,int b); int x,y; scanf("%d,%d",&x,&y); printf("x=%d,y=%d\n",x,y); printf("%d+%d=%d\n",x,y,sum(x,y)); } int sum(int a,int b) { return (a+b); } 二、编程练习 利用VC++编写程序,并调试、运行,直到输出正确结果。编程练习1: 注意: 这里提供了以填空的形式出现源程序参考清单,目的是给同学们一个思路。最好不要将此源程序清单复制到VC++中,否则会出现多处语法错误。同学们可以据此思路来填写有关语句,从而完成程序。在调试程序时,一定要运用前面学过的方法。 下面函数是实现求[1,3000]能被17或23整除的整数的个数。请将程序补充完整,并调试运行,直到输出正确结果。(源文件名为blank6_1.c) 完成填空后的源程序: #include int f(int m, int n) { int i, count=0; for(i=m; i<=n; i++) if(i%17==0||i%23==0) count++; return count; } main() {int m,n; scanf("%d%d",&m,&n); printf("count=%d\n", f(m,n)); }

第五章 实验方法

第五章实验方法 本节及下面几节主要介绍广角X射线的应用,小角X射线散射将在第十二章介绍. 依据使用样品不同,可分为单晶法及多晶法;依据对X射线记录探测方法不同也可分为照相法和衍射仪(计数器)法. 对聚合物结构分析大多数情况是使用多晶材料. 采用粉末状晶体或多晶体为试样的X射线衍射(无论照相或计数器法)均称粉末法. §5.1 照相法 照相法是用底片摄取样品衍射图像的方法,在高聚物研究中常使用平面底片法,圆筒底片法,德拜—谢乐(Debye-Scherrer)(粉末法). 各种照相法都有自己的特点. §5.1.1 平面底片法 最常使用的照相机是平面底片照相机,或称平板照相机(常被误称为Laue相机). 使用一定波长X射线;如CuKα辐射,若使用的是无规取向高聚物多晶样品,所得到的结果如图5.1所示为许多同心圆环,又称为德拜—谢乐环,显然只有入射X射线入射到面间距为d的原子面网,并满足Bragg条件特定的θ角,才会引起n次反射,此时每个圆环代表一个hkl面网,衍射圆轨迹为以入射X射线为轴2θ为半顶角圆锥(图5.1). 图5.1 平面底片(平板)照相法

图5.2 无规则取向POM(六方)平板图 图5.2系无规取向聚甲醛平板图. 由图5.1得 )2/2(tan 12 1L x -= θ x 是衍射环半径,为测量准确,常测环的直径2X.故有2X/2L 的关系,L 系样品至底片 间距离. 由Bragg 公式 )] 2/2(tan sin[2121 L x d -= λ (5.1) d 是衍射平面距离,λ系入射X 射线波长. 因POM 属六方晶系,若每个环的指数已知,将 测得的每个环x 2值,代入上式求得d 后,再代入表(4.2)相应晶系的面间距计算公式中 22 2222)(134 c l a l hk h d hkl +++= (5.2) 可粗略算出晶胞参数,结果列于表5.1中. 表5.1 POM 晶胞参数 如使用单轴取向样品,沿POM 纤维轴拉伸,此时微晶C 轴(纤维轴)沿拉伸方向择优取 向,其它轴是无规取向,使用平面底片照相得到入射X 射线垂直纤维轴的照片(常简称纤维图),由于样品取向,图5.2连续对称的衍射圆环在平面底片上退化为弧,随取向程度增加

实验六 存储过程和触发器

实验六存储过程和触发器 电子信息科学与技术罗滨志(120802010051) 一、实验目的 (1)理解存储过程和触发器的功能和特点; (2)学会使用Transact-SQL编写存储过程和触发器的方法; (3)学会如何使用管理平台创建存储过程和触发器; (4)掌握存储过程的创建、执行与删除; (5)掌握触发器的创建、修改和删除操作; (6)理解可以使用存储过程和触发器来维护数据完整性。 二、实验准备 (1)了解存储过程的基本概念和类型。 (2)了解创建存储过程的Transact —SQL语句的基本语法。 (3)了解查看、执行、修改和删除存储过程的基本语法。 (4)了解触发器的基本概念和类型。 (5)了解创建触发器的Transact —SQL语句基本用法。 (6)了解查看、修改和删除触发器的Transact —SQL语句的用法。 三、实验内容和步骤 1.创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名对应的学生的各科成绩。SQL语句 create proc stu_info@sname varchar(20) as select grade from sc,student where student.sno=sc.sno and sname=@sname go 如图所示:

2. 使用studentsdb数据库中的student表,course表、sc表。 (1)创建一个存储过程stu_score,查询学号为2012001的学生的姓名,课程名称,分数。SQL语句 create proc stu_score@sno varchar(20) as select sname,cname,grade from sc,student,course where student.sno=sc.sno and https://www.wendangku.net/doc/1515487145.html,o=https://www.wendangku.net/doc/1515487145.html,o and student.sno=@sno go 如图所示:

实验六:广域网协议配置(2012最新版)

大连理工大学本科实验报告 课程名称:网络综合实验学院(系):软件学院 2012年3月22日

大连理工大学实验报告 学院(系):专业:班级: 姓名:学号:组:___ 实验时间:实验室:实验台: 指导教师签字:成绩: 实验六:广域网协议配置 一、实验目的 两台路由器之间的PPP和Frame Relay协议配置 二、实验原理和内容 1、路由器的基本工作原理 2、配置路由器的方法和命令 3、PPP的基本原理及配置 4、Frame Relay协议的基本原理及配置 三、实验环境以及设备 2台路由器、2台Pc机、双绞线若干 四、实验步骤(操作方法及思考题) {警告:路由器高速同异步串口(即S口)连接电缆时,无论插拔操作,必须在路由器电源关闭情况下进行;严禁在路由器开机状态下插拔同/异步串口电缆,否则容易引起设备及端口的损坏。} 1、请在用户视图下使用“reset saved-configuration”命令和“reboot”命令分别 将两台路由器的配置清空,以免以前实验留下的配置对本实验产生影响。2、在确保路由器电源关闭情况下,按照下图联线组建实验环境。配置IP地址, 以及配置PC 202.0.0.2 的缺省网关为202.0.0.1,PC 202.0.1.2 的缺省网关为202.0.1.1。

202.0.0.2/24202.0.1.2/24 AR18-12 AR28-11 3、在两台路由器上都启动 RIP ,目标是使两台PC 机之间能够ping 通。请将为达到此目标而在两台路由器上执行的启动RIP 的命令写到实验报告中。你们的两台PC 机之间ping 通了吗?在缺省情况下,两台路由器的串口之间使用的是哪种广域网协议?(15分) 答: AR18-12: [RA]rip [RA-rip]network all AR28-11: [RB]rip [RB-rip]network 0.0.0.0 缺省情况下,两台路由器之间使用PPP 协议。ping 通截图如下: 4、PPP 协议PAP 验证配置: (1) 配置AR18-12为验证方,AR28-11为被验证方,然后测试两台PC 机 之间是否能够ping 通。请将在两台路由器上执行的配置命令写到实验报告中。(15分) 答:

第5章练习与实验答案

第5章练习与实验答案 练习5 1.选择题 (1)D (2)C (3)B (4)C (5)B (6)A 2.填空题 (1) href=“mailto:someone@https://www.wendangku.net/doc/1515487145.html,” (2) name、“#target1” (3)绝对路径、相对路径、根路径。相对、根路径,绝对。 3.问答题 见教材。 实验5 1.代码 apple网站

apple网站



2.代码

实验六 存储过程和触发器

实验六存储过程与触发器 一、目的与要求 1.掌握编写数据库存储过程的方法。 2.掌握建立数据库触发器的方法,通过实验观察触发器的作用与触发条件设置 等相关操作。 二、实验准备 1.了解编写存储过程与调用的T-SQL语法; 2.了解触发器的作用; 3.了解编写触发器的T-SQL语法。 三、实验内容 (一)存储过程 在studentdb数据库中建立存储过程getPractice,查询指定院系(名称)(作为存储过程的输入参数)中参与“实践”课程学习的所有学生学号、姓名、所学课程编号与课程名称,若院系不存在,返回提示信息。 提示:D_Info表中存储了院系代码D_ID,而St_Info表中学号字段St_ID的前两位与之对应,则D_Info表与St_Info表之间的联系通过这两个字段的运算构成连接条件。 1.分别执行存储过程getPractice,查询“法学院”与“材料科学与工程学院” 的学生中参与“实践”课程的所有学生学号、姓名、所学课程编号与课程名称。 create procedure getPractice @D_Name varchar(30) output as begin if not exists (select * from D_Info where D_Name= @D_Name ) print '对不起,该院系不存在' else select st_info、St_ID,C_Info、C_No,C_Name from s_c_info inner join st_info on st_info、St_ID=s_c_info、st_id inner join C_Info on s_c_info、c_no=C_Info、C_No where st_info、St_ID in ( select St_ID from st_info join D_Info on D_Info、D_ID =left(st_info、St_ID,2) where C_Info、C_Type='实践' and D_Info、D_Name= @D_Name ) end go

实验六压缩试验

实验六 压缩试验(快速法) 1 试验目的 测定土的湿密度、含水率,计算土样干密度、初始孔隙比,并用此密度、含水率条件下的试样进行压缩试验,根据试验数据绘制孔隙比与压力的关系曲线(即压缩曲线),确定土的压缩系数、压缩模量,评价土体的压缩性。 ⑴掌握以磅秤式(或杠杆式)加压设备测定土压缩系数的方法,并根据试验数据绘制孔隙比与压力的关系曲线(即压缩曲线); ⑵根据求得的压缩系数21-a 评定土的压缩性。 2 试验方法 ⑴密度试验——环刀法; ⑵含水率试验——烘干法; ⑶压缩试验——快速固结试验法。 3 试验原理 土样在外力作用下便产生压缩,其压缩量的大小是与土样上所加的荷重大小以及土样的性质有关。如在相同的荷重作用上,软土的压缩量就大,而坚密的土则压缩量小;又如在同一种土样的条件下,压缩量随着荷重的加大而增加。因此,我们可以在同一种土样上,施加不同的荷重,一般情况下,荷重分级不宜过大。视土的软硬程度及工程情况可取为12.5、25、50、100、200、300、400、600、800 kPa 等。最后一级荷重应大于土层计算压力的100~200kPa 。这样,便可得不同的压缩量,从而可以算出相应荷重时土样的孔隙比。如图6-1可见,当土样在荷重P 1作用下,压缩量为h ?。一般认为土样的压缩主要由于土的压密使孔隙减少产生的。因此,与未加荷前相比,可得:10e e h -=?。 而土样在荷重P 1作用下产生的应变为 h h ?= ε,从图6-1可得: ) 1(100 100 1 00e h h e e e e e h h +?=-+-=? 式中:1e ——在荷重P 1作用下,土样变形稳定时的孔隙比; 0e 、0 h ——分别为原始土样的孔隙比和高度; h ?——在荷重P 1作用下,土样变形稳定时的压缩量。

第五章实验分析

《能与能源》实验活动分析 建平实验中学康月霞 一、单元内容 本单元的主题是《能与能源》,包含四个教学专题,第二、三专题《能的转化》和《能的转移》是本单元的核心教学内容。第一专题《能及能的形式》是核心内容的基础,第四专题《能源》是核心内容的延伸。 本单元的实验活动主要集中第二和第三专题的教学内容中,共有9个实验活动,组织学生做好这些实验是落实本单元教学目标非常重要的载体和教学手段。 二、核心概念 1、能 初中物理对能的定义是物体做功的本领叫做能。物体能够对外做功则这个物体就具有能。但是六年学生的知识水平不足以帮助其理解能的定义,因此在教学中不需要给出能的定义,可以启发学生例举生活中需要消耗能量的活动和具有能量的物体的实例,帮助学生认识到任何活动必需有能才能够进行和能有多种存在形式者两点即可。 2、能的转化 能量由一种形式转变为另一种形式的过程。 3、能的转移 同种形式的能量从一个物体转移到另一个物体或从物体的一部分转移到物体另一部分的过程。 4、能源 能源是指能够为人类的生产和生活提供某种形式能量的物质资源,包括煤炭、原油、天然气、煤层气、水能、核能、风能、太阳能、地热能、生物质能没有经过加工的一次能源和电力、蒸汽、热水、成品油、沼气、氢能等经过加工的二次能源。

三、活动设置 四、实验列表

五、实验教学建议 (一)、重视科学思想方法启蒙教育,培养学生严谨的思维品质。 本单元的过程与方法教学目标中有一条是“设计简单的实验分辩不同物质的导热性能”。研究者设计实验必然是自觉或不自觉地在一定的科学思想方法的指导下进行的。在教学中通过引导学生设计实验活动,可以很好地对学生进行科学思想方法的启蒙,培养学生的严谨的思维品质。 与上述教学目标相对应的实验活动5.9、5.10和5.13都采用了同一种科学方法------比较研究法。比较研究法既是一种人们认识事物的重要思维方法,也是科学活动中一种重要的研究方法,通过比较研究可以找出研究对象之间的差异点和共同点。这三个活动都是研究不同材料导热性的差异,在设计实验时,建议教师将抽象概括的科学思想方法转化为通俗易懂的语言,引导学生讨论材料、装置和操作过程等应该如何控制实验条件。下面是几个实验需要控制的条件,供教学设计时参考。 1、活动5.9 金属与非金属的导热性需要控制的相同条件:形状大小相同的金属的非金属物体、金属和非金属放在同一杯热水中、在热水中放置相同的时间。2、活动5.10不同金属的导热性,建议使用物理实验室现成的器材,该套器材本身可以控制相同的条件是:形状大小相同的不同金属棒、相同的加热条件、等距离黏着火柴棒。 3、活动5.13不同材料的保温性能,需要使用相同的烧瓶、等量等温的热水、厚薄相同的保温材料、保温相等的时间。 (二)、替换改进实验,有效落实实验活动。 按照教材中设计,有些实验活动的材料缺乏,有些实验过程可操作性差,这些因素会造成实验活动的一些困难,下面是具体实验中解决上述问题的一些做法,供大家参考。 1、活动5.6观察热水的流动方向 溶有高锰酸钾的琼脂可以将高锰酸钾颗粒塞进无色果冻中放置一昼夜而制备,也可以将高锰酸钾颗粒包在锡纸中,在锡纸外扎几个小孔 2、活动5.8 热在金属棒中的传递 可以用氯化钴试纸变色的顺序显示热传导的特点,也可以改用物理实验室中金属棒上由近到远粘着火柴棒,通过火柴棒落下的顺序显示热传导的特点。

相关文档
相关文档 最新文档