当前位置:文档之家› Junit4教程(实验指导书)

Junit4教程(实验指导书)

Junit4教程(实验指导书)
Junit4教程(实验指导书)

《软件测试技术》上机指导书之(一)使用JUNIT4进行单元测试

JUnit4概述 (2)

在Eclipse中使用JUnit4进行单元测试(初级篇) (5)

在Eclipse中使用JUnit4进行单元测试(中级篇) (15)

在Eclipse中使用JUnit4进行单元测试(高级篇) (18)

实验目的:单元测试。

实验学时:4(2学时学习,2学时检查)

实验要求:掌握JUNIT的使用方法。

检查要求:按学号每5人一组,分组检查掌握情况。

(1)初始成绩:1人为优秀,2-3人良好,1-2人中等。组内推荐。

(2)最差的那个同学演示答辩,其成绩决定组内其他同学的成绩的整体水平。

(3)组内同学的成绩跟随答辩同学的成绩上下浮动。

张金荣

重庆理工大学计算机科学与工程学院

2013年3月9日

JUnit4概述

JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。

先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作用描述这个数据是做什么用的,差不多和public 描述这个数据是公有的一样。想具体了解可以看Core Java2。废话不多说了,直接进入正题。

我们先看一下在JUnit 3中我们是怎样写一个单元测试的。比如下面一个类:

public class AddOperation {

public int add(int x,int y){

return x+y;

}

}

我们要测试add这个方法,我们写单元测试得这么写:

import junit.framework.TestCase;

import static org.junit.Assert.*;

