开放性实验实验报告

合集下载

开放性实验指导书及报告形式

开放性实验指导书及报告形式

实验一人工天穹采光实验一、实验目的通过对带不同形式天窗的房间进行采光测试并对比分析,以求得到更合理的开窗形式;同时利用数码技术,以便更直观观察模型内部采光效果。

二、实验仪器JT-1型人工天穹(北京世纪建通科技发展有限公司制造),该设备采用环氧聚酯(玻璃钢)做罩面,钢材做底座,结构简单,有不易变形,耐老化,尤其是拆移搬迁不破坏结构等特点。

造价也较低。

其缺点是不能将内径做得更大,灯具全安装在底部,需要更大功率,调试亮度分布较困难,而且由于光源在内部,处理不好易对穹内光环境造成直接干扰。

照度计二台,房间模型(尺度约为人工天穹半径的1/5)三、实验原理该实验理论根据是立体角投影定律E=∫LαdΩcosθ室内工作面上一点P的照度E,是由透过窗口“看到”的天空表面与观测点P所形成立体角在被照面上的投影与发光天空亮度的乘积所决定。

四、实验内容利用人工天穹和建筑采光的模型,测试分析和预测其天然采光设计的效果。

五、实验步骤(1)打开电源,点亮天穹半球照明用的反射灯,检查每盏反射灯的点亮情况,使其达到稳定状态后开始进行测试。

(白炽灯5秒,荧光灯15秒以上)(2)对天穹亮度分布进行调试,使其符合CIE全阴天(自然天空有晴天、半云天、全阴天等不同情况,其中半云天及晴天亮度分布是非均匀的,情况较复杂,在采光设计中,我们通常考虑一个特殊情况作为研究对象,即天空全部为云所遮盖的天气,国际采光协会命名这样的天空为全阴天空。

这时无直射日光,只有天空扩散光。

在该标准天空中,CIE规定天顶亮度与不同仰角处亮度有一个关于仰角正弦值的函数关系)特征。

亮度计安装在带刻度盘的三角架上,放置在和工作台等高的中心位置;按15度的仰角,依次从零开始,逐点测试天穹内部的各点亮度;通过调试灯具的功率,使其达到CIE全阴天的亮度分布要求,一次调好后不用重复调试。

然后将照度计探头放置在平台上,测试照度值,记录;将室外照度计放在模型顶上,以测定天空照度。

室外照度计依次放在模型内各测点上测量读值。

开放性实验报告模板

开放性实验报告模板

机械工程实验教学中心开放性实验报告实验项目:学生姓名学号专业班级指导教师完成时间目录1 实验说明 (2)1.1 实验目的 (2)1.1.1 [单击此处添加三级标题] (2)1.1.2 [单击此处添加三级标题] (2)1.1.3 [单击此处添加三级标题] (2)1.2 实验要求 (2)1.2.1 [单击此处添加三级标题] (2)1.2.2 [单击此处添加三级标题] (2)1.3 实验设备 (2)1.3.1 实验场所 (2)1.3.2 实验仪器 (2)2 [单击此处添加一级标题] (3)2.1 [单击此处添加二级标题] (3)2.1.1 [单击此处添加三级标题] (3)2.1.2 [单击此处添加三级标题] (3)2.2 [单击此处添加二级标题] (3)2.2.1 [单击此处添加三级标题] (3)2.2.2 [单击此处添加三级标题] (3)2.3 [单击此处添加二级标题] (3)2.3.1 [单击此处添加三级标题] (3)2.3.2 [单击此处添加三级标题] (3)2.4 [单击此处添加二级标题] (3)2.4.1 [单击此处添加三级标题] (3)2.4.2 [单击此处添加三级标题] (3)3 总结 (4)以下是说明文字,正式成文后请删除。

请勿在目录页“[单击此处添加×级标题]”处输入内容,作者只需在正文中相应标题处添加内容,回到目录处点鼠标右键,选择“更新域”→“更新整个目录”,就可将标题内容添加到目录项。

(图目录和表目录采用相同的操作方法)1 实验说明1.1 实验目的1.1.1 [单击此处添加三级标题][单击此处添加论文正文]1.1.2[单击此处添加三级标题][单击此处添加论文正文]1.1.3[单击此处添加三级标题][单击此处添加论文正文]1.2 实验要求1.2.1 [单击此处添加三级标题][单击此处添加论文正文]1.2.2 [单击此处添加三级标题][单击此处添加论文正文]1.3 实验设备1.3.1 实验场所[单击此处添加论文正文]1.3.2 实验仪器[单击此处添加论文正文]2 [单击此处添加一级标题]2.1 [单击此处添加二级标题]2.1.1 [单击此处添加三级标题][单击此处添加论文正文]2.1.2 [单击此处添加三级标题][单击此处添加论文正文]2.2 [单击此处添加二级标题]2.2.1 [单击此处添加三级标题][单击此处添加论文正文]2.2.2 [单击此处添加三级标题][单击此处添加论文正文]2.3 [单击此处添加二级标题]2.3.1 [单击此处添加三级标题][单击此处添加论文正文]2.3.2 [单击此处添加三级标题][单击此处添加论文正文]2.4 [单击此处添加二级标题]2.4.1 [单击此处添加三级标题][单击此处添加论文正文]2.4.2 [单击此处添加三级标题][单击此处添加论文正文]3 总结[单击此处添加论文正文]。

开放性实验实验报告

开放性实验实验报告

中国海洋大学开放实验结题报告项目中文名称:自动投食设备的自主制作设计中使用到的器件:PIC单片机(18F452)、液晶屏、电机、固定辅助器件等指导老师:张凯临小组成员:陈志勇、刘凯悦项目实现构思背景分析: 1.配合SRDP需要、节省经费2.锻炼动手实践能力3.提高单片机编程能力应用市场分析:适用于一些养鱼爱好者,需要出门旅游,以及一些爱养鱼但又很忙的人特色描述:鱼食防潮、定期投食、LCD时钟显示、项目实现方案总体设计方案:前期:系统学习PIC板的编程、软件的使用等,完成定时器程序准备好投食装备的材料中期:着手准备投食设备的制作后期:总结改进实际应用项目实现过程:一准备硬件硬件部分包括:电路板、液晶屏、电机、储食槽1、焊接电路板的焊接图一为原始电路板焊接完成图样2、设计所需器件(齿轮、导槽、固定板)绘图软件Solid Works画好3D图,导出到刀具切割软件,机床切割加工出所需器件;图二为装配体设计图稿图三为机床加工过程图四为设计成型的小齿轮二软件的实现(编程操作)1、LED灯定时亮灭定时实现:思路1一个按键控制模式,调节喂食间隔、喂食时间;一个按键控制模式,调节喂食间隔、喂食时间;另一个按钮控制需要调节的量的加减。

优点:用户可以完全实现自定义控制缺点:给编程带来了极大的困难,如何区分,加减后如何通过将设定的时间通过定时器控制实现定时控制现实状况:投食系统不需要给用户太多选择,给用户提到三四种模式选择即可思路2:用两个数组预置好需要投食间隔及投食时间一个按钮控制数组下标的加减来提取数组预先设置好的值另一个按钮确定,并将数组的值设定定时器定时的时间。

