实验5 包和接口
实验五 工厂方法模式、抽象工厂模式和生成器模式

实验五工厂方法模式、抽象工厂模式和生成器模式的应用一、实验目的通过该实验,理解工厂方法模式、抽象工厂模式和生成器模式的意图、结构,在软件开发中使用这些模式并进行功能验证。
二、实验内容1.手机工厂:现实中不同品牌的手机应由不同的工厂制造,使用工厂方法模式模拟实现。
图1 手机工厂的类图2.微型计算机配件的生产:该系统所需要的产品族有两个:PC系列和MAC系列,产品等级结构也有两个:RAM和CPU,使用抽象工厂模式模拟实现。
图2 微型计算机配件生产系统的设计类图3.用程序画一个小人:要求小人要有头、身体、手和脚。
使用生成器模式模拟实现。
图3 利用程序画小人的类图三、实验步骤与要求1.对于以上题目要认真分析和理解题意,程序中要求使用相应的模式。
2.上机录入,使用JDK编译器调试、运行、验证程序。
3.请指导教师审查程序和运行结果并评定成绩;4.撰写并上交实验报告。
四、实验原理:1、工厂方法模式当系统准备为用户提供某个类的子类的实例,又不想让用户代码和该子类形成耦合时,可以使用工厂方法模式来设计系统。
工厂方法模式的关键是在一个接口或抽象类中定义一个抽象方法,该方法返回某个类的子类的实例,该抽象类或接口让其子类或实现该接口的类通过重写这个抽象方法返回某个子类的实例。
适合使用工厂方法模式的情景有:●用户需要一个类的子类的实例,但不希望与该类的子类形成耦合●用户需要一个类的子类的实例,但用户不知道该类有哪些子类可用。
工厂方法模式的UML类图:图4 工厂方法模式的类图2、抽象工厂模式当系统准备为用户提供一系列相关的对象,又不想让用户代码和创建这些对象的类形成耦合时,就可以使用抽象工厂模式来设计系统。
抽象工厂模式的关键是在一个抽象类或接口中定义若干个抽象方法,这些抽象方法分别返回某个类的实例,该抽象类或接口让其子类或实现该接口的类重写这些抽象方法为用户提供一系列相关的对象。
适合使用抽象工厂模式的情景有:●系统需要为用户提供多个对象,但不希望用户直接使用new运算符实例化这些对象,即希望用户和创建对象的类解耦。
实验5电话语音图像信号