public class AddOperationTest extends TestCase{

public void setUp() throws Exception {

}

public void tearDown() throws Exception {

}

public void testAdd() {

System.out.println(\"add\");

int x = 0;

int y = 0;

AddOperation instance = new AddOperation();

int expResult = 0;

int result = instance.add(x, y);

assertEquals(expResult, result);

}

}

可以看到上面的类使用了JDK5中的静态导入,这个相对来说就很简单,只要在import关键字后面加上static关键字,就可以把后面的类的static的变量和方法导入到这个类中,调用的时候和调用自己的方法没有任何区别。

我们可以看到上面那个单元测试有一些比较霸道的地方,表现在:

1.单元测试类必须继承自TestCase。

2.要测试的方法必须以test开头。

如果上面那个单元测试在JUnit 4中写就不会这么复杂。代码如下:

import junit.framework.TestCase;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import static org.junit.Assert.*;

/**

*

* @author bean

*/

public class AddOperationTest extends TestCase{

public AddOperationTest() {

}

@Before

public void setUp() throws Exception {

}

@After

public void tearDown() throws Exception {

}

@Test

public void add() {

System.out.println(\"add\");

int x = 0;

int y = 0;

AddOperation instance = new AddOperation();

int expResult = 0;

int result = instance.add(x, y);

assertEquals(expResult, result);

}

}

我们可以看到,采用Annotation的JUnit已经不会霸道的要求你必须继承自TestCase了,而且测试方法也不必以test开头了,只要以@Test元数据来描述即可。

从上面的例子可以看到在JUnit 4中还引入了一些其他的元数据,下面一一介绍:

@Before:

使用了该元数据的方法在每个测试方法执行之前都要执行一次。

@After:

使用了该元数据的方法在每个测试方法执行之后要执行一次。

注意:@Before和@After标示的方法只能各有一个。这个相当于取代了JUnit以前版本中的setUp和tearDown方法,当然你还可以继续叫这个名字,不过JUnit不会霸道的要求你这么做了。

@Test(expected=*.class)

在JUnit4.0之前,对错误的测试,我们只能通过fail来产生一个错误,并在try块里面assertTrue (true)来测试。现在,通过@Test元数据中的expected属性。expected属性的值是一个异常的类型

@Test(timeout=xxx):

该元数据传入了一个时间(毫秒)给测试方法,

如果测试方法在制定的时间之内没有运行完,则测试也失败。

@ignore:

该元数据标记的测试方法在测试中会被忽略。当测试的方法还没有实现,或者测试的方法已经过时,或者在某种条件下才能测试该方法(比如需要一个数据库联接,而在本地测试的时候,数据库并没有连接),那么使用该标签来标示这个方法。同时,你可以为该标签传递一个String的参数,来表明为什么会忽略这个测试方法。比如:@lgnore(“该方法还没有实现”),在执行的时候,仅会报告该方法没有实现,而不会运行测试方法。

在Eclipse中使用JUnit4进行单元测试(初级篇)

我们在编写大型程序的时候,需要写成千上万个方法或函数,这些函数的功能可能很强大,但我们在程序中只用到该函数的一小部分功能,并且经过调试可以确定,这一小部分功能是正确的。但是,我们同时应该确保每一个函数都完全正确,因为如果我们今后如果对程序进行扩展,用到了某个函数的其他功能,而这个功能有bug的话,那绝对是一件非常郁闷的事情。所以说,每编写完一个函数之后,都应该对这个函数的方方面面进行测试,这样的测试我们称之为单元测试。传统的编程方式,进行单元测试是一件很麻烦的事情,你要重新写另外一个程序,在该程序中调用你需要测试的方法,并且仔细观察运行结果,看看是否有错。正因为如此麻烦,所以程序员们编写单元测试的热情不是很高。于是有一个牛人推出了单元测试包,大大简化了进行单元测试所要做的工作,这就是JUnit4。本文简要介绍一下在Eclipse3.2中使用JUnit4进行单元测试的方法。

首先,我们来一个傻瓜式速成教程,不要问为什么,Follow Me,先来体验一下单元测试的快感!

首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。这个类并不是很完美,我们故意保留了一些Bug用于演示,这些Bug在注释中都有说明。该类代码如下:

package andycpp;

public class Calculator ...{

private static int result; // 静态变量,用于存储运行结果

public void add(int n) ...{

result = result + n;

}

public void substract(int n) ...{

result = result - 1; //Bug: 正确的应该是result =result-n

}

public void multiply(int n) ...{

} // 此方法尚未写好

public void divide(int n) ...{

result = result / n;

}

public void square(int n) ...{

result = n * n;

}

public void squareRoot(int n) ...{

for (; ;) ; //Bug : 死循环

}

public void clear() ...{ // 将结果清零

result = 0;

}

public int getResult() ...{

return result;

}

}

第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”,如图:

在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮,如下图所示:

然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。

第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New à JUnit Test Case”。如下图所示:

在弹出的对话框中,进行相应的选择,如下图所示:

点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,我们仅对“加、减、乘、除”四个方法进行测试。如下图所示:

之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest代码如下:

package andycpp;

import static org.junit.Assert.*;

import org.junit.Before;

import org.junit.Ignore;

import org.junit.Test;

public class CalculatorTest ...{

private static Calculator calculator = new Calculator();

@Before

public void setUp() throws Exception ...{

calculator.clear();

}

@Test

public void testAdd() ...{

calculator.add(2);

calculator.add(3);

assertEquals(5, calculator.getResult());

}

@Test

public void testSubstract() ...{

calculator.add(10);

calculator.substract(2);

assertEquals(8, calculator.getResult());

}

@Ignore("Multiply() Not yet implemented")

@Test

public void testMultiply() ...{

}

@Test

public void testDivide() ...{

calculator.add(8);

calculator.divide(2);

assertEquals(4, calculator.getResult());

}

}

第四步,运行测试代码:按照上述代码修改完毕后,我们在CalculatorTest类上点右键,选择“Run As à JUnit Test”来运行我们的测试,如下图所示:

运行结果如下:

进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示“共进行了4个测试,其中1个测试被忽略,一个测试失败”

至此,我们已经完整体验了在Eclipse中使用JUnit的方法。在接下来的文章中,我会详细解释测试代码中的每一个细节!

在Eclipse中使用JUnit4进行单元测试(中级篇)

我们继续对初级篇中的例子进行分析。初级篇中我们使用Eclipse自动生成了一个测试框架,在这篇文章中,我们来仔细分析一下这个测试框架中的每一个细节,知其然更要知其所以然,才能更加熟练地应用JUnit4。

一、包含必要地Package

在测试类中用到了JUnit4框架,自然要把相应地Package包含进来。最主要地一个Package 就是org.junit.*。把它包含进来之后,绝大部分功能就有了。还有一句话也非常地重要“import static org.junit.Assert.*;”,我们在测试的时候使用的一系列assertEquals方法就来自这个包。大家注意一下,这是一个静态包含(static),是JDK5中新增添的一个功能。也就是说,assertEquals是Assert类中的一系列的静态方法,一般的使用方式是Assert. assertEquals(),但是使用了静态包含后,前面的类名就可以省略了,使用起来更加的方便。

二、测试类的声明

大家注意到,我们的测试类是一个独立的类,没有任何父类。测试类的名字也可以任意命名,没有任何局限性。所以我们不能通过类的声明来判断它是不是一个测试类,它与普通类的区别在于它内部的方法的声明,我们接着会讲到。

三、创建一个待测试的对象。

你要测试哪个类,那么你首先就要创建一个该类的对象。正如上一篇文章中的代码:

private static Calculator calculator = new Calculator();

为了测试Calculator类,我们必须创建一个calculator对象。

四、测试方法的声明

在测试类中,并不是每一个方法都是用于测试的,你必须使用“标注”来明确表明哪些是测试方法。“标注”也是JDK5的一个新特性,用在此处非常恰当。我们可以看到,在某些方法的前有@Before、@Test、@Ignore等字样,这些就是标注,以一个“@”作为开头。这些标注都是JUnit4自定义的,熟练掌握这些标注的含义非常重要。

五、编写一个简单的测试方法。

首先,你要在方法的前面使用@Test标注,以表明这是一个测试方法。对于方法的声明也有如下要求:名字可以随便取,没有任何限制,但是返回值必须为void,而且不能有任何参数。如果违反这些规定,会在运行时抛出一个异常。至于方法内该写些什么,那就要看你需要测试些什么了。比如:

@Test

public void testAdd() ...{

calculator.add(2);

calculator.add(3);

assertEquals(5, calculator.getResult());

}

我们想测试一下“加法”功能时候正确,就在测试方法中调用几次add函数,初始值为0,先加2,再加3,我们期待的结果应该是5。如果最终实际结果也是5,则说明add方法是正确的,反之说明它是错的。assertEquals(5, calculator.getResult());就是来判断期待结果和实际结果是否相等,第一个参数填写期待结果,第二个参数填写实际结果,也就是通过计算得到的结果。这样写好之后,JUnit会自动进行测试并把测试结果反馈给用户。

六、忽略测试某些尚未完成的方法。

如果你在写程序前做了很好的规划,那么哪些方法是什么功能都应该实现定下来。因此,即使该方法尚未完成,他的具体功能也是确定的,这也就意味着你可以为他编写测试用例。但是,如果你已经把该方法的测试用例写完,但该方法尚未完成,那么测试的时候一定是“失败”。这种失败和真正的失败是有区别的,因此JUnit提供了一种方法来区别他们,那就是在这种测试函数的前面加上@Ignore标注,这个标注的含义就是“某些方法尚未完成,暂不参与此次测试”。这样的话测试结果就会提示你有几个测试被忽略,而不是失败。一旦你完成了相应函数,只需要把@Ignore标注删去,就可以进行正常的测试。

七、Fixture(暂且翻译为“固定代码段”)

Fixture的含义就是“在某些阶段必然被调用的代码”。比如我们上面的测试,由于只声明了一个Calculator对象,他的初始值是0,但是测试完加法操作后,他的值就不是0了;接下来测试减法操作,就必然要考虑上次加法操作的结果。这绝对是一个很糟糕的设计!我们非常希望每一个测试都是独立的,相互之间没有任何耦合度。因此,我们就很有必要在执行每一个测试之前,对Calculator对象进行一个“复原”操作,以消除其他测试造成的影响。因此,“在任何一个测试执行之前必须执行的代码”就是一个Fixture,我们用@Before来标注它,如前面例子所示:

@Before

public void setUp() throws Exception ...{

calculator.clear();

}

这里不在需要@Test标注,因为这不是一个test,而是一个Fixture。同理,如果“在任何测试执行之后需要进行的收尾工作”也是一个Fixture,使用@After来标注。由于本例比较简单,没有用到此功能。

在Eclipse中使用JUnit4进行单元测试(高级篇)

一、高级Fixture

上一篇文章中我们介绍了两个Fixture标注,分别是@Before和@After,我们来看看他们是否适合完成如下功能:有一个类是负责对大文件(超过500兆)进行读写,他的每一个方法都是对文件进行操作。换句话说,在调用每一个方法之前,我们都要打开一个大文件并读入文件内容,这绝对是一个非常耗费时间的操作。如果我们使用@Before和@After,那么每次测试都要读取一次文件,效率及其低下。这里我们所希望的是在所有测试一开始读一次文件,所有测试结束之后释放文件,而不是每次测试都读文件。JUnit的作者显然也考虑到了这个问题,它给出了@BeforeClass 和@AfterClass两个Fixture来帮我们实现这个功能。从名字上就可以看出,用这两个Fixture标注的函数,只在测试用例初始化时执行@BeforeClass方法,当所有测试执行完毕之后,执行@AfterClass进行收尾工作。在这里要注意一下,每个测试类只能有一个方法被标注为@BeforeClass 或@AfterClass,并且该方法必须是Public 和Static的。

二、限时测试。

还记得我在初级篇中给出的例子吗,那个求平方根的函数有Bug,是个死循环:public void squareRoot(int n) ...{

for (; ;) ; //Bug : 死循环

}

如果测试的时候遇到死循环,你的脸上绝对不会露出笑容。因此,对于那些逻辑很复杂,循环嵌套比较深的程序,很有可能出现死循环,因此一定要采取一些预防措施。限时测试是一个很好的解决方案。我们给这些测试函数设定一个执行时间,超过了这个时间,他们就会被系统强行终止,并且系统还会向你汇报该函数结束的原因是因为超时,这样你就可以发现这些Bug了。要实现这一功能,只需要给@Test标注加一个参数即可,代码如下:

@Test(timeout = 1000)

public void squareRoot() ...{

calculator.squareRoot(4);

assertEquals(2, calculator.getResult());

}

Timeout参数表明了你要设定的时间,单位为毫秒,因此1000就代表1秒。

三、测试异常

JA V A中的异常处理也是一个重点,因此你经常会编写一些需要抛出异常的函数。那么,如

果你觉得一个函数应该抛出异常,但是它没抛出,这算不算Bug呢?这当然是Bug,并JUnit 也考虑到了这一点,来帮助我们找到这种Bug。例如,我们写的计算器类有除法功能,如果除数是一个0,那么必然要抛出“除0异常”。因此,我们很有必要对这些进行测试。代码如下:

@Test(expected = ArithmeticException.class)

public void divideByZero() ...{

calculator.divide(0);

}

如上述代码所示,我们需要使用@Test标注的expected属性,将我们要检验的异常传递给他,这样JUnit框架就能自动帮我们检测是否抛出了我们指定的异常。

四、Runner (运行器)

大家有没有想过这个问题,当你把测试代码提交给JUnit框架后,框架如何来运行你的代码呢?答案就是——Runner。在JUnit中有很多个Runner,他们负责调用你的测试代码,每一个Runner都有各自的特殊功能,你要根据需要选择不同的Runner来运行你的测试代码。可能你会觉得奇怪,前面我们写了那么多测试,并没有明确指定一个Runner啊?这是因为JUnit 中有一个默认Runner,如果你没有指定,那么系统自动使用默认Runner来运行你的代码。换句话说,下面两段代码含义是完全一样的:

import org.junit.internal.runners.TestClassRunner;

import org.junit.runner.RunWith;

//使用了系统默认的TestClassRunner,与下面代码完全一样

public class CalculatorTest ...{...}

@RunWith(TestClassRunner.class)

public class CalculatorTest ...{...}

从上述例子可以看出,要想指定一个Runner,需要使用@RunWith标注,并且把你所指定的Runner作为参数传递给它。另外一个要注意的是,@RunWith是用来修饰类的,而不是用来修饰函数的。只要对一个类指定了Runner,那么这个类中的所有函数都被这个Runner来调用。最后,不要忘了包含相应的Package哦,上面的例子对这一点写的很清楚了。接下来,我会向你们展示其他Runner的特有功能。

五、参数化测试。

你可能遇到过这样的函数,它的参数有许多特殊值,或者说他的参数分为很多个区域。比如,一个对考试分数进行评价的函数,返回值分别为“优秀,良好,一般,及格,不及格”,因此你在编写测试的时候,至少要写5个测试,把这5中情况都包含了,这确实是一件很麻烦的事情。我们还使用我们先前的例子,测试一下“计算一个数的平方”这个函数,暂且分三类:正数、0、负数。测试代码如下:

import org.junit.AfterClass;

import org.junit.Before;

import org.junit.BeforeClass;

import org.junit.Test;

import static org.junit.Assert.*;

public class AdvancedTest ...{

private static Calculator calculator =new Calculator();

@Before

public void clearCalculator() ...{

calculator.clear();

}

@Test

public void square1() ...{

calculator.square(2);

assertEquals(4, calculator.getResult());

}

@Test

public void square2() ...{

calculator.square(0);

assertEquals(0, calculator.getResult());

}

@Test

public void square3() ...{

calculator.square(-3);

assertEquals(9, calculator.getResult());

}

}

为了简化类似的测试,JUnit4提出了“参数化测试”的概念,只写一个测试函数,把这若干种情况作为参数传递进去,一次性的完成测试。代码如下:

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.junit.runners.Parameterized;

import org.junit.runners.Parameterized.Parameters;

import java.util.Arrays;

import java.util.Collection;

@RunWith(Parameterized.class)

public class SquareTest ...{

private static Calculator calculator = new Calculator();

private int param;

计算机网络实验指导书--2016

《计算机网络》实验指导书 逯鹏编 电气工程学院自动化系 2016年11月

学生实验须知 一实验要求 1 认真进行实验预习和准备,应教师要求于实验前完成实验准备; 2 按照安排的时间、地点和分组签到和参加实验。因故调换应提交调换申请并经教师批准; 3 在指定实验台(位置)进行实验,不得随意调换,不得动用非实验设备; 4 实验时,主动参与,认真细致,互助合作,注意安全。有问题主动向教师请教。 5 实验结束,整理好实验设备,报告指导教师检查实验结果,经认可后方可离开。 6 损坏设备,应予以赔偿。 二实验报告基本要求 1 在院统一印制的实验报告用纸上书写报告; 2 书写整洁,符号、表格和曲线规范; 3 实验记录数据真实客观,实验结果分析认真正确; 4 按时呈交,实验报告作为教学档案由院留存。 三实验成绩评定 1 每项实验的成绩综合学生出勤、实验过程(参与程度,实验结果,设备安全和人身安全)情况和实验报告质量(内容和规范性)给出。不参加实验或参加实验不提交报告者,该项实验成绩为0分。 2 实验成绩计入课程平时成绩表; 3 不参加实验及不提交报告达三分之一者,将被取消该课程考核资格。

实验一:网络常用命令的使用 一、实验目的: 1. 了解或掌握一些网络常用命令; 2. 掌握Ping、IPconfig、arp等命令的功能及一般用法; 3. 能应用上述命令进行网络连通、网络状态、网络配置等。 二、实验环境: 1. 运行Windows 2000 / 2003 Server / XP操作系统的PC一台; 2. 每台PC具有一块以太网卡,通过双绞线与局域网相连。 三、实验内容与要求: 1. 进入DOS模式: (1)“开始”-> “运行”-> 输入“cmd”; (2)在DOS环境中输入“cd\”,回车; (3)继续输入“md 学号+姓名”,回车; (4)继续输入“cd 学号+姓名”,示例如下图所示。本实验后续内容,需在此目录下完成。 2. 参照附件一:IP地址的查看与配置,完成其中实验要求,并回答下面的问题: (1)使用“ipconfig”命令,查看本机的IP地址是什么?并记录下来。 (2)使用“ipconfig”命令,怎样查看本机的物理地址?截屏记录,并根据截屏回答物理地址具体是多少? 3. 参照附件二:网络连通性的测试,完成其中实验要求,并回答下面的问题: (1)使用ping命令测试网络时,本机通常向被测试计算机发几次请求? (2)执行“ping https://www.doczj.com/doc/9f9869467.html,”,是否可以获取https://www.doczj.com/doc/9f9869467.html,对应的IP 地址?截屏记录其IP地址。 (3)执行“ping https://www.doczj.com/doc/9f9869467.html,”和“ping https://www.doczj.com/doc/9f9869467.html,”,记录两者执行后的参数“平均往返时延”各为多少?并截屏记录。

密码学基础课程设计指导书

《现代密码学基础》课程设计指导书 杨柳编 湖南科技大学计算机科学与工程学院 2014年12月

一、概述 本课程在简要复习数学基础知识之后,探讨了密码学研究的基本问题:通过不安全的通信媒介如何进行安全通信。也可以理解为关心任何希望限制不诚实者达到目的的问题,把度量和评价一个密码体制(协议)的安全性作为一个重点。就目前来说,密码学的研究领域已从消息加密扩大到了数字签名、消息认证、身份识别、抗欺骗协议等。无疑,在整个教学过程中非常重视密码学的基础,当然包括数学基础。并针对实际的密码体制(协议)强调设计与分析(攻击),对现代密码学的主要研究问题都进行了介绍。 对于密码学这样的课程,同学们一定要从理论、技术、应用三个方面进行学习与思考。密码体制(协议)无疑是我们的学习重点,密码体制(协议)也可以单纯地理解为计算机算法,从而有设计、分析、证明、实现的问题。实现密码体制(协议)就是我们经常讲的八个字:模型、算法、程序、测试。 二、课程设计步骤 课程设计步骤要求如下: 1.模型 从数学的角度看,解决任何问题都要建立一个数学模型,对于密码学来说更是如此。我们还可以认为,数据结构中的存储结构也是模型。于是这一部分的任务就是建立起问题的逻辑结构和存储结构,为算法设计和编码实现打下基础。 2.算法 这一部分对同学们的要求是能看懂书上的常用算法,并对其中的参数可以进行调整和设置,能实现和应用它们。 3.程序 编码实现得到程序。 4. 测试 5. 提交课程设计报告

三、课程设计报告编写要求 课程设计报告开头标明课程设计题目、设计者的班级、姓名、学号和完成日期,内容包括:模型、算法、程序、测试四个部分。 四、设计要求 可以只做第7题,不做第7题的要做第1题-第6题。 五、课程设计题目 大整数运算包的设计与实现 1.问题描述 大整数运算是现代密码学算法实现的基础,重要性不言而喻。大整数我们指的是二进制位512、1024和2048的数,一般的语言不支持。 2.基本要求 以类库头文件的形式实现。 3.实现提示 在选择了大整数的存储结构之后,主要实现以下运算: ①模加; ②模减; ③模乘; ④模整除; ⑤模取余。这五种运算模拟手算实现。 ⑥幂模:利用“平方-乘法”算法实现。 ⑦GCD:利用欧几里得算法实现。 ⑧乘法逆: 利用扩展的欧几里得算法实现。 ⑨素数判定与生成:概率性素数产生方法产生的数仅仅是伪素数,其缺点在于,

《网络综合实训》指导书

《网络综合实训》 任务书 指导书 适用专业:计算机网络技术 实训班级:网络121 设计时间:第15、16周 江西工业工程职业技术学院计算机工程系 2014年 11 月

一、课程的地位、作用和目的 网络综合实训是高等职业院校计算机网络技术类专业一项重要的集中基本技能训练,是理论和知识的综合与应用。 技能训练是高职高专院校一个重要的实践教学环节,它与实验、生产实训、毕业实训构成实践性教学体系,高职高专学生较强的动手能力,依赖实践性教学体系对学生的培养。 二、实训教学目标 本实训教学总学时为56学时,主要目标是考察学生对所学计算机网络专业知识的综合应用能力,通过模拟实际工程项目,使学生掌握网络工程的设计方法、网络设备安装调试等技能,提高学生的网络实战能力。 三、实训设计原则 目前对网络技术人员人才的职业要求是,能够根据应用部门的要求进行网络系统的规划、设计和网络设备的软硬件安装、调试工作,能进行网络系统的运行、维护和管理。 本实训教学设计思想是从社会对人才的实际需求出发,以岗位群的工作为依据,突出学生的能力培养,通过循序渐进的实训教学,充分体现了以项目需求为导向,以职业能力和应用能力培养为中心的教学思路。整个课程学习过程模拟了实际网络工程从无到有的构建并进行管理的完整工作过程,做到了学习过程和工作过程的高度一致。 四、实训教学设计 本实训课程为一个综合性的网络工程项目,根据项目实际又将其分为2个子项目,每一子项目都从本专业技能结构的某一个需求开始,制定一个具体的任务(项目),讲解具体的操作过程;在操作过程补充需要的理论知识。 (1) 项目一:基本技能强化实训(26课时) 本项目是综合性强化练习,项目涵盖网络设备调试基本技能的几个重要部分,本项目的完成有助于巩固和加强网络设备调试与优化的基本功和技能。 (2) 项目二:校园网网络总体系统方案设计(30课时) 本项目以实际需求,分析网络流量、提出新网络系统的建设思路以及新系统的网络设计目标和范围,再根据对现在网络技术的分析以及能够提供的费用和网络运行给学校带来的社会经济效益,为学校提供是否可行的决策依据。 四.实训考核及成绩评定方法 1.优秀:按实训任务书要求圆满完成规定任务,有创新性。严格遵守实训管理制 度与实训纪律,实训态度认真、积极。具有良好的团队协作精神;能自我进行资料收集 并引用合理。实训过程完整、规范;设计报告结构完善、格式规范、条理清晰、论述充 分、图表准确,文字描述准确流畅。

密码学基础实验报告模板

西安邮电大学 通信与信息工程学院 密码学报告 专业班级: 学生姓名: 学号(班内序号): 2015年 12月 25 日 —————————————————————————— 装 订 线———————————————————————————————— 报告份数:

实验一棋盘密码 一.实验目的 编写实现棋盘密码体制的程序并进行验证 二.实验要求 1.能对明文中出现的26个英文字母(包括大小写)及标点符号等加密。2.从键盘输入密钥并输出棋盘进行验证。 3.能对给定的明文或密文进行正确的加密和解密。 三.实验原理 古代最早的棋盘密码体制是这样的:将26个字母排列在一个5*5的方格里,其中i 和j填在同一个里,每个字母对应一数αβ,其中αβ分别是该字母所在的行、列标号。这样就可以将明文的字母集合转换成密文的数字集合。 四.实验步骤 1.编写实现棋盘密码体制的程序,包括加密和解密。 2.运行程序,输入棋盘密钥。 3.选择加密,并输入明文,根据棋盘验证加密结果是否正确。 4.选择解密,并输入密文,根据棋盘验证解密结果是否正确。 5.流程图: 五.实验结果

实验二仿射密码 一.实验目的 编写实现仿射密码体制的程序并进行验证。 二、实验要求 1 给出仿射密码的的加密程序。 2 要求密钥从键盘输入。 3 掌握仿射密码的密码译制,弄清其加密过程。 三、实验原理 令P = C = Z26 , K = { (a,b) ∈Z26 * Z26 },对任意的(a , b) ∈K,定义:加密:y = e k(x) = (a * x + b) mod 26, 解密:d k(y) = a -1 ( y - b) mod 26 . a , b 为密钥,密钥空间为26 ×26。 在加密的过程中,要使所加密有唯一的解,必须满足a 与26互素。这是由下面的定理得出。 定理:设 a ∈Z m , a 为任意的,b ∈Z m ,同余方程: a * x ≡ b mod m 有唯一解的充要条件是:a 与m 互素。 四、实验流程

数学实验课程实验指导书Word版

《数学实验》课程实验指导书 2006-4-29

目录 实验一、微积分基础 3实验二、怎样计算 5实验三、最佳分数近似值 6实验四、数列与级数 7实验五、素数 8实验六、概率 9实验七、几何变换 11实验八、天体运动 13实验九、迭代(一)——方程求解 15实验十、寻优 16实验十一、最速降线 18实验十二、迭代(二)——分形 20实验十三、迭代(三)——混沌 21实验十四、密码 22实验十五、初等几何定理的机器证明 23附表(实验报告) 24

实验一、微积分基础 一、实验目的及意义:1、熟悉Mathematic软件常见函数图形 2、通过作图,进一步加深对函数的理解,观察函数的性质 3、构造函数自变量与因变量的对应表,观察函数的变化。 二、实验内容: 1.1函数及其图象 1.2数e 1.3 积分与自然对数 1.4调和数列 1.5双曲函数 三、实验步骤 1.开启软件平台——Mathematics ,开启Mathematics编辑窗口; 2.根据各种问题编写程序文件 3.保存文件并运行; 4.观察运行结果(数值或图形); 5.根据观察到的结果写出实验报告,并浅谈学习心得体会 四、实验要求与任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论→心得体会) 1、1函数及图形 (1)在区间[-0.1,0.1]上作出 y = sin(x)/x 的图象,观察图象在 x = 0 附近的形状 (2)在同一坐标系内作出函数y = sin(x) 和它的展开式的前几构成的多项式函数y = x-x^3/3!,y = x-x^3/3!+x^5/5! . . . 的图象,观察这些多项式函数图象对 y = sin x 的图象逼近的情况. (3)分别取n =10,20,画出函数 y = sin(2k-1)x/(2k-1),k=1,2,...,n求和} 在区间[-3PI,3PI]上的图象.当N 趋向无穷时函数趋向什麽函数? (4)别取n = 5,10,15, 在同一坐标系内作出函数f(x) = sin x 与p(x) = x * (1-x^2/PI^2)*(1-x^2/(2^2*PI^2))*...*(1-x^2/n^2*PI^2))在区间[-2PI,2PI]上的图象,观察 p(x) 图象对 y = sin x的图象逼近的情况. 1、2数e 观察当n趋于无穷大时数列a n=(1+1/n)n和A n=(1+1/n)n+1的变化趋势: (1)n=10m,m=1,2,. . . ,7时的值,a n,A n观察变化趋势. (2)在同一坐标系内作出三个函数地图象y=(1+1/10x)10^x , y=(1+1/10x)10^x , y=e观察当 x 增大时