缺点:需预先设置好数组,只能通过更改程序数组才能改变预留模式,不能给用户带来足够的自由优点:大大简化了编程,能满足大多数用户的需求所以采用思路22.液晶屏以及按钮实现可视化图二为所设液晶屏最初开启界面图三为液晶屏设置界面3.定量:电机时间转动一定时间电机转动一圈由于重力作用下落的鱼食数目大致相同,60r/min,控制转的时间即可图四为小电机模块三自动投食设备模型制作及测试最后,我们对单片机、液晶屏、小电机等模块进行拼接操作,先将所编程序烧录到单片机中,电源为单片机供电,成功地实现了通过设置、确定按钮对投食设备的定时投食进行了控制。

开放性实验报告

开放性实验报告

开放性实验报告实验名称:机构创新组合与设计开放性实验院系:机械与材料工程学院专业:机械与材料工程学院班级学号:学生姓名:指导老师:起止时间:2014.12.2-2014.12.192014年12 月16日机构组合创新设一、实验目的与要求1.目的1)加深学生对机构组成理论的认识,熟悉杆组概念,为机构创新设计奠定良好的基础。

2)利用若干不同的杆组,拼接各种不同的平面机构,以培养学生机构运动创新设计意识及综合设计的能力。

3)训练学生的工程实践动手能力。

2.要求1)根据所拆杆组,按不同顺序排列杆组,分析可能组合的机构运动方案有哪些,并能用运动简图表示出来。

2)通过实验,了解位移、速度、加速度的测定方法;转速及回转不匀率的测定方法3)通过比较理论运动曲线与实测运动曲线的差异,并分析起原因,增加对运动速度特别是加速度的感性认识。

二、实验仪器与设备一组机构系统创新组合模型(包括4个架)基本配置所含组件如下:1.接头接头分单接头和组合接头两种:单接头有5种形式,组合接头有4种形式。

(1)单接头J1螺纹分左旋和右旋两种。

方头的侧面上,为12×12方通孔。

(2)单接头J2螺纹分左旋和右旋两种。

方头的侧面上,为φ12圆通孔。

(3)单接头J3螺纹全部为右旋,方头的侧面上为12×12方通孔,且螺杆端有一段φ12的过渡杆,根据长度的不同分为6种,即:从短至长适应一到六层的分层需要,便于不同层次联接选择。

(4)单接头J4为L形状,两垂直面上,一面为方通孔,另一面为圆通孔。

(5)单接头J5有一方孔,其两垂直右旋螺杆上有一端带有φ12圆柱,根据圆柱长度不同分为6种,即:从短至长适应一到六层的分层需要,便于不同层次联接选择。

(6)组合接头J1/J7有两种,J1与J7之间可相对旋转。

两种组合接头组合形状一样,但其中一种为一右旋和一左旋螺纹,另一种为两左旋螺纹。

(7)组合接头J6/J4,J6与J4之间可相对旋转。

开放型实验项目实验报告(3篇)

开放型实验项目实验报告(3篇)

第1篇一、实验目的1. 了解光合作用的基本原理和过程。

2. 探究光照强度、二氧化碳浓度、温度等因素对植物光合作用的影响。

3. 培养学生独立思考、动手操作和实验分析的能力。

二、实验原理光合作用是植物在光照条件下,利用光能将二氧化碳和水转化为有机物和氧气的过程。

光合作用主要受光照强度、二氧化碳浓度、温度等因素的影响。

三、实验材料1. 实验植物:小麦、大豆、水稻等。

2. 实验装置:光照培养箱、气体分析仪、温度计、秒表等。

3. 实验试剂:二氧化碳、蒸馏水、无水乙醇、NaOH溶液等。

四、实验步骤1. 准备实验材料:选取生长状况良好、大小一致的小麦、大豆、水稻等植物作为实验材料。

2. 设置实验装置:将植物放置在光照培养箱中,调节光照强度、二氧化碳浓度和温度。

3. 实验分组:(1)对照组:设置正常光照、正常二氧化碳浓度和正常温度。

(2)实验组1:降低光照强度,保持正常二氧化碳浓度和正常温度。

(3)实验组2:保持正常光照强度,增加二氧化碳浓度,保持正常温度。

(4)实验组3:保持正常光照强度和二氧化碳浓度,降低温度。

4. 进行实验:观察并记录不同条件下植物的生长状况和光合作用产物。

5. 数据分析:对实验数据进行整理、分析和比较。

五、实验结果与分析1. 光照强度对植物光合作用的影响实验结果显示,降低光照强度后,植物的生长速度明显减缓,光合作用产物减少。

说明光照强度对植物光合作用有显著影响,在一定范围内,光照强度越高,光合作用越强。

2. 二氧化碳浓度对植物光合作用的影响实验结果显示,增加二氧化碳浓度后,植物的生长速度明显加快,光合作用产物增加。

说明二氧化碳浓度对植物光合作用有显著影响,在一定范围内,二氧化碳浓度越高,光合作用越强。

3. 温度对植物光合作用的影响实验结果显示,降低温度后,植物的生长速度明显减缓,光合作用产物减少。

说明温度对植物光合作用有显著影响,在一定范围内,温度越高,光合作用越强。

六、实验结论1. 光照强度、二氧化碳浓度和温度是影响植物光合作用的三个主要因素。

大学生实验室开放项目实验报告

大学生实验室开放项目实验报告

XXX学院(学校)大学生实验室开放项目实验报告项目名称: BIM技术在PC项目中的能耗研究学生姓名:学院班级:指导教师:实验时间:XX二○一三年四月三十日《BIM技术在PC项目中的能耗研究》课题研究实验报告《BIM技术在PC项目中的能耗研究》课题研究是山东协和学院实验室立项审核批准,由XX老师组织开展的实践应用型科研课题,由10名同学共同参与研究学习,经过研究与实践,现已取得部分的成效,现将研究情况报告如下:一、课题研究的背景目前建筑高能耗发展,新型PC项目快速发展,在信息化与工业化发展的建筑行业中,需要绿色低碳建筑的支撑。

BIM是建筑信息管理的集成平台,BIM的加入,使建筑行业高效率,低污染的施工,协同工作控制施工的质量、进度、造价及安全。

本实验通过软件建模,模拟施工,对比分析传统施工与PC施工的进度、造价与能耗分析。

1.在我国,建筑业发展快,巨大的建设量同时也给施工企业带来了大量因沟通和实施环节信息流失而造成的损失,BIM信息整合重新定义了设计流程,很大程度上能够改善这一状况。

2.建筑业需要可持续发展,PC建筑由此孕育而生,PC建筑具有安全性好、质量高、建造速度快、环境污染少的优点,BIM的加入能够进行建筑生命周期管理以及节能分析。

3.国家资源规划管理信息化的需求。

在BIM技术成为建筑业大势所趋的今天,目前国内绝大部分设计院建筑设计采用的仍是全2D工程制图,为此,我们应加大BIM在建筑上的应用,实现建筑的信息化分析。

二、实验条件与方法(1)实验材料:01-施工图PC图纸(2)实验仪器设备:实验室机房及自备电脑(3)实验方案:①XX老师对研究方向进行确定,指导学生对项目学习过程中的困惑。

②课题组主要成员积极完成课题组安排的各项工作。

XX、XX等同学进行Revit软件学习,分别建立PC构件与正常构件,后期导入Ecotect进行能耗分析对比。

XX、XX等同学进行GGJ、GCL建模。

XX、XX等同学进行GBQ软件的学习,并对PC构件与正常构件分别组价,得出造价比对。

开放性实验实验报告

开放性实验实验报告

