实验指导书 - 实验5

实验指导书 - 实验5
实验指导书 - 实验5

计算机网络:理论与实践

实验指导书

陈鸣编著

高等教育出版社

二〇一三年二月

5应用层实验(4学时)

实验9:利用Java开发网络应用程序

1. 实验目的

1)基本掌握利用Java开发环境调试应用程序的方法。

2)理解基于套接字开发网络应用程序的过程,深入理解Ping工作原理。

3)深入理解HTTP协议的格式和工作过程,理解Web代理服务器工作原理。

2. 实验环境

1)运行Windows 2008 Server/Windows XP/Windows 7操作系统的PC 2台。

2)每台PC具有以太网卡一块,通过双绞线与局域网相连。

3)具有Java开发包jdk-1_5_0_06-windows-i586-p.exe。

3. 实验步骤

1)安装Java编程环境

(1) 安装开发包JDK。双击JDK安装程序jdk-1_5_0_06-windows-i586-p.exe图标,进行安装。根据安装提示选择安装目录后开始安装过程。在安装JDK的过程中,同时需要安装Java运行环境JRE(Java Runtime Environment)。接下来。配置Java环境变量。右键点击“我的电脑”,选择“属性”。然后选择“高级”选项卡,点击“环境变量”,即弹出如图45所示的界面。

图45 环境变量配置界面

(2) 修改环境变量的值。在“用户变量”中,分别设置JA V A_HOME、PATH和CLASSPATH 这3项属性。若已存在则点击“编辑”,不存在则点击“新建”。JA V A_HOME指明JDK的安

装路径,也就是在安装时选择的路径,如D:\Java\jdk1.5.0_06,在此路径下包括lib、bin、jre 等文件夹。PATH使得系统可以在任何路径下识别Java命令,该值设为“%JA V A_HOME%\bin; %JA V A_HOME%\jre\bin”。CLASSPATH为Java加载类路径,只有类在classpath中,Java命令才能识别,该值设为“.; %JA V A_HOME%\lib\dt.jar; %JA V A_HOME%\lib\tools.jar”。

测试安装结果。选择“开始”菜单中的“运行”,键入“cmd”。在命令提示符中键入 “java –version”、“java”和“javac”命令,出现如图46所示画面则说明环境变量配置成功。

图46 运行Java命令结果

(3)在命令提示符环境编译运行java程序。Java程序编写后,就可以在命令提示符环境下编译和运行。启动命令提示符后,先利用“cd”命令进入Java程序所在的目录,然后键入“javac java类的文件名”命令编译该Java程序。如果编译成功,则不会显示错误信息并直接返回,如图47所示。

图47 在命令提示符中编译Java程序

此后,在该目录下会产生一个.class文件。直接键入“java java类名运行参数”即可运行该编译好的Java程序,如图48所示。

图48 在命令提示符中运行java程序

如果想要退出正在运行的Java程序,按“ctrl+C”即可完成。

2)在Java集成开发环境下调试程序

前面假定编写的Java程序是正确的,而事实上自己首次编写的程序通常都会出现这样或那样的问题。为此,需要借助于Java集成开发环境来调试程序。

(1)安装Java集成开发环境。Java的集成开发环境有很多,对于IBM公司开发的开源Java 集成开发环境eclipse,在解压eclipse压缩包后,双击eclipse.exe即可运行eclipse。图49是eclipse运行后的主界面。

图49 eclipse集成开发环境主界面

(2)在eclipse中创建、编译和运行java程序。首先要创建java程序。运行eclipse后,从

菜单栏选择“File->New->Project…”,接着会弹出如图50所示的对话框。

图50 eclipse新建项目向导

在下拉框中选中“Java Project”,点击下方的“Next”按钮,弹出“New Java Project”向导,在“Project name”中输入如“Example”,点击“Finish”按钮关闭对话框,这样一个java项目就建立完毕了,同时在eclipse的左侧会出现新建好的名为“Example”的java项目。接下来右键

点击“Example”项目,选择“New->class”,弹出如图51所示的新建类java对话框。

图51 eclipse新建类向导

在“Name”中输入需要新建的类的名字,点击下方的“Finish”按钮即可创建一个新的java 类。

然后再编译和运行java程序。在eclipse右侧的程序编辑框中编写完java程序后,点击菜单栏中的“保存”,eclipse会自动对代码进行编译并生成类文件。在编译完java代码后,即可运行写好的类,右键选择需要运行的java类,选择“Run As->Run…”,弹出如图52所示的“运行”向导。

图52 eclipse运行向导

选择“Arguments”选项卡,在“Program arguments”中输入程序运行参数(如图53所示),然后点击下方的“Run”按钮,即可运行该java程序。

图53 程序参数输入界面

3)编写UDP Ping程序

要采用UDP协议来实现ICMP协议中Ping报文的功能,就必须在应用层来模拟网络层中Ping报文的工作流程,即首先由客户机向服务器端发送一个应用层的UDP Ping请求报文,服务器端程序在接收到UDP Ping请求报文后,向客户机返回一个UDP Ping响应报文,客户机通过判断是否能够接收到该响应报文以及相应的丢包率、时延大小等信息来分析客户机与服务器端之间的链路状况。因此需要利用UDP套接字实现服务器和客户机程序,在应用

层模拟Ping报文的通信过程。图54显示了服务器和客户机之间的交互过程。

图54 服务器和客户机交互过程

(1)编写服务器端程序。

服务器端程序主要实现的功能包括:根据用户输入参数打开特定的插口,并对插口进行

监听,接收从客户机发送过来的应用层Ping请求报文,打印该应用层数据内容,然后向客

户机回复Ping响应报文。

图55显示了完成上述功能的服务器端代码,请学员阅读代码并回答下列问题:

1)代码第16行为什么要加上port参数?不加该参数会出现什么情况?

2)哪一行代码是用于接收客户机发送过来的Ping请求报文?

3)代码第21至24行是模拟网络中的什么现象?

4)代码第25行又是模拟网络中的什么现象?

5)代码第26和27行所获取的参数分别代表什么意思?不提取该参数行不行?为什么?

6)服务器端向客户机回复的Ping响应报文应用层数据是什么?

1 import java.io.*;

2 import https://www.360docs.net/doc/3513820522.html,.*;

3 import java.util.*;

4 /* 利用UDP协议实现ping报文请求的服务器端程序 */

5 public class PingServer {

6 private static final double LOSS_RATE = 0.3;

7 private static final int AVERAGE_DELAY = 100;

8 public static void main(String[] args) throws Exception

9 {

10 if (args.length != 1) {

11 System.out.println("Required arguments: port");

12 return;

13 }

14 int port = Integer.parseInt(args[0]);

15 Random random = new Random();

16 DatagramSocket socket = new DatagramSocket(port);

17 while (true) {

18 DatagramPacket request = new DatagramPacket(new byte[1024], 1024);

19 socket.receive(request);

20 printData(request);

21 if (random.nextDouble() < LOSS_RATE) {

22 System.out.println(" Reply not sent.");

23 continue;

24 }

25 Thread.sleep((int) (random.nextDouble() * 2 * AVERAGE_DELAY));

26 InetAddress clientHost = request.getAddress();

27 int clientPort = request.getPort();

28 byte[] buf = request.getData();

29 DatagramPacket reply = new DatagramPacket(buf, buf.length, clientHost, clientPort);

30 socket.send(reply);

31 System.out.println(" Reply sent.");

32 }

33 }

34 /* 将ping报文的数据按照标准输出流打印出来 */

35 private static void printData(DatagramPacket request) throws Exception

36 {

37 byte[] buf = request.getData();

38 ByteArrayInputStream bais = new ByteArrayInputStream(buf);

39 InputStreamReader isr = new InputStreamReader(bais);

40 BufferedReader br = new BufferedReader(isr);

41 String line = br.readLine();

42 System.out.println("Received from " + request.getAddress().getHostAddress() + ": " + new

String(line));

43 }

44 }

图55 UDP Ping程序服务器端代码

(2)编写客户机程序

客户机程序需要主要实现的功能包括:与服务器建立连接,然后构建UDP Ping请求报文,并将其发送给服务器,同时等待和接收从服务器发回的响应报文,连续发送10次Ping 请求报文后关闭插口。

图5准备显示了完成上述功能的服务器端代码,请学员阅读代码并回答下列问题:

1)用户输入参数应当有多少个?这些参数的所代表的意义是什么?

2)客户机插口设置的超时时间是多少?为什么要设置超时时间?

3)客户机向服务器发送的Ping请求报文应用层数据格式是什么?

4)代码第30行中四个参数的意义分别是什么?

5)代码第32、36和37行是为了完成什么功能?

6)哪行代码是用于接收服务器发送过来的Ping响应报文?

1 import https://www.360docs.net/doc/3513820522.html,.DatagramPacket;

2 import https://www.360docs.net/doc/3513820522.html,.DatagramSocket;

3 import https://www.360docs.net/doc/3513820522.html,.InetAddress;

4 import java.text.SimpleDateFormat;

5 import java.util.Date;