生物化学课程实验指导书

〈〈生物化学》实验指导书适用专业:生物技术、生物工程、食品科学与工程 生物与食品工程学院生物科学系

生物化学实验细则 为了保证生物化学实验的顺利进行,培养同学们掌握良好、规范的生物化学基本实验技能,特制定以下实验细则,请同学们严格遵守。 1. 实验前应提前预习实验指导书并复习相关知识。 2. 严格按照生物化学实验分组,分批进入实验室,不得迟到。非本实 验组的同学不准进入实验室。 3. 进入实验室必须穿实验服。各位同学进入各白实验小组实验台后, 保持安静,不得大声喧哗和嬉戏,不得无故离开本实验台随便走动。 绝对禁止用实验仪器或药物开玩笑。 4. 实验中应保持实验台的整洁,废液倒入废液桶中,用过的滤纸放入 垃圾桶中,禁止直接倒入水槽中或随地乱丢。 5. 实验中要注意节约药品与试剂,爱护仪器,使用前应了解使用方法, 使用时要严格遵守操作规程,不得擅白移动实验仪器。否则,因非实验性损坏,由损坏者赔还。 6. 使用水、火、电时,要做到人在使用,人走关水、断电、熄火。 7. 做完实验要清洗仪器、器皿,并放回原位,擦净桌面。 8. 实验后,要及时完成实验报告。 2006年1月