开放性实验报告学院:经济管理学院班级:110931学号:11093117姓名:张超实验一:线缆的制作方法一、实验目的:如何制作网线二、实验设备:网线钳,双绞线,RJ-45水晶头,测线仪三、实验原理:1、双绞线布线标准:T568A芯线序列:略T568B芯线序列:橙白,橙,绿白,蓝,蓝白,绿,棕白,棕RJ45水晶头:单片向下2、双绞线类型:直通线(用于不同设备之间,常用),交叉线(不同设备,不常用)四、实验步骤:1、剪线:实际长度稍长(长则凌乱,短则不足)2、剥线:半圆形剥线刀口要点:轻握,慢旋,拔下胶皮。

长度:1.5-2.5cm3、排序:将线拆开,理顺捋直,然后按规矩排列(T568B的顺序)4、剪齐:将线捋直,压平,挤紧理顺,然后剪齐,留1-1.5cm(左手捏紧千万不能放开)。

5、插入:用左手捏水晶头的8根芯线,右手捏水晶头有弹片的一对准水晶头开口,插入,再往里使劲推,使每一根芯线接触到水晶头底部。

6、压制:使水晶头从无牙一侧插入压线口,用力挤紧。

7、测线:把水晶头插入侧线头,打开开关(1~8灯同时依次亮)。

实验二:小型局域网组网:一、实验目的:小型局域网的组建,安装,调式与维护。

二、实验任务:组建一个八人的小型局域网。

三、组网方案:1、局域网规划:需求分析:实验网络资源共享。

2、局域网设计:(1)网络设备选择:服务器1台、工作站7台、网卡9个、网线9根、交换机1台(2)网络拓扑结构:星形软件选择:XPTCP/IP协议四、硬件安装与配置1、网线制作(实验一)2、网卡3、工作站4、交换机五、软件安装与配置1、网卡驱动安装:系统自动安装、手动安装、软件安装2、网络协议安装:(TCP/IP协议)3、TCP/IP协议属性配置:服务器:内网:IP:192.168.0.1子网掩码:255.255.255.0默认网关:...DNS:10.1.89.99工作站:外网:自动获取客户端:IP:子网掩码:255.255.255.0网关:192.168.0.1DNS:4、网络配置检测(cmd):ipcondfig:命令:查看当前PC的TCP/IP协议ping命令:查看网络连通性(ping+空格+IP地址)tracert:检查到达目标的路径并记录结果(tracert+空格+域名)三、实验结果:经过四节课的学习,我学会的网线线头的制作过程和使用方法,也知道了局域网的创建的使用,知道了局域网功能的强大。

开放性实验报告

开放性实验报告

开放性实验报告开放性实验报告引言实验是科学研究中重要的一环,通过实验可以验证假设、探索未知、解决问题。

本实验旨在探索某种现象的成因,并通过开放性实验的方式进行观察和分析,以期得出结论并进一步推广应用。

实验目的本实验的目的是研究某种现象的成因,并通过开放性实验的方式进行观察和分析,以确定影响该现象的因素,并提出解决方案。

实验方法1. 实验准备:准备实验所需的材料和设备,并确保实验环境符合要求。

2. 实验步骤:按照预定的步骤进行实验,记录实验过程中的观察和数据。

3. 数据分析:对实验数据进行分析,寻找规律和关联。

4. 结果验证:通过对实验结果的验证,确定所得结论的可靠性。

实验结果在进行实验的过程中,我们观察到了某种现象的发生,并记录下了相应的数据。

通过对这些数据的分析,我们发现了一些规律和关联。

进一步的实验验证表明,我们的结论是可靠的。

讨论与分析在讨论与分析部分,我们将对实验结果进行进一步的讨论和分析,探讨可能的原因和解释。

同时,我们还将与已有的研究成果进行比较,以验证我们的结论的准确性和可靠性。

结论通过本次实验,我们得出了某种现象的成因,并提出了相应的解决方案。

这一结论对于进一步研究和应用具有重要意义,并为相关领域的发展提供了一定的参考。

实验的局限性和改进方向在实验中,我们也发现了一些局限性,这些局限性可能会对实验结果的准确性和可靠性产生一定的影响。

为了进一步提高实验的可靠性,我们可以采取一些改进措施,例如增加样本数量、优化实验设计等。

结语通过本次开放性实验,我们不仅得到了有关某种现象的重要信息,还深入了解了实验的重要性和科学研究的方法。

希望本次实验的结果能够对相关领域的发展和应用产生积极的影响,并为未来的研究提供更多的思路和方向。

参考文献[1] 作者1,标题1,期刊名1,年份1。

[2] 作者2,标题2,期刊名2,年份2。

[3] 作者3,标题3,期刊名3,年份3。

开放性实验总结

开放性实验总结

九年级化学开放性实验总结新课程理念倡导开放教学,而开放教学的核心是问题的开放性。

就初中化学教学而言,开放性问题,从内容上看具有新颖性,从形式上看具有生动性,从解决的路径看具有发散性,从问题的功能看具有创造性。

开放性问题的解决,往往需要学生积极的探索才能完成,这对于吸引学生主体的积极参与,开发学生的潜能,提高科学素质是十分有益的。

在初中化学教学中,积极开展开放性问题教学,对于提高学生的化学探究能力,创新思维能力都有极其重要的作用。

下面就本人的教学实践,谈谈在初中化学的实际教学中进行开放性问题教学应抓住的几个关键环节。

一、从教学实际出发,注意问题引入的适时性要认识到开放性问题并不能简单地代替常规性的知识训练和基本实验技能训练,恰恰相反,扎扎实实地搞好这些训练是解决开放性问题的基础。

开放性问题不仅要追求问题本身的新颖性和生动性,以便更好地激发学生的兴趣,而且要注意问题引入的适时性。

开放性问题的引入要从教学实际出发,把握好最佳时机。

一是在学习内容含有开放性的因素时,适时创设开放性问题。

若教学内容本身就隐含着开放的因素,就要充分挖掘学习材料中的这些因素,在问题情境的创设或开展合作讨论活动中适时引入开放性问题。

如学习“摩擦力”的内容时,教师在适当的时候可抛出如下开放性的问题:用哪些方法可证明氢氧化钠的溶液与稀盐酸已经发生反应?描述有关现象,写出有关化学方程式。

二是学生有了相应的知识积累欲求进一步拓展和深化时,引入开放性问题。

随着学生完成基础知识的学习,知识丰富了,思路拓宽了,思维能力提高了,学习方法也多了,学生就有一种自觉地要求拓展和深化知识的欲望,这时教师不妨引入相应的开放性问题,让学生自己去探讨。

二、以学生发展为本,关注问题解决的过程性新课程理念的核心是以学生发展为本,一切教学行为和教学手段的设计都要围绕学生的发展这个中心。

教学中不仅要关注结果,更要关注过程,开放性问题的解决更要强调过程性。

这里的过程性有两个层次:从参与的面上来讲,教师要关注全体学生的参与,避免使课堂活动成为少数人表演的舞台。

大学开放性试验报告

大学开放性试验报告

开放性试验大纲一试验题目:水泥混凝土系列配合比设计二试验的目的和意义三指导教师四试验参加人员及时间五实验内容1 实验依据2 实验步骤3 实验数据分析4 实验结论六实验错误分析与处理七试验体会及建议水泥混凝土系列配合比设计试验开放性试验大纲一实验目的通过对实际工程渝湘高速连接道秀山二标段大桥工程不同部位、不同强度等级要求的混凝土配合比设计,掌握配合比的设计步骤,熟悉原材料的性能,了解不同强度等级混凝土的物理,力学性能等。

