《面向对象程序设计》实验指导书

《面向对象程序设计》实验指导书
《面向对象程序设计》实验指导书

《面向对象程序设计》实验指导书

熊利祥编

武汉理工大学华夏学院

2015年1月

前言

一、实验课目的

通过本课程的学习培养学生对计算机软件开发语言及工具的综合能力。主要介绍Java 软件开发工具及编辑工具的使用方法、语言的语法及Java类的定义和使用、使用Java进行网络和多媒体编程的方法。通过本课程学习和上机实践,使学生掌握使用Java进行程序设计的基本技术与方法、具备软件开发的基础能力,为今后从事软件开发和应用打下基础。

二、实验要求:

1.课前预习

①认真阅读实验指导书,了解实验内容;

②认真阅读有关实验的理论知识;

③读懂程序代码。

2.实验过程

①按时到达实验室;

②认真听取老师对实验内容及实验要求的讲解;

③认真进行实验的每一步,观察程序代码与仿真结果是否相符;

④将实验过程中程序代码和仿真结果提交给老师审查;

⑤做完实验后,整理实验设备,关闭实验开发板电源、电脑电源后方可离开。

3.实验报告

①按要求认真填写实验报告书;

②认真分析实验结果;

③按时将实验报告交给老师批阅。

三、实验学生守则

1.保持室内整洁,不准随地吐痰、不准乱丢杂物、不准大声喧哗、不准吸烟、不准吃东西;

2.爱护公务,不得在实验桌及墙壁上书写刻画,不得擅自删除电脑里面的文件;

3.安全用电,严禁触及任何带电体的裸露部分,严禁带电接线和拆线;

4.任何规章或不按老师要求操作造成仪器设备损坏须论价赔偿。

目录

实验一JDK与Eclipse开发环境…………………………………………………………

实验二类的继承与多态实验…………………………………………………………

实验三GUI图形界面设计实验……………………………………………………………实验四网络编程实验………………………………………………………………………

实验一 JDK与Eclipse开发环境

一、实验目的

1.学会使用JDK编译和运行Java Application程序。

2.学会在Eclipse平台下编写、运行和管理Java程序。

二、实验要求

1.熟悉Java程序运行环境的安装、配置方法。

2.掌握编写与运行Java程序的方法。

三、实验内容

(一)在命令行方式下用JDK编译和运行Java程序。

(1)内容:用Windows记事本编辑如下Java源程序,并保存为源文件HelloWorld.java (2)程序源代码如下:

public class HelloWorld

{

public static void main(String[] args)

{

System.out.print("Hello World!");

}

}

(3)编译HelloWorld.java,产生类文件HelloWorld.class。

执行“开始-所有程序-附件-命令提示符”菜单命令打开DOS窗口,用“盘符:”和cd命令转到HelloWorld.java所在目录,在命令行上键入

javac HelloWorld.java

回车,如果不出现错误信息,则说明编译正确,编译后的中间文件名为HelloWorld.class,位于HelloWorld.java同一目录下。

(4)运行该程序

此时再键入

java HelloWorld

如果不出错,则在DOS窗口上看到输出“Hello World!”。

(二)Eclipse集成开发环境的使用。

(1)用Eclipse建立新的Java程序

①新建项目

启动Eclipse,执行“文件-新-Java项目”菜单命令,或执行“文件-新-项目”菜单命令,在弹出的“新建项目”对话框中双击“Java项目”,都会弹出“新建Java项目”对话框。在“项目名”一栏输入一个项目名称(假定为MyProject),点击“完成”。此时在窗口左边的“包资源管理器”中将会出现一个以项目名称命名的文件夹。(如果窗口左半部分未出现“包资源管理器”,可执行“窗口-打开透视图-Java”菜单命令将其打开)。

②新建包

单击项目名(例如MyProject)前面的加号展开该文件夹,将光标定位在其下的src文件夹上,执行“文件-新-包”菜单命令,在弹出对话框的“名称”一栏输入一个包(package)名(假定为myPackage),点击“完成”按钮。此时在“包资源管理器”的“MyProject / src”之下将出现一个以包命名的文件夹myPackage。

注:一个项目下可以建立多个包,包中任何源文件中定义的类都可以被同一个包中任何源文件中定义的类所直接引用。

③新建类

将光标定位在包名(例如myPackage)上,执行“文件-新-类”菜单命令,在弹出的对话框的“名称”一栏输入一个类名(假定为HelloWorld),点击“完成”按钮。此时在“包资源管理器”的“MyProject / src / myPackage”之下出现一个以类命名的Java源文件HelloWorld.java,窗口中部便是该文件中的Java源代码,其中第一行是包的声明:package myPackage;

其下则是类的定义。

④输入Java Application源代码

可以看到这里的类定义与前面“Java Application 程序实例”中的类定义的框架是完全相同的,将Java Application程序实例类框架中的3行源代码拷入类框架中,从而形成下列完整的Java Application源程序:

package myPackage;

public class HelloWorld

{

public static void main(String[] args)

{

System.out.print("Hello World!");

}

}

⑤运行Java Application程序

执行“运行-运行方式-Java应用程序”菜单命令,或执行“运行-运行”菜单命令,在弹出的对话框中选择“Java应用程序”。如果源程序无语法错误,则编译后会直接执行。代替命令行方式将结果输出到控制台上,Eclipse会将结果输出到窗口右下部的“控制台”子窗口中:

Hello World!

(2)用Eclipse管理老的Java程序

①删除项目、包或源文件

如果想删除Eclipse工作空间中的某些项目、包或源文件,则应当在Eclipse中进行而不应当在Windows资源管理器中进行,这是因为工作空间状态信息是被Eclipse实时地记录在每个项目的PROJECT文件中的,如果在Eclipse之外删除文件或文件夹,则会造成状态信息与文件系统的不同步。

先在资源管理器中用“复制”和“粘贴”命令将项目文件夹MyProject备份到另一逻辑盘上,然后在Eclipse的“包资源管理器”中将光标对准MyProject文件夹,按鼠标右键并选择“删除”,确认后,文件夹MyProject将从工作空间逻辑地删除。若确认时选中“删除磁盘上的内容”,则选定的文件或文件夹将同时从workspace文件夹物理地删除。

②导入备份项目到Eclipse工作空间

备份的Java项目要重新使用Eclipse进行管理,必须导入到硬盘的Eclipse工作空间。执行“文件-导入”菜单命令,在弹出的对话框中选择“常规-现有项目到工作空间中”,点击“下一步”,在弹出的对话框中点击“浏览”,在“浏览文件夹”对话框中找到MyProject 文件夹,将光标定位在该文件夹上,点击“确定”再点击“完成”,备份的项目就被整体导入Eclipse工作空间(注意:如果工作空间中已存在同名项目,则不能将该项目整体导入,只能按下述方法将文件或文件夹逐个导入)。

③导入Java源文件到Eclipse工作空间

备份的其它文件夹或Java源文件要使用Eclipse管理,也必须导入硬盘的Eclipse工作空间,但工作空间中必须有适当的项目和包来存放它们,如果没有,就必须按照前面所述的方法首先建立项目和包。现在我们在Eclipse下再次删除并重新建立项目MyProject和包myPackage,然后在“包资源管理器”中将光标定位在包myPackage上,执行“文件-导入”菜单命令,在弹出的对话框中选择“常规-文件系统”,点击“下一步”,在弹出的对话框中点击“浏览”,在“从目录中导入”对话框中找到备份文件夹MyProject,展开并进入其中的src文件夹,将光标定位在存放包的文件夹myPackage上,点击“确定”,在弹出的对话框的上部右栏选中源文件HelloWorld.java,再点击“完成”,即可将该源文件导入项目和包。

实验二类的封装、继承与多态实验

一、实验目的

1.通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想。

2.了解类的封装方法,以及如何创建类和对象。

3.了解成员变量和成员方法的特性。

4.掌握面向对象程序设计的方法。

5.掌握类的继承和多态的作用。

二、实验要求

1.编写一个体现面向对象思想的程序。

2.编写体现类的继承性(成员变量,成员方法、成员变量隐藏)的程序。

3.编写体现类的多态性(成员方法重载、构造方法重载)的程序。

三、实验内容

(一)编写一个体现面向对象思想的程序。

(1)程序功能:求某个数的若干次幂