生物化学实验细则 (i) 目录 (2) 实验1蛋白质的沉淀、变性反应 (3) 实验2醋酸纤维素薄膜电泳分离血清蛋白 (6) 实验3 SDS-聚丙烯酰胺凝胶电泳测定蛋白质分子虽- --11实验4 凝胶过滤层析法测定蛋白质分子虽 (16) 实验5 DNA的琼脂糖凝胶电泳 (20) 实验6唾液淀粉酶的性质和活力测定 (24) 实验7 生物氧化与电子传递 (25) 实验8植物体内的转氨基作用 (27) 实验1 蛋白质的沉淀、变性反应 (3学时) 目的要求 1. 加深对蛋白质胶体溶液稳定因素的认识。 2. 了解沉淀蛋白质的几种方法及其实用意义。 3. 了解蛋白质变性与沉淀的关系。 4. 了解蛋白质两性性质 原理 在水溶液中,蛋白质分子表面形成水化层和双电层而成为稳定的胶体颗粒,所以蛋白质溶液和其他亲水胶体溶液相类似。但是,蛋白质胶体颗粒的稳定性是有条件的,相对的。在一定的物理化学因素影响下,蛋白质颗粒失去电荷,脱水,甚至变性,则以固态形式从溶液中析出,这个过程称为蛋白质的沉