二指导老师: 刘大超黄维蓉李力三实验参加人员及时间:人员:雷杰刘涛常炜董自前唐文虎邢海娟曹青霞胡一周肖存伟何文星李菁若刘祥代红伟刘鑫时间:2009年9月至2010年2月四实验仪器试模电子称振动机铁锹压力试验机量筒烘箱砂石标准筛五实验内容1 实验依据(1) GB 175—2007 《通用硅酸盐水泥标准》(2) GB∕T 1346—2000 《水泥标准稠度用水量、凝结时间、安定性检验方法》(3) GB/T 17681—1999 《水泥胶砂强度检测方法》(4) JTG E42—2005 《公路工程集料实验规程》(5) JGJ 55—2000 《普通混凝土配合比设计规程》2 原料分析(1)水泥:P.O42.5 , P.O32.5其物理化学指标如下表1:表1 水泥物理化学指标(2)水:自来水,所含物质对混凝土、钢筋混凝土和预应力混凝土不应产生以下有害作用:①影响混凝土的和易性及凝结;②有损于混凝土强度发展;③降低混凝土的耐久性,加快钢筋腐蚀及导致预应力钢筋脆断;④污染混凝土表面。

且水的pH值、不溶物、可溶物、氯化物、硫酸盐、硫化物的含量应符合表2的规定。

表2 自来水指标(3)砂:机制砂和细砂砂的筛分实验结果及合成如表3表3 砂的合成级配合成级配曲线图如图1:图1 砂的合成级配曲线细砂的表观密度为2.65g/cm3,含泥量为2.5%。

机制砂表观密度为2.63g/cm3,含泥量为2.1%,压碎值为12.5%。

摄影技术与图片处理开放性实验报告

摄影技术与图片处理开放性实验报告

《摄影及图像特效处理技术的应用研究》实验报告所在学院:专业班级:学生学号:学生姓名:指导教师:实验题目:摄影及图像特效处理技术的应用研究一、实验目的(1)了解单反相机的知识及各项摄影技术;(2)了解图像的特效处理技术并完成对摄影图片的后期处理。

二、实验场地:浙江科技学院三、实验设备:佳能单反相机、电脑photoshop软件四、实验内容及结果展示1.了解单反相机的知识及各项摄影技术单镜头反光照相机,(Single Lens Reflex Camera,缩写为SLR camera)又称作单反相机。

它是用一只镜头并通过此镜头反光取景的相机。

所谓“单镜头”是指摄影曝光光路和取景光路共用一个镜头,不像旁轴相机或者双反相机那样取景光路有独立镜头。

“反光”是指相机内一块平面反光镜将两个光路分开:取景时反光镜落下,将镜头的光线反射到五棱镜,再到取景窗;拍摄时反光镜快速抬起,光线可以照射到感光元件CMOS上。

ISO与图片质量:ISO是国际标准组织的缩写,International Standards Organization。

胶卷有ISO100,200和400的几种,这就是感光速度不同的胶卷。

ISO感光度是CCD(或胶卷)对光线的敏感程度。

如果用ISO100的胶卷,相机2秒可以正确曝光的话,同样光线条件下用ISO200的胶卷只需要1秒即可,用ISO400则只要0.5秒。

在数码时代,数码相机的主菜单里都有ISO选择,100,200,400或者800,这和胶卷上的一样。

看机型不同,低的到ISO50,最高有到25600的,数字越大越敏感(感光度越高)。

高ISO虽然速度快但图像颗粒粗,经不起精细放大出图。

所以风光摄影要用相机的最低感光度才可得到精细的画面。

高ISO一般在万不得已的时候才用。

快门:快门就是相机里控制曝光时间的装置。

有机械快门,电子快门,以及电子机械联合快门等很多种类。

光圈:光圈就是镜头里调节进光孔大小的装置。

电涡流传感器开放性实验报告

电涡流传感器开放性实验报告

电涡流传感器开放性实验报告一、实验目的1.了解电涡流传感器的工作原理和特点;2.学习使用电涡流传感器测量目标物体的距离和速度。

二、实验器材1.电涡流传感器;2.显示器;3.示波器;4.电源;5.拉杆;6.计算机。

三、实验步骤1.连接电源,确保电源电压符合传感器要求;2.将电涡流传感器与示波器和计算机连接;3.在计算机上打开控制软件,并选择合适的测量模式;4.将目标物体放置在传感器的作用范围内,观察示波器中的信号变化,记录数据;5.更改目标物体的位置或速度,重复第4步,获得更多数据;6.停止测量,关闭软件和仪器。

四、实验结果与分析在实验中,我们选择了一块金属板作为目标物体,将其放置在传感器的作用范围内,并调整了不同的距离和速度来观察电涡流传感器的反应。

首先,我们调整了目标物体的距离,记录了不同距离下的传感器输出信号强度。

结果显示,随着距离的增加,传感器输出信号强度逐渐减小。

这是因为电涡流传感器基于感应原理工作,目标物体距离传感器越远,感应到的电流强度越弱。

接下来,我们固定了目标物体的距离,并调整了目标物体的速度,记录了不同速度下的传感器输出信号强度。

结果显示,随着速度的增加,传感器输出信号强度逐渐增加。

这是因为电涡流传感器对快速运动的物体更加敏感,感应到的电流强度更大。

综上所述,电涡流传感器可以通过感应目标物体造成的电涡流变化来测量物体的距离和速度。

在测距实验中,我们可以利用传感器输出信号强度的变化来推断目标物体离传感器的距离。

在测速实验中,我们可以通过记录传感器输出信号强度的变化来分析物体的运动状态和速度。

五、实验总结通过本次实验,我们了解了电涡流传感器的工作原理和特点,并学会了使用电涡流传感器测量物体的距离和速度。

实验结果显示,电涡流传感器能够稳定地感应和测量目标物体的电涡流变化,可以在工业自动化、航空航天等领域中发挥重要作用。

然而,在实际应用中,我们仍需注意一些问题。

首先,由于电涡流传感器对目标物体的距离和速度敏感,需要选择合适的测量范围和工作条件。

开放性实验报告

开放性实验报告

课题名称:抗痉挛药物5,5-二苯乙内酰脲的合成参与人:朱琳领、袁淋、曾祥飞、袁志光、周泉泉指导老师:熊飞一、实验介绍:5,5-二苯基乙内酰脲即苯妥英是一种抗癫痫药。

英文名Phenytoin。

中文别名大伦丁、地伦丁、二苯妥英、二苯乙内酰脲、或奇非宁。

适用于治疗全身性强直阵挛性发作、复杂部分性发作(精神运动性发作、颞叶癫痫)、单纯部分性发作(局限性发作)和癫痫持续状态。

也可用于治疗三叉神经痛。

在医药方面有着很大的应用。

本实验由苯甲醛反应制备得到5,5-二苯基乙内酰脲,原料简单易得,合成路线共分三步:第一步:安息香缩合反应。

本反应拟采用VB1作为催化剂替代传统的氰化物,降低试剂的毒性、同时我们还使用了微波法合成安息香。

第二步:安息香的氧化反应,文献报道氧化可用多种方法进行,我们采用了三种方法进行,并做了相互比较。

第三步:5,5-二苯乙内酰尿的的制备,这个反应由安息香的氧化产物与尿素合环制备,条件简单。

二、实验具体流程:实验流程1辅酶法合成安息香芳香醛在辅酶的作用下,分子间发生缩合生成二芳基乙醇酮(安息香),称为安息香缩合反应。

安息香缩合在化学工业和药物合成等方面有广泛的应用, 如抗癫痫药物二苯基乙内酰脲以及二苯基乙二酮、二苯基乙二酮肟、乙酸安息香等制备都用到此反应。