(2)程序源代码如下:

class P

{

int a,b,pwr;

P(int i,int j)

{

a=i;

b=j;

pwr=1;

for(;j>0;j--)

pwr*=i;

}

int Getpwr()

{

return pwr;

}

}

public class power

{

public static void main(String[] args)

{

P p1=new P(5,3);

P p2=new P(17,2);

System.out.println(p1.a+"的"+p1.b+"幂等于"+p1.Getpwr());

System.out.println(p2.a+"的"+p2.b+"幂等于"+p2.Getpwr());

}

}

(3)编译power.java,产生类文件power.class。

(4)运行该程序

(二)编写一个体现类的继承性的程序。

1.继承的概念

新类可从现有的类中产生,并保留现有类的成员变量和方法并可根据需要对它们加以修改。新类还可添加新的变量和方法。这种现象就称为类的继承。

当建立一个新类时,不必写出全部成员变量和成员方法。只要简单地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的全部成员。被继承的类称为父类或超类(superclass),这个新类称为子类。

Java 提供了一个庞大的类库让开发人员继承和使用。设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。你必须设计自己的能处理实际问题的类,如果你设计的这个类仅仅实现了继承,则和父类毫无两样。所以,通常要对子类进行扩展,即添加新的属性和方法。这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。继承的意义就在于此。

2.创建父类

(1)编写程序文件father.java,源代码如下:

public class father

{

protected String xm; //具有保护修饰符的成员变量

protected int xh;

void setdata(String m,int h) //设置数据的方法

{

xm =m;

xh = h;

}

public void print() //输出数据的方法

{

System.out.println(xm+", "+xh);

}

}

3.创建继承的类

(1)程序功能:通过父类father产生子类son,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、xi(系)。在程序中调用了父类的print方法,同时可以看出子类也具有该方法。

(2)编写程序文件son.java,源代码如下:

public class son extends father

{

protected String xy;

protected String xi;

public static void main(String args[])

{

father f1 = new father();

f1.setdata("张三",12321) ;

f1.print();

son s1 = new son() ;

s1.setdata("李四",12345); //调用父类的成员方法

s1.xy="信息工程系"; //访问本类的成员变量

s1.xi="汽车系"; //访问本类的成员变量

s1.print();

System.out.print(s1.xm+", "+s1.xy+", "+s1.xi);

}

}

(3)编译并运行程序

注意:父类father与子类son要在同一文件夹(路径)内。

(三)编写一个体现类的多态性的程序。

1.理解类的多态性

类的继承发生在多个类之间,而类的多态只发生在同一个类上。在一个类中,可以定义多个同名的方法,只要确定它们的参数个数和类型不同。这种现象称为类的多态。

多态使程序简洁,为程序员带来很大便利。在OOP中,当程序要实现多个相近的功能时,就给相应的方法起一个共同的名字,用不同的参数代表不同的功能。这样,在使用方法时不论传递什么参数,只要能被程序识别就可以得到确定的结果。

类的多态性体现在方法的重载(overload)上,包括成员方法和构造方法的重载。

2.成员方法的重载

成员方法的重载是指对同名方法的不同使用方式。

(1)程序功能:定义四个重载的成员方法,它们的方法名相同,但是参数个数或者数据类型不同,方法体也不同。在调用时根据实参的个数和数据类型进行选择。

(2)编写A.java文件,源代码如下。

public class D

{

public static void main(String[] args)

{

B b1=new B();

int i=b1.add(1,3);

System.out.println(i);

int j=b1.add(1,3,5);

System.out.println(j);

double m=b1.add(1.0,3.0);

System.out.println(m);

double n=b1.add(1.0,3.0,5.0);

System.out.println(n);

}

}

class B

{

int add(int a,int b)

{

System.out.println("in add(int,int)");

return a+b;

}

int add(int a,int b,int c)

{

System.out.println("in add(int,int,int)");

return a+b+c;

}

double add(double a,double b)

{

System.out.println("in add(double,double)");

return a+b;

}

double add(double a,double b,double c)

{

System.out.println("in add(double,double,double)");

return a+b+c;

}

}

(3)编译并运行程序

3.构造方法的重载

构造方法的名称和类同名,没有返回类型。尽管构造方法看起来和一般的成员方法没有差别,但它不是方法,也不是类的成员。因此,构造方法不能直接调用,只能由new操作符调用。

构造方法对于类是十分重要的,对象的初始化任务要靠构造方法来完成。重载构造方法的目的是提供多种初始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。

(1)程序功能:定义三个重载的构造方法,它们的方法名相同,但是参数个数不同,方法体也不同。在调用时根据实参的个数进行选择。

(2)编写A.java文件,源代码如下。

public class A {

public static void main(String[] args)

{

B b1=new B();

B b2=new B(5);

B b3=new B(3,7);

b1.print();

b2.print();

b3.print();

}

}

class B

{

int a,b;

B()

{

a=b=0;

System.out.println("in B()");

}

B(int i)

{

a=b=i;

System.out.println("in B(int)");

}

B(int i,int j)

{

a=i;

b=j;

System.out.println("in B(int,int)");

}

void print()

{

System.out.println("a="+a+",b="+b);

}

}

(3)编译并运行程序

四、思考题

1.说明什么是构造方法。

2.说明程序中有多个类时如何确定源程序文件的名称。

3.说明类的继承和多态有什么作用,在使用上应该注意什么问题。

实验三 GUI图形界面设计实验

一、实验目的

1.了解图形用户界面基本组件(窗口、按钮、文本框、选择框、滚动条等)的使用方法。

2.掌握如何使用布局管理器对组件进行管理。

3.理解Java的事件处理机制。

二、实验要求

1.掌握在容器中添加组件的方法。

2.掌握使用布局管理器对组件进行管理的方法。

3.理解Java的事件处理机制、掌握为不同组件编写事件处理程序的方法。

4.掌握编写独立运行的窗口界面的方法。

三、实验内容

(一)创建图形用户界面