网络计算实验指导书

计算机科学与技术学院 网络计算设计与实现 实验指导书

实验一SOCKET编程 【试验环境】 计算机、TCP/IP协议、VS2005 【实验目的】 1.理解基本TCP/IP协议编程原理; 2.掌握如何利用SOCKET编写网络程序; 3.掌握VS2005编程环境,多线程程序设计等。 【实验要求】 1.编写一个服务端的程序,接收来自客户端的访问请求,并返回相关信息; 2.编写一个客户端程序,向服务端发送连接请求,并显示返回的结果; 3.完善服务端程序,使它能够同时支持多个客户端的请求。 【预备知识】 p ublic Socket Accept ():为新建连接创建新的Socket。 public void Bind (EndPoint localEP):使Socket 与一个本地终结点相关联。 public void Close ():关闭Socket 连接并释放所有关联的资源。 public void Connect (EndPoint remoteEP):建立与远程主机的连接。注意这个方法有重 载方法。 public void Disconnect (bool reuseSocket):关闭套接字连接并是否允许重用套接字。 public void Listen (int backlog):将Socket 置于侦听状态。 public int Receive (byte[] buffer):接收来自绑定的Socket 的数据。注意这个方法有重 载方法。 public int ReceiveFrom (byte[] buffer,ref EndPoint remoteEP):接收数据报并存储源终结 点。注意这个方法有重载方法。 public int Send (byte[] buffer):将数据发送到连接的Socket。注意这个方法有重载方 法。 public void SendFile (string fileName):将文件和可选数据异步发送到连接的Socket。 注意这个方法有重载方法。 public int SendTo (byte[] buffer,EndPoint remoteEP):将数据发送到特定终结点。注意这 个方法有重载方法。 public void Shutdown (SocketShutdown how):禁用某Socket 上的发送和接收。 因为在网络传输时传输的数据都是二进制形式的(表现为字节数组),所以如果要传输类似于中文这样的双字节字符就需要在传输之前用合适的编码转换成字节数组,然后接收方

应用密码学实验指导书

《应用加密算法与认证技术》实验指导书 实验一加密模式(一) [实验目的] 1.了解密码算法的分组链接模式。 2.掌握和理解ECB模式、CBC模式的结构和算法原理。 [实验内容] 1. 分析ECB模式和CBC模式的加密过程。 2. 用程序设计语言将算法过程编程实现。 3. 输入明文:I do like this book 加密算法E:异或⊕,密钥为cryption; 移位,密钥为5 两种填充模式:(1)0 (2)密文挪用 初始化向量IV:goodluck 用两种模式进行加密,输出相应的密文。 [实验步骤] 1. 预习ECB模式和CBC模式加密模式的算法。 2. 写出算法流程,用程序设计语言将算法过程编程实现。 3. 输入指定的明文、密钥或初始化向量,选择相应的填充模式,输出密文,验证结果。 4. 自己选择不同的输入,记录输出结果。 [问题讨论] 1. 总结两种加密模式的特点,错误扩散进行分析; 2. 分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。 实验二加密模式(二) [实验目的] 1.了解密码算法的分组链接模式。

2.掌握和理解CFB模式、OFB模式的结构和算法原理。 [实验内容] 1. 分析CFB模式和OFB模式的加密过程。 2. 用程序设计语言将算法过程编程实现。 3. 输入明文:I do like this book 加密算法E:异或⊕,密钥为cryption; 移位,密钥为5 两种填充模式:(1)0 (2)密文挪用 初始化向量IV:goodluck 输出反馈位数n:8或16 用两种模式进行加密,输出相应的密文。 [实验步骤] 1. 预习CFB模式和OFB模式加密模式的算法。 2. 写出算法流程,用程序设计语言将算法过程编程实现。 3. 输入指定的明文、密钥或初始化向量,选择相应的填充模式,输出密文,验证结果。 4. 自己选择不同的输入,记录输出结果。 [问题讨论] 1. 总结两种加密模式的特点,错误扩散进行分析; 2. 分析实验中在编辑、编译、运行等各环节中所出现的问题及解决方法。 实验三素性检测 [实验目的] 1.公钥密码算法需要素数,任何合理规模的网络也需要许多这样的素数,了解如何对产生的随机数进行素性检测的方法。 2.掌握和理解Solovag-Strassen算法、Lehmann算法和Rabin-Miller素性检测算法的原理。 [实验内容]

网络安全课程实验指导书

网络安全课程实验安排及指导书 2009-10-21

实验安排1、推荐必做实验 网络扫描 计算机病毒及恶意代码 防火墙实验 入侵检测系统 2、推荐选作实验 VPN配置 证书的申请和使用 windows安全配置实验