本实验作为本课题---抗癫痫药物二苯基乙二苯基乙内酰脲合成的第一步,起着举足轻重的作用。

安息香缩合反应已有相当长的历史,,经典的安息香合成以氰化钠或氰化钾为催化剂,虽然产率较高,但合成产物的毒性很大,易造成环境污染,损害人体健康。

近年来,有关安息香缩合反应及应用研究的新技术、新方法、新催化剂等报道较多,这些研究对提高安息香缩合产率、扩大其应用范围具有重要的理论和实际意义。

本实验主要采用的是维生素B1催化法来合成。

由于VB1催化反应产率低且不稳定,重复性差,在实际合成中几经挫折,并对实验的不断改进最终合成产物。

我们经过多次试验探讨, 在实验中采用维生素B1作为反应催化剂, 通过控制反应体系的pH 和反应温度,,并且改变产物的先后加入顺序。

开放性实验报告

开放性实验报告

嘉兴学院开放性实验报告实验名称:微胶囊香精的制备专业班级:高材 N 1 0 1 学生姓名:来振阳学号: 201045849334 指导老师:连媛一、实验目的1、了解与掌握原位聚合法制备茉莉香微胶囊。

2、了解与掌握包结络合法制备茉莉香微胶囊。

3、熟悉掌握电镜扫描法、红外光谱法。

二、实验方法方法一:原位聚合法制备方法二:包结络合法三、实验原理原位聚合法制备:采用原位聚合法制备香精微胶囊。

原位聚合法和界面聚合法密切相关,原位聚合法既适合制备水溶性芯材的微胶囊,也适合制备油溶性芯材的微胶囊。

在反应过程中,向分散介质中加入反应单体及其可溶性预聚物,将芯材作为分散相。

在反应开始时,在一定条件下预聚物逐渐聚合,且在芯材的表面生成聚合物薄膜,随着预聚体聚合的尺寸变大,薄膜就沉积在芯材表面。

随着交联聚合和聚合不断进行,芯材的外壳就形成了。

微胶囊化的过程是最后的缩聚反应,在搅拌条件下,向乳化好的微乳液体系中慢慢滴加MF 预聚体,将反应体系的pH值调到5-6之间,此时发生的反应为缩聚反应,因而生成大量的次甲基,预聚物逐渐形成大分子,在芯材的外表面逐渐组沉淀下来,经缩合反应后形成交联网状的高聚物。

此阶段的缩合产物中还存在一些醚键和没有进一步进行缩合聚合的羟甲基。

缩聚反应在35 o C恒温水浴、200r/min的搅拌速率条件下开始的,并向微乳液体系中慢慢滴加MF预聚物,调节体系pH值,并加入聚乙烯醇(PV A)水溶液,可以起到助乳化作用。

由于PV A是中等链长的醇类,醇类分子链分布在油相和界面中,可以使界面张力降低,并能提升界面柔性,这样的微乳液体系比较稳定。

在高速搅拌剪切作用力下,形成微乳液体系,在搅拌速率迅速变小时,微乳液体系的状态不稳定,因此通过适当加入助乳化剂,使微乳液体系保持稳定状态。

缩聚阶段是在酸性环境下反应的,第一个阶段的pH值在5-6之间,在该阶段,由于体系处于弱酸条件,反应较慢,芯材和壁材充分均匀混合。

西安建筑科技大学开放性实验报告模板(1)

西安建筑科技大学开放性实验报告模板(1)

开放性实验报告题目:测量三棱镜材料的折射率院(系):信息与控制工程学院实验室(中心):物理实验教学示范中心专业班级:学生姓名:学号:同组学生姓名:指导教师:实验日期:题目: 测量三棱镜材料的折射率一、 实验目的:1.了解分光计的基本结构,初步掌握其调节和使用方法。

2.掌握分光计测量角度 的方法。

3.掌握测量玻璃折射率的方法。

二、实验原材料、仪器设备:三棱镜、分光计三、实验原理 1.测量三棱镜的顶角(1)三棱镜的调整。

将三棱镜放在已调整好的分光计载物台上,使三棱镜的三个顶角分别对准载物台下的三个螺丝。

转动载物台,使棱镜的通光面AB 面对准望远镜(图1中T 1位置),用自准直法,调节C 角对应的载物台下的一个螺丝(此时绝对不能再调节望远镜光轴高低调节螺丝)。

使从AB 面反射回来的绿十字像和分划板的交点P 重合。

此时,AB 面垂直于望远镜的光轴。

然后转动载物台使AC 面对准望远镜(图1中T 2位置),调节B 角对应的载物台下的一个螺丝,方法同上,使AC 面垂直于望远镜的光轴。

如此反复数次,使AB 和AC 面同时垂直于望远镜的光轴,即这两个面的法线和分光计的主轴垂直。

(2)用自准直法测量三棱镜的顶角(单次测量)。

将游标盘固定,转动望远镜分别与AB 、AC 面垂直(位置T 1,T 2)。

记录下望远镜在这两位置时左、右游标所示的角度位置θ1、θ´1和θ2、θ´2,则望远镜转过的角度(即为T 1,T 2间的夹角)为 从图中可得三棱镜的顶角为2''|12|-|+|-=12θθθθϕ2|-|+|-|-180︒=-180︒=1212''θθθθϕα2.测量最小偏向角θmin (单次测量):三棱镜如图2所示放置,用钠光灯照亮平行光管的狭缝,光线经三棱镜折射而偏转,用望远镜观察此出射光线,一般这是的偏向角不是最小偏向角。

沿一个方向慢慢转动载物台,同时转动望远镜使狭缝的像总保持在视场中,可观察到出射光线向入射光线方向靠拢(即偏向角在减小)。

开放实验报告

开放实验报告

开放实验报告开放实验报告引言:开放实验是一种以开放的态度和方法进行的实验研究,其目的是通过共享数据、方法和结果,促进科学研究的透明度和可重复性。

本文将探讨开放实验的概念、优势以及在不同领域中的应用。

一、开放实验的概念开放实验是指将实验过程、数据和结果公开分享给科学界和公众的实验方法。

传统实验往往只公开最终结果,而开放实验则强调透明度和可重复性。

开放实验的基本原则包括公开实验设计、数据和分析方法,以及共享实验结果和代码等。

二、开放实验的优势1. 促进科学合作:开放实验鼓励科学家之间的合作和交流。

通过共享数据和方法,科学家可以相互借鉴和验证,从而提高研究的质量和可信度。

2. 增强实验可重复性:通过公开实验过程和数据,其他研究者可以重复实验并验证结果的准确性。

这有助于排除实验误差和偏差,提高实验结果的可靠性。

3. 提高科学研究的效率:开放实验可以避免重复实验和浪费资源。

研究者可以利用已有的开放数据和方法进行新的研究,从而节省时间和成本。

4. 增加科学研究的透明度:开放实验使得科学研究更加透明,公众可以了解实验的过程和结果,从而增加对科学研究的信任和理解。

三、开放实验在不同领域的应用1. 医学研究:开放实验在医学研究中的应用日益广泛。

通过共享临床试验数据和病例信息,医学界可以更好地理解疾病的发病机制和治疗方法,从而提高医疗水平。

2. 环境科学:开放实验在环境科学中的应用可以帮助我们更好地了解环境变化对生态系统的影响。

通过共享环境监测数据和模型,科学家可以预测和应对气候变化等环境问题。

3. 教育研究:开放实验在教育研究中的应用可以提供更多的教学资源和方法。