图形用户界面(Graphic User Interface,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。通过容器的add方法把组件加入到容器中。

在图形用户界面中,程序和用户的交互是通过组件响应各种事件来实现的。例如,用户单击了一个按钮,意味着发生了按钮的单击事件;选中下拉框中的一个选项,意味着发生了一个选项事件。在Java 中能产生事件的组件叫做事件源,如按钮。如果希望对单击按钮事件进行处理,可给事件源(按钮)注册一个事件监听器(如包含按钮的容器),如同签订了一个委托合同,当事件源发生事件时,事件监听器就代替事件源对发生的事件进行处理,这就是所谓的委托事件处理机制。

1.创建一个窗口界面

(1)程序功能:创建一个具有关闭功能的空白窗口。

(2)编写MyFrame.java程序文件,源代码如下:

import javax.swing.*;

import java.awt.event.*;

public class MyFrame extends JFrame

{

public static void main(String[] args)

{

new MyFrame();

}

MyFrame()

{

setTitle("初始窗口");//创建窗口对象

setSize(400,300);//设置窗口大小

setVisible(true);//设置窗口是可视的

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

(3)编译MyFrame.java,产生类文件MyFrame.class。

(4)运行该程序

2.在窗口中添加组件

(1)程序功能:在窗口中添加组件。

(2)编写MyFrame.java程序文件,源代码如下:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class MyFrame extends JFrame

{

JButton sendbt;

JTextField inputField;

JTextArea chatContent;

public static void main(String[] args)

{

new MyFrame();

}

MyFrame()

{

setTitle("初始窗口");//创建窗口对象

setSize(400,300);//设置窗口大小

setLayout(new BorderLayout());//边界布局

chatContent = new JTextArea(12, 34); // 创建一个文本域

// 创建一个滚动面板,将文本域作为其显示组件

JScrollPane showPanel = new JScrollPane(chatContent);

chatContent.setEditable(false); // 设置文本域不可编辑

JPanel inputPanel = new JPanel(); // 创建一个JPanel面板

inputField = new JTextField(20); // 创建一个文本框

sendbt = new JButton("发送"); // 创建一个发送按钮

// 为按钮添加事件

sendbt.addActionListener(new ActionListener() { // 为按钮添加一个监听事件public void actionPerformed(ActionEvent e) {// 重写actionPerformed方法String content = inputField.getText(); // 获取输入的文本信息

// 判断输入的信息是否为空

if (content != null && !content.trim().equals("")) {

// 如果不为空,将输入的文本追加到到聊天窗口

chatContent.append("本人:" + content + "\n");

} else {

// 如果为空,提示聊天信息不能为空

chatContent.append("聊天信息不能为空" + "\n");

}

inputField.setText(""); // 将输入的文本域内容置为空

}

Label label = new Label("聊天信息"); // 创建一个标签

inputPanel.add(label); // 将标签添加到JPanel面板

inputPanel.add(inputField); // 将文本框添加到JPanel面板

inputPanel.add(sendbt); // 将按钮添加到JPanel面板

// 将滚动面板和JPanel面板添加到JFrame窗口

this.add(showPanel, BorderLayout.CENTER);

this.add(inputPanel, BorderLayout.SOUTH);

setVisible(true);//设置窗口是可视的

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

(3)编译MyFrame.java,产生类文件MyFrame.class。

(4)运行该程序

3.为窗口添加菜单

(1)程序功能:在窗口中添加菜单栏,在菜单栏添加菜单项,并添加下拉菜单和2级菜单,通过选择菜单项可以执行不同操作,如“打开” MyFrame类生成的窗口。

(2)编写MyFrame.java程序文件,源代码如下:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class MyFrame extends JFrame

{

JButton sendbt;

JTextField inputField;

JTextArea chatContent;

JMenuBar mb; // 以下生成菜单组件对象

JMenu m1;

JMenuItem open;

JMenuItem close;

JMenuItem exit;

JMenu m12;

JMenuItem copy;

JMenuItem cut;

JMenuItem paste;

JMenu m2;

JMenuItem content;

JMenuItem index;

JMenuItem about;

public static void main(String[] args)

{

new MyFrame();

MyFrame()

{

setTitle("初始窗口");//创建窗口对象

setSize(400,300);//设置窗口大小

setLayout(new BorderLayout());//边界布局

chatContent = new JTextArea(12, 34); // 创建一个文本域

// 创建一个滚动面板,将文本域作为其显示组件

JScrollPane showPanel = new JScrollPane(chatContent);

chatContent.setEditable(false); // 设置文本域不可编辑

JPanel inputPanel = new JPanel(); // 创建一个JPanel面板

inputField = new JTextField(20); // 创建一个文本框

sendbt = new JButton("发送"); // 创建一个发送按钮

// 为按钮添加事件

sendbt.addActionListener(new ActionListener() { // 为按钮添加一个监听事件public void actionPerformed(ActionEvent e) {// 重写actionPerformed方法String content = inputField.getText(); // 获取输入的文本信息

// 判断输入的信息是否为空

if (content != null && !content.trim().equals("")) {

// 如果不为空,将输入的文本追加到到聊天窗口

chatContent.append("本人:" + content + "\n");

} else {

// 如果为空,提示聊天信息不能为空

chatContent.append("聊天信息不能为空" + "\n");

}

inputField.setText(""); // 将输入的文本域内容置为空}

});

Label label = new Label("聊天信息"); // 创建一个标签

inputPanel.add(label); // 将标签添加到JPanel面板

inputPanel.add(inputField); // 将文本框添加到JPanel面板

inputPanel.add(sendbt); // 将按钮添加到JPanel面板

// 将滚动面板和JPanel面板添加到JFrame窗口

this.add(showPanel, BorderLayout.CENTER);

this.add(inputPanel, BorderLayout.SOUTH);

mb=new JMenuBar(); // 以下生成菜单组件对象

m1=new JMenu("文件");

open=new JMenuItem("打开");

close=new JMenuItem("关闭");

exit=new JMenuItem("退出");

m12=new JMenu("编辑");

copy=new JMenuItem("复制");

cut=new JMenuItem("剪切");

paste=new JMenuItem("粘贴");

m2=new JMenu("帮助");

content=new JMenuItem("目录");

index=new JMenuItem("索引");

about=new JMenuItem("关于");

m1.add(open); // 将菜单项加入到菜单m1 中

m1.add(close);

m1.addSeparator(); //在菜单中添加分隔条

m1.add(exit);

mb.add(m1); // 将菜单m1 加入到菜单栏mb 中

m12.add(copy); m12.add(cut); m12.add(paste);

m1.add(m12);//将m12 作为2 级菜单添加到m1 菜单项中

m2.add(content); m2.add(index); m2.addSeparator(); m2.add(about);

mb.add(m2);

setJMenuBar(mb); // 设置菜单栏为mb

exit.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

System.exit(0);

}

});

about.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

JDialog dialog=new JDialog(MyFrame.this,true);

dialog.setTitle("关于");

dialog.setSize(200,80);

dialog.add(new JLabel("电子信息工程专业",SwingConstants.CENTER));

dialog.setVisible(true);

}

});

setVisible(true);//设置窗口是可视的

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

(3)编译MyFrame.java,产生类文件MyFrame.class。

(4)运行该程序

四、思考题

1.为该窗口添加弹出式菜单功能

实验四 socket网络编程实验

一、实验目的

1.掌握InetAddress类的使用。

2.掌握TCP与UDP编程:Socket与Datagram的概念和编程方法。

二、实验要求

1.通过Socket编程,掌握网络应用程序的开发方法。

2.掌握利用Socket进行TCP网络传输。

3.掌握利用DatagramSocket进行UDP网络传输。

三、实验内容

1. InetAddress类的方法

(1)程序功能:利用InetAddress类的方法实现域名解析和本地主机名和IP地址的获取。(2)编写MyInetAddress.java程序文件,源代码如下:

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

public class MyInetAddress

{

public static void main(String[] args)

{

try

{

InetAddress localAddress = InetAddress.getLocalHost();

InetAddress remoteAddress = InetAddress.getByName("https://www.360docs.net/doc/1615883758.html,");

System.out.println("本机的IP地址:" + localAddress.getHostAddress());

System.out.println("本地的主机名为:" + localAddress.getHostName());

System.out.println("华夏学院的IP地址:" + remoteAddress.getHostAddress());

System.out.println("华夏学院的主机名为:" + remoteAddress.getHostName());

}

catch(Exception e)

{

System.out.println("解析失败");

}

}

}

(3)编译MyInetAddress.java,产生类文件MyInetAddress.class。

(4)运行该程序。

2.UDP通信

UDP把应用层所传递来的信息封装为一个个独立的数据报文,简称数据报,然后分别将这些数据报发送。UDP不保证每个数据报是否达到目的主机,因为有可能丢失,而且不保证数据报的到达时间和到达顺序。在Java网络API中与UDP数据报相关的类是DatagramPacket 类和DatagramSocket类,前者用于创建一个发送或接收的数据报对象,后者是创建一个可用来发送或接收数据报的Socket对象。

(1)程序功能:利用UDP协议设计接收端与发送端程序。

(2)编写UDPSend.java程序文件,源代码如下:

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

public class UDPSend

{

public static void main(String[] args)

{

try

{

// 创建一个DatagramSocket对象

DatagramSocket ds = new DatagramSocket(3000);

String str = "hello world"; // 要发送的数据

/*

* 创建一个要发送的数据包,数据包包括发送的数据,数据的长度,接收端的IP地址以及端口号

*/

DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(),

InetAddress.getByName("localhost"), 8954);

System.out.println("发送信息");

ds.send(dp); // 发送数据

ds.close(); // 释放资源

}

catch(Exception e)

{

System.out.println("发送异常");

}

}

}

(3)编写UDPReceive.java程序文件,源代码如下:

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

public class UDPReceive

{

public static void main(String[] args)

{

try

{

byte[] buf = new byte[1024]; // 创建一个长度为1024的字节数组,用于接收

// 定义一个DatagramSocket对象,监听的端口号为8954

DatagramSocket ds = new DatagramSocket(8954);

// 定义一个DatagramPacket对象,用于接收数据

DatagramPacket dp = new DatagramPacket(buf, 1024);

System.out.println("等待接收数据");

ds.receive(dp); // 等待接收数据,如果没有数据则会阻塞

// 调用DatagramPacket的方法获得接收到的信息,包括数据的内容、长度、发送的IP地址和端口号

String str = new String(dp.getData(), 0, dp.getLength()) + "from "

+ dp.getAddress().getHostAddress() + ":" + dp.getPort();

System.out.println(str); // 打印接收到的信息

ds.close();// 释放资源

}

catch(Exception e)

{

System.out.println("接收异常");

}

}

}

(4)编译UDPReceive.java和UDPSend.java,分别产生类文件UDPReceive.class和UDPSend.class。

(5)运行该程序。

3.TCP通信

从编程的角度,仅需要调用Socket所提供的接口就可以完成实际的网络通信,Socket 代表了TCP双向通信连接的一个端点,是对TCP网络连接的一种抽象。首先,通信双方需要建立Socket连接,之后双方都有各自的Socket对象,该Socket对象包含有两个流,一个是输入流,表示流入的数据流,其作用是接收数据。另一个是输出流,表示流出的数据,其作用是向外发送数据。

(1)程序功能:利用TCP协议设计客户端与服务器程序。

(2)编写TCPClient.java程序文件,源代码如下:

import java.io.*;

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

public class TCPClient {

public static void main(String[] args)

{

try

{

//创建一个Socket并连接到给出地址和端口号的计算机

Socket client = new Socket(InetAddress.getLocalHost(), 7788);

OutputStream os = client.getOutputStream();// 获取客户端的输出流

System.out.println("开始与服务端交互数据");

os.write(("电子信息工程专业").getBytes()); // 当客户端连接到服务端时,向客户端输出数据

Thread.sleep(5000); // 模拟执行其它功能占用的时间

System.out.println("结束与服务端交互数据");

os.close();

client.close(); // 关闭Socket对象,释放资源}

catch(Exception e)

{

System.out.println("客户端异常");

}

}

}

(3)编写TCPServer.java程序文件,源代码如下:

import java.io.*;

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

public class TCPServer {

public static void main(String[] args)

{

try

{

ServerSocket serverSocket = new ServerSocket(7788); // 创建ServerSocket 对象

Socket client = serverSocket.accept(); // 调用ServerSocket的accept()方法接收数据

InputStream is = client.getInputStream(); // 得到接收数据的流

byte[] buf = new byte[1024]; // 定义1024个字节数组的缓冲区

int len = is.read(buf); // 将数据读到缓冲区中

System.out.println(new String(buf, 0, len)); // 将缓冲区中的数据输出

is.close();

client.close();

}

catch(Exception e)

{

System.out.println("服务端异常");

}

}

}

(4)编译TCPClient.java和TCPServer.java,分别产生类文件TCPClient.class和TCPServer.class。

(5)运行该程序。

四、思考题

1.网络环境下的C/S模式的基本思想是什么?什么是客户机?什么是服务器?它们各自的作用如何?C/S模式的基本工作过程如何?

2.简述流式Socket的通信机制。它的最大特点是什么?

3.数据报通信有何特点?简述Java实现数据报通信的基本工作过程。

IQC抽检作业指导书

成品、包装物料抽检作业指导书 1.目的(Purpose) 规范进仓产品、包装物料抽查检验的计划,、方法和准则 2.0 适用范围(Scope) 成品、包装物料所有进仓的产品 3.0定义(Definitio) 批:通常指一个单位时段内生产的产品集合 4.0职责(Resposibilitie) 4.1对所有进仓产品或包装物料按照佛山市奥特玛陶瓷有限公司《成品分级内控标准》或《包装物料验收标准》验收,用标准的测量方法进行检验,完成产品的合格与不合格的判定。 4.2 IQC要对产品抽检过程中发现的质量问题进行跟踪处理,以及生产和市场反馈的重大产品质量问题的跟踪处理,并跟进产品市场销售质量状况。 4.3统计产品接收、检验过程中的质量数据,以日报或月报的形式反馈给相关部门,作为生产的质量控制和管理的依据。 5.0 作业流程 5.1成品检验准则 5.1.1检查印章是否清晰,包含了所必须的可追溯项目(产品编号、名称、品质状况、数量、产品规格)。 5.1.2对成品抽检必需做好防护措施(带手套或手指套)。 5.1.3审核工程单,根据工艺(或客户)要求确认使用产品及外包装材料等物料的规格及型号是否正 确。 5.14抽检标准: 采用正常检验的II级水准进行抽检。 5.15判断标准:依据《成品分级标准》、或《包装物料检验标准》、或客户要求进行判定是否合格。 5.13产品抽检顺序(特殊要求除外) a. 通常按照产品进仓检查顺序的原则,先生产或先进厂,先检验。 b. 对于急需销售或使用的产品或原材料可优先检查。 c. 抽检规则如下: 每批生产量在1000箱以内的,抽检量为5-10%,生产量在1000-5000箱的产品,抽检量为5-8%, 生产量超过5000箱的产品,抽检量为3-5%,对在生产过程中工艺要求复杂、生产难度大的产品, 且出现质量问题多的品种和对日常漏检次数多的跟班质检员多抽。大规格(超过600×600㎜)规 格的产品,抽检量按3-5%进行抽检,产品接收率按标准2%进行判定,若2件不合格品,且是一

最新浙江大学化工原理实验---填料塔吸收实验报告分析解析

实验报告 课程名称:过程工程原理实验(乙) 指导老师: 叶向群 成绩:__________________ 实验名称:吸收实验 实验类型:工程实验 同组学生姓名: 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 填料塔吸收操作及体积吸收系数测定 1 实验目的: 1.1 了解填料吸收塔的构造并熟悉吸收塔的操作; 1.2 观察填料塔的液泛现象,测定泛点空气塔气速; 1.3 测定填料层压降ΔP 与空塔气速u 的关系曲线; 1.4 测定含氨空气—水系统的体积吸收系数K y a 。 2 实验装置: 2.1 本实验的装置流程图如图1: 专业: 姓名: 学号: 日期:2015.12.26 地点:教十2109

2.2物系:水—空气—氨气。惰性气体由漩涡气泵提供,氨气由液氮钢瓶提供,吸收剂水采用自来水,他们的流量分别通过转子流量计。水从塔顶喷淋至调料层与自下而上的含氮空气进行吸收过程,溶液由塔底经过液封管流出塔外,塔底有液相取样口,经吸收后的尾气由塔顶排至室外,自塔顶引出适量尾气,用化学分析法对其进行组成分析。 3 基本原理: 实验中气体流量由转子流量计测量。但由于实验测量条件与转子流量计标定条件不一定相同,故转子流量计的读数值必须进行校正。校正方法如下:

3.2 体积吸收系数的测定 3.2.1相平衡常数m 对相平衡关系遵循亨利定律的物系(一般指低浓度气体),气液平衡关系为: 相平衡常数m与系统总压P和亨利系数E的关系如下: 式中:E—亨利系数,Pa P—系统总压(实验中取塔内平均压力),Pa 亨利系数E与温度T的关系为: lg E= 11.468-1922 / T 式中:T—液相温度(实验中取塔底液相温度),K。 根据实验中所测的塔顶表压及塔顶塔底压差△p,即可求得塔内平均压力P。根据实验中所测的塔底液相温度T,利用式(4)、(5)便可求得相平衡常数m。 3.2.2 体积吸收常数 体积吸收常数是反映填料塔性能的主要参数之一,其值也是设计填料塔的重要依据。本实验属于低浓气体吸收,近似取Y≈y、X≈x。 3.2.3被吸收的氨气量,可由物料衡算 (X1-X2) 式中:V—惰性气体空气的流量,kmol/h;

测试技术实验指导书及实验报告2006级用汇总

矿压测试技术实验指导书 学号: 班级: 姓名: 安徽理工大学 能源与安全学院采矿工程实验室

实验一常用矿山压力仪器原理及使用方法 第一部分观测岩层移动的部分仪器 ☆深基点钻孔多点位移计 一、结构简介 深基点钻孔多点位移计是监测巷道在掘进和受采动影响的整个服务期间,围岩内部变形随时间变化情况的一种仪器。 深基点钻孔多点位移包括孔内固定装置、孔中连接钢丝绳、孔口测读装置组成。每套位移计内有5~6个测点。其结构及其安装如图1所示。 二、安装方法 1.在巷道两帮及顶板各钻出φ32的钻孔。 2.将带有连接钢丝绳的孔内固定装置,由远及近分别用安装圆管将其推至所要求的深度。(每个钻孔布置5~6个测点,分别为;6m、5m、4m、3m、2m、lm或12m、10m、8m、6m、4m、2m)。 3.将孔口测读装置,用水泥药圈或木条固定在孔口。 4。拉紧每个测点的钢丝绳,将孔口测读装置上的测尺推至l00mm左右的位置后,由螺丝将钢丝绳与测尺固定在一起。 三、测试方法 安装后先读出每个测点的初读数,以后每次读得的数值与初读数之差,即为测点的位移值。当读数将到零刻度时,松开螺丝,使测尺再回到l00mm左右的位置,重新读出初读数。 ☆顶板离层指示仪 一、结构简介: 顶板离层指示仪是监测顶板锚杆范围内及锚固范围外离层值大小的一种监测仪器,在顶板钻孔中布置两个测点,一个在围岩深部稳定处,一个在锚杆端部围岩中。离层值就是围岩中两测点之间以及锚杆端部围岩与巷道顶板表面间的相对位移值。顶板离层指示仪由孔内固定装置、测量钢丝绳及孔口显示装置组成如图1所示。

二、安装方法: 1.在巷道顶板钻出φ32的钻孔,孔深由要求而定。 2.将带有长钢丝绳的孔内固定装置用安装杆推到所要求的位置;抽出安装杆后再将带有短钢丝绳的孔内固定装置推到所要求的位置。 3.将孔口显示装置用木条固定在孔口(在显示装置与钻孔间要留有钢丝绳运动的间隙)。 4.将钢丝绳拉紧后,用螺丝将其分别与孔口显示装置中的圆管相连接,且使其显示读数超过零刻度线。 三、测读方法: 孔口测读装置上所显示的颜色,反映出顶板离层的范围及所处状态,显示数值表示顶板的离层量。☆DY—82型顶板动态仪 一、用途 DY-82型顶板动态仪是一种机械式高灵敏位移计。用于监测顶底板移近量、移近速度,进行采场“初次来压”和“周期来压”的预报,探测超前支撑压力高 峰位置,监测顶板活动及其它相对位移的测量。 二、技术特征 (1)灵敏度(mm) 0.01 (2)精度(%) 粗读±1,微读±2.5 (3)量程(mm) 0~200 (4)使用高度(mm) 1000~3000 三、原理、结构 其结构和安装见图。仪器的核心部件是齿条6、指针8 以及与指针相连的齿轮、微读数刻线盘9、齿条下端带有读 数横刻线的游标和粗读数刻度管11。 当动态仪安装在顶底板之间时,依靠压力弹簧7产生的 弹力而站立。安好后记下读数(初读数)并由手表读出时间。 粗读数由游标10的横刻线在刻度管11上的位置读出,每小 格2毫米,每大格(标有“1”、“22'’等)为10毫米,微读数 由指针8在刻线盘9的位置读出,每小格为0.01毫米(共200 小格,对应2毫米)。粗读数加微读数即为此时刻的读数。当 顶底板移近时,通过压杆3压缩压力弹簧7,推动齿条6下 移,带动齿轮,齿轮带动指针8顺时针方向旋转,顶底板每 移近0.01毫米,指针转过1小格;同时齿条下端游标随齿条 下移,读数增大。后次读数减去前次读数,即为这段时间内的顶底板移近量。除以经过的时间,即得

什么是面向对象程序设计

1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。

抽样检验作业规范标准[详]

1.目的:规物料进料检验、制成过程控制抽样检验、成品入库抽样检验的标准,从而确保来 料、过程控制、产品包装检验整个生产中质量的稳定性和可靠性。 2.围:适用本公司IQC进料检验、IPQC过程控制检验、OQC成品出货检验的所有产品。 3.职责: a)IQC、IPQC、OQC负责执行本文件的规定 b)品质主管负责监督执行并视产品实际情况制定、修改本管理规定 4.名词解释 AQL:当一个连续系列批被提交验收时,可允许的最差过程平均质量水平,一般按照百分比来计算 A类不合格 ---- 单位产品的极重要质量特性不符合规定或者单位产品的质 量特性极严重不符合规定。 B类不合格 ---- 单位产品的重要质量特性不符合规定或者单位产品的质量 特性极严重不符合规定。 一般不合格---- 单位产品的重要质量特性符合技术要求,外观存在一定的瑕疵或缺陷。 Ac合格接收量 Re不合格拒绝接收量绝 5.程序: 5.1来料检验 1)抽样标准:按GB2828-2003Ⅱ级检查水平一次抽样进行 2)合格质量水准AQL规定进行检验 ①电子原件AQL:2.5 ②塑料件:关键指标AQL:2.5 外形外观一般指标AQL:4.0 金属件:AQL:2.5