实验一:网络扫描实验 【实验目的】 了解扫描的基本原理,掌握基本方法,最终巩固主机安全 【实验内容】 1、学习使用Nmap的使用方法 2、学习使用漏洞扫描工具 【实验环境】 1、硬件PC机一台。 2、系统配置:操作系统windows XP以上。 【实验步骤】 1、端口扫描 1)解压并安装ipscan15.zip,扫描本局域网内的主机 2)解压nmap-4.00-win32.zip,安装WinPcap 运行cmd.exe,熟悉nmap命令(详见“Nmap详解.mht”)。 3)试图做以下扫描: 扫描局域网内存活主机, 扫描某一台主机或某一个网段的开放端口 扫描目标主机的操作系统 试图使用Nmap的其他扫描方式,伪源地址、隐蔽扫描等 2、漏洞扫描 解压X-Scan-v3.3-cn.rar,运行程序xscan_gui.exe,将所有模块选择扫描,扫描本机,或局域网内某一台主机的漏洞 【实验报告】 1、说明程序设计原理。 2、提交运行测试结果。 【实验背景知识】 1、扫描及漏洞扫描原理见第四章黑客攻击技术.ppt 2、NMAP使用方法 扫描器是帮助你了解自己系统的绝佳助手。象Windows 2K/XP这样复杂的操作系统支持应用软件打开数百个端口与其他客户程序或服务器通信,端口扫描是检测服务器上运行了哪些服务和应用、向Internet或其他网络开放了哪些联系通道的一种办法,不仅速度快,而且效果也很不错。 Nmap被开发用于允许系统管理员察看一个大的网络系统有哪些主机以及其上运行何种服务。它支持多种协议的扫描如UDP,TCP connect(),TCP SYN (half open), ftp proxy (bounce attack),Reverse-ident, ICMP (ping sweep), FIN, ACK sweep,X mas Tree, SYN sweep, 和Null扫描。你可以从SCAN TYPES一节中察看相关细节。nmap 还提供一些实用功能如通过tcp/ip来甄别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的PING侦测下属的主机、欺骗扫描、端口过滤探测、直接的RPC扫描、分布扫描、灵活的目标选择以及端口的描述。 一、安装Nmap Nmap要用到一个称为“Windows包捕获库”的驱动程序WinPcap——如果你经常从网上下载流媒体电影,可能已经熟悉这个驱动程序——某些流媒体电影的地址是加密的,侦测这些电影的真实地址就要用到WinPcap。WinPcap的作用是帮助调用程序(即这

工业控制网络技术课程实验指导书2013

实 验 一 Automation Studio 的使用和基本程序编程及调试 一、实验目的 1、掌握Automation Studio 的基本使用技巧和方法 2、熟悉Automation Studio 的基本命令 3、学会和掌握Automation Studio 程序的调试方法 二、实验设备 PC机一台,装有Automation Studio编程软件;贝加莱PLC-2003一台; 各PC机与PLC-2003通过RS232电缆连接进行通信。 详见附录一。 三、实验内容 熟悉并练习Automation Studio的使用,用选定的编程语言编制、调试控制程序。Automation Studio是贝加莱公司为其自动化控制设备PLC(可编程计算机控制器)开发的一种可使用多种编程语言的PLC开发环境,如附录二所示。 1.PLC硬件配置: 根据所给实验装置,使用Automation Studio对系统硬件进行配置。 配置方法见本指导书附录B。 2.实验程序1: 使用Automation Basic或其它PLC编程语言,编制一段小控制程序,实现以下功能:利用实验装置上的第一个模拟量旋钮(电位器),来控制模拟量输

出,当旋转该电位器时,第一个模拟量输出随之变化,旋钮逆时针旋到底时(模拟量输入为最小值0),要求模拟量输出为0(光柱无显示),当旋钮顺时针旋到底时(模拟量输入为最大值32767),要求模拟量输出为最大值(光柱全显示); 同时,第二个模拟量输出的状态正好与第一个模拟量输出相反。 3.实验程序2: 使用Automation Basic或其它PLC编程语言,编制一段小控制程序,实现以下功能:利用实验装置上的两个开关,来控制模拟量输出,当接通(合上)其中一个开关(另一个应处于断开状态)时,第一个模拟量输出从0开始随时间逐渐增大,达到其最大值后,再从0开始…,周而复始;当接通(合上)另一个开关时,第二个模拟量输出从0开始随时间逐渐增大,达到其最大值后,再从0开始…,同时,第二个模拟量输出从其最大值开始随时间逐渐减小,达到0后,再从其最大值开始…,周而复始。 四. 思考题 1.在Automation Studio中为什么要对PLC系统硬件进行配置? 2.为什么要为用户编制的控制程序命名? 3.为用户程序选择循环周期的原则是什么? 4.Automation Studio为用户提供多种编程语言有什么好处?

LTE技术与应用实验指导书

实验一:网络拓扑规划 1、实验目的与要求 1)掌握LTE核心网的各个主要网元; 2)具备在单、双平面完成LTE网络拓扑连线的能力; 3)理解配置双平面的作用; 4)网络的拓扑结构与网络连线、站点数量和物理位置变化的关系。 2、实验内容 1)单平面网络拓扑连线; 2)双平面网络拓扑连线。 3、实验准备 (1)实验环境准备 硬件:(含耗材)能够运行IUV-4G网络平台的台式机 软件:中兴IUV-4G 仿真平台 资料:4G LTE全网竞技系统操作视频教程 (2)相关知识要点 1.LTE核心网各个网元:MME、SGW、PGW、HSS与交换机; 2.LTE网络拓扑结构。 4、实验步骤 任务一:单平面网络拓扑连线 1)打开仿真软件,选择最上方按钮“网络拓扑规划”。 2)单击软件界面左上方的“核心网和无线”按钮。 3)鼠标左键单击软件界面右上方资源池的“MME”按钮并按住不放,将MME站点拖放至软件界面万绿市核心网的第一个空白处。 4)仿照步骤3,依次将SGW、PGW、HSS拖放至万绿市核心网空白处。 5)单击万绿市核心网MME网元,然后再单击万绿市核心网下面的一个交换机,完成网络拓扑连接。 6)仿照步骤5,单击万绿市核心网SGW、PGW、HSS网元,然后再单击万绿市核心网下面的一个交换机,完成网络拓扑连接。 任务二:双平面网络拓扑连线 1)打开仿真软件,选择最上方按钮“网络拓扑规划”。 2)单击软件界面左上方的“核心网和无线”按钮。 3)鼠标左键单击软件界面右上方资源池的“MME”按钮并按住不放,将MME站点拖放至软件界面万绿市核心网的第一个空白处。 4)仿照步骤3,依次将SGW、PGW、HSS拖放至万绿市核心网空白处。

密码学基础-实验指导书

五邑大学本科生实验指导书 《密码学基础》实验指导书 课程名称:密码学基础 课程编号: 课程性质:专业选修课 课程总学时:48 实验总学时:8 任课教师:高伟峰

一、实验教学目的和基本要求 《密码学基础》是计算科学与技术本科专业开设的一门专业选修课,本课程的主要目标是让学生学习和了解密码学的一些基本概念,理解和掌握一些常用密码算法,包括加密和解密、认证理论及算法、安全计算原理及算法,学会进行效率分析和安全性分析。密码学是信息安全的核心技术,是实现安全通信的基础,所以实验和理论一样都很重要,实验能够让学生通过多个密码算法的程序设计实现,更好地掌握密码算法设计的机理和方法,熟悉网络攻击和防范方法。同时,基于密码系统设计的基本方法和基本步骤,帮助学生理解密码学在信息安全中的地位,并引导了解密码学领域及信息安全领域的新进展、新方向。具体要求如下: 1.要求学生在上机前对本次实验的原理、内容、方案进行充分准备。 2.每次实验必须按要求的格式撰写《实验报告》,内容大体包括:实验目的、实验内容、实验及算法原理、程序清单、结果分析、总结。 3.实验成绩作为平时成绩的一部分。 二、实验内容及学时分配 实验一 古典密码学实验(2学时) 一、实验目的 通过实现简单的古典密码算法,理解密码学的相关概念如明文(plaintext )、密文(ciphertext )、加密密钥(encryption key)、解密密钥(decryption key )、加密算法(encryption algorithm)、解密算法(decryption algorithm)等。 二、实验内容 1)用C\C++语言实现仿射变换(Affine )加/解密算法;2)用C\C++语言实现统计26个英文字母出现的频率的程序;3)利用仿射变换加/解密程序对一段较长的英文文章进行加密,再利用统计软件对明文和密文中字母出现的频率进行统计并作对比,观察有什么规律。 放射变换: 加密:()26mod ,b am m E c b a +== 解密:()()26mod 1 ,b c a c D m b a -==- 其中a, b 为密钥,25,0≤≤b a ,且gcd(a, 26)=1 实验要求:加/解密程序对任意满足条件的a 、b 都能够处理。

实验技能课实验指导书剖析

实验1-7 毕托管的标定 一、 实验原理 在理想不可压流体中,毕托管测速的理论公式为: 2 02U P P ρ-= 此式表明:知道了流场中的总压(0 P )和静压(P ),其压差即为动压;由动压,可 算出流体速度。 02() P P U ρ -= 毕托管的头部通常为半球形或半椭球形。直径应选用0.035d D ≤(D 为被测流体管道的内径总压孔开在头部的顶端),孔径为0.3d 。静压孔开在距顶端(3~5)d 处,距支柄(8~10)d 的地方,一般为8个均匀分布的0.1d Φ小孔(NPL 为7孔)。总压与静压分别由两个细管引出,再用胶皮管连接到微压计上,即可测出动压,从而可计算出流速。 图1毕托管测速原理图