6 public class PingClient {

7 public static void main(String[] args) throws Exception {

8 if (args.length == 0) {

9 System.out.println("Required arguments: host port");

10 return;

11 }

12 if (args.length == 1) {

13 System.out.println("Required arguments: port");

14 return;

15 }

16 String host = args[0].toString();

17 int port = Integer.parseInt(args[1]);

18 DatagramSocket clientSocket = new DatagramSocket();

19 clientSocket.setSoTimeout(1000);

20 InetAddress IPAddress = InetAddress.getByName(host);

21 long sendTime, receiveTime;

22 for(int i = 0; i < 10; i++) {

23 byte[] sendData = new byte[1024];

24 byte[] receiveData = new byte[1024];

25 Date currentTime = new Date();

26 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

27 String timeStamp = formatter.format(currentTime);

28 String pingMessage = "PING " + i + " " + timeStamp + " " + "\r\n";

29 sendData = pingMessage.getBytes();

30 DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length,

IPAddress, port);

31 try {

32 sendTime = System.currentTimeMillis();

33 clientSocket.send(sendPacket);

34 DatagramPacket receivePacket = new DatagramPacket(receiveData,

receiveData.length);

35 clientSocket.receive(receivePacket);

36 receiveTime = System.currentTimeMillis();

37 long latency = receiveTime - sendTime;

38 String serverAddress = receivePacket.getAddress().getHostAddress();

39 System.out.println("From " + serverAddress + ": " + latency + "ms.");

40 } catch (https://www.360docs.net/doc/3513820522.html,.SocketTimeoutException ex) {

41 String reply = "No reply.";

42 System.out.println(reply);

43 }

44 }

45 clientSocket.close();

46 }

47 }

图56 UDP Ping程序客户机代码

(3)编译和运行UDP Ping程序。

在完成UDP Ping服务器端程序PingServer.java以及客户机程序PingClient.java的编写后,可以在Java集成环境下或在命令提示符下对这两个java文件进行编译。如在命令提示符下,编译时首先利用“cd”命令进入这两个文件所在的目录,然后键入命令:javac PingServer.java以及javac PingClient.java。如果编译成功,则在该目录下会产生两个新的文件,分别为PingServer.class和PingClient.class。

先运行服务器端程序,运行的命令为:java PingServer port。其中port为端口号,该端口号可以指定为任意小于65535以下并且未被系统占用的端口号。运行完服务器端程序之后,程序会等待客户机发送UDP Ping请求报文。

接下来运行客户机程序,运行的命令为:java PingClient host port。其中host为服务器所在的主机名字或IP地址,port为服务器开放的端口号。

分析服务器和客户机程序成功运行后出现的结果,是否与你预期一致。

4)编写Web代理服务器程序(选做)

Web代理服务器的主要功能是接收来自浏览器的GET报文,并向目的Web服务器转发GET报文,从目的Web服务器接收HTTP响应报文,并向浏览器转发HTTP响应报文。该Web代理服务器不仅能够理解简单的GET请求,而且能够处理各种对象如HTML页面对象,以及各种图像对象。

整个Web代理服务器程序由3个类组成:

●ProxyCache:启动Web代理服务器程序,并对客户机的代理请求进行处理。

●HttpRequest:接收从客户机发送过来的GET报文,并对其进行相应的处理。

●HttpResponse:接收从服务器发送过来的HTTP响应报文,并对其进行相应的处理。

其中,类ProxyCache分别调用类HttpRequest和类HttpResponse来对客户机以及Web 服务器发送过来的请求/响应报文进行处理。

(1)编写Web服务器代理类ProxyCache.java。ProxyCache主要实现的功能包括:创建并打开插口,接收从客户机的连接请求,并创建HttpRequest对象,然后解析HttpRequest对象中Web服务器的IP地址和端口号信息,将其转发Web服务器,同时接收Web服务器回复的响应报文,并将其转发给客户机。

图57显示了完成上述功能的ProxyCache类代码,请学员阅读代码并回答下列问题:

1)用户输入参数的功能是什么?

2)代码第20和21行的功能是什么?

3)代码第27行的功能是什么?

4)代码第31至34行进行的异常处理是为了解决什么异常?

5)代码第43和44行中,Web代理服务器分别向客户机转发了什么数据内容?

6)Web代理服务器所采用的HTTP连接方式是持久连接还是非持久连接?从哪几行

代码可以看出所采用的是何种连接方式?同时请思考采用这种连接方式有什么好处?

1 import https://www.360docs.net/doc/3513820522.html,.*;

2 import java.io.*;

3 public class ProxyCache {

4 private static int port;

5 private static ServerSocket socket;

6 public static void init(int p) {

7 port = p;

8 try {

9 socket = new ServerSocket(port);

10 } catch (IOException e) {

11 System.out.println("Error creating socket: " + e);

12 System.exit(-1);

13 }

14 }

15 public static void handle(Socket client) {

16 Socket server = null;

17 HttpRequest request = null;

18 HttpResponse response = null;

19 try {

20 BufferedReader fromClient = new BufferedReader(new

InputStreamReader(client.getInputStream()));

21 request = new HttpRequest(fromClient);

22 } catch (IOException e) {

23 System.out.println("Error reading request from client: " + e);

24 return;

25 }

26 try {

27 server = new Socket(request.getHost(), request.getPort());

28 DataOutputStream toServer = new DataOutputStream(server.getOutputStream());

29 toServer.writeBytes(request.toString());

30 System.out.println("Request forwarded.");

31 } catch (UnknownHostException e) {

32 System.out.println("Unknown host: " + request.getHost());

33 System.out.println(e);

34 return;

35 } catch (IOException e) {

36 System.out.println("Error writing request to server: " + e);

37 return;

38 }

39 try {

40 DataInputStream fromServer = new DataInputStream(server.getInputStream());

41 response = new HttpResponse(fromServer);

42 DataOutputStream toClient = new DataOutputStream(client.getOutputStream());

43 toClient.writeBytes(response.toString());

44 toClient.write(response.body);

45 client.close();

46 server.close();

47 } catch (IOException e) {

48 System.out.println("Error writing response to client: " + e);

49 }

50 }

51 public static void main(String args[]) {

52 int myPort = 0;

53 try {

54 myPort = Integer.parseInt(args[0]);

55 } catch (ArrayIndexOutOfBoundsException e) {

56 System.out.println("Need port number as argument");

57 System.exit(-1);

58 } catch (NumberFormatException e) {

59 System.out.println("Please give port number as integer.");

60 System.exit(-1);

61 }

62 init(myPort);

63 Socket client = null;

64 while (true) {

65 try {

66 client = socket.accept();

67 handle(client);

68 } catch (IOException e) {

69 System.out.println("Error reading request from client: " + e);

70 continue;

71 }

72 }

73 }

74 }

图57 类ProxyCache的代码

(2)编写HTTP请求类HttpRequest.java。HttpRequest主要实现的功能包括:从HTTP请求报文中获取方法字段、URL字段和HTTP协议版本字段,并解析Web服务器的主机名和

端口号。

图58显示了完成上述功能的HttpRequest类代码,请学员阅读代码并回答下列问题:

1)代码第18至21行完成的功能是什么?

2)哪几行代码是用于获取Web服务器的主机名和端口号信息?

3)Web服务器的默认端口号是多少?

4)代码第59行表明的含义是什么?

5)该段程序能否处理POST或其他形式的HTTP请求报文?

1 import java.io.*;

2 public class HttpRequest {

3 final static String CRLF = "\r\n";

4 final static int HTTP_PORT = 80;

5 String method;

6 String URI;

7 String version;

8 String headers = "";

9 private String host;

10 private int port;

11 public HttpRequest(BufferedReader from) {

12 String firstLine = "";

13 try {

14 firstLine = from.readLine();

15 } catch (IOException e) {

16 System.out.println("Error reading request line: " + e);

17 }

18 String[] tmp = firstLine.split(" ");

19 method = tmp[0];

20 URI = tmp[1];

21 version = tmp[2];

22 System.out.println("URI is: " + URI);

23 if (!method.equals("GET")) {

24 System.out.println("Error: Method not GET");

25 }

26 try {

27 String line = from.readLine();

28 while (line.length() != 0) {

29 headers += line + CRLF;

30 if (line.startsWith("Host:")) {

31 tmp = line.split(" ");

32 if (tmp[1].indexOf(':') > 0) {

33 String[] tmp2 = tmp[1].split(":");

34 host = tmp2[0];

35 port = Integer.parseInt(tmp2[1]);

36 } else {

37 host = tmp[1];

38 port = HTTP_PORT;

39 }

40 }

41 line = from.readLine();

42 }

43 } catch (IOException e) {

44 System.out.println("Error reading from socket: " + e);

45 return;

46 }

47 System.out.println("Host to contact is: " + host + " at port " + port);

48 }

49 public String getHost() {

50 return host;

51 }

52 public int getPort() {

53 return port;

54 }

55 public String toString() {

56 String req = "";

57 req = method + " " + URI + " " + version + CRLF;

58 req += headers;

59 req += "Connection: close" + CRLF;

60 req += CRLF;

61 return req;

62 }

63 }

图58 类HttpRequest的代码

编写HTTP响应类HttpResponse.java。HttpResponse主要实现的功能包括:获取响应报文中的状态行以及首部行,根据响应报文的长度信息获取报文的实体主体。