3)检查严格度:正常检验 4)抽样方式:随机抽样 5)抽样批量:每一订单作为一个检查批次 以上规定了来料检验通用抽样检验标准,部分物料特别规定的除外,参见具体物料检验标准,特殊情况由物料品质部QE决定。 5.2过程控制检验 过程控制检验是指在对生产过程中的品质进行控制和验收,按照我公司规定实行三检制对生产过程中的质量进行预防和控制。IPQC需在生产过程中对每个工序进行巡检,对关键工序进行重点检验。巡检抽检的比列按照每天生产安排量5%进行,关键工序和重点工序的巡检比例而不得低于10%。关键过程和重点过程分别指对质量有重大影响的工序和质量事故频繁发生的工序,检验标准按照工艺标准作业指导书进行。 5.3成品出货检验 1)生产过程中的工序检验控制按照100%依次逐个检验,QC对其外观及性能在进行抽检,抽检比例按照1%进行。 2)检验严格度:正常检验 4)抽样方式:随机抽样 5.4进料检验规 进料检验(IQC)又称验收检验,是为了不让不良原物料进入物料仓库的控制方式,也是评鉴供料厂商主要的信息来源。 所进的物料,又因供料厂商的品质信赖度及物料的数量、单价、体积等,加以规划为全检、抽检、免检。 全检:数时少,单价高。 抽检:数量多,或经常性之物料。