通过共享教学实验和教材设计,教育工作者可以相互学习和改进教学方法,提高学生的学习效果。

4. 计算机科学:开放实验在计算机科学中的应用可以推动人工智能和机器学习等领域的发展。

通过共享算法和数据集,科学家可以合作研究新的智能系统和算法,从而提高计算机科学的创新能力。

开放性实验报告

开放性实验报告

课题名称:抗痉挛药物5,5-二苯乙内酰脲的合成参与人:朱琳领、袁淋、曾祥飞、袁志光、周泉泉指导老师:熊飞一、实验介绍:5,5-二苯基乙内酰脲即苯妥英是一种抗癫痫药。

英文名Phenytoin。

中文别名大伦丁、地伦丁、二苯妥英、二苯乙内酰脲、或奇非宁。

适用于治疗全身性强直阵挛性发作、复杂部分性发作(精神运动性发作、颞叶癫痫)、单纯部分性发作(局限性发作)和癫痫持续状态。

也可用于治疗三叉神经痛。

在医药方面有着很大的应用。

本实验由苯甲醛反应制备得到5,5-二苯基乙内酰脲,原料简单易得,合成路线共分三步:第一步:安息香缩合反应。

本反应拟采用VB1作为催化剂替代传统的氰化物,降低试剂的毒性、同时我们还使用了微波法合成安息香。

第二步:安息香的氧化反应,文献报道氧化可用多种方法进行,我们采用了三种方法进行,并做了相互比较。

第三步:5,5-二苯乙内酰尿的的制备,这个反应由安息香的氧化产物与尿素合环制备,条件简单。

二、实验具体流程:实验流程1辅酶法合成安息香芳香醛在辅酶的作用下,分子间发生缩合生成二芳基乙醇酮(安息香),称为安息香缩合反应。

安息香缩合在化学工业和药物合成等方面有广泛的应用, 如抗癫痫药物二苯基乙内酰脲以及二苯基乙二酮、二苯基乙二酮肟、乙酸安息香等制备都用到此反应。

本实验作为本课题---抗癫痫药物二苯基乙二苯基乙内酰脲合成的第一步,起着举足轻重的作用。

安息香缩合反应已有相当长的历史,,经典的安息香合成以氰化钠或氰化钾为催化剂,虽然产率较高,但合成产物的毒性很大,易造成环境污染,损害人体健康。

近年来,有关安息香缩合反应及应用研究的新技术、新方法、新催化剂等报道较多,这些研究对提高安息香缩合产率、扩大其应用范围具有重要的理论和实际意义。

本实验主要采用的是维生素B1催化法来合成。

由于VB1催化反应产率低且不稳定,重复性差,在实际合成中几经挫折,并对实验的不断改进最终合成产物。

我们经过多次试验探讨, 在实验中采用维生素B1作为反应催化剂, 通过控制反应体系的pH 和反应温度,,并且改变产物的先后加入顺序。

开放式实验报告

开放式实验报告

学校名称开放式电子电路实验报告姓名:班级:学号:时间:电压放大电路一、设计目的1、学习基本放大电路的设计方法以及主要技术指标的测试方法。

2、了解三极管各项基本器件参数、工作点、偏置电路、输入阻抗、输出阻抗、增益、幅频特性等的基本概念以及测量方法;3、掌握基本的multisim软件的运用。

二、设计要求及主要技术指标设计要求:1、方案论证,确定总体电路原理方框图;2、仿真调试及测量结果;3、据软件仿真结果实际组装电路,测量参数。

主要技术指标1.电源输入内阻Ω50;R=Kb2.增益为2A;=v3. 输出电压;v1vpp≥o4.输入动态大于2vpp;5.支流功率mw≤;P306.增益不平衡度小于0.1dB;7.负载ΩR;=2008.电源频率范围为20Hz~20kHz;三、设计原理采用共射极分压式偏置电路以及射极跟随器: 共射极分压式偏置电路完成基本电压放大;射极跟随器提高输入阻抗,使输出达到两倍放大。

其中信号发生器Vpp=1V,频率为1kHz,Vcc为12V,三极管的放大系数β为100。

四、仿真过程增益ib bc ic v V V V V V V A ∙==要得到放大倍数为两倍则i b V V 应接近于1,bcV V 应大于1,这样就保证最终放大在2倍。

而is iib R jwcR R V V ++=1,()ec bbe e b bc bc R R i r R i i R V V -≈++-=ββ1符合要求的仿真结果各项均符合要求,仿真完成。

五、体会与收获通过老师讲解、同学帮助以及自己的努力下,完成这次电压放大开放性设计试验,收获颇多:此次实验,主要是用Multisim软件对学过的模拟电路放大器进行仿真,由于上学期模拟电路学的不好,加上开始时对实验不够重视,导致实验过程中困难重重。

后来经过复习以及老师同学的帮助,终于慢慢熟悉了这个仿真软件,并能很好的操作,在此基础上设计电路、修改电路。

这种实验在现实中很有意义,同时也比较难,而老师要对我们也提出了较高的要求,在设计电路的过程中,通过老师的一些讲解,认识到很多东西并不像课本上那么简单。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于JAVA的语音、图像信号处理系统实验报告学院:信息与电子工程学院班级:软件工程092学号:109029041姓名:钱枫指导教师:宋起文二O一一年十二月一.课程设计原理开发语言:Java(J2SE)开发平台:MyEclipse开发背景:J ava中提供的套接字功能为通信系统的实现提供了基础,通过IO的流传输具体实现了数据的实时传输,javax.sound.sampled 类提供了读取、写入声卡数据的具体方法。

1.套接字:客户端Socket:Socket(InetAddress host,int port):声明一个连接到某地址的主机内的相应端口的套接字。

工作完毕后,使用流对象的close()方法关闭网络通信的输入输出流,用Socket对象的close()方法关闭套接字;服务端的ServerSocket:ServerSocket(int port,int backlog):声明一个有相应端口被申请的服务器套接字,backlog表示在序列里等待连接的客户端数目,若等待数超过backlog值,则客户端的连接被拒绝,若未声明具体值,则默认随机选择一空闲端口。

工作完毕后,使用流对象的close()方法关闭网络通信的输入输出流,用ServerSocket对象的close()方法关闭套接字。

2.输入、输出流:New BufferedWriter(new OutputStreamWriter(socket2.getOutputStream())):向套接字的输出数据流写入格式化的数据;new BufferedReader(new InputStreamReader(socket2.getInputStream())):从套接字的输入数据流读取格式化的数据。

2.javax.sound.sampled类接口和方法:new AudioFormat(8000.0f, 8, 2, true, true):设置音频数据格式;TargetDataLine接口:从音频捕获设备获取其数据的数据行;SourceDataLine接口:将音频字节写入设备源数据行;targetDataLine.read(byte[] b, int off, int len):从数据行的输入缓冲区读取音频数据;sourceDataLine.write(byte[] b, int off, int len):通过此源数据行将音频数据写入混频器。