图59显示了完成上述功能的HttpResponse类代码,请学员阅读代码并回答下列问题:

1)从程序中分析状态行位于响应报文中的什么位置?从哪几行代码可以判断出来?

2)从程序判断HTTP响应报文中是否肯定包含报文的长度字段?

3)根据HTTP响应报文格式说明为何从第42行开始读取的是响应报文的实体主体部分?

4)程序能够处理的页面最大为多少字节?

1 import java.io.*;

2 public class HttpResponse {

3 final static String CRLF = "\r\n";

4 final static int BUF_SIZE = 8192;

5 final static int MAX_OBJECT_SIZE = 100000;

6 String version;

7 int status;

8 String statusLine = "";

9 String headers = "";

10 byte[] body = new byte[MAX_OBJECT_SIZE];

11 public HttpResponse(DataInputStream fromServer) {

12 int length = -1;

13 boolean gotStatusLine = false;

14 try {

15 String line = fromServer.readLine();

16 while (line.length() != 0) {

17 if (!gotStatusLine) {

18 statusLine = line;

19 gotStatusLine = true;

20 } else {

21 headers += line + CRLF;

22 }

23 if (line.startsWith("Content-Length") ||

24 line.startsWith("Content-length")) {

25 String[] tmp = line.split(" ");

26 length = Integer.parseInt(tmp[1]);

27 }

28 line = fromServer.readLine();

29 }

30 } catch (IOException e) {

31 System.out.println("Error reading headers from server: " + e);

32 return;

33 }

34 try {

35 int bytesRead = 0;

36 byte buf[] = new byte[BUF_SIZE];

37 boolean loop = false;

38 if (length == -1) {

39 loop = true;

40 }

41 while (bytesRead < length || loop) {

42 int res = fromServer.read(buf);

43 if (res == -1) {

44 break;

45 }

46 for (int i = 0; i < res && (i + bytesRead) < MAX_OBJECT_SIZE; i++) {

47 body[i+bytesRead] = buf[i];

48 }

49 bytesRead += res;

50 }

51 } catch (IOException e) {

52 System.out.println("Error reading response body: " + e);

53 return;

54 }

55 }

56 public String toString() {

57 String res = "";

58 res = statusLine + CRLF;

59 res += headers;

60 res += CRLF;

61 return res;

62 }

63 }

图59 类HttpResponse的代码

(3)编译Web代理服务器。在对Web代理服务器程序进行编译时,由于服务器回复的响应报文中包含了文本和二进制的数据,因此程序中使用了DataInputeStreams来对服务器的回复报文进行处理,因此在进行编译时需要添加-deprecation参数才能够保证成功编译。

编译的步骤是首先通过命令提示符中进入Web代理服务器程序所在的目录,对类ProxyCache.java进行编译,具体的命令为:

javac –deprecation ProxyCache.java。

运行Web代理服务器。在运行Web代理服务器时直接运行ProxyCache类即可。运行的命令为:java ProxyCache port。其中port为Web代理服务器所开放的端口号,客户机在连接到Web代理服务器时,必须将端口号设置为该值。

(4)配置浏览器。打开IE浏览器,选择“工具”菜单中的“Internet选项”,显示如图60所示页面。

图60 Internet选项界面

选择“连接”选项卡,在“局域网(LAN)设置”中点击“局域网设置”按钮弹出如图61所示的局域网设置对话框。

图61 局域网设置界面

勾中“代理服务器”下的选项,并将地址以及端口号设置为Web代理服务器的IP地址及其使用的端口号。点击确定,完成浏览器的配置,接下来就可以利用浏览器通过Web代理服务器来访问远程的Web服务器。

在浏览器的地址栏中输入“https://www.360docs.net/doc/3513820522.html,”,即可以通过Web代理服务器访问百度主页,这时程序显示的信息如图62所示。你可以通过代理服务器自行访问其他网站。

图62 通过Web代理服务器访问百度网站后代理服务器的显示

4. 相关概念

1)用户数据报协议。用户数据报协议(User Datagram Protocol,UDP)由RFC768定义,它位于网络层之上的运输层,被封装在IP数据报当中。在使用UDP协议进行报文传输时,

发送发和接收方直接向对方发送数据报,而无需先进行握手,因此UDP也被称为无连接协议。

2)超文本传输协议。Web采用的应用层协议是超文本传输协议(HyperText Transfer Protocol,HTTP),由RFC 1945和RFC 2616进行了定义。HTTP协议由两部分程序实现:一个客户机程序和一个服务器端程序,它们运行在不同的端系统中,通过交换HTTP报文进行会话。HTTP协议定义了这些报文的格式以及客户机和服务器之间是如何进行报文交互的。HTTP协议使用TCP作为它的支撑运输层协议。HTTP客户机发起一个与HTTP服务器的TCP连接,一旦连接建立,浏览器和服务器进程就可以通过套接字接口来进行数据的交互。

HTTP协议的请求报文包括三部分:请求行(request line)、首部行(header line)和实体主体(entity body)。其中请求行由请求方法,请求网址和协议构成,而首部行包括多个属性,数据体则是附加在请求之后的文本或二进制文件。下面这个例子显示了一个HTTP请求报文的首部内容。

GET /networking.html HTTP/1.1

Host: https://www.360docs.net/doc/3513820522.html,

Connection: close

User-agent: Mozilla/4.0

Accept-language: zh-cn

HTTP协议的响应报文有三部分组成:初始状态行(status line)、首部行(header line)和实体主体(entity body)。实体主体部分是报文的主体,包含了所请求的对象本身。状态行由协议版本、状态码和响应状态信息组成。下面这个例子显示了一个HTTP响应报文的首部内容。

HTTP /1.1 200 OK

Connection: close

Date: Thu, 27 Jan 2011 11:00:23 GMT

Server: Apache/1.3.0 (Unix)

Content-Length: 6821

Content-Type: text/html

3)Web代理服务器。Web代理服务器的功能是充当HTTP客户机和服务器之间的转发者,Web代理服务器首先接收来自浏览器的GET报文,并向目的地Web服务器转发该GET报文,然后从目的服务器接收HTTP响应报文,并向浏览器转发该响应报文,最终实现浏览器对Web服务器的访问。

5. 注意事项

1)调试Java程序时,先要正确配置系统的环境变量。

2)客户机所发送的Ping请求报文的目的地址和目的端口号应当与服务器端一致。

3)编写Web代理服务器程序时,要正确理解HTTP协议首部各个部分所代表的意义。

4)配置浏览器的代理服务器时,填写的IP地址和端口号要正确,否则无法连接到Web 代理服务器。

生物化学实验课教学大纲

生物化学实验课教学大纲 课程编码: 学时: 学分: 可成熟型:独立设课 开课单位:生命科学学院 先修课程:动物学、植物学、无机及分析化学、有机化学等 一、实验性质 生物化学专业实验是配合生物化学理论教学而设置的一门基础课程,分为基础实验、综合实验与创新实验。实验按照一学期进行设置,主要实验设置为生化基础实验和部分创新、综合实验。基础实验可使学生更好地掌握基本理论和基本实验技术,一般实验在学时内完成;综合实验要求学生运用所学知识解决实际问题,培养学生分析问题解决问题的能力;创新实验由学生自己动手查阅资料,拟定具体实验方案,提倡学生多思多问,有利于学生创新意识的培养,加强了收集信息、分析问题解决问题的能力。实验室全天开放。 二、实验教学目的和要求 生物化学专业实验是配合生物化学理论教学而设置的一门基础课程,通过实验课的教学,力求使学生能够对生物化学的基本理论和概念有更加深刻的认识,激发学生对探索生物化学规律的浓厚兴趣。更为重要的是,在实验过程中培养学生观察问题、分析问题和解决问题的能力,锻炼学生的实际操作能力。 三、实验项目名称和学时分配

四、实验项目具体内容 生物化学实验技术 实验项目一:皂化价的测定 实验目的:使用酸碱滴定法通过脂肪皂化价来推断分子量。 主要仪器:电子天平、水浴锅、冷凝管、酸碱滴定管。 教学方式:讲授、操作。 预习要求:预习滴定分析法的基本原理,熟悉实验操作基本流程。 实验项目二:凯氏定氮法测定蛋白质含量 实验目的:掌握使用基本滴定原理和方法测定蛋白质含量和凯氏定氮仪的使用。 主要仪器:凯氏定氮仪、电子天平、通风橱、电炉、酸碱滴定管。