填料塔吸收实验报告

实验6 填料吸收塔实验报告 第四组成员:王锋,郑义,刘平,吴润杰 一、 实验名称 填料吸收塔实验 二、 实验目的 1、 了解填料吸收塔的构造并实际操作。 2、 了解填料塔的流体力学性能。 3、 学习填料吸收塔传质能力和传质效率的测定方法。 三、实验内容 测定填料层压强降与操作气速的关系曲线,并用ΔP/Z —u 曲线转折点与观察现象相结合的办法,确定填料塔在某液体喷淋量下的液泛气速。 四、实验原理 1.气体通过填料层的压强降 压强降是塔设计中的重要参数,气体通过填料层压强降的大小决定了塔的动力消耗。压强降与气液流量有关,不同喷淋量下填料层的压强降ΔP 与空塔气速u 的关系如下图所示: 图6-1 填料层的ΔP ~u 关系 当无液体喷淋即喷淋量L0=0时,干填料的ΔP ~u 的关系是直线,如图中的直线0。当有一定的喷淋量时,ΔP ~u 的关系变成折线,并存在两个转折点,下转折点称为“载点” ,上转折点称为“泛点”。这两个转折点将ΔP ~u 关系分为三个区段:恒持液量区、载液区与液泛区。

五、实验装置和流程 图6-2 填料吸收塔实验装置流程图 1-风机、2-空气流量调节阀、3-空气转子流量计、4-空气温度、5-液封管、6-吸收液取样口、7-填料吸收塔、8-氨瓶阀门、9-氨转子流量计、10-氨流量调节阀、11-水转子流量计、12-水流量调节阀、13-U型管压差计、14-吸收瓶、15-量气管、16-水准瓶、17-氨气瓶、18-氨气温度、20-吸收液温度、21-空气进入流量计处压力 实验流程示意图见图一,空气由鼓风机1送入空气转子流量计3计量,空气通过流量计处的温度由温度计4测量,空气流量由放空阀2调节,氨气由氨瓶送出,?经过氨瓶总阀8进入氨气转子流量计9计量,?氨气通过转子流量计处温度由实验时大气温度代替。其流量由阀10调节5,然后进入空气管道与空气混合后进入吸收塔7的底部,水由自来水管经水转子流量计11,水的流量由阀12调节,然后进入塔顶。分析塔顶尾气浓度时靠降低水准瓶16的位置,将塔顶尾气吸入吸收瓶14和量气管15。?在吸入塔顶尾气之前,予先在吸收瓶14内放入5mL 已知浓度的硫酸作为吸收尾气中氨之用。吸收液的取样可用塔底6取样口进行。填料层压降用∪形管压差计13测定。 六、实验操作方法及步骤 1、测量干填料层(△P/Z)─u关系曲线: 先全开调节阀 2,后启动鼓风机,用阀 2 调节进塔的空气流量,按空气流量从小到大的顺序读取填料层压降△P,转子流量计读数和流量计处空气温度,测量12~15组数据?然后在双对数坐标纸上以空塔气速 u为横坐标,以单位高度的压降△P/Z为纵坐标,标绘干填料层(△P/Z)─u关系曲线。 2、测量某喷淋量下填料层(△P/Z)─u关系曲线: 用水喷淋量为30L/h时,用上面相同方法读取填料层压降△P,?转子流量计读数和流量计处空气温度并注意观察塔内的操作现象, ?一旦看到液泛现象时记下对应的空气转子流量计读数。在对数坐标纸上标出液体喷淋量为30L/h下(△P/z)─u?关系曲线,确定液泛气速并与观察的液泛气速相比较。 3、测量某喷淋量下填料层(△P/Z)─u关系曲线: 用水喷淋量为50L/h时,用上面相同方法读取填料层压降△P,?转子流量计读数和流量计处空气温度并注意观察塔内的操作现象, ?一旦看到液泛现象时记下对应的空气转子流量计读数。在对数坐标纸上标出液体喷淋量为50L/h下(△P/z)─u?关系曲线,确定液泛气速