若要测量流场中某一点的速度,需将毕托管的顶端置于该点,并使总压孔正对来流方 向,通过微压计就能得到该点的动压。在来流是空气的情况下,有 2 02 U P P h ργ=-=,(ρ 是空气的密度,γ是微压计中工作液体的重度,h 是微压计的读数)。但是由于粘性及毕托 管加工等原因, 2 02U P P ρ-= 不是正好满足的,需要进行修正。根据1973年英国标准BS-1042:Part2A1973的定义: 2 01 2P P C U ρ-= C -毕托管系数。所谓毕托管标定,就是要把C 的数值通过实验确定下来。 标定毕托管一般是在风洞中进行的,要求:(1)风洞实验段气流均匀,湍流度小于0.3%;(2)毕托管的堵塞面积小于实验段截面积的1/200;(3)毕托管插入深度h>2nd(n=8,d 为毕托管直径);(4)安装偏斜角小于2o;(5)以d 为特征长度的雷诺数必须大于250;(6) 最大风速不能超过 2000S d μ ρ(μ是空气动力粘度,S d 为静压孔直径)。这几点如能得到满 足,C 就决定于毕托管的结构,此时0 C C =称为毕托管的基本系数。流体力学实验室从英国进口了一支经过标定的NPL 毕托管,C=0.998。 毕托管进行标定时,将待标定的毕托管 与NPL 标准管安装在风洞实验段的适当位置上(总的原则是让两支管处于同一均匀气流区)因为是均匀流,则有 22C U P h ργ=?=标准 标准标准 22C U P h ργ=?=待标 待标待标 上面两式中,ρ、U 、γ均是同一的。两式相除,得 C h C h = 待标待标标准 标准 则 h C C h =待标待标标准 标准 0.9980.998 C h C h =∴ =标准待标待标标准 上式是毕托管标定的基本公式。通常是在10个不同风速下测量其C 待标 取其平均值;也 可以用10种不同风速下的 h 待标 和 h 标准 按最小二乘法求其基本系数。

计算机网络实验指导书新

计算机网络实验指导书(新版)

————————————————————————————————作者:————————————————————————————————日期: 2

计算机网络 实验指导书 主编郭雅 参编余小华黄锦煜罗肖辉 主审陶培基 I

前言 计算机网络是信息社会的支柱。培养一大批谙熟计算机网络原理与技术,具有综合应用和研发创新能力的人才,是社会信息化的需要,也是高等院校相关专业的教学目的。 编者在本科院校二级学院工作多年,一直担任计算机网络课程及其实验课程的教学工作。包括编者所在学校在内的许多本科院校二级学院采用了谢希仁编著《计算机网络》作为网络基础课程的教材。该教材内容丰富,说理透彻。针对本科院校二级学院学生的特点,教学中应该基础理论和实践并重,各所院校都开出了一定的实验课时。为规范实验内容,严格实验训练,达到实验教学的目的,编者多年来一直对本类院校的实验教学进行探索,研究在课时有限的情况下,如何组织计算机网络实验教学的内容,使之既能配合课堂教学,加深对所学知识的理解,又能紧跟网络技术的发展,培养和提高学生的实际操作技能。在教学实践中,编者一直坚持编写和完善实验指导书,并与选用谢希仁编著《计算机网络》做教材的一些兄弟院校的教师多次交流,修订完成了这本《计算机网络实验指导书》。 本书内容涵盖诠释网络原理,应用组网技术和实施网络管理等几个方面的实验项目十九个。由于编者水平有限,编写时间紧迫,不足与错误在所难免,恳请专家和广大读者不吝批评指正。 参加本书编写的人员有华南理工大学广州学院计算机工程系余小华老师,华南师范大学增城学院教育信息技术部黄锦煜老师,华南师范大学增城学院网络中心罗肖辉老师。 本书由华南师范大学增城学院计算机系主任陶培基教授担任主审。 感谢广东轻工职业技术学院计算机系教授石硕对本书编写和出版所提供的意见、建议和热忱帮助。 编者 2011年6月 于华南师范大学增城学院,广州 E-mail: hsguoya@https://www.doczj.com/doc/9f9869467.html, II

建筑材料课程实验指导书教学内容

建筑材料课程实验指 导书

本课程实验的基础知识 1、建筑材料实验的抽样及处理 抽样检验就是通过一个样本来判断总体是否合格。选取试样是建筑材料检验的第一个环节,抽样方法的正确与否直接关系到所检验材料的整体结果,必须制定出一个抽样方案。同时通过检验还要制定出判定其指标的验收标准。这样才能使取样方法具有较高的科学性和代表性。 2、建筑材料实验影响因素,同一材料在不同的制作条件下或不同的实验条件下,会得出不同的实验结果,主要因素有仪器的选择,试件尺寸,试件的形状,表面状态,加荷速度,温度,湿度。 3、实验结果的分析处理及实验报告,在取得了原始的实验数据之后,为了达到所需要的科学结论,常需要对观测数据进行一系列的分析和处理,最基本的方法是数学处理方法。经数据处理后,编写或填写实验报告:从而确定实验结果。但是,当我们对同一物理量进行重复测量时,经常发现他们的数值并不一样,每项实验都有误差,随着科技水平及人们认识水平提高,误差可控制的比较小,但不能完全消除。为了科学的评价数据资料,必须得认识和研究误差,才可以达到以下目的: (1)正确认识误差的性质,分析误差产生的原因,以消除或减少测量误差; (2)正确处理数据,合理计算结果,以更接近于真实值的数据; (3)正确组织实验,合理设计或选用仪器和操作方法,以便在经济的条件下取得理想的结果。 本课程实验教学项目及其教学要求

一、实验目的 学习掌握材料密度的概念和意义,掌握材料密度的测定方法。 二、实验原理 材料内部一般均含有一些孔隙,为了获得绝对密实状态的试样,须将材料磨成细粉,以排除其内部孔隙,再用排液置换法求出其绝对密实体积。 三、主要仪器及耗材 李氏瓶、天平、温度计、玻璃容器、筛子、烘箱、小勺、漏斗等。 四、实验内容与步骤 1、将试样磨成粉末,通过900孔/cm2的筛后,再将粉末放入 105~110℃烘箱内,烘干至恒重。 2、将不与试样起反应的液体倒入李氏瓶中,使液面达到0~1mL刻度之间,记下刻度数,将李氏瓶置于水温20℃+2℃的盛水玻璃容器中。 3、用天平称取60-90g试样,用小勺和漏斗小心地将试样送入密度瓶中,直到液面上升到20mL左右。再称剩余的试样质量,计算出装入瓶中的试样质量m。 4、轻轻振动密度瓶使液体中的气泡排出,记下液面刻度,前后两次液面读数之差,即为瓶内试样所占的绝对体积V。 五、数据处理与分析 按下式计算密度ρ(精确至0.01g/ cm3): ρ=m/V

操作系统_课程实验指导书

《—操作系统—》 实验指导书 洪朝群编写 适用专业:计算机(嵌入式) 厦门理工学院计算机科学与信息工程学院 2015年9 月

实验指导书前言内容要求 前言 本课程的基本内容介绍,通过学习学生需要掌握的基本知识。 为了使学生更好地理解和深刻地把握这些知识,并在此基础上,训练和培养哪些方面的技能,设置的具体实验项目,其中哪几项实验为综合性、设计性实验。 各项实验主要了解、掌握的具体知识,训练及培养的技能。 本指导书的特点。 对不同专业选修情况说明。