第一部分: 单路模拟图像信号光通信试验
电视收发端旳扫描同步 正程显示图象
逆程图象消隐
摄象机物镜及靶面
监视器电子枪及屏幕
黑白全电视信号
电视为了重现图像,必须传送图像信号, 为了消去行、场扫描旳回扫线,使其不干扰正 常旳图像,必须传送行、场消隐信号,使概念 上“比黑还黑”,给人旳视觉上不会产生对正 常图像旳影响。
单路图像信号旳传播试验环节(2):
3、 将示波器旳同步源选为TV-H,有利于电视行频旳稳定显示。用双踪探头同 步观察光发旳模拟信号输入端口P203和光收旳模拟信号输出端口P200(注意 几种不同类型旳插口若共用同一标号,则它们旳芯线是完全连通旳) ,对比 传播前后波形各方面旳异同并作统计;
4、仔细测量传播之前( P203 处)行同步信号旳周期并计算出行扫描频率。变 化示波器旳时标旋钮,使扫描周期变长,将示波器旳同步源选为TV-V,有利 于电视场频旳稳定显示,再测量场同步信号旳周期并计算出场扫描频率。
在下面旳试验中,将模拟信号换成电视信 号传播。
准备知识: 模拟信号光纤传播过程
正弦 ห้องสมุดไป่ตู้号
模拟信 号源 TX
P203
模拟信号 输入端口
R258,R277
光发送器件
TX
光纤
监视器 RX
模拟信号 输出端口
光接受器件
RX
P200
R257,R242
第一部分: 单路模拟图像信号光通信试验
第二部分: 电话语音信号光通信试验
出TX到光发端旳模拟信号输入端口P203,RX到光收端旳模拟信号输 出端口P200,将电话机接入电话机接口。 2、开启系统电源,摘起话机,对MIC端吹气,在耳机端听是否有吹气声。 第三步:自行设计电话语音信号旳双向传播,想想看经过什么措施能够使 语音信号双向(1310和1550端相互传播)
继承与接口实验

}
public void chinaGongfu() {
System.out.println("坐如钟,站如松,睡如弓");
}
}
class AmericanPeople extends People {
public void speakHello(){
BeijingPeople是ChinaPelple的子类,新增public void beijingOpera()方法。要求ChinaPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。
System.out.println("American Average weight: 80.23 kg");
}
public void americanBoxing() {
System.out.println("直拳钩拳");
}
}
class BeijingPeople extends ChinaPeople {
System.out.println("How do you do");
}
public void averageHeight(){
System.out.println("American Average height: 188.0 cm");
}
public void averageWeight(){
public void speakHello(){
实验五 数据加密与解密实验

实验五数据加密与解密实验(3学时)一、实验目的1、了解OPENSSL开放源程序的应用;2、熟悉用对称加密的方法加密和解密。
3、熟悉利用RSA非对称密钥对文件进行加密与解密的整个过程方法。
二、实验设备及软件环境(一)实验设备服务器、交换机和PC机组成NT网络。
(二)软件环境1.服务器采用Microsoft Windows 2003 Server 操作系统;2.学生客户端采用Windows XP系统、IE6.0以上浏览器。
3.OPENSSL开放源程序三、实验内容与步骤(整个实验共分五个部分)(一)准备工作步骤一下载OPENSSL安装包到C盘根目录下。
(下载地址:/openssl.rar)步骤二在C盘中右击压缩包,使用“解压到openssl\”方式来解压软件包,在C盘根目录下,自动生成OPENSSL文件夹。
步骤三点击“开始”、“程序”、“附件”、“命令提示符”,打开“命令提示符”窗口。
如图8-1。
图8-1 命令提示符步骤四在“C:\Documents and Settingsowner>”键入cd c:\openssl\out32dll,输入后按回车键,进入到openssl\out32dll的目录下,如图8-2所示。
(命令的含义:打开C盘目录下,openssl文件夹下的out32dll文件夹)图8-2 openssl\out32dll的目录(二)对称加密实验步骤步骤一用记事本创建一个文本文件,文件名为学生的学号(如026h321f.txt),内容为学生的名字和学号,保存在c:\openssl\out32dll的文件夹下,如图9-1所示。
图9-1用记事本创建的文本文件步骤二输入命令“openssl enc -des3 -in 026h231f.txt -out out026h231f.des”(注意所有的-符号的前面都有一个空格),输入后按回车键,加密过程中会提示你输入保护密码,按回车键后会再输一次密码进行确认,(注:输入密码时屏幕无任何显示)执行结果如图9-2所示。
实验报告-RIP路由实验五

实验报告RIP路由实验五一、实验小组拓扑(VI)二、实验准备1、路由器网络地址方案设计2、PC机设置方案三、实验内容根据要求,我们按照拓扑结构和路由协议进行了子网划分而且子网掩码的长度一致,设置了9个网段(200.10.10.16,200.10.10.32,200.10.10.48,200.10.10.64,200.20.20.80,20 0.10.10.96,200.10.10.112,200.10.10.128,200.10.10.144),测试网络连通性实验过程如下(这里以路由c、d和主机6-3、6-4的操作为演示):1.为各个网段、路由器的各个接口(e0,e1,e2)设置ip地址(路由器有a,b,c,d,e 共5个),配置rip1协议,并使能各个网段。
2.内网-本机IP设置ip地址和缺省网关(对第二个网卡进行设置)3.查看路由c 路由表4.基本访问控制列表-禁止主机c(IP 200.10.10.67)通过e1 e2端口(即不能访问主机d 200.10.10.30)设置之前,主机c可以ping 通主机d创建禁止200.10.10.67通过控制列表2002,并应用于路由d端口e1 e2创建基本的访问控制列表和设置过程如下设置好之后,主机c 不能ping 通主机d5.基本访问控制列表-禁止网段200.10.10.16/28通过e1 e2端口(即不能访问主机d 200.10.10.30)设置如下设置好之后路由c 端口e1 (200.10.10.18) 不能ping通主机d四、实验总结经过老师的指导和小组成员的研究,rip2协议的网络连通任务基本完成,通过网段,路由器,主机的ip配置,这几台主机和路由器能够相互ping通,之后我们的基本访问控制列表也顺利完成,虽然过程中对inbound和outbound没有理解清楚,outbound代表数据包出方向,即从设备的某接口出去的方向,inbound代表数据包进入方向,即由设备的某接口进来的方向实验结果及心得体会:通过基本访问控制列表的设置,我们知道了通过设置防火墙可以禁止或允许某些IP数据包的通过,关于最后一次ftp的高级访问控制列表,我们查阅了一些文献,但由于时间问题在最后一次实验课没有做成功,但是我们学会了很多。
实验5_基于Winsock原始套接字的IP信包监听、捕获与分析

实验5 基于Winsock原始套接字的IP信包监听捕获与分析1 实验目的与要求➢能运用Winsock提供的API函数接口进行网络程序的编写➢理解原始套接字的工作原理➢在局域网能使用Winsock原始套接字进行相关程序设计➢在局域网中使用原始套接字对IP数据报进行监听、捕获、分析2 实验设备与实验环境➢连接到互联网上的PC机两台。
➢计算机硬件要求:Intel Pentium5、512MB以上内存,Ethernet网卡➢计算机软件要求:MS Win2K/XP操作系统,TCP/IP协议,VC++6.0系统3 实验内容与步骤本实验基于Winsock原始套接字进行IP信包的监听捕获与分析。
通过实验做到:(1)掌握IP数据报的工作原理、监听捕获方法、以及与报头分析相关的字段;(2)理解IP包报头中的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移量、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容;(3)理解IP包中数据字段所含的高层报文报头的相关字段,以进行逐层协议解析。
实验内容:利用Winsock原始套接字,根据IP包的标准格式,编写程序,实现监听、捕获网络上的IP数据包并进行协议解析,将各IP包解析后的头部、所含高层协议报文的头部、以及应用层数据字段写入输出文件,在屏幕上输出,得出你捕获信包后对信包各字段的分析结果。
3.1工程的创建(创建一个控制台程序,须支持MFC)3.2 Winsock的初始化(略)3.3 TCP/IP协议头数据结构的声明3.3.1 在工程中新建一个protoinfo.h头文件在protoinfo.h头文件中根据TCP/IP协议中各协议的格式,说明IP、TCP、UDP、ICMP 协议的头部结构。
各数据类型分别为:➢IP报文头部类型及指针:IPHeader, *PIPHeader;➢TCP报文头部类型及指针:TCPHeader, *PTCPHeader;➢UDP报文头部类型及指针:UDPHeader, *PUDPHeader;➢ICMP报文头部类型及指针:ICMPHeader, *PICMPHeader;3.3.2 在工程的主程序文件中包含protoinfo.h头文件:#include “protoinfo.h”3.4 程序中还须包含mstcpip.h和ws2tcpip.h头文件,以支持SIO_RCVALL宏和IP_HDRINCL宏的定义除winsock2.0相关包含文件及库函数之外,在主程序文件中还要加入mstcpip.h(含SIO_RCVALL的定义)和ws2tcpip.h(含IP_HDRINCL的定义)的包含语句。
实验五声-光报警器接口实验

湖北科技学院计算机科学与技术学院《微机接口技术》实验报告学号: 124221031 姓名:李亮亮实验题目:声-光报警器接口实验报告指导老师:范建军实验日期: 2014.12.19一、实验目的熟悉可编程并行接口芯片8255的使用和学习开关量接口电路及其控制程序的设计方法。
二、实验内容基本实验 按下SW3开关,开始报警,即喇叭发声,同时LED 灯闪光。
按任意键,结束报警,喇叭停止发声,LED 熄灭。
三、实验要求利用MFID 实验平台和声-光报警器模块进行硬件电路连接,利用MFID-6集成开发环境进行声光报警器软件控制程序设计、调试,直到报警器正常工作。
四、实验原理1.声-光报警器模块板电路原理如图2.1.4所示。
模块板上包括4种简单的I/O 外设:扬声器、8个LED 彩灯、8位DIP 开关及按钮开关SW3。
它们都是并行接口的对象,虽然功能单一,结构简单,但都必须通过接口电路才能进入微机系统,接受CPU 的控制,发挥相应的作用。
2.声-光报警器接口的设计原理与方法,参考“微机接口技术及应用”教材第7.2节(P142)。
图2.1.4 声-光报警器模块板电路原理框图26 芯 并 行 口 插 座50 芯 扩 展 总 线五、实验资源配置1.电源:机内供电,将平台的电源开关拔到“内”的位置上,并将模块电源中音乐电源接通2.电缆线:采用单线/26芯扁平电缆3.开关:T区的SW1、SW2和SW3可以配置为用来控制步进电机的运行方向、速度和启动/停止4.本实验所涉及的模块:F(8255模块),M(LED),T(按键开关),L(跳线),Q (音乐发生器)五个模块5.I/O端口地址:8255的4个端口地址为300H~303H。
其中A口=300H,B口=301H,C 口=302H,命令口=303H6.软件资源:MF2KI集成开发环境软件提供了丰富的汇编语言和C/C++语言程序开发工具六、实验的硬件连接与软件编程1.硬件连线:F区P区Q区T区GNDPA0~PA7 L1~L8OE#(74LS245) GND PC6 (控制)音调PC2 SW32.声-光报警器接口控制参考程序①流程图如图2.1.5所示。
实验五 视觉反应时测试

实验五视觉反应时测试一、实验仪器简介BD-II-511型视觉反应时测试仪,本仪器适用于心理教学实验和科学研究。
可进行五大类十七组的反应时实验,包括经典反应时、简单反应时实验,也包括认识心理学的反应时实验。
用于自动测量视觉的选择反应时、辨别反应时、简单反应时,以及检测被试者的判别速度和准确性。
(一)组成1、本仪器由单片机及关控制电路、主试面板、被试面板等部分组成。
2、主试面板设有操作键,八个数码显示管(1位标志、4位反应时、3位次数)。
3、被试面板由7*15点阵三色光点阵显示屏组成。
显示屏翻转折叠。
4、被试左、右回答手键。
5、微型打印机(选配件)接口。
(二)主要技术指标1、实验内容:五大类十七组实验。
通过按键及指示灯选择任一组实验。
1)刺激概率对视觉反应时的影响;2)数奇偶不同排列的刺激特征对反应时的影响;3)数差大小排列的刺激特征对反应时的影响;4)信息量对反应时的影响;5)“刺激对”异同及时间间隔对反应时的影响;2、刺激呈现:7*15红、黄、绿三色光点阵。
3、实验次数:10~255次。
通过按键设定。
4、实时显示每次实验的反应时间,最大反应时9.999秒,最小反应时0.001秒。
5、自动显示每组的平均反应时。
6、自动显示错误次数。
7、配有串行打印机接口,可选购微型打印机,打印输出实验数据。
二、实验内容1、刺激概率对反应时的影响这个实验是用红、黄、绿三种色光分别作为刺激,每次实验选用一种色光刺激,进行简单反应时测定。
实验次数可按实验需要选定。
实验次书设定后,仪器根据设定的组别,自动确定该组实验中“红”、“黄”、“绿”三种色光应出现的次数。
按“红”、“绿”、“绿”三种色光出现次数的不同比例(概率)共分四组实验,即“概率1(组别为1)”、“概率2(组别为2)”、“概率3(组别为3”)、“概率4(组别为4)”。
2、数奇偶不同排列特征对反应时的影响根据数排列特征不同分成三组实验:“横奇偶”:数横向整齐排列---组别1;“竖差大小”:数竖向整齐排列---组别2;“随机大小”:数随机排列---级别3;按主试面板的“数奇偶”键,选择相应组别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.创建自定义包Mypackage
在存放源程序的文件夹中建立一个子文件夹Mypackage。例如,在“E:\java\程序”文件夹之中
创建一个与包同名的子文件夹Mypackage(E:\java\程序\Mypackage),并将编译过的class文件放入该文件夹中。注意:包名与文件夹名大小写要一致。再添加环境变量classpath的路径,例如:
public class KY4_2
{
private String name;
private KY4_1_YMD birth;
public static void main(String args[])
{
KY4_2 a= new KY4_2("张驰",1990,1,11);
a.output();
}
public KY4_2(String n1,KY4_1_YMD d1)
import java.util.*; //引用java.util包
public class KY4_1_YMD {
private int year,month,day;
public static void main(String[] arg3){}
public KY4_1_YMD(int y,int m,int d) {
3.编写使用包Mypackage中KY4_1_YMD类的程序
KY4_2.java程序功能:给定某人姓名与出生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。程序使用了KY4_1_YMD的方法来计算年龄。
编写KY4_2.java程序文件,源代码如下。
import Mypackage.KY4_1_YMD; //引用Mypackage包中的KY4_1_YMD类
4.掌握使用系统接口的技术和创建自定义接口的方法。
5.掌握抽象类的使用
三、实验内容
(一)了解并使用
包是类和接口的集合。利用包可以把常用的类或功能相似的类放在一个包中。Java语言提供系统包,其中包含了大量的类,可以在编写Java程序时直接引用它们。为便于管理和使用它们,将这些类分为了不同的包。包又称类库或API包,所谓API(Application Program Interface)即应用程序接口。API包—方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。所有Java API包都以“java.”开头,以区别用户创建的包。
实验
一、实验目的
掌握Java中包(package)的使用,掌握创建和导入包的用法。理解什么是接口(interface),学会使用接口,结合extends和implements完成多重继承。
二、实验要求
1.了解Java系统包的结构。
2.掌握创建自定义包的方法。
3.使用javac–d命令在当前目录和指定目录生成带有包结构的字节码文件
(三)
定义一个接口:MyInterface
属性:PI=3.1415
方法:getArea()
定义三个类:圆形、正方形、三角型。这三个类需要哪些属性自己考虑。
这三个类要实现接口MyInterface,并且在测试类中要输出这三个对象的面积。
四.思考题
1.请说明接口的作用。
{
name = n1;
birth = d1;
}
public KY4_2(String n1,int y,int m,int d)
{
this(n1,new KY4_1_YMD(y,m,d));//初始化变量与对象
}
public int age() //计算年龄
{
return KY4_1_YMD.thisyear() - birth.year(); //返回当前年与出生年的差即年龄
E:\j2sdk1.4.2_01\lib; E:\java\程序
3.在包中创建类
YMD.java程序功能:在源程序中,首先声明使用的包名Mypackage,然后创建YMD类,该类具有计算今年的年份,可以输出一个带有年月日的字符串的功能。
编写YMD.java文件,源代码如下。
package Mypackage; //声明存放类的包
year = y;
month = (((m>=1) & (m<=12)) ? m : 1);
day = (((d>=1) & (d<=31)) ? d : 1);
}
public KY4_1_YMD() {
this(0,0,0);
}
public static int thisyear() {
return Calendar.getInstance().get(Calendar.YEAR);//返回当年的年份
接口解决了Java不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。
处理程序运行时的错误和设计程序同样重要,只有能够完善处理运行时出错的程序,软件系统才能长期稳定地运行,异常处理就是说明如何处理程序运行时出错的问题。
(二)创建并使用自定义包
1.自定义包的声明方式ຫໍສະໝຸດ <package> <自定义包名>
}
public void output()
{
System.out.println("姓名: "+name);
System.out.println("出生日期: "+birth.toString());
System.out.println("今年年龄: "+age());
}
}
编译并运行程序,结果如图4.3所示。
}
public int year() {
return year;//返回年份
}
public String toString(){
return year+"-"+month+"-"+day;//返回转化为字符串的年-月-日
}
}
编译KY4_1_YMD.java文件,然后将KY4_1_YMD.class文件存放到Mypackage文件夹中。