混凝土结构实验指导书及实验报告(学生用)

土木工程学院 《混凝土结构设计基本原理》实验指导书 及实验报告 适用专业:土木工程周淼 编 班级::学 号: 理工大学 2018 年9 月

实验一钢筋混凝土梁受弯性能试验 一、实验目的 1.了解适筋梁的受力过程和破坏特征; 2.验证钢筋混凝土受弯构件正截面强度理论和计算公式; 3.掌握钢筋混凝土受弯构件的实验方法及荷载、应变、挠度、裂缝宽度等数据的测试技术 和有关仪器的使用方法; 4.培养学生对钢筋混凝土基本构件的初步实验分析能力。 二、基本原理当梁中纵向受力钢筋的配筋率适中时,梁正截面受弯破坏过程表现为典型的三个阶段:第一阶段——弹性阶段(I阶段):当荷载较小时,混凝土梁如同两种弹性材料组成的组合梁,梁截面的应力呈线性分布,卸载后几乎无残余变形。当梁受拉区混凝土的最大拉应力达到混凝土的抗拉强度,且最大的混凝土拉应变超过混凝土的极限受拉应变时,在纯弯段某一薄弱截面出现首条垂直裂缝。梁开裂标志着第一阶段的结束。此时,梁纯弯段截面承担的弯矩M cr称为开裂弯矩。第二阶段——带裂缝工作阶段(II阶段):梁开裂后,裂缝处混凝土退出工作,钢筋应力急增,且通过粘结力向未开裂的混凝土传递拉应力,使得梁中继续出现拉裂缝。压区混凝土中压应力也由线性分布转化为非线性分布。当受拉钢筋屈服时标志着第二阶段的结束。此时梁纯弯段截面承担的弯矩M y称为屈服弯矩。第三阶段——破坏阶段(III阶段):钢筋屈服后,在很小的荷载增量下,梁会产生很大的变形。裂缝的高度和宽度进一步发展,中和轴不断上移,压区混凝土应力分布曲线渐趋丰满。当受压区混凝土的最大压应变达到混凝土的极限压应变时,压区混凝土压碎,梁正截面受弯破坏。此时,梁承担的弯矩M u 称为极限弯矩。适筋梁的破坏始于纵筋屈服,终于混凝土压碎。整个过程要经历相当大的变形,破坏前有明显的预兆。这种破坏称为适筋破坏,属于延性破坏。 三、试验装置

《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境 一、实验目的 1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。 2、掌握如何编辑、编译、连接和运行一个C++程序。 3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。 二、实验要求 1、分析下列程序运行的结果。 程序一: #include int add(int x,int y=8); void main() { int x=4; cout< void main() { int *p,i; i=5; p=&i; i=*p+10; cout<<"i="< void main(void) { int i=10; int &r=i; r++; cout<<"i="< void func(); int n=1; void main() { static int a; int b= -9; cout <<"a:"<

环节微生物抽样检验作业指导书

环节微生物抽样检验作业指导书 1、目的: 检测生产车间空气、操作人员手部、与食品有直接接触面的机械设备的微生物指标,达到规定标准,以控制食品成品的质量。 2、参照标准: 中华人民共和国国家标准《一次性使用卫生用品卫生标准》GB15979-1995、中华人民共和国国家标准《公共场所空气微生物检验方法细菌总数测定》GB/T 18204.1-2002 3、采样与检测方法: 3.1空气的采样与测试方法 3.1.1样品采集: (1)取样频率: a)车间转换不同卫生要求的产品时,在加工前进行采样,以便了解车间卫生清扫消毒情况。 b)全厂统一放长假后,车间生产前,进行采样。 c)产品检验结果超内控标准时,应及时对车间进行采样,如有检验不合格点,整改后再进行采样检验。 d)实验性新产品,按客户规定频率采样检验。 e)正常生产状态的采样,每周一次。 (2)采样方法 在动态下进行,室内面积不超过30 m2,在对角线上设里、中、外三点,里、外点位置距墙1 m;室内面积超过30 m2,设东、西、南、北、中五点,周围4点距墙1 m。采样时,将含平板计数琼脂培养基的平板(直径9 cm)置采样点(约桌面高度),并避开空调、门窗等空气流通处,打开平皿盖,使平板在空气中暴露5min对样品进行相应指标的检测,送检时间不得超过6h,若样品保存于0~4℃条件时,送检时间不得超过24h。 3.1.2菌落培养:

(1)在采样前将准备好的平板计数琼脂培养基平板置36℃±1℃培养24 h,取出检查有无污染,将污染培养基剔除。 (2)将已采集样品的培养基在6 h内送实验室,细菌总数于36℃±1℃培养48h观察结果,计数平板上细菌菌落数。 (3)菌落计算: 空气细菌落菌数(cfu/m3)=50000*N/AT 式中:A——平板面积,cm2; T——平板暴露时间,min; N——平板上平均细菌菌落数 50000--------系数 3.2工作台(机械器具)表面与工人手表面采样与测试方法: 3.2.1样品采集: (1)取样频率: a)车间转换不同卫生要求的产品时,在加工前进行擦拭检验,以便了解车 间卫生清扫消毒情况。 b)全厂统一放长假后,车间生产前,进行全面擦拭检验。 c)产品检验结果超内控标准时,应及时对车间可疑处进行擦拭,如有检验 不合格点,整改后再进行擦拭检验。 d)实验新产品,按客户规定擦拭频率擦拭检验。 e)对工作表面消毒产生怀疑时,进行擦拭检验。 f)正常生产状态的擦拭,每周一次。 (2)采样方法: a) 工作台(机械器具):用浸有灭菌生理盐水的棉签在被检物体表面(取 与食品直接接触或有一定影响的表面)取25cm2的面积,在其内涂抹10次,然后剪去手接触部分棉棒,将棉签放入含10mL灭菌生理盐水的采样管内送检。 b) 工人手:被检人五指并拢,用浸湿生理盐水的棉签在右手指曲面,从指 尖到指端来回涂擦10次,然后剪去手接触部分棉棒,将棉签放入含10mL

实验七填料塔吸收实验