教学方式:讲授、操作。 预习要求:预习“滴定分析的计算”章节内容,熟悉凯氏定氮法的基本原理。 实验项目三:的含量测定 实验目的:用滴定法测定并掌握水果和蔬菜中维生素的测定方法。 主要仪器:电子天平、研钵、移液管、酸碱滴定管。 教学方式:讲授、操作。 预习要求:预习“滴定分析的计算”和“标准溶液”章节内容。 实验项目四:蒽酮比色法定糖 实验目的:学习分光光度计的原理合使用方法。掌握总糖定量测定的操作方法。 主要仪器:可见光分光光度计、电子天平、水浴锅。 教学方式:讲授、操作。 预习要求:预习分光光度法基本原理,了解分光光度计的基本构造。 实验项目五:血清总胆固醇的测定 实验目的:学习用分光光度法测定血清中总胆固醇(脂肪)含量及标准曲线的制作。 主要仪器:可见光分光光度计、电子天平、水浴锅。 教学方式:讲授、操作。 预习要求:预习分光光度法基本原理及其定量和定性的基本方法。 实验项目六:考马斯亮兰染色法测蛋白质 实验目的:学习利用染色方法提高蛋白质消光系数,以提高分光光度法检测灵敏度。 主要仪器:可见光分光光度计、电子天平、水浴锅。 教学方式:讲授、操作。 预习要求:预习分光光度法基本原理及其定量和定性的基本方法。 实验项目七:紫外吸收法测定蛋白质核酸含量 实验目的:学习利用紫外分光光度法对生物大分子进行定量分析度。 主要仪器:紫外可见分光光度计、电子天平。 教学方式:讲授、操作。 预习要求:预习紫外分光光度计相关内容及其定量和定性的基本方法。 实验项目八:血清丙氨酸氨基移换酶测定 实验目的:学习利用比色法测定酶的活性。 主要仪器:分光光度计、冰箱、电子天平、水浴锅。 教学方式:讲授、操作。 预习要求:预习“酶活力及其动力学数据的测定”章节。 实验项目九:大蒜酶的提取及酶活力和含量测定

实验指导书

Matlab实验指导书 河北大学电子信息工程学院 2004年1月

目录 MATLAB实验教学计划 (2) 实验一MATLAB基本操作 (3) 实验二MATLAB图形系统......................................................... . (5) 实验三 MATLAB程序设计 (6) 实验四 MATLAB基本应用领域 (7) 实验五设计性综合实验1---数字信道编译码 (14) 实验六设计性综合实验2---fir滤波器设计................................. . (16) 2

MATLAB实验教学计划 指导教师:郑晓昆薛文玲王竹毅学时数:12学时周4学时2次实验,共3周6次实验,第7—9教学周,每次实验2学时 所用仪器设备:MATLAB7.0实验软件系统 实验指导书:Matlab实验指导书 自编 实验参考书:, 楼顺天等编著, 西安电子科大出版社,06年5月第二版 实验项目: A, MATLAB基本操作 内容:矩阵操作,基本数学函数,逻辑函数操作等; 要求:循序渐进完成P83练习题1—10 B, MATLAB图形系统 内容:图形绘制,图形标注,对数和极坐标,坐标轴控制,颜色控制等要求:循序渐进完成P146练习题1—10 C, MATLAB程序设计 内容:脚本script和函数function认识,流程控制,参数交互输入,基本程序设计技巧练习,程序调试DEBUG等 要求:循序渐进完成P184练习题1—10 D, MATLAB基本应用领域 内容:线性代数,多项式与内插,曲线拟合,数据分析与统计,泛函基础等 要求:循序渐进完成P146练习题1—4,6—19 E, 设计性综合实验----数字信道编译码 内容:1数字通信系统信道编码AMI编译码 2数字通信系统信道编码HDB3编译码 F,设计性综合实验----fir滤波器设计 内容:设计一个有限冲击相应数字滤波器FIR是该滤波器能够滤出规定频率以上的信号,而该频率以下的信号不受影响。 3

动物生物化学实验教学改革的研究

动物生物化学实验教学改革的研究 摘要:依据高校教育改革的深入和创新素质教育的全面推进,针对动物生物化学实验教学实际情况,进行了改革探索研究。主要通过大学生研究训练计划(SRP)项目和毕业论文于实验教学中的实施,使之互相影响并促进动物生物化学实验教学改革,其旨是发挥实验教学的作用,提高学生创新和实践能力,为国家培养合格人才。 关键词:动物生物化学实验教学 SRP 毕业论文改革 《动物生物化学》实验课程是动物医学和动物科学专业的重要基础课,既具有基础性,又具有前沿性,是研究生命活动变化规律的学科,对验证和巩固动物生物化学理论知识,掌握动物机体内发生的生物化学机制并且运用动物生物化学实验原理和方法来诊断、治疗和预防疾病等都有非常重要的作用,目前的动物生物化学实验教学模式只是注重理论课程内容的复证,同时也在响应国家要求培养适应创新型高水平创新人才的号召,进行动物生物化学实验的优化组合,更新替换陈旧实验内容,对本科生开放一些实验室,虽然起到了一定的作用,但还是不能满足于学生主动性和创造性的全面发挥。因此,本实验室针对动物生物化学实验课程进行

了更深层次的改革探索,首先将动物生物化学实验教学从以前的理论教学中分离出来成为一门独立的32学时的实验课程,对以前的实验项目进行大幅度删减,替换一些重复的和与学生创新性结合不紧密的实验项目,增加了适应学生创新和实践思维发展的综合设计性的大实验,同时把大学生训练计划(SRP)项目和学生毕业论文纳入到实验教学中,使两者相互促进提高并融为一体,影响且促进实验教学进行相应改革,一方面可以满足理论课程需求并且使之提高,另一方面也提高了低年级农科类本科学生的专业兴趣及创新和动手能力,对学生今后走向工作岗位,胜任相关工作与独立开展科学研究都具有非常重要的作用。基于此,本文就动物生物化学实验课程的教学改革实践进行了探索性的分析。 一、加强大学生训练计划(SRP)项目于实验课中实施,促进实验教学改革 为提高学生创新和实践的能力,使SRP项目融入实验教学课堂,首先使大学生实践训练计划(SRP)项目的内容与实验课进行有机结合,通过SRP项目的实施推动动物生物化学实验课程教学发生相应调整改革,大学生训练计划(SRP)项目的启动实施要求动物生物化学实验课程进行相应的改革从以下几方面陈述。 首先,改变以前课前教师为主体,准备好实验所需的试剂、器材和实验所需要的设备,然后在学生动手做实验前,

erdas实验5指导书

实验5 某地区的遥感影像分类 1.实验目的和要求 a)了解非监督分类和监督分类的原理和背景知识; b)掌握非监督分类和监督分类的过程和方法; c)了解并掌握监督分类中的样本训练方法、分类决策规则和分类结果评估 方法; d)能够利用非监督分类和监督分类技术提取某一研究区土地覆盖类型(植 被、水体、建筑用地、裸地等),并计算各地类的面积、覆盖率等指标。 2.实验设备和数据 a)实验设备:高性能计算机;Erdas Imagine遥感图像处理软件 b)实验数据:Landsat TM数据 3.实验内容 a)分析、认识研究区域Landsat TM数据基本地物类型,建立分类体系; b)根据分类体系,利用非监督分类方法对研究区域Landsat TM数据进行分 类; c)根据分类体系,利用监督分类方法完成研究区域Landsat TM数据分类及 分类结果评价; d)对比非监督分类和监督分类结果的差异,并分析原因。 4.实验步骤参考 1.分类过程 在Erdas Imagine主菜单中选择Classifier,在其下拉菜单中选择Unsupervised Classification,利用其弹出对话框完成非监督分类; Signature Editor——样本编辑器 Unsupervised Classification——非监督分类

输出分类文件输出样本文件 分类数 收敛域值 注意问题:实际工作中常将分类数目取为最终分类数目的两倍;收敛域值是指两次分类结果相比保持不变的像原所占最大百分比。 2 、分类评价(Evaluate Classification ) 打开新的窗口,同时导入非监督分类后的图和原始分类影像;在视窗工具条 标,弹出Raster Attribute Editor对话框,如下图:

生物化学实验内容

《生物化学实验》内容 课程类型:制药工程专业必修 实验总学时:32课时 开设实验项目数:8个 适用对象:2017制药工程1、2班 实验教师:段志芳 一、实验目标及基本要求 生物化学实验是一门独立的实验课程,培养学生生物化学实验基本操作技能、实验数据处理能力、分析问题解决问题的能力和实事求是的科学态度。 二、实验内容

三、成绩 包括实验时的表现(实验出勤、安全卫生、操作对错、损坏器皿情况等,占50%)及实验报告的完成情况和完成质量(占50%),每个实验按总分为100分为满分进行打分,共8个实验,总评取平均值。 四、要求 (1)实验过程中同组人可以配合进行; (2)实验报告独立完成,同组人数据相同,不得抄袭他组数据;(3)实验过程若出现失误应向老师汇报后再进行重做; (4)对实验结果进行简单的分析. 实验一植物组织中可溶性总糖的提取 一、实验目的 1. 掌握可溶性总糖的概念和性质。 2. 掌握可溶性总糖提取的基本原理。