二.源代码:客户端部分:package Communication;import java.awt.*;import java.awt.event.*;import .*;import javax.swing.*;import java.io.*;import javax.sound.sampled.*;class Volume extends Thread {private Client tcpClient;public boolean isConn;public Volume(Client _tcpClient) {tcpClient = _tcpClient;}public void run() {StringBuffer sb;while (isConn) {sb = new StringBuffer();int r = (int) (Math.random() * 51);for (int i = 0; i < r; i++) {sb.append('.');}tcpClient.V oiceSpectrum.setText(sb.toString());try {sleep(200);} catch (InterruptedException e) {e.printStackTrace();}}tcpClient.V oiceSpectrum.setText(null);}}class ClientThread extends Thread {private Client tcpClient;private Volume volume;private Socket socket;private OutputStream output;private InputStream input;private TargetDataLine targetLine;private SourceDataLine sourceLine;private boolean isConn;public ClientThread(Client _tcpClient) {tcpClient = _tcpClient;}public void run() {try {socket = new Socket("localhost", 9999);} catch (Exception e) {JOptionPane.showMessageDialog(tcpClient.frame,"语音服务未开启", "错误", JOptionPane.ERROR_MESSAGE);tcpClient.tglbtnConn.doClick();return;}try {output = socket.getOutputStream();input = socket.getInputStream();} catch (IOException e) {JOptionPane.showMessageDialog(tcpClient.frame, "音频数据流传输失败", "错误", JOptionPane.ERROR_MESSAGE);tcpClient.tglbtnConn.doClick();return;}AudioFormat audioFormat = new AudioFormat(8000.0f, 8, 2, true, true); Line_in = new (TargetDataLine.class, audioFormat); Line_out = new (SourceDataLine.class, audioFormat); try {targetLine = (TargetDataLine)AudioSystem.getLine(Line_in);targetLine.open(audioFormat,targetLine.getBufferSize());sourceLine = (SourceDataLine)AudioSystem.getLine(Line_out);sourceLine.open(audioFormat,sourceLine.getBufferSize());} catch (LineUnavailableException e) {JOptionPane.showMessageDialog(tcpClient.frame, "音频设备发生错误", "错误", JOptionPane.ERROR_MESSAGE);sounds_close();tcpClient.tglbtnConn.doClick();return;}volume = new V olume(tcpClient);volume.isConn = true;volume.start();byte[] soundsBytes = new byte[1024];//单个数据包容量为1024字节isConn = true;targetLine.start();sourceLine.start();int readLength;while (true) {readLength = targetLine.read(soundsBytes, 0, soundsBytes.length);try {output.write(soundsBytes, 0, readLength);output.flush();readLength = input.read(soundsBytes);} catch (Exception e) {sourceLine.stop();targetLine.stop();sounds_close();if (isConn) {JOptionPane.showMessageDialog(tcpClient.frame, "语音数据通道断开","错误", JOptionPane.ERROR_MESSAGE);tcpClient.tglbtnConn.doClick();return;}break;}sourceLine.write(soundsBytes, 0, readLength);}}public void sounds_close() {try {sourceLine.close();} catch (NullPointerException e) {}try {targetLine.close();} catch (NullPointerException e) {}}public void stream_close() {try {input.close();} catch (NullPointerException e) {} catch (IOException e) {e.printStackTrace();}try {output.close();} catch (NullPointerException e) {} catch (IOException e) {e.printStackTrace();}}public void socket_close() {try {socket.close();} catch (NullPointerException e) {} catch (IOException e) {e.printStackTrace();}}public void close() {try {volume.isConn = false;} catch (NullPointerException e) {}isConn = false;stream_close();socket_close();}}public class Client extends Frame implements ActionListener { private Socket socket2;private BufferedWriter writer;private BufferedReader reader;private ClientThread clientThread;private JLabel lblConnStatus = new JLabel("关闭");private TextField sendBox=new TextField();private TextArea msgView=new TextArea();public JToggleButton tglbtnConn = new JToggleButton("开启连接");public JFrame frame = new JFrame();public JLabel V oiceSpectrum = new JLabel();public static void main(String[] args) {Client client=new Client();client.connect();}public Client() {frame.setTitle("网络通信(客户端)");frame.setMinimumSize(new Dimension(550, 400));frame.setBounds(100, 100, 550, 400);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);msgView.setEditable(false);JToolBar toolBar = new JToolBar();toolBar.setBounds(381, 343, 153, 19);toolBar.setFloatable(false);frame.getContentPane().add(toolBar);JLabel lblConn = new JLabel("语音连接状态:");toolBar.add(lblConn);toolBar.add(lblConnStatus);JPanel panel = new JPanel();panel.setBounds(0, 0, 351, 274);frame.getContentPane().add(panel);panel.setLayout(new BorderLayout(0, 0));JScrollPane scrollPane = new JScrollPane();panel.add(scrollPane);scrollPane.setViewportView(msgView);JButton button = new JButton("发送");button.setBounds(143, 288, 66, 25);button.addActionListener(this);frame.getContentPane().add(button);JPanel panel_1 = new JPanel();panel_1.setBounds(0, 327, 351, 35);frame.getContentPane().add(panel_1);panel_1.setLayout(new BorderLayout(0, 0));JScrollPane scrollPane_1 = new JScrollPane();panel_1.add(scrollPane_1);scrollPane_1.setViewportView(sendBox);sendBox.setColumns(10);VoiceSpectrum.setBounds(416, 108, 58, 17);frame.getContentPane().add(V oiceSpectrum);tglbtnConn.setBounds(405, 288, 90, 25);frame.getContentPane().add(tglbtnConn);tglbtnConn.addActionListener(this);frame.setVisible(true);}private void connect(){try{socket2=new Socket("localhost",7777);msgView.append("文字通道完成连接"+socket2+"\n\n");writer=new BufferedWriter(new OutputStreamWriter(socket2.getOutputStream()));reader=new BufferedReader(new InputStreamReader(socket2.getInputStream()));getMessage();}catch(Exception e){JOptionPane.showMessageDialog(null, "文字通道未建立","错误", JOptionPane.ERROR_MESSAGE);}}void getMessage(){try{while(true){msgView.append("服务器:"+reader.readLine()+"\n\n");}}catch(Exception ee){JOptionPane.showMessageDialog(null, "未能正常显示发送内容","错误", JOptionPane.ERROR_MESSAGE);}finally{try{if(reader!=null)reader.close();if(socket2!=null)socket2.close();reader=null;socket2=null;msgView.append("文字连接已断开"+'\n');}catch(Exception e){JOptionPane.showMessageDialog(null, "关闭文字输入流或套接字失败","错误", JOptionPane.ERROR_MESSAGE);}}}public void actionPerformed(ActionEvent e) {if(e.getActionCommand() == "发送"){try{msgView.append("客户端:"+sendBox.getText()+"\n\n");writer.write(sendBox.getText());writer.newLine();writer.flush();sendBox.setText("");}catch(Exception ee){JOptionPane.showMessageDialog(null, "内容未正常显示或未写入输入流","错误", JOptionPane.ERROR_MESSAGE);}}if (e.getActionCommand() == "开启连接") {lblConnStatus.setText("已连接");tglbtnConn.setSelected(true);tglbtnConn.setText("关闭连接");clientThread = new ClientThread(this);clientThread.start();}if (e.getActionCommand() == "关闭连接"){lblConnStatus.setText("已断开");tglbtnConn.setSelected(false);tglbtnConn.setText("开启连接");clientThread.close();}}}服务器部分:package Communication;import java.awt.*;import java.awt.event.*;import .*;import javax.swing.*;import java.io.*;import javax.sound.sampled.*;class ServerVolume extends Thread {private Server tcpServer;public boolean isConn;public ServerVolume(Server _tcpServer) {tcpServer = _tcpServer;}public void run() {StringBuffer sb;while (isConn) {sb = new StringBuffer();int r = (int) (Math.random() * 51);for (int i = 0; i < r; i++) {sb.append('.');}tcpServer.SVoiceSpectrum.setText(sb.toString());try {sleep(200);} catch (InterruptedException e) {e.printStackTrace();}}tcpServer.SVoiceSpectrum.setText(null);}}class ServerThread extends Thread {private Server tcpServer;private ServerV olume serverV olume;private ServerSocket ss;private Socket socket;private OutputStream output;private InputStream input;private TargetDataLine targetLine;private SourceDataLine sourceLine;private boolean isConn;public ServerThread(Server _tcpServer) {tcpServer = _tcpServer;}public void run() {try {ss = new ServerSocket(9999);} catch (IOException e) {JOptionPane.showMessageDialog(tcpServer.frame, "端口已被占用","错误", JOptionPane.ERROR_MESSAGE);tcpServer.tglbtnService.doClick();return;}try {socket = ss.accept();} catch (Exception e) {JOptionPane.showMessageDialog(tcpServer.frame,"语音连接未成功", "错误", JOptionPane.ERROR_MESSAGE);tcpServer.tglbtnService.doClick();return;}try {output = socket.getOutputStream();input = socket.getInputStream();} catch (IOException e) {JOptionPane.showMessageDialog(tcpServer.frame, "音频数据流传输失败", "错误", JOptionPane.ERROR_MESSAGE);tcpServer.tglbtnService.doClick();return;}AudioFormat audioFormat = new AudioFormat(8000.0f, 8, 2, true, true); Line_in = new (TargetDataLine.class, audioFormat); Line_out = new (SourceDataLine.class, audioFormat); try {targetLine = (TargetDataLine)AudioSystem.getLine(Line_in);targetLine.open(audioFormat,targetLine.getBufferSize());sourceLine = (SourceDataLine)AudioSystem.getLine(Line_out);sourceLine.open(audioFormat,sourceLine.getBufferSize());} catch (LineUnavailableException e) {JOptionPane.showMessageDialog(tcpServer.frame, "音频设备发生错误", "错误", JOptionPane.ERROR_MESSAGE);sounds_close();tcpServer.tglbtnService.doClick();return;}serverVolume = new ServerV olume(tcpServer);serverVolume.isConn = true;serverVolume.start();byte[] soundsBytes = new byte[1024];// 尽量取适中大小isConn = true;targetLine.start();sourceLine.start();int readLength;while (true) {readLength = targetLine.read(soundsBytes, 0, soundsBytes.length);try {output.write(soundsBytes, 0, readLength);output.flush();readLength = input.read(soundsBytes);} catch (Exception e) {sourceLine.stop();targetLine.stop();sounds_close();if (isConn) {JOptionPane.showMessageDialog(tcpServer.frame, "语音数据通道断开","错误", JOptionPane.ERROR_MESSAGE);tcpServer.tglbtnService.doClick();}break;}sourceLine.write(soundsBytes, 0, readLength);}}public void sounds_close() {try {sourceLine.close();} catch (NullPointerException e) {}try {targetLine.close();} catch (NullPointerException e) {}}public void stream_close() {try {input.close();} catch (NullPointerException e) {} catch (IOException e) {e.printStackTrace();}try {output.close();} catch (NullPointerException e) {} catch (IOException e) {e.printStackTrace();}}public void socket_close() {try {socket.close();} catch (NullPointerException e) {} catch (IOException e) {e.printStackTrace();}}public void ss_close() {try {ss.close();} catch (NullPointerException e) {} catch (IOException e) {e.printStackTrace();}}public void close() {try {serverV olume.isConn = false;} catch (NullPointerException e) {}isConn = false;stream_close();socket_close();ss_close();}}public class Server implements ActionListener {private static final long serialVersionUID=1L;private ServerSocket ss2;private Socket socket2;private BufferedWriter writer;private BufferedReader reader;private TextArea msgView = new TextArea();private TextField sendBox=new TextField();private ServerThread serverThread;private JLabel lblServerStatus = new JLabel("关闭");public JToggleButton tglbtnService = new JToggleButton("开启服务");public JFrame frame = new JFrame();public JLabel SV oiceSpectrum = new JLabel();public static void main(String[] args) {Server server = new Server();server.connect();}public Server() {frame.setTitle("网络通信(服务器)");frame.setBounds(700, 100, 550, 400);frame.setMinimumSize(new Dimension(550, 400));frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);msgView.setEditable(false);JToolBar toolBar = new JToolBar();toolBar.setBounds(381, 343, 153, 19);toolBar.setFloatable(false);frame.getContentPane().add(toolBar);JLabel lblConn = new JLabel("语音服务状态:");toolBar.add(lblConn);toolBar.add(lblServerStatus);JPanel panel = new JPanel();panel.setBounds(0, 0, 351, 274);frame.getContentPane().add(panel);panel.setLayout(new BorderLayout(0, 0));JScrollPane scrollPane = new JScrollPane();panel.add(scrollPane);scrollPane.setViewportView(msgView);JButton button = new JButton("发送");button.setBounds(143, 288, 66, 25);button.addActionListener(this);frame.getContentPane().add(button);JPanel panel_1 = new JPanel();panel_1.setBounds(0, 327, 351, 35);frame.getContentPane().add(panel_1);panel_1.setLayout(new BorderLayout(0, 0));JScrollPane scrollPane_1 = new JScrollPane();panel_1.add(scrollPane_1);scrollPane_1.setViewportView(sendBox);sendBox.setColumns(10);SV oiceSpectrum.setBounds(416, 108, 58, 17);frame.getContentPane().add(SV oiceSpectrum);tglbtnService.setBounds(405, 288, 90, 25);frame.getContentPane().add(tglbtnService);tglbtnService.addActionListener(this);frame.setVisible(true);}private void connect(){try{ss2=new ServerSocket(7777);socket2=ss2.accept();msgView.append("与客户端完成文字连接"+socket2+"\n\n");writer=new BufferedWriter(new OutputStreamWriter(socket2.getOutputStream()));reader=new BufferedReader(new InputStreamReader(socket2.getInputStream()));getMessage();}catch(Exception e){JOptionPane.showMessageDialog(null, "文字通道未建立","错误", JOptionPane.ERROR_MESSAGE);}}void getMessage(){try{while(true){msgView.append("客户端:"+reader.readLine()+"\n\n");}}catch(Exception ee){JOptionPane.showMessageDialog(null, "未能正常显示发送内容","错误", JOptionPane.ERROR_MESSAGE);}finally{try{if(reader!=null)reader.close();if(socket2!=null)socket2.close();reader=null;socket2=null;msgView.append("文字连接已断开"+'\n');}catch(Exception e){JOptionPane.showMessageDialog(null, "关闭文字输入流或套接字失败","错误", JOptionPane.ERROR_MESSAGE);}}}public void actionPerformed(ActionEvent e) {if(e.getActionCommand() == "发送"){try{msgView.append("服务器:"+sendBox.getText()+"\n\n");writer.write(sendBox.getText());writer.newLine();writer.flush();sendBox.setText("");}catch(Exception ee){JOptionPane.showMessageDialog(null, "内容未正常显示或未写入输入流","错误", JOptionPane.ERROR_MESSAGE);}}if (e.getActionCommand() == ("开启服务")){tglbtnService.setSelected(true);lblServerStatus.setText("服务已开启");tglbtnService.setText("关闭服务");serverThread = new ServerThread(this);serverThread.start();}if (e.getActionCommand() == ("关闭服务")){tglbtnService.setSelected(false);lblServerStatus.setText("服务已关闭");tglbtnService.setText("开启服务");serverThread.close();}}}三.成果截图:1.文字通信:2.语音通信:3.当客户端关闭语音连接时:4.当服务器关闭语音服务时:。

相关文档
最新文档