实验七填料吸收塔的操作和吸收系数的测定 一、实验目的 1.了解填料吸收塔的结构、填料特性及吸收装置的基本流程。 2.熟悉填料塔的流体力学性能。 3.掌握总传质系数K Y a测定方法。 4.了解空塔气速和液体喷淋密度对传质系数的影响。 二、实验内容 1.测定干填料及不同液体喷淋密度下填料的阻力降?P与空塔气速u的关系曲线,并确定液泛气速。 2.测量固定液体喷淋量下,不同气体流量时,用水吸收空气—氨混和气体中氨的体积吸收系数K Y a。 三、基本原理 1.填料塔流体力学特性 填料塔是一种重要的气液传质设备,其主体为圆柱形的塔体,底部有一块带孔的支撑板来支承填料,并允许气液顺利通过。支撑板上的填料有整堆和乱堆两种方式,填料分为实体填料和网体填料两大类,如拉西环、鲍尔环、θ网环都属于实体填料。填料层上方有液体分布装置,可以使液体均匀喷洒在填料上。液体在填料中有倾向于塔壁的流动,故当填料层较高时,常将其分段,段与段之间设置液体再分布器,以利液体的重新分布。 吸收塔中填料的作用主要是增加气液两相的接触面积,而气体在通过填料层时,由于克服摩擦阻力和局部阻力而导致了压强降?P的产生。填料塔的流体力学特性是吸收设备的主要参数,它包括压强降和液泛规律。了解填料塔的流体力学特性是为了计算填料塔所需动力消耗,确定填料塔适宜操作范围以及选择适宜的气液负荷。填料塔的流体力学特性的测定主要是确定适宜操作气速。 在填料塔中,当气体自下而上通过干填料(L=0)时,与气体通过其它固体颗粒床层一样,气压降?P与空塔气速u的关系可用式?P=u1.8-2.0表示。在双对数坐标系中为一条直线,斜率为1.8-2.0。在有液体喷淋(L≠0)时,气体通过床层的压降除与气速和填料有关外,还取决于喷淋密度等因素。在一定的喷淋密度下,当气速小时,阻力与空塔速度仍然遵守?P∝u1.8-2.0这一关系。但在同样的空塔速度下,由于填料表面有液膜存在,填料中的空隙减小,填料空隙中的实际速度增大,因此床层阻力降比无喷淋时的值高。当气速增加到某一值时,由于上升气流与下降液体间的摩擦阻力增大,开始阻碍液体的顺利下流,以致于填料层内的气液量随气速的增加而增加,此现象称为拦液现象,此点为载点,开始拦液时的空塔气速称为载点气速。进入载液区后,当空塔气速再进一步增大,则填料层内拦液量不断增高,到达某一气速时,气、液间的摩擦力完全阻止液体向下流动,填料层的压力将急剧升高,在?P∝u n关系式中,n的数值可达10左右,此点称为泛点。在不同的喷淋密度下,在双对数坐标中可得到一系列这样的折线。随着喷淋密度的增加,填料层的载点气速和泛点气速下降。 本实验以水和空气为工作介质,在一定喷淋密度下,逐步增大气速,记录填料层的压降与

土工实验指导书及实验报告

土工实验指导书及实验报告编写毕守一 安徽水利水电职业技术学院 二OO九年五月

目录 实验一试样制备 实验二含水率试验 实验三密度试验 实验四液限和塑限试验 实验五颗粒分析试验 实验六固结试验 实验七直接剪切试验 实验八击实试验 土工试验复习题

实验一试样制备 一、概述 试样的制备是获得正确的试验成果的前提,为保证试验成果的可靠性以及试验数据的可比性,应具备一个统一的试样制备方法和程序。 试样的制备可分为原状土的试样制备和扰动土的试样制备。对于原状土的试样制备主要包括土样的开启、描述、切取等程序;而扰动土的制备程序则主要包括风干、碾散、过筛、分样和贮存等预备程序以及击实等制备程序,这些程序步骤的正确与否,都会直接影响到试验成果的可靠性,因此,试样的制备是土工试验工作的首要质量要素。 二、仪器设备 试样制备所需的主要仪器设备,包括: (1)孔径0.5mm、2mm和5mm的细筛; (2)孔径0.075mm的洗筛; (3)称量10kg、最小分度值5g的台秤; (4)称量5000g、最小分度值1g和称量200g、最小分度值0.01g的天平;

(5)不锈钢环刀(内径61.8mm、高20mm;内径79.8mm、高20mm或内径61.8mm、高40mm); (6)击样器:包括活塞、导筒和环刀; (7)其他:切土刀、钢丝锯、碎土工具、烘箱、保湿器、喷水设备、凡士林等。 三、试样制备 (一)原状土试样的制备步骤 1、将土样筒按标明的上下方向放置,剥去蜡封和胶带,开启土样筒取土样。 2、检查土样结构,若土样已扰动,则不应作为制备力学性质试验的试样。 3、根据试验要求确定环刀尺寸,并在环刀内壁涂一薄层凡士林,然后刃口向下放在土样上,将环刀垂直下压,同时用切土刀沿环刀外侧切削土样,边压边削直至土样高出环刀,制样时不得扰动土样。 4、采用钢丝锯或切土刀平整环刀两端土样,然后擦净环刀外壁,称环刀和土的总质量。 5、切削试样时,应对土样的层次、气味、颜色、夹杂物、裂缝和均匀性进行描述。 6、从切削的余土中取代表性试样,供测定含水率以及颗粒分析、界限含水率等试验之用。

面向对象程序设计(答案)

学号:姓名: 第三章面向对象程序设计作业 一、判断题 1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。对 2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。对 3、接口中的成员变量全部为常量,方法为抽象方法。对 4、抽象类可以有构造方法,可以直接实例化。错 5、对static方法的调用可以不需要类实例。对 6、包含抽象方法的类一定是抽象类。对 7、方法中的形参可以和方法所属类的属性同名。对 8、接口无构造器,不能有实例,也不能定义常量。错 9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。对 10、Java应用程序的入口main方法只有一种定义法。对 二、选择题 1、下列答案正确的是(A ) A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为public B) 在同一个Java源文件中只能包含一个类,并被声明为public C) 在同一个Java源文件中可以包含多个类,都可以被声明为public D) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default 2、Java实现动态多态性是通过( B )实现的。 A) 重载B) 覆盖 C) 接口D) 抽象类 3、下列哪一个是正确的方法重载描述( A ) A) 重载方法的参数类型必须不同 B) 重载方法的参数名称必须不同 C) 返回值类型必须不同 D) 修饰词必须不同 4、final关键字不可以用来修饰( D ) A) 类B) 成员方法 C) 域D) 接口 5、接口的所有成员方法都具有( B )属性 A) private, final B) public, abstract C) static, protected D) static 6、Java的封装性是通过(A )实现的 A) 访问控制B) 设计内部类 C) 静态域和静态方法D) 包 7、下列接口或类不属于.*包的是( D ) A) Collection B)Vector C) Map D) Integer 8、下述哪一组方法,是一个类中方法重载的正确写法( A ) A) int addValue( int a, int b ){return a+b;}

IQC抽检作业指导书

1.0 目的Purpose 规范进料抽样检验的计划,、方法和准则 2.0 适用范围Scope 个人化车间所有来料 3.0定义Definition 批:通常指一个单位时段内制造的产品的集合 4.0职责Resposibilities 4.1对来料按照验收检验标准,用最好的测量系统进行检验,完成物料的合格与不合格的判定。 4.2 IQC要对来料抽检过程中发现的质量问题进行跟踪处理,以及生产和市场反馈的重大物料质量问题的跟踪处理,并跟进物料使用状况。 4.3统计来料接收、检验过程中的质量数据,以周报或月报的形式反馈给相关部门,作为供应的来料质量控制和管理的依据。 5.0 作业流程 5.1物料检验准则 5.11检查标签是否清晰,包含了所必须的可追溯项目(物料编号、名称、品质状况、数量、物料规格)。 5.12对来料抽检必需带手套或手指套。 5.13审核工程单,根据工艺要求确认使用卡片、芯片、包装材料等物料的规格及型号是否正确。 5.14抽检标准: 采用正常检验的II级水准,AQL: 0.65,极度严重=0.04。 5.15判断标准:依据各类物料的样本、工程单及SIM卡外观功能不良检查标准。 5.13来料检查顺序 a.通常按来料的检查顺序原则,先进先检。 b.对于生产急用的物料可优先检查。 5.2卡基、芯片抽检规则 5.21外观检验:图标、图案、文字、背景的内容及颜色、同批次色差、气泡、有无划伤、纤维、 翘曲、毛刺、溢胶、色斑、有无变形、检查封装卡片芯片表面不可有刮花、芯片粘 接是否牢固、油污、穿孔、黑边、露白、芯片开口、压线偏位等不良现象。 5.22尺寸(厚度):对照工程单用数显卡尺测量:卡体及芯片(长、宽、高),小卡尺寸及位置,铣槽位 置(长、宽、深度)。 5.23电子功能:用读卡器测试芯片有无反应、有无ATR值、核对芯片型号、小卡推力测试10-30N。 5.3包装材料检验规则