3.掌握溶解、过滤、洗涤、定容等基本操作技术。 二、实验原理 可溶性糖是指易溶于水的糖,包括绝大部分的单糖、寡糖,常见的有葡萄糖、果糖、麦芽糖和蔗糖等。它们在植物体内可以充当能量的储存、转移的介质、结构物质和功能分子如糖蛋白的配基。总糖主要指具有还原性的葡萄糖、果糖、戊糖、乳糖和在测定条件下能水解为还原性的单糖的蔗糖、麦芽糖以及可能部分水解的淀粉。可溶性总糖提取方法包括:热水提取法、酶提取法、超声波提取法等。其溶于热水,不溶于60%以上乙醇,所以用热水提取、乙醇沉淀除去部分醇溶性杂质。本实验利用可溶性糖溶于水的特性,将植物磨碎,用热水将组织中的可溶性糖提取出来,结合实验二得到总糖浓度,已知溶液体积和原料重量,可以求出总糖含量。 三、实验用品 1.仪器设备:电子天平(精确到0.0g,配称量纸若干);可控温电 加热板或电炉或电热套或水浴锅均可。可共用。 2.玻璃器皿:研钵1套;100mL锥形瓶1个;25mL量筒1个;玻 璃棒1根;100mL烧杯2个;胶头滴管1支;过滤装置1套(铁架台1台+铁圈1个+玻璃漏斗1个+100mL容量瓶1个+洗瓶1个); 不锈钢刮勺1个;剪刀1把。此部分为每组所用,集中到小框里,放置各实验台上。 3.药品试剂:新鲜植物叶片;蒸馏水。 4.其他:9cm滤纸若干(与玻璃漏斗配套);纸巾若干;标签纸若

《生物化学实验》课程教学大纲

《生物化学实验》课程教学大纲 【课程编号】 【英文名称】Experiments of Biochemistry 【课程学时】48 【适用专业】生物技术、生物工程 一、本实验课程的教学目的和课程性质 生物化学实验是生物技术和生物工程专业学生的必修专业基础课,是一门理论性和实用性很强的课程。本实验课程的教学目的是通过对实验室基本操作规范、大分子物质性质鉴定、比色测定、大分子物质的分离和提纯、电泳分离等方面的理论和实践教学进一步加深和巩固学生对生物化学理论知识的学习,培养学生的实验技能,有效地提高学生的动手能力,为今后的科研工作打下基础。 二、本实验课程的基本要求 通过生物化学实验的教学,使学生达到如下要求: 1.在实验过程中将生物化学的理论知识进一步验证、巩固、扩充和提高。 2.学会正确使用有关生化仪器,了解和掌握生化实验室的基本操作规范。 3.培养学生在进行生物学实验时的实验过程、结果分析、实验设计和动手实验的能力,培养和提高学生的实验操作技能。 4.掌握包括蛋白质、核酸、酶、维生素、脂类和代谢各方面实验方法和技能,掌握离心、滴定、比色、层析、电泳等各种生物化学实验技术。 5.培养学生学习兴趣、重视实践、探索进取、吃苦耐劳、团结合作的精神。。 6.培养科研能力和科学素质,使学生具有严格的科学学风和发现、分析、解决问题的初步能力。 三、本实验课程与其它课程的关系 本实验课程上承《无机化学实验》、《分析化学实验》和《有机化学实验》,下续《植物生理学实验》、《遗传学实验》、《分子生物学实验》等课程,因此生物化学实验的学习是学生进行其他生物学实验的前奏,是今后开展生物学方面实验和研究的基础。 四、实验课程理论教学内容安排(共安排6学时) 第一部分生物化学实验室的基本操作规范(1.0学时) 【目的要求】 1、了解实验的生物学性质和化学性质。 2、了解实验室的基本操作规范和实验误差的控制。 3、了解生物样品的制备方法。 【教学内容】了解生物化学实验的基本操作规范及准确测定的方法。 第一节实验室基本操作规范 第二节准确测量的方法 第三节普通生物样品的制备方法

树木学实验指导书(5个实验)

树木学实验指导书 树木学课程组编 2010年3月

树木学实验工作守则 一、实验室内一切仪器设备、实验桌椅及实验材料,未经许可,不得任意搬动或取走。 二、爱护和保管好实验用具、腊叶标本,按规定的操作规程进行实验。 三、保持实验室安静清洁的良好工作环境,不许大声谈笑,不可乱丢纸屑废物。 四、课前必须预习本实验指导书,实验过程中应独立思考,独立操作,按时完成作业,不得抄袭。 五、实验课须自备文具、笔记、参考书及实验报告纸。必须遵守上课时间,不得无故缺席。

实验一裸子植物常见代表科的观察 裸子植物是一类没有真正的花和果实,而以种子进行繁殖的木本维管束植物,其主要特征是形成裸露的种子,不形成果实。 一、目的: 通过松柏纲松科(Pinaceae),杉科(Taxodiaceae),柏科(Cupressacear)各科球花,球果的观察,进一步明确裸子植物的主要特征,掌握松、杉、柏各科的分类特征。 二、材料与用具 马尾松Pinus massoniana的雌雄球花和球果 杉木Cunninghamia lancata的雌雄球花和球果 柏木Cupressus funebris的雌雄球花和球果 实验用具:连续变倍体视显微镜Motic SMZ-140、刀片、解剖针、培养皿、镊子。 教师所用示范设备: 1. 数码体视显微镜Motic DM143 用于操作示范。 2. 数码显微镜Motic DMB5-223IPL 用于示范裸子植物花药切片。 三、操作与观察 球花指的是裸子植物孢子叶的集结物,亦称孢子叶球,松柏纲植物是孢子异型的,小孢子叶集结成单独的小孢子叶球即雄球花。 1、马尾松球花、球果的观察 我们将首先看到一群数目很多的小孢子叶球(雌球花)紧密地着生(旋生)在春枝(当年生枝)的基部,而带红色的大孢子叶球(雌球花)则是单独或成对或三个在一起地着生于幼枝顶端,在松树上发育的小孢子叶球要比大孢子叶球多得多,在春末4-5月,小孢子叶球执行传粉功能后,就脱落了。相反地,大孢子叶球并不脱落,而在传粉后的1-2年内继续发育,逐渐变成结有种子的球果。 取一个马尾松的小孢子叶球(雄球花)来观察它的结构:为了这一点,用镊子把一个雄球花从复孢子叶球中取出来,置于双筒体视镜下观察,可以看到,它具有一个短的梗,小孢子叶象紧密的螺旋一样着生于球花轴上,用针将一些小孢子叶从雄球花中挑出,适当加大放大倍数,可观察到,它们的形状象扁平的小叶。其宽的外缘稍微向上弯曲,称之为药鳞,在每个小孢子叶表面,可看到两个大型的凸出的囊(纵向排列着),这是小孢子囊,亦称花粉

UML实验指导书

UML 实验指导书

目录 实验一UML建模基础 (3) 实验二用例图 (4) 实验三UML类图 (9) 实验四对象图 (13) 实验五包图 (14) 实验六状态图 (17) 实验七活动图 (21) 实验八时序图与协作图 (22) 实验九组件图 (26)

实验一UML建模基础 [实验目的和要求] 1、熟悉UML建模工具Rational Rose的基本菜单及操作。 2、掌握UML的三大组成部分及各部分作用。 3、掌握UML规则和相关机制。 4、掌握UML的可见性规则和构造型的作用。 [实验内容和步骤] 1、练习使用建模工具建立各种UML图形,并对图形进行相应编辑 和修改。 2、认识各种UML关系及可见性符号,并用工具表示出来。 [分析与讨论] 1、总结UML在软件工程中的作用以及使用UML建模的必要性。

实验二用例图 [实验目的和要求] 1、掌握用例的概念。 2、掌握UML用例图的组成、作用以及使用场合。 3、掌握用例与用例之间的各种关系。 4、学习针对具体场景使用用例图进行分析说明的方法。 5、掌握用例描述的概念和基本结构,以及用例描述的作用。 [实验内容和步骤] 1、什么是用例,什么是场景?用例和场景之间的关系是怎样的? 用例是用户希望系统具备的功能,它定义了系统的行为特征。 2、用例图中有哪些组成元素?在UML中是如何表示的? 用例图的组成元素有参与者、用例、关系、系统。 3、用例与用例之间的包含关系、扩展关系和泛化关系各代表什么含义?它们之间有何区别?对以上三种关系各举一例,画出用 例图,并进行说明。 用例与用例之间的包含关系实际上就是面向对象语言中对象之间的调用关系,扩展关系实际上就是一种依赖的关系,泛化关系实际上就是面向对象中的继承关系。 4、为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理 系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动 更新、权限管理、到期用户管理、房源组合查询等功能。该公 司小王,通过多次的与潜在客户的交流与沟通,完成了最初的 用例模型的开发,下是一个用例模型的局部:

生物化学试验教学大纲-湖北大学生命科学学院

湖北大学 生物化学实验 (课程代码) 实验教学大纲 (第2版) 生命科学学院 生化教研室 2010年7月

前言 课程名称:生物化学实验学时:64 适用专业:生物科学、生物技术、生物工程课程性质:必修 一、实验课程简介 生物化学实验课程是生命科学本科实验教学的一个重要组成部分,实验性质有基础性、综合性、设计(创新)性三层次,实验项目数共25个,按照学时要求完成必做与选做实验。在实验过程中要求学生自己动手,独立观察并完成实验报告,注重培养学生创新思维与能力。 二、课程目的 通过实验教学可以加强学生对生物化学基本知识和基本理论的理解,掌握现代生物科学与技术的实验原理与技能;同时,通过实验培养学生独立观察、思考和分析问题、解决问题和提出问题的能力,养成实事求是、严肃认真的科学态度,提高学生的科学素养以及敢于创新的开拓精神。 三、考核方式及成绩评定标准 生物化学实验课程考核采用笔试与操作能力二种方式; 期末成绩评定标准为:平时成绩60%;笔试10%;操作能力30% 。 四、实验指导书及主要参考书 1.陈均辉等,《生物化学实验》科学出版社,2003年4月第三版 2.蒋立科等,《生物化学实验设计与实践》高等教育出版社,2007年10月第1版 五、实验项目 实验项目一览表