实验一:Linux操作系统的安装过程与界面 实验学时:4 实验类型:验证 实验要求:必修 一、实验目的 通过本实验的学习,使学生掌握Linux操作系统的安装方法,并且了解Linux 界面的基本使用方法。 二、实验内容 实验内容:用vmware workstation安装Ubuntu12.10系统。 三、实验原理、方法和手段 无 四、实验组织运行要求 以学生自主训练为主的开放模式组织教学 五、实验条件 无 六、实验步骤 1、下载Ubuntu12.10桌面版安装镜像, https://www.doczj.com/doc/9f9869467.html,/download/desktop 2、打开vmware,建立虚拟机镜像 3、安装过程参考(“VMWare8.0安装Ubuntu12.04教程.pdf”文件),注意使用虚拟机的时候把镜像文件放在最后一个盘。 4、(可选步骤)如果本机上的wmware版本在安装系统的过程中出现问题,可下载新版进行安装。https://www.doczj.com/doc/9f9869467.html,/d/FWACAQQFRTZQ?p=09122 七、思考题 Linux与Windows有何不同?

计算机网络实验指导书(6个实验)

实验一交换机的基本配置 一.实验原理 1.1以太网交换机基础 以太网的最初形态就是在一段同轴电缆上连接多台计算机,所有计算机都共享这段电缆。所以每当某台计算机占有电缆时,其他计算机都只能等待。这种传统的共享以太网极大的受到计算机数量的影响。为了解决上述问题,我们可以做到的是减少冲突域类的主机数量,这就是以太网交换机采用的有效措施。 以太网交换机在数据链路层进行数据转发时需要确认数据帧应该发送到哪一端口,而不是简单的向所有端口转发,这就是交换机MAC地址表的功能。 以太网交换机包含很多重要的硬件组成部分:业务接口、主板、CPU内存、Flash、电源系统。以太网交换机 的软件主要包括引导程序和核心操作系统两部分。 1.2以太网交换机配置方式 以太网交换机的配置方式很多,如本地Console 口配置,Telnet远程登陆配置,FTP TFTP配置和哑终端方式 配置。其中最为常用的配置方式就是Console 口配置和Telnet远程配置。 1.3以太网交换机基本配置方法 1.3.1交换机的用户界面交换机有以下几个常见命令视图: (1)用户视图:交换机开机直接进入用户视图,此时交换机在超级终端的标识符为。 (2)系统视图:在用户视图下输入实system-view命令后回车,即进入系统视图。在此视图下交换机的标识符 为:。](3)以太网端口视图:在系统视图下输入interface命令即可进入以太网端口视图。在此视图下交换 机的标识符为:。 (4)VLAN配置视图:在系统视图下输入vlan vlan —number即可进入VLAN配置视图。在此视图下交换机的标识符为:。 (5)VTY用户界面视图:在系统视图下输入user-interface vty number 即可进入VTY用户界面视图。在此视图下交 换机的标识符为:。 进行配置时,需要注意配置视图的变化,特定的命令只能在特定的配置视图下进行。 1.3.2交换机的常用帮助在使用命令进行配置的时候,可以借助交换机提供的帮助功能快速完成命令的查找和配置。 (1)完全帮助:在任何视图下,输入?”获取该视图下的所有命令及其简单描述。 (2)部分帮助:输入一命令,后接以空格分隔的?”,如果该位置为关键字,则列岀全部关键字及其描述;如果该位置为参数,则列岀有关的参数描述。 在部分帮助里面,还有其他形式的帮助,如键入一字符串其后紧接?”,交换机将列岀所有以该字符串开头的命令; 或者键入一命令后接一字符串,紧接?”,列岀命令以该字府串开头的所有关键字。 实验内容:交换机配置方法

密码学实验讲义及实验报告2014

密码学基础 实验指导书 黑龙江大学计算机科学技术学院 2013年3月

目录 前言........................................................................................................................... - 2 -要求与评分标准....................................................................................................... - 3 -1要求. (3) 2评分标准 (3) 实验1 古典密码的实现(3学时) .................................................................... - 4 -实验2 对称密钥密码体制的实现(6学时) .................................................... - 4 -实验3 公开密钥密码算法的实现(6学时) .................................................... - 5 -实验4 数字签名算法的实现(3学时) ............................................................ - 5 -附录1:实验报告格式 ........................................................................................... - 7 -

产品创意设计实验课程实验指导书

产品创意设计实验课程 实验指导书 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

产品创意设计实验课程实验指导书 机械工程实验中心 产品创意设计实验指导书 本实验主要基于慧鱼创意模型系统(fischertechnik).实验的目的是通过让学生学习动手组装模型机器人和建造自己设计的有一定功能的机器人模型产品,使学生体会创意设计的方法和意义;同时通过创意实验,使学生了解一些计算机控制、软件编程、机电一体化等方面的基础知识,加深对专业课学习的理解,为后续课的学习做一个很好地铺垫. 一、实验设备介绍 (1)慧鱼创意模型系统的组成: 慧鱼创意模型系统(fischertechnik)硬件主要包括:1000多种的拼插构件单元、驱动源、传感器、接口板等. 拼插构件单元:系统提供的构件主料均采用优质的尼龙塑胶,辅料采用不锈钢芯铝合金架等,采用燕尾槽插接方式连接,可实现六面拼接,多次拆装.系统提供的技术组合包中机械构件主要包括:齿轮、联杆、链条、齿轮(普通齿轮、锥齿轮、斜齿轮、内啮合齿轮、外啮合齿轮)、齿轴、齿条、涡轮、涡杆、凸轮、弹簧、曲轴、万向节、差速器、齿轮箱、铰链等. 驱动源:①直流电机驱动(9V、最大功率1.1W、转速7000 prn),由于模型系统需求功率比较低(系统载荷小,需求功率只克服传动中的摩擦阻力),所以它兼顾驱动和控制两种功能.②减速直流电机驱动(9V、最大功率1.1瓦,减速比50:1/20:1). ③气动驱动包括:储气罐、气缸、活塞、电磁阀、气管等元件.

传感器:在搭接模型时,你可以把传感器提供的信息(如亮/暗、通/断,温度值等)通过接口板传给计算机.系统提供的传感器做为控制系统的输入信号包括:①感光传感器Brightness sensor(光电管):对亮度有反应,它和聚焦灯泡配合使用,当有光(或无光)照在上面时,光电管产生不同的电阻值,引发不同信号. ②接触传感器Contact sensor(触动开关):如图1所示, 当红色按钮按下,接触点1、3接通,同时接触点1、2 断开,所以有两种使用方法:常开:使用接触点1、3,按下按钮=导通;松开按钮=断开;常闭:使用接触点1、2,按下按钮=断开;松开按钮=导通.③热传感器Thermal sensor(NTC电阻):可测量温度.温度20°C时,电阻值1.5KΩ.NTC的意思是负温度系数,温度升高电阻值下降.④磁性传感器 Magnetic sensor :非接触性开关. ⑤红外线发射接收装置:新型的运用可控制所有马达电动模型的红外线遥控装置由一个强大的红外线发射器和一个微处理器控制的接收器组成.有效控制范围是10米,分别可控制三个马达. 接口板:自带微处理器,程序可在线和下载操作,用LLWin3.0或高级语言编程,通过RS232串口与电脑连接,四路马达输出,八路数字信号输入,二路模拟信号输入,具有断电保护功能(新版接口),两接口板级联实现输入输出信号加倍. PLC接口板:实现电平转换,直接与PLC相连.智能接口板自带微处理器,通过串口与计算机相连.在计算机上编的程序可以移植到接口板的微处理器上,它可以不用计算机独立处理程序(在激活模式下). 慧鱼创意模型系统(fischertechnik)LLWin3.0软件:LLWin3.0是慧鱼创意模型系统的专用软件. LLWin软件是一种图形编程软件,简单易用,实时控制.用PLC控制器控制模型时,采用梯形图编程.编辑程序的其最大特点是使用系统提供的工具箱

相关主题
文本预览
相关文档 最新文档