填料塔吸收综合实验报告

竭诚为您提供优质文档/双击可除填料塔吸收综合实验报告 篇一:实验七填料塔吸收实验 实验七填料吸收塔的操作和吸收系数的测定 一、实验目的 1.了解填料吸收塔的结构、填料特性及吸收装置的基本流程。2.熟悉填料塔的流体力学性能。3.掌握总传质系数KYa测定方法。4.了解空塔气速和液体喷淋密度对传质系数的影响。 二、实验内容 1.测定干填料及不同液体喷淋密度下填料的阻力降?p 与空塔气速u的关系曲线,并确定液泛气速。 2.测量固定液体喷淋量下,不同气体流量时,用水吸收空气—氨混和气体中氨的体积吸收系数KYa。 三、基本原理 1.填料塔流体力学特性 填料塔是一种重要的气液传质设备,其主体为圆柱形的塔体,底部有一块带孔的支撑板来支承填料,并允许气液顺

利通过。支撑板上的填料有整堆和乱堆两种方式,填料分为实体填料和网体填料两大类,如拉西环、鲍尔环、?网环都属于实体填料。填料层上方有液体分布装置,可以使液体均匀喷洒在填料上。液体在填料中有倾向于塔壁的流动,故当填料层较高时,常将其分段,段与段之间设置液体再分布器,以利液体的重新分布。 吸收塔中填料的作用主要是增加气液两相的接触面积,而气体在通过填料层时,由于克服摩擦阻力和局部阻力而导致了压强降?p的产生。填料塔的流体力学特性是吸收设备的主要参数,它包括压强降和液泛规律。了解填料塔的流体力学特性是为了计算填料塔所需动力消耗,确定填料塔适宜操作范围以及选择适宜的气液负荷。填料塔的流体力学特性的测定主要是确定适宜操作气速。 在填料塔中,当气体自下而上通过干填料(L=0)时,与气体通过其它固体颗粒床层一样,气压降?p与空塔气速u的关系可用式?p=u1.8-2.0表示。在双对数坐标系中为一条直线,斜率为1.8-2.0。在有液体喷淋(L?0)时,气体通过床层的压降除与气速和填料有关外,还取决于喷淋密度等因素。在一定的喷淋密度下,当气速小时,阻力与空塔速度仍然遵守?p?u1.8-2.0这一关系。但在同样的空塔速度下,由于填料表面有液膜存在,填料中的空隙减小,填料空隙中的实际 速度增大,因此床层阻力降比无喷淋时的值高。当气速增加

CAD上机实验指导书及实验报告

北京邮电大学世纪学院 实验、实习、课程设计报告撰写格式与要求 (试行) 一、实验报告格式要求 1、有实验教学手册,按手册要求填写,若无则采用统一实验报告封面。 2、报告一律用钢笔书写或打印,打印要求用A4纸;页边距要求如下:页边距上下各为2.5厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 3、统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。 4、实验报告中的实验原始记录,须经实验指导教师签字或登记。 二、实习报告、课程设计报告格式要求 1、采用统一的封面。 2、根据教学大纲的要求手写或打印,手写一律用钢笔书写,统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。打印要求用A4纸;页边距要求如下:页边距上下各为2.5厘米,左右边距各为2.5厘米;行间距取固定值(设置值为20磅);字符间距为默认值(缩放100%,间距:标准)。 三、报告内容要求 1、实验报告内容包括:实验目的、实验原理、实验仪器设备、实验操作过程、原始数据、实验结果分析、实验心得等方面内容。 2、实习报告内容包括:实习题目、实习任务与要求、实习具体实施情况(附上图表、原始数据等)、实习个人总结等内容。 3、课程设计报告或说明书内容包括:课程设计任务与要求、总体方案、方案设计与分析、所需仪器设备与元器件、设计实现与调试、收获体会、参考资料等方面内容。 北京邮电大学世纪学院 教务处 2009-8

实验报告 课程名称计算机绘图(CAD) 实验项目AutoCAD二维绘图实验 专业班级 姓名学号 指导教师实验成绩 2016年11月日

面向对象程序设计课后答案(完整版)

第二章2-4 #include using namespace std; Add(int a,int b); int main() { int x,y,sum; cout<<"please input x and y:"; cin>>x>>y; sum = add(x,y); cout < using namespace std; int main() {

int *p,*init; int countp=0; int countn=0; p = new int[20]; init = p; for(int i=0;i<20;i++) { cin>>*p; p++; } p = p-20; for( i=0;i<20;i++) { if(*p>0) countp++; if(*p<0) countn++; cout<<*p<<" "; p++; } cout<<"正数有:"< //#include using namespace std; void checkagescore(string name,int age) { if (name == "exit") throw name; if(age<0||age>50) throw age;

填料塔吸收实验数据及处理

0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.5 1 1.5 2 空塔气速 单位高度压降 空气流量u(m 3) H1(cm) Ppa P/H 0.375 0.18 17.64 0.027 0.5 0.3 29.4 0.045 0.7 0.45 44.1 0.068 0.9 0.75 73.5 0.113 1.1 1.05 102.9 0.158 1.3 1.3 127.4 0.196 1.5 1.6 156.8 0.241 1.7 1.9 186.2 0.286 1.9 2.2 215.6 0.332

0.000 1.000 2.000 3.000 4.000 5.000 6.000 0.000 0.2000.4000.6000.800 1.000 1.200 1.400 1.600 流量 液体喷淋量20L /h 空气流量u H1 Ppa P/H 0.375 0.550 53.900 0.083 0.500 1.100 107.800 0.166 0.600 1.500 147.000 0.226 0.700 1.850 181.300 0.279 0.800 2.200 215.600 0.332 0.900 2.700 264.600 0.407 1.000 4.100 401.800 0.618 1.100 5.100 499.800 1.428 1.200 6.370 624.260 0.960 1.300 7.150 700.700 1.078 1.400 21.000 2058.000 3.166 1.500 33.000 3234.000 4.975

《流体力学》课程实验(上机)指导书及实验报告格式

《流体力学》课程实验指导书袁守利编 汽车工程学院 2005年9月

前言 1.实验总体目标、任务与要求 1)学生在学习了《流体力学》基本理论的基础上,通过伯努利方程实验、动量方程实 验,实现对基本理论的验证。 2)通过实验,使学生对水柱(水银柱)、U型压差计、毕托管、孔板流量计、文丘里流量计等流体力学常用的测压、测流量装置的结构、原理和使用有基本认识。 2.适用专业 热能与动力工程 3.先修课程 《流体力学》相关章节。 4.实验项目与学时分配 5. 实验改革与特色 根据实验内容和现有实验条件,在实验过程中,采取学生自己动手和教师演示相结合的方法,力求达到较好的实验效果。

实验一伯努利方程实验 1.观察流体流经实验管段时的能量转化关系,了解特定截面上的总水头、测压管水头、压强水头、速度水头和位置水头间的关系,从而加深对伯努利方程的理解和认识。 2.掌握各种水头的测试方法和压强的测试方法。 3.掌握流量、流速的测量方法,了解毕托管测速的原理。 二、实验条件 伯努利方程实验仪 三、实验原理 1.实验装置: 图一伯努利方程实验台 1.水箱及潜水泵 2.上水管 3.电源 4.溢流管 5.整流栅 6.溢流板 7.定压水箱 8.实验 细管9. 实验粗管10.测压管11.调节阀12.接水箱13.量杯14回水管15.实验桌 2.工作原理 定压水箱7靠溢流来维持其恒定的水位,在水箱下部装接水平放置的实验细管8,水经实验细管以恒定流流出,并通过调节阀11调节其出水流量。通过布置在实验管四个截面上的四组测压孔及测压管,可以测量到相应截面上的各种水头的大小,从而可以分析管路中恒定流动的各种能量形式、大小及相互转化关系。各个测量截面上的一组测压管都相当于一组毕托管,所以也可以用来测管中某点的流速。 电测流量装置由回水箱、计量水箱和电测流量装置(由浮子、光栅计量尺和光电子

相关文档
最新文档