实验类型:演示性、验证性、综合性、设计性、其它 实验一蛋白质及氨基酸呈色反应与甲醛滴定法测定氨基氮(3课时)实验类型:验证性 实验目的: 学习几种常用的鉴定蛋白质与氨基酸的方法,掌握甲醛滴定法测定氨基酸含量的原理和操作要点。 实验内容: 1、茚三酮反应: (1)取两支试管分别加入蛋白质和氨基酸溶液1ml,再各加0.5ml0.1%茚三酮水溶液,混匀,沸水浴加热1-2min,观察颜色由粉色变紫红再变蓝。 (2)在一小块滤纸上滴上一滴0.5%Gly溶液,风干后,再在原处滴上一滴0.1%的印三酮乙醇溶液,在微火旁烘干显色,观察紫红斑点的出现。 2、黄色反应:

计算机网络实验上机指导书实验五

计算机网络上机指导书昆明理工大学信自学院

实验五:静态路由实验 【实验目的】 1.了解静态路由的基本原理 2.掌握静态路由的配置流程,熟悉静态路由的配置命令 3.掌握测试静态路由连通性的方法 【实验学时】 建议3学时 【实验原理】 静态路由是指由用户或网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员需要手工去修改路由表中相关的静态路由信息。静态路由信息在缺省情况下是私有的,不会传递给其他的路由器。当然,网管员也可以通过对路由器进行设置使之成为共享的。静态路由一般适用于比较简单的网络环境,在这样的环境中,网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由信息。 静态路由的缺点在于:当网络发生故障或者拓扑发生变化后,静态路由不会自动改变,必须有管理员的介入。 配置IPv4静态路由时,需要了解以下内容: ●目的地址与掩码 在ip route-static命令中,IPv4地址为点分十进制格式,掩码可以用点分十进制表示,也可用掩码长度(即掩码中连续‘1’的位数)表示。 ●出接口和下一跳地址 在配置静态路由时,可指定出接口interface-type interface-name,也可指定下一跳地址nexthop-address,是指定出接口还是指定下一跳地址要视具体情况而定。实际上,所有的路由项都必须明确下一跳地址。在发送报文时,首先根据报文的目的地址寻找路由表中与之匹配的路由。只有指定了下一跳地址,链路层才能找到对应的链路层地址,并转发报文。 在某些情况下,如链路层被PPP封装,即使不知道对端地址,也可以在路由器配置时指定出接口。这样,即使对端地址发生了改变也无须改变该路由器的配置。 ●其它属性 对于不同的静态路由,可以为它们配置不同的优先级preference,从而更灵活地应用路由管理策略。例如:配置到达相同目的地的多条路由,如果指定相同优先级,则可实现负载分担,如果指定不同优先级,则可实现路由备份。 缺省路由是在没有找到匹配的路由表入口项时才使用的路由。在路由表中,缺省路由的目的地址和子网掩码都是0.0.0.0。在使用ip route-static配置静态路由时,如果将目的地址与掩码配置为全零(0.0.0.0

生物化学实验

生物化学实验讲义 化学工程与技术学院 基础部

实验一酪蛋白的制备 一、目的 学习从牛乳中制备酪蛋白的原理和方法。 二、原理. 牛乳中主要的蛋白质是酪蛋白,含量约为35g/L。酪蛋白是一些含磷蛋白质的混合物,等电点为4.7。利用等电点时溶解度最低的原理,将牛乳的pH调至4.7时,酪蛋白就沉淀出来。用乙醇洗涤沉淀物,除去脂类杂质后便可得到纯的酪蛋白。 三、器材 1 、离心机2、.抽滤装置 3、精密pH试纸或酸度计 4、电炉 5、烧杯 6、温度计. 四、试剂与材料 1、牛奶2500mL 2、95%乙醇1200mL 3、无水乙醚1200mL

4、0.2mol/L pH 4.7醋酸—醋酸钠缓冲液3000mL 5、.乙醇—乙醚混合液2000mL 五、操作 1、将100mL牛奶加热至40℃。在搅拌下慢慢加入 预热至40℃、pH 4.7的醋酸缓冲液100 mL。用精密pH试纸或酸度计调pH至4.7。将上述悬浮液冷却至室温。离心15分钟(3 000r/min)。弃去清液,得酪蛋白粗制品。 2、用水洗沉淀3次,离心10分钟(3000r/min), 弃去上清液。 3、在沉淀中加入30mL乙醇,搅拌片刻,将全部悬 浊液转移至布氏漏斗中抽滤。用乙醇—乙醚混合液洗沉淀2次。最后用乙醚洗沉淀2次,抽干。 4、将沉淀摊开在表面皿上,风干;得酪蛋白纯晶。 5、准确称重,计算含量和得率。 含量:酪蛋白g/100mL牛乳(g%)

得率: 测得含量 100 % 理论含量 思考题 1、制备高产率纯酪蛋白的关键是什么? 实验二小麦萌发前 后淀粉酶活力的比较 一、目的 1.学习分光光度计的原理和使用方法。 2.学习测定淀粉酶活力的方法。 3.了解小麦萌发前后淀粉酶活力的变化。 二、原理 种子中贮藏的糖类主要以淀粉的形式存在。淀粉酶能使淀粉分解为麦芽糖。 2(C6H10O5)n +nH2O nC12H22O11 麦芽糖有还原性,能使3,5---二硝基水杨酸还原成棕色的3-氨基-5-硝基水扬酸。后者可用分光光度计测定。

实验五实验六指导书

实验五 MATLAB 实现DFT MATLAB 为计算数据的离散快速傅时叶变换,提供了一系列丰富的数学函数,主要有fft 、ifft 、fft2、ifft2和czt 等。当所处理的数据的长度为2的幂次时,采用基-2算法进行计算,计算速度会显著增加。所以,要尽可能使所要处理的数据长度为2幂次或者用添零的方式来添补数据使之成为2的幂次。 1.fft 和ifft 函数 调用格式是: (1)()X fft Y = 如果X 是向量,则采用傅时叶变换来求解X 的离散傅里叶变换;如果X 是矩阵,则计算该矩阵每一列的离散傅里叶变换;如果X 是()D N *维数组,则是对第一个非单元素的维进行离散傅里叶变换。 (2)()N X fft Y ,= N 是进行离散傅里叶变换的X 的数据长度,可以通过对X 进行补零或截取来实现。 (3)[]()dim ,,X fft Y =或()dim ,,N X fft Y = 在参数dim 指定的维上进行离散傅里叶变换;当X 为矩阵时,dim 用来指定变换的实施方向:dim=1,表明变换按列进行;dim=2,表明变换按行进行。 函数ifft 的参数应用与函数fft 完全相同。 2.fft2和ifft2函数 调用格式是: (1)()X fft Y 2= 如果X 是向量,则此傅里叶变换即变成一维傅里叶变换fft ;如果X 是矩阵,则是计算该矩阵的二维快速傅里叶变换;数据二维傅里叶变换fft 2(X )相当于()()''X fft fft ,即先对X 的列做一维傅里叶变换,然后再对变换结果的行做一维傅里叶变换。 (2)()N M X fft Y ,,2= 通过对X 进行补零或截断,使得X 成为()N M *的矩阵。 函数ifft2的参数应用与函数fft2完全相同 fftn 、ifftn 是对数据进行多维快速傅立变换,其应用与fft2、ifft2类似;在此,不再叙述。 3.czt 函数 调用格式是: ()A W M X czt X ,,,= 式中X 是待变换的时域信号()n x ,其长度设为N ,M 是变换的长度,W 确定变换的步

指导书_实验5

实验5 类与对象的应用2 实验目的: 1掌握类和对象的概念、定义和使用方法。 2掌握静态数据成员和const修饰的成员函数的用法。 3掌握c++程序的一般结构。 实验内容: 在实验4 个人的活期储蓄账户类SavingsAccount上修改完成以下内容: (1)在类SavingsAccount中增加一个静态数据成员total,用来记录各个账户的总金额,并为其增加相应的静态成员函数getTotal用来对其进行访问。 (2)将类SavingsAccount中不需要改变对象状态的成员函数声明为常成员函数,比如accumulate,getBalance等。 (3)增加日期类Date class Date { int year, month, day; int totalDays; //该日期是从公元元年1月1日开始的第几天 public: Date(int year, int month, int day); int getYear() const { return year; } int getMonth() const { return month; } int getDay() const { return day; } void show() const; //输出当前日期

bool isLeapYear() const; //判断当年是否为闰年 int distance(const Date& date) const;//计算当前日期与指定日期之间相差天数 }; (4)类SavingsAccount中的int date都要改成Date类的对象。 ()将整个程序分为5个文件:date.h account.h是类定义头文件,date.cpp account.cpp 是类实现文件,5.cpp是主函数文件。 提示: (1)利息的计算方式:一年中每天的余额累积起来再除以一年的总天数,得到一个日均余额,再乘以年利率。 (2)两个日期相差天数的计算方式:选取一个基准日期(如公元元年1月1日),在计算两个日期相差天数时,先分别将两个日期与基准日期的相对天数计算出来,再将两个相对天数相减即可。 (3)与基准日期(如公元元年1月1日)相对天数的计算方式:(1)计算公元元年到公元y-1年的总天数。平均每年有365天,闰年多一天,即365*(y-1)加上公元元年到y-1年之间的闰年数。(2)加上当年当月1日到当年1月1日之间相差的天数。(3)加上当年当月当日到当年当月1日之间相差的天数。 (4)可以把每月1日到1月1日天数放在一个数组中,该数组元素值分别是:0,31,59,90,120,151,181,212,243,73,304,334,365 (5)两个头文件里先写:

生物化学实验Ⅱ 教学大纲

生物化学实验Ⅱ教学大纲 01.教学单位名称:生命科学学院 10.实验课程的教学任务、要求和教学目的 10.1 教学任务 生物化学实验是一门专业基础实验的必修课,本教学大纲是根据生物科学、生物技术、生物药学、药物制剂等专业人才的培养目标所需要的基本理论和基本技能的要求制定的。本课程的任务是通过教学过程,使学生掌握常规生物化学实验的基本技术和方法,培养学生的实际操作能力、分析解决问题的能力、开拓创新思维的能力、实验设计的思维方法、以及规范书写实验报告等知识。为学生进一步学习,掌握复杂的综合性的生物化学技术,毕业论文的撰写、从事生物化学和相关学科的教学、研究与生产奠定基础。 10.2 教学要求 通过教学过程加深学生对生物化学基本原理的理解,要求同学熟悉并掌握基本生化技术,掌握生物大分子的分离纯化、性质表征、代谢调控等相关的实验技术。在实验过程当中应遵守实验室规章制度,有序进行实验,严格按照规定程序操作,全面观察,准确如实记录实验数据。实验结束后,做好善后工作,清洁整理实验器具并清点归还,经指导教师检查无误后方可离开实验室;及时整理实验记录和数据,按要求认真独立完成实验报告,并按时提交;积极参加课后讨论。 10.3 教学目的 使学生了解并掌握生物大分子的分离和纯化的相关知识和技能,为专业课的学习和专业技能的培训奠定良好的基础,并通过严格的实验要求和管理,培养学生具有初步的科学实验能力及严格的科研作风,同时验证生化的某些基本理论知

识,加深感性认识。另外,进行一定比例的综合性、设计性实验,将实验理论和实验技能融为一体,从而培养学生的基本实验思想、实验方法、实验技能和综合应用能力;引导学生将所学的知识和技能用于今后的社会实践,培养学生严谨求实的态度、创新的思维方法及团结合作精神,使学生成为求是、务实、创新的专门人才。 11.学生应掌握的实验技术及实验能力 11.1熟练掌握以下各项生物化学实验的基本技能 各种常用玻璃仪器的洗涤和使用;滴管、移液管、微量加样器的使用;离心机、分光光度计、紫外检测系统、层析系统、恒温水浴、梯度发生器、电泳仪系统、瓦氏呼吸仪等的使用。 11.2 掌握以下各项生物化学实验技术 核酸的颜色反应,地衣酚比色分析法测定RNA的含量以及二苯胺比色分析法测定DNA含量;RF-5301荧光分光光度计的使用,应用荧光法定量测定维生素B2和维生素C;离子交换柱层析分离pI值具有显著差别的核苷酸;瓦氏呼吸仪的使用,用该呼吸仪观察柠檬酸、琥珀酸等中间产物对酵母三羧酸循的促进作用;应用纸层析技术定性鉴定体外氨基转换反应。 12.开设实验项目 开设实验项目一览表

实验5 齿厚测量实验指导书

实验5 齿轮齿厚偏差测量 一、实验目的 1.熟悉齿厚游标卡尺的结构和使用方法。 2.掌握齿轮分度圆弦齿高和弦齿厚公称值的计算方法。 3.加深对齿厚偏差定义的理解,熟悉齿厚测量方法。 二、量具简介 齿厚偏差可以用齿厚游标卡尺(图5-11)或光学测齿卡尺测出。本实验用齿厚游标卡尺测量齿厚实际值。齿厚游标卡尺由互相垂直的两个游标尺组成,测量时以齿轮顶圆作为测量基准。垂直游标尺用于按分度圆弦齿高公称值h确定被测部位,水平游标尺则用于测量 分度圆弦齿厚实际值。齿厚游标卡尺的读数方法与一般游标卡尺相同。 三、测量原理 齿厚偏差是指被测齿轮分度圆柱面上的齿厚实际值与公称值之差。对于标准直 齿圆柱齿轮,其模数为m,齿数为z,则分度圆弦齿高公称值和弦齿厚公称值按下式计算 为了使用方便,按上式计算出模数为1mm的各种不同齿数的齿轮分度圆弦齿高和弦齿厚的公称值,列于下表。 对于变位直齿圆柱齿轮,其模数为m,齿数为z,基本齿廓角为a,变位系数为x,则 分度圆弦齿高公称值和弦齿厚公称值按下式计算 四、实验步骤 (1)计算齿轮顶圆公称直径da和分度圆弦齿高公称值和弦齿厚公称值;(或从下表中查取)。 (2)首先测量出齿轮顶圆实际直径d a实际。按的数值调整齿厚卡尺的垂直游标尺,然后将其游标加以固定。 (3)将齿厚游标卡尺置于被测齿轮上,使垂直游标尺的高度板与齿顶可靠地接触,然后移动水平游标尺的量爪,使之与齿面接触,从水平游标尺上读出弦齿厚实际值。

这样依次对圆周上均布的几个齿进行测量。测得的齿厚实际值与齿厚公称值之差即为齿厚偏差。 (4)合格性条件为 五、思考题 1.测量齿轮齿厚是为了保证齿轮传动的哪项使用要求? 2.齿轮齿厚偏差可以用什么评定指标代替?

生物化学实验教学大纲

《生物化学实验》教学大纲 课程名称:生物化学实验课程编码:013B005A 学时:32学分: 2 适用专业:生物技术、医学检验(本科)先修课程:无机化学、有机化学,普通生物学 执笔人:周银审定人:夏光辉 一、课程的性质、地位与任务 生物化学是高等院校生物科学相关专业的重要专业基础课(必修)。为了加强理论知识的学习并进行实践应用,生物化学实验课也随之开设。生物化学实验课程锻炼了学生的实际动手能力,并将理论知识与实践相结合,提高学生观察,分析和解决问题的能力,培养学生严谨的工作作风和实事求是的科学态度,为学习专业课程和未来的科学研究及实际工作打下良好的基础。 二、教学目标 1.知识目标 通过本课程的学习,加深对生物化学基础理论,基本知识的理解,正确和较熟练地掌握比色、层析、电泳和离心等生物化学基本实验方法的原理和操作技能。 2.素质目标 (1)要求明确实验目的,弄懂实验原理,学会实验方法,掌握实验技能。 (2)要求学生在教师的指导下,亲自动手,独立或者合作完成实验操作过程,如实记录实验结果,书写实验报告,培养学生的独立工作和分析问题的能力。 (3)要求学生严格遵守实验室规则,养成良好的实验习惯。 三、主要的教学方法 主要以学生亲自动手操作为主,教师的原理讲解和示范操作为辅助,实验设置按照生物化学教学改革中的创新新、新颖性和独立性来进行,实验项目大多为设计性实验,提高学习的趣味性,并提高学生遇到问题后分析问题和独立解决问题的能力。 四、教学内容的学时分配 序号实验项目 学 时 实验性质备注 演 示 验 证 设 计 综 合 必 做 选 做 1 基本要求及重要仪 器的使用 2 √√ 2 DNS法测还原糖的 浓度 2 √ √ 3 蛋白质等电点的测 定和沉淀反应 2 √ √ 4 蛋白质及氨基酸的 2 √

CASS实验指导书(实验五)

实验五 CASS8.0在工程中的应用 本章主要讲述CASS8.0在工程中的应用,其中包括基本几何要素的查询、土方量的计算、断面图的绘制、公路曲线设计、面积应用以及如何进行图数转换。 5.1 基本几何要素的查询 本节主要介绍如何查询指定点坐标,查询两点距离及方位,查询线长,查询实体面积。首先打开任一已有.dwg图像,如STUDY.DWG。 5.1.1查询指定点坐标 用鼠标点取“工程应用”菜单中的“查询指定点坐标”。用鼠标点取所要查询的点即可。也可以先进入点号定位方式,再输入要查询的点号 说明:系统左下角状态栏显示的坐标是迪卡尔坐标系中的坐标,与测量坐标系的X和Y的顺序相反。用此功能查询时,系统在命令行给出的X、Y是测量坐标系的值。 5.1.2查询两点距离及方位 用鼠标点取“工程应用”菜单下的“查询两点距离及方位”。用鼠标分别点取所要查询的两点即可。也可以先进入点号定位方式,再输入两点的点号。 说明:CASS8.0所显示的坐标为实地坐标,所以所显示的两点间的距离为实地距离。 5.1.3查询线长 用鼠标点取“工程应用”菜单下的“查询线长”。用鼠标点取图上曲线即可。 5.1.4查询实体面积 选择“工程应用”菜单下的“查询实体面积”,用鼠标点取待查询的实体的边界线或内部点即可,要注意实体应该是闭合的,如房子、菜地等。

5.2土方量的计算 5.2.1 DTM法土方计算 由DTM模型来计算土方量是根据实地测定的地面点坐标(X,Y,Z)和设计高程,通过生成三角网来计算每一个三棱锥的填挖方量,最后累计得到指定范围内填方和挖方的土方量,并绘出填挖方分界线。 DTM法土方计算共有两种方法,一种是进行完全计算,一种是依照图上的三角网进行计算。完全计算法包含重新建立三角网的过程,又分为“根据坐标计算”和“根据图上高程点计算”两种方法;依照图上三角网法直接采用图上已有的三角形,不再重建三角网。下面分述三种方法的操作过程: 1. 根据坐标计算 ●用复合线/多段线(命令:PL)画出所要计算土方的区域,一定要闭 合,但是尽量不要拟合。因为拟合过的曲线在进行土方计算时会用折 线迭代,影响计算结果的精度。 ●用鼠标点取“工程应用”菜单下的“DTM法土方计算”子菜单中的“根 据坐标文件”。 ●提示:选择边界线用鼠标点取所画的闭合复合线。出现“输入高程 点数据文件名”,选中study.dwg文件,出现“DTM土方计算参数设 置”对话框,其中: 区域面积:该值为复合线围成的多边形的水平投影面积。 平场标高:指设计要达到的目标高程。(本实验为了方便观看效果,可 选择497) 边界采样间距:边界插值间隔的设定,默认值为20米。: 边坡设置:选中处理边坡复选框后,则坡度设置功能变为可选,选中 放坡的方式(向上或向下:指平场高程相对于实际地面高程的高低, 平场高程高于地面高程则设置为向下。)然后输入坡度值。 ● 设置好计算参数后点击“确定”,屏幕上显示填挖方的提示框,如图 5-1所示,包括挖方量和填方量。命令行也会显示: 挖方量= XXXX立方米,填方量=XXXX立方米 同时图上绘出所分析的三角网、填挖方的分界线(白色线条)。 回车后屏幕上显示填挖方的提示框,命令行显示: 挖方量= XXXX立方米,填方量=XXXX立方米 同时图上绘出所分析的三角网、填挖方的分界线(白色线条)。 ●关闭对话框后系统提示:

生物化学实验内容

《生物化学》实验教学大纲 课程类别:专业基础 适用专业:本科临床学专业 课程总学时:实验学时:32 实验指导书:生物化学与分子生物学实验教程 开课实验室名称:生化实验室 一、目的和任务 生物化学是一门在分子水平上研究生命现象的学科,也是一门重要的实验性较强的基础医学课程.随着医学的发展,该学科已渗透到医学的各个领域。生物化学实验技术已被广泛地应用于生命科学各个领域和医学实验的研究工作。生物化学实验是生物化学教学的重要组成部分,它与理论教学既有联系,又是相对独立的组成部分,有其自身的规律和系统。我们根据国家教委对医学生物化学课程基本技能的要求,开设了大分子物质的常用定量分析法、酶活性分析、电泳法、层析技术、离心技术及临床生化,使学生对生物化学实验有一个比较系统和完整的概念,培养学生的基本技能和科学思维的形成,提高学生的动手能力。 二、基本要求 1.通过实验过程中的操作和观察来验证和巩固理论知识,加深学生对理论课内容的理解。 2.通过对实验现象的观察,逐步培养学生学会观察,比较,分析和综合各种现象的科学方法,培养学生独立思考和独立操作的能力。 3.通过对各类实验的操作和总结,培养学生严谨的科学态度。 4.进行本学科的基本技能的训练,使学生能够熟练各种基本实验方法和实验技术的操作。 三、考试方法及成绩评定方法 四、说明 实验教材及参考书: 1.揭克敏主编:生物化学与分子生物学实验教程(第2版)。科学出版社,2010 参考资料: 1..袁道强主编:生物化学实验(第1版)。化学工业出版社,2011 五、实验项目数据表

2)要求:0:必修1选修 3)类型:0:演示1:验证2:综合3:设计 4)每组人数:指教学实验项目中一次实验在每套仪器设备上完成实验项目的人数。 六、各实验项目教学大纲 实验一蛋白质的沉淀反应 【预习要求】 预习四个小实验的具体实验原理和操作内容。 【实验目的】 1. 加深对蛋白质胶体溶液稳定因素的认识; 2. 了解沉淀蛋白质的几种方法及其实用意义。 【实验内容】 (一)蛋白质的盐折 1. 原理 大量中性盐类如硫酸铵((NH4)2SO4)、硫酸钠(Na2SO4)和氯化钠(NaCl)等加入到蛋白质溶液后,可引起蛋白质颗粒因失去水化膜和电荷而沉淀。各种蛋白质分子的颗粒大小和电荷数量不同,用不同浓度中性盐可使各种蛋白质分段沉淀。例如血清中的球蛋白可在半饱和硫酸铵溶液中沉淀。当硫酸铵浓度达到饱和时血清中的白蛋白使沉淀下来。盐析沉淀蛋白质时能保持蛋白质不变性,加水稀释降低盐浓度,能使沉淀的蛋白质重新溶解,并保持其生物活性。因此,利用盐析法可达到分离提纯蛋白质的目的。 2. 操作步骤 ①取小试管1支、加入5%鸡蛋清溶液20滴,饱和硫酸铵溶液20滴,充分摇匀后静置5min,记录结果。

实验指导书 - 实验5

计算机网络:理论与实践 实验指导书 陈鸣编著 高等教育出版社 二〇一三年二月

5应用层实验(4学时) 实验9:利用Java开发网络应用程序 1. 实验目的 1)基本掌握利用Java开发环境调试应用程序的方法。 2)理解基于套接字开发网络应用程序的过程,深入理解Ping工作原理。 3)深入理解HTTP协议的格式和工作过程,理解Web代理服务器工作原理。 2. 实验环境 1)运行Windows 2008 Server/Windows XP/Windows 7操作系统的PC 2台。 2)每台PC具有以太网卡一块,通过双绞线与局域网相连。 3)具有Java开发包jdk-1_5_0_06-windows-i586-p.exe。 3. 实验步骤 1)安装Java编程环境 (1) 安装开发包JDK。双击JDK安装程序jdk-1_5_0_06-windows-i586-p.exe图标,进行安装。根据安装提示选择安装目录后开始安装过程。在安装JDK的过程中,同时需要安装Java运行环境JRE(Java Runtime Environment)。接下来。配置Java环境变量。右键点击“我的电脑”,选择“属性”。然后选择“高级”选项卡,点击“环境变量”,即弹出如图45所示的界面。 图45 环境变量配置界面 (2) 修改环境变量的值。在“用户变量”中,分别设置JA V A_HOME、PATH和CLASSPATH 这3项属性。若已存在则点击“编辑”,不存在则点击“新建”。JA V A_HOME指明JDK的安

装路径,也就是在安装时选择的路径,如D:\Java\jdk1.5.0_06,在此路径下包括lib、bin、jre 等文件夹。PATH使得系统可以在任何路径下识别Java命令,该值设为“%JA V A_HOME%\bin; %JA V A_HOME%\jre\bin”。CLASSPATH为Java加载类路径,只有类在classpath中,Java命令才能识别,该值设为“.; %JA V A_HOME%\lib\dt.jar; %JA V A_HOME%\lib\tools.jar”。 测试安装结果。选择“开始”菜单中的“运行”,键入“cmd”。在命令提示符中键入 “java –version”、“java”和“javac”命令,出现如图46所示画面则说明环境变量配置成功。 图46 运行Java命令结果 (3)在命令提示符环境编译运行java程序。Java程序编写后,就可以在命令提示符环境下编译和运行。启动命令提示符后,先利用“cd”命令进入Java程序所在的目录,然后键入“javac java类的文件名”命令编译该Java程序。如果编译成功,则不会显示错误信息并直接返回,如图47所示。 图47 在命令提示符中编译Java程序 此后,在该目录下会产生一个.class文件。直接键入“java java类名运行参数”即可运行该编译好的Java程序,如图48所示。 图48 在命令提示符中运行java程序 如果想要退出正在运行的Java程序,按“ctrl+C”即可完成。 2)在Java集成开发环境下调试程序 前面假定编写的Java程序是正确的,而事实上自己首次编写的程序通常都会出现这样或那样的问题。为此,需要借助于Java集成开发环境来调试程序。 (1)安装Java集成开发环境。Java的集成开发环境有很多,对于IBM公司开发的开源Java 集成开发环境eclipse,在解压eclipse压缩包后,双击eclipse.exe即可运行eclipse。图49是eclipse运行后的主界面。

相关文档
最新文档