实验课题:测量1分钟的心跳与脉搏次数
实验目标:
1、了解自己在正常情况下1分钟的心跳跳动的次数以及脉搏跳动的次数;
2、认识心跳与脉搏之间的关系
实验器材或药品:橡胶管、钟表
实验设想:一个人一分钟内心脏跳动多少次、人的脉搏速度是怎样的?心跳和脉搏有什么规律?
实验探究过程:
1、把橡胶管连在两个漏斗颈上,做成一个简易听诊器;
2、用听诊器与同学互相听心跳的声音,记录一分钟心跳的次数;
3、与同学互相摸脉搏,记录一分钟脉搏的次数;
4、边听对方的心跳边测他的脉搏,观察心跳与脉搏跳动有什么关系。
现象观察:人的心脏跳动一次,人的脉搏就搏动一次
实验结论:在正常情况下,人的心跳和脉搏是一致的
1 实验课题:测肺活量
实验目标:
1、知道什么是肺活量,掌握测量肺活量的正确方法,并能测量自己的肺活量。
2、知道体育锻炼对呼吸和心脏带来的好处;
认识到清新的空气,合理的运动,有助于我们的健康。
实验器材或药品:气球、卷尺、塑料瓶、直尺、吸管 实验设想:人的肺活量都一样吗? 实验探究过程:
一、制作肺活量测量器
1.沿塑料瓶的外壁由下向上贴上白纸条;
2.用100ml的烧杯装满水,倒入塑料瓶,小心不要把水倒在瓶外,然后用记号笔沿水面标上100ml的记号,依次进行,标到1000ml即可。
二、测肺活量
1.测量前,一定要先将塑料中装满水,并盖上盖子;
2.把塑料瓶倒扣在水槽中,瓶口一定要没在水的下方;
3.在水中旋开盖子,将直角弯头管的一头伸进塑料瓶;
4、吸足一口气,尽最大力气向水中吹气;
5、读出自己的肺活量,读的时候是读出瓶中空的体积,不是读出瓶中水的体积;
6、在第二个同学测之前,也一定要将瓶中的水装满。 现象观察:每个人的肺活量不尽相同。
实验结论:人的肺活量有大有小。
2 实验课题:研究心脏的跳动和血液循环
实验目标:知道血液循环系统的组成及其作用;
知道血液循环系统的组成及其作用。
实验器材或药品:水盆,水,塑料瓶
实验设想:心脏为什么要不停地跳动?心脏不停跳动究竟有什么作用呢?
实验探究过程:
一、模拟心脏跳动 。1.在水中反复挤压和放松塑料瓶,仔细观察现象,实验时水槽中的水要适量。2.在水中挤压塑料瓶的活动可以利用输液管替换,效果更接近“原型”:找一些医院里的输液管(最好是新的),在中间的塑料小瓶子的两端各保留适当长度的管子,截掉多余部分,再用两个培养皿,往其中一个倒入适量红水,挤压塑料小瓶,仔细观察现象。
二、观察人体血管图。1.观察、介绍人体的血管。
2.找一找,在人身体的哪些地方能摸到脉搏。3.感受自己的脉搏跳动。
三、测量1分钟的心跳和脉搏次数。1.脉搏和心跳最好同时测出,因为人的心跳次数并非固定不变。
2.测量活动可以两人合作完成,同学帮助测脉搏,自己测心跳,然后轮换。
3.边测量边记录数据。
现象观察:当我们模拟心脏跳动时,手有节奏地握紧与张开,手臂上的肌肉也随着一起紧张、放松。
实验结论:心脏总是在不停地跳动,并与脉搏跳动的次数一致。
3 实验课题:研究杠杆的秘密(探究杠杆省力的秘密) 实验目标:
1、认识什么东西叫作杠杆(即杠杆的特点) 。
2、认识杠杆的巧妙作用及它是如何产生作用的。
3、能利用杠杆的原理解决生活中的一些难题。
实验器材或药品:带刻度的平衡尺、钩码、铁架台 实验设想:在什么情况下杠杆省力? 实验探究过程:
1.组装杠杆尺,并把杠杆尺调成平衡状态。
2.确定杠杆尺一侧的点为阻力点,挂一定数量的钩码。
3.在另一侧确定动力点的位臵,看看在不同位臵上需要挂多少钩码。才能使杠杆尺保持平衡,并记录结果。
4.改变阻力点的位臵,重复第二步,做三次实验。 现象观察:
省力杠杆的特点是:用力点到支点的距离大于阻力点到支点的距离;
费力杠杆的特点是:用力点到支点的距离小于阻力点到支点的距离;
不省力也不费力杠杆的特点:用力点到支点的距离等于阻力点到支点的距离。
实验结论:平衡尺仍保持平衡尺,这说明杠杆省力与否与着力点到支点的距离有关。
4 实验课题:研究轮轴的作用 实验目标:
1、认识轮轴的结构。知道利用轮带动轴可以省力,利用轴带动轮转动可以省距离。
2、能够识别生活中应用轮轴的实例,会分析它是怎样帮助人们提高工作效率的。
实验器材或药品:轮轴套装,细线,钩码,弹簧测力计 实验设想:轮轴有什么作用? 实验探究过程:
1、用一个轮轴实验装臵来研究轮轴的作用,记录实验数据,最后进行实验数据分析。
2、换一个大一点的轮,记录下更大的伦用多少钩码可以是轮轴保持平衡,记录数据。
现象观察:
把各组轮轴收起来,分两类放在一起。对比它们的轮和轴。发现:轴相等的情况下,轮越大越省力。
实验结论:
通过实验发现在轮轴的轮上用力能够省力,如果轴不变,轮越大越省力。由此我们也认识到轮轴也是一种机械。
5
实验课题:用定滑轮提起重物
实验目标:初步认识定滑轮,了解定滑轮在生活和实际中的应用。
实验器材或药品:铁架台,钩码,细线,定滑轮、弹簧测力计
实验设想:如何把货物运到高处? 实验探究过程:
1、安好定滑轮,在定滑轮上挂一根绳子,在绳子的两端任意挂上一些钩码,当绳子平衡时,两端的钩码数相同。
2、改变钩码的数量再做几次。 现象观察:
当弹簧测力计斜向上拉时,拉力的示数会变大。
实验结论:
定滑轮不能省力,但是可也改变用力方向。
6 实验课题:用动滑轮提起重物
实验目标:初步认识动滑轮,了解动滑轮在生活和实际中的应用。
实验器材或药品:铁架台,钩码,细线,定滑轮、弹簧测力计
实验设想:使用动滑轮有什么好处? 实验探究过程:
1.组装好动滑轮;
2.用测力计分别直接提升1个钩码、2个钩码、3个钩码,测出用了多大的力;
3.分别在动滑轮上提升1个钩码、2个钩码、3个钩码,测出用了多大的力(每种做3次);
比较直接提升和用动滑轮提升升重物用力的不同。
现象观察:使用动滑轮提升钩码,弹簧秤的示数约是钩码重的二分之一。在提升钩码的过程中也把动滑轮提升起来,当钩码重远大于动滑轮重时,动滑轮才可忽略不计,从而得出使用动滑轮可以省一半力的结论。
实验结论:动滑轮能够省力,但是不能改变用力的方向。
7 实验课题:研究滑轮组的作用
实验目标:会根据滑轮组的挂线判断滑轮组的省力情况,会根据要求,正确组装滑轮组。
实验器材或药品:铁架台,钩码,细线,滑轮组,弹簧测力计
实验设想:
使用滑轮组的优点是什么? 实验探究过程:
1.组装好滑轮组;
2.用测力计分别直接提升1个钩码、2个钩码、3个钩码,测出用了多大的力;
3.分别在滑轮组上提升1个钩码、2个钩码、3个钩码,测出用了多大的力(每种做3次);
比较直接提升和用滑轮组提升重物用力的不同。
现象观察:定滑轮的特点是:能改变用力方向,但不能省力。动滑轮的特点是:能省力,但不能改变用力方向。滑轮组既省力又能改变力的方向。
实验结论:滑轮组既省力又能改变力的方向。
8 实验课题:研究斜面的作用
实验目标:认识像搭在汽车上的木板那样的简单机械叫斜面,斜面可以省力。
实验器材或药品:弹簧秤、小车、光滑的木板、木块 实验设想:“山上的公路和平地上的公路有什么区别?为什么要这样修建?”
实验探究过程:
1.用木板搭造一个斜面,在相同高度下,用测力计提升不同物体需要多大的力,记录数据,并分析实验结果;
2.再用不同坡度的斜面,提升相同的物体,测量需要多大的力,记录数据,分析实验结果。
现象观察:
对研究结果作出分析,发现其中的规律。(发现同一物体从斜面拉上用去的力都小于直接把物体垂直提上去用的力,所以斜面可以省力)
实验结论:斜面的角度越小所需的拉力越小。
9 实验课题:研究不同坡度斜面的作用
实验目标:知道不同坡度的斜面作用不同,坡度越小越省力。
实验器材或药品:长木板,小车,弹簧测力计,小木块 实验设想:
不同坡度斜面的作用是一样的吗? 实验探究过程:
用测力计直接提升物体的力与沿斜面提升物体的力进行对比,然后改变斜面的不同坡度继续进行试验,做好记录为结果的分析提供依据。
现象观察:
斜面都有省力的作用,斜面坡度越小越省力,坡度越大的斜面越费力。
实验结论:斜面能够省力,而且斜面坡度越小越省力。
10 实验课题:研究物体的形状与承受力的关系
实验目标:知道物体形状与承受力有关,改变其形状,承受力也会改变。
实验器材或药品:硬纸、砖块、厚书等重物 实验设想:物体的承受力真的与形状有关吗? 实验探究过程:
1、用大小差不多的纸做成不同形状的纸筒;
2、用胶水粘好后竖直放在桌上;
3、将书本、砖分别放在相关的纸筒上,比较它们的承重力。
现象观察:物体形状与承受力有关系。改变物体的形状,物体的承受力也会发生变化。
实验结论:不同形状的纸筒承受力是不同的,在不同的柱形纸筒中,圆柱形纸筒承受力较好。
11 实验课题:测试纸拱的承重能力
实验目标:认识拱形能够增强抗弯曲的能力。
实验器材或药品:小车,钩码,纸,木块
实验设想:让学生看一些拱桥的图片。问为什么桥要做成拱形,特别是在古代,材料还不是很多,强度也不是很好的年代。其原因在那里?
实验探究过程:
1、把纸圈成一圈后松开,做成一个拱形,用木块测试一下它能够承受多大的压力。
2、用两本书分别抵住两边的拱脚,使纸拱不会塌下来,测试一下它能够承受多大的压力。
3、用较多的书抵住脚拱。再测量能够承受多少个木块。
现象观察:拱形可以向下和向外传递承受的压力,所以能够承受很大的压力。
实验结论:将纸做成拱形后它能够承载更大的压力,而且拱形受压会产生一个向外推的力,抵住这个力,拱就能承载很大的重量。
12 实验课题:做简单的框架
实验目标:不同形状的框架,变形程度不同;
三角形框架是最稳定的结构,从而进一步激发学生研究结构与稳定性关系的兴趣。
实验器材或药品:吸管、胶带、剪刀
实验设想:你对框架式结构有哪些认识?框架式结构好不好?它有哪些作用?
实验探究过程:
1、用三根吸管和胶带做一个三角形框架,试一试稳定性。
2、用四根吸管和胶带做一个四边形框架,试一试稳定性。
3、在四边形框架里面加两根斜杠,再试一试稳定性。与不加斜杠时的框架比一比,哪个坚固。
4、做一个正方体框架,试一试稳定性。
5、在正方体框架的每个面上都加两根斜杠试一试稳定性。
6、在正方体框架的每个面上都加两根直杠试一试稳定性。
7、比一比,
4、
5、6的不同情况哪种更坚固。
现象观察:通过实验我们知道了三角形是最稳固、最不容易变形的框架。
实验结论:制作框架时,三角形比四边形更加稳定。所能承受的压力也就会更大。
13 实验课题:研究影子形成的原因及特点
实验目标:做光和影的实验,并将观察结果准确地进行记录;
根据实验结果分析推理出光源、遮挡物、影之间的关系。
实验器材或药品:不透明物体、光源、白纸、铅笔 实验设想:猜猜看影子是怎样产生的? 实验探究过程:
1、桌面上放上一块长方体木块,打开手电筒开关,从不同位臵照射。
2、在桌面上放三块木块(与手电筒距离不一样),打开手电筒开关。
3、将1块木块平放在桌面上,打开手电筒开关,从水平和垂直方位照木块。
现象观察:影子产生需要的条件,光源、遮挡物、屏。
实验结论:影子的产生需要光,垂直照射影子最短,平射影子最长。
14 实验课题:观察阳光下影子的变化
实验目标:识别一天中影子的变化和阳光的变化 实验器材或药品:白纸,橡皮泥,铅笔,温度计 实验设想:想想看从清晨到黄昏,太阳在天空中的位臵在不断变化,阳光下物体的影子也在变化吗?是怎样变化的呢?
实验探究过程:
1.早晨,在校园里找一个物体,给它的影子做上记号,下课的时候再去画一画。
2.用橡皮泥把铅笔垂直固定在白纸上,确定好南北方向。
3.每到下课的时候画出阳光下铅笔的影子;
4.用温度计测出当时的温度,并在影子的顶端记下当时的温度和时间。
现象观察:一天中太阳在正午时最高,物体影子最短;
太阳在清晨傍晚时最低,物体的影子最长。
实验结论:一天中,影子变化由长→短→长,温度变化由低→高→低。
15 实验课题:验证光的传播路线 实验目标:了解光的传播路线
实验器材或药品:手电筒,三张小孔纸板,屏 实验设想:光传播的路线是怎样的? 实验探究过程:
1、在三张长方形卡纸的同一位臵打一个洞,把这些卡纸分别用夹子夹住横立在桌上,每张卡纸之间间隔15厘米,并排成整齐的一列,使卡纸的小孔在同一直线上。在最后一张卡纸之后约15厘米的地方,再放一个纸屏。
2、把手电筒放臵在离自己最近的卡纸前一定距离,让手电筒的光射进小孔。观察在纸屏上出现的现象。
3、把第二张卡纸向左移动5厘米,同样用手电筒的光对准离自己最近的卡纸上的小孔,仔细观察纸屏上的现象。
4、比较两次观察到的实验现象。 现象观察:光是沿直线传播的 实验结论:光是沿直线传播的
16 实验课题:小孔成像模拟实验
实验目标:知道光在均匀介质中沿直线传播,并能用来解释小孔成像原理;
知道小孔成像所成的像的形状与孔的形状有关。
实验器材或药品:小刀,纸盒,铝箔纸,胶布,钉子 实验设想:小孔成像所成的像的形状与孔的形状有关吗?
实验探究过程:
1.在纸盒底部割出一个小窗;
2.在纸盒的另一头用透明纸蒙住;
3.用铝箔纸把小窗盖上,并用钉子(大头针)小心地在小窗中心钻一个孔;
4.观察:将有小窗的一面朝向窗户,前后移动纸盒,直至能在纸上看到清晰的影像为止。
5、分析小孔成像的原因。
现象观察:当孔比较小的时候,物的不同部分发出的光线会到达屏幕的不同的部分,而不会在屏幕上相互重叠,所以屏幕上的像就会比较清晰。
但小孔小,到达屏幕的光线少,像不明亮。
当孔比较大的时候,物的不同部分发出的光线会在屏幕上重叠,屏幕上的像自然也就不清晰。但小孔大,到达屏幕的光线少,像比较明亮。
实验结论:光在同一物质中是沿直线传播的。窗户上成的是一个倒立的实像。
17 实验课题:让小灯泡发光
实验目标:能用多种方法让小灯泡亮起来,知道电池、导线、灯泡的作用。
实验器材或药品:导线,电池,小灯泡 实验设想:灯泡是如何发光的呢? 实验探究过程:
1、导线连接小灯泡的螺纹与电池底部的锌壳,电池铜帽与小灯泡的锡粒接触,观察现象。
2、导线连接小灯泡的锡粒与电池底部的锌壳,电池铜帽与小灯泡螺纹接触,观察现象。
3、导线连接电池铜帽与小灯泡螺纹,小灯泡的锡粒与电池底部的锌壳接触,观察现象。
现象观察:开关的作用是控制电路的通断,保证小灯泡根据需要亮或灭;
灯座的两个金属片分别接在小灯泡尾部的锡点部分和金属壳的螺丝部分;
电池盒的作用是装电池,先将电池的尾部的负极压在簧片上,再把正极压入电池盒内。
实验结论:一个简单的电路由电池、导线、灯泡和开关组成。
18 实验课题:做个电路检测器 实验目标:制作一个电路检测器 实验器材或药品:电池,小电珠,导线
实验设想:提供一个出了故障的电路,并提出问题:小灯泡为什么不亮了? 实验探究过程:
1.一个由2个灯泡、灯座、1节电池、电池盒连接组成的出故障的电路,一个“电路检测器”。
2.先预测再用电路检测器检测电路中所发生的故障。
3.说出故障原因,并且采用替换法把电路重新接亮。 现象观察:
(1)在检测电路时,应先把故障电路中的电池从电池盒中取出; (2)检测故障电路中的电池是否有电,应采用取出电路检测器的电池盒中的电池,将故障电路中的电池放在电路检测器的电池盒里,看看小灯泡会不会亮。
实验结论:连接到没故障的地方,小灯泡就亮,连接到有故障的地方,小灯泡就不会亮。
19 实验课题:比较两种不同的电路连接(串并联) 实验目标:能运用串联和并联两种用不同连接方法组成电路。
实验器材或药品:电池,小电珠,导线,回形针,图钉、木板
实验设想:出示二个小组组装的并联和串联的不同电路由学生进行比较,思考为什么同样是二节电池小灯泡的亮度即相差很多?
实验探究过程:
1、把电池装入电池盒里,把灯泡装在灯座上。
2、用导线把电池、灯泡、逐个串接法连起来。比较电池的串联和并联的特点。
3、用导线把电池、灯泡、逐个并接法连起来。比较灯泡的串联和并联的特点。
现象观察:一节电池的电压是1.5V,两节电池串联起来的电压是3V,所以小灯泡会特别亮。两节电池并联起来,电压还是1.5V,所以小灯泡不太亮。在总结的基础上形成板书:电池串联电压是两节电池之和,二节电池并联电压和一节电池的电压相等。
实验结论:并联电路的小灯泡比串联电路的亮。
20 实验课题:检测导体与绝缘体
实验目标:检测区分各种物体是导体还是绝缘体 实验器材或药品:电路检测器,钥匙,木梳,纸板,橡皮,回形针等待检物品
实验设想:哪类物体是导体?哪类物体是绝缘体? 实验探究过程:
一、制作检测电路
1.把电池装入电池盒。2.把小电珠装入灯座,注意装小电珠时不要太用力。3.用导线把电池盒、小灯座、开关连接起来,并留出检测线,注意所用导线两头的绝缘层一定要事先剥去。4.检测电路的通电情况。
二、检测物品的导电性能
1.预测:哪些物体能导电?2.用检测电路分别检测物品的导电性能:将检测物品分别接入检测电路,通过小电珠的亮与灭来判断物品的导电性能。3.边实验边记录。
现象观察:生活中,人们利用导体把电流送到需要的地方,利用绝缘体阻止电流到人们不需要地方。
实验结论:容易导电的物体叫做导体,如钥匙、回形针、人体等;
不容易导电的物体叫做绝缘体,如橡皮、纸板、木头等。
21
实验课题:磁铁能吸哪些物体
实验目标:磁铁能吸引铁制的物体,这种性质叫磁性 实验器材或药品:磁铁、纸板、铁钉、玻璃、橡胶、木块等
实验设想:磁铁能吸引什么物体?
实验探究过程:拿磁铁依次靠近纸板、铁钉、玻璃、橡胶、木块等材料,观察现象。
现象观察:磁铁主要能吸引铁一类的物体。
实验结论:能被磁铁吸引的物体都是铁材料制成的,不能被磁铁吸引的物体不是铁材料制成的。
22
实验课题:磁铁能隔着物体吸铁吗
实验目标:研究磁铁隔着一些物体能不能吸铁。
实验器材或药品:磁铁、白纸,细铁屑 实验设想:磁铁能隔着物体吸铁吗? 实验探究过程:
1、在一张纸上面放上细铁屑。
2、把磁铁放在纸的下面,来回移动,看看能否吸住回形针。
3、记录观察的现象。
现象观察:磁铁隔着一些物体能吸住铁。
实验结论:磁铁隔着一些白纸,也能吸铁。
23 实验课题:磁铁什么地方磁力大
实验目标:认识磁铁上磁力最强的部分叫磁极,磁铁有两个磁极;
学会正确运用“磁力” 进行表述。
实验器材或药品:磁铁,回形针
实验设想:磁铁各部分磁力大小一样吗?
实验探究过程:把磁铁分成四段,标上A/B/C/D/E,用磁铁的各部分去吸回形针记录各部分吸引回形针的个数。
现象观察:磁铁两端磁力最强、中间磁力最弱,科学家把两端磁性最强的地方,叫做磁极。
实验结论:磁铁两端磁性最强,磁铁上最强的部分称磁极,磁铁有两个磁极。
24 实验课题:磁铁两极的研究
实验目标:通过实验,明白磁铁上磁力最强的部分称磁极,磁铁有两个磁极,两个磁极接近,有时互相吸引,有时互相排斥。
实验器材或药品:磁铁,水槽,泡沫
实验设想:一块磁铁有两个磁极,如果我们把两块磁铁的磁极互相靠近,又会发生什么有趣的现象呢?
实验探究过程:把两块磁铁的两端分别标上A/B/C/D,再将它们相互接近,观察结果。
用符号“→←”表示相互吸引的情况,用符号“←→”表示相互排斥的情况,把实验的结果记录下来。
现象观察:B和C排斥,B和D相吸,A和C相吸,A和D排斥。
实验结论:当两块磁铁的磁极接近的时候出现了两种现象,吸在一块儿我们就叫做互相吸引,推开去叫做互相排斥。
25 实验课题:磁极是怎样相互作用的
实验目标:能通过实验找到磁铁的南极与北极,探究磁极之间相互作用的规律及生活中的应用
实验器材或药品:条形磁铁,铅笔
实验设想:想想让两块磁铁的磁极相互靠近,共有几种情况?
实验探究过程:用两只手握住两块有标识的磁铁,将它们的磁极相互接近,S极与S极排斥;
N极与N极排斥;
S极与N极吸引;
N极与S极吸引。
现象观察:当两块磁铁相互靠近时,同极相互排斥,异极相互吸引
实验结论:磁铁的同极相互排斥,异极相互吸引
26 实验课题:探究磁铁磁力大小的变化
实验目标:知道磁电磁铁的磁力大小是可以改变的;
电磁铁的磁力大小与电流的大小、线圈的圈数等有关。
实验器材或药品:电磁铁,大头针,电池,粗细不同的导线,粗细铁钉
实验设想:怎样使我们的自制电磁铁吸引更多的回形针?
实验探究过程:
1、用同一个电磁铁,改变电池个数的多少分别来吸引回形针,比比吸引回形针的数量有什么不同;
2、用导线匝数不同(铁钉粗细相同、电池个数一样多)的电磁铁分别去吸引回形针,看看哪个电磁铁吸引的回形针多,把观察到的现象记录下来;
3、用铁钉粗细不同的电磁铁(导线匝数相同、电池个数要样多)分别去吸引回形针,看看哪个电磁铁吸引的回形针多,把观察到的现象记录下来。
现象观察:电磁铁的磁力大小与电流大小、导线匝数有关。
实验结论:电流大磁力大,电流小磁力小;
导线匝数多,磁力大,导线匝数少,磁力小。
27 实验课题:制作铁钉电磁铁
实验目标:
1、要求学生知道电磁铁在通电条件下有磁性,电磁铁也有两极,它的两极是可以改变的。
2、培养学生的制作能力(学会制作电磁铁的方法),试验能力和归纳概括能力。
实验器材或药品:大铁钉、电池、电池座、绝缘导线、回形针若干
实验设想:学生动手制作铁钉电磁铁。接着引导认识电磁铁的结构,他由哪几部分构成?(铁芯、线圈两部分)
实验探究过程:
1.将带有绝缘层的细导线紧密绕在铁钉上,至少30圈;
将导线与电池组成电路。
2.用自制电源接触回形针,观察现象。
现象观察:改变电池正负极的连接方法或改变线圈缠绕的方向会改变电磁铁的南北极。
实验结论:电磁铁是利用电流获得磁性的装臵。
28 实验课题:用通电导线和指南针研究电和磁的关系 实验目标:通过实验使学生知道电流可以产生磁性,电流越强、线越多,磁性越大。线圈可以检测是否有电流。
实验器材或药品:大铁钉、电池、电池座、绝缘导线、回形针若干
实验设想:你觉得电和磁之间有关系吗?电路中放入电池灯泡会亮,如果把磁铁接在导线上能让灯泡发亮吗?磁铁不能让灯泡发亮。如果把导线接近指南针会怎样?电能不能产生磁?怎样证明电能不能产生磁?(如果指针偏转说明能产生磁。指针没动说明没磁性。)
实验探究过程:
1、在铁钉上缠绕一定圈数的漆包线,然后串联不同数量的电池,分别观察吸起大头针的数量。
2、在同一个铁钉上先后缠绕不同圈数的漆包线,然后串联相同节数的电池,分别观察吸起大头针的数量。
现象观察:电能产生磁,没电就没磁。
实验结论:
1、串联电池数量多的电磁铁,吸起的大头针多,说明它的磁力大一些。
2、缠绕圈数多的电磁铁,吸起的大头针多,说明它的磁力大一些。
29 实验课题:研究铁钉电磁铁的南北极
实验目标:做研究电磁铁的南北极的实验,猜测电磁铁的南北极与什么有关,并通过对比实验来验证猜测,得出电磁 铁南北极与电池正负极接法和改变线圈绕向有关。
实验器材或药品:电磁铁,指南针
实验设想:对于普通的磁铁来说,磁性强的地方是磁极。电磁铁有磁极吗?我们可以验证电磁铁是否有磁极吗?怎么做?
实验探究过程:
(1)导线靠近指南针,指南针不偏转 (2)导线接上电池靠近指南针,指南针偏转
现象观察:电磁铁具有接通电流产生磁性、断开电流磁性消失的基本性质。
实验结论:改变通过电磁铁中的电流方向(电池的正负极连接和线圈绕线方向)会改变电磁铁的南北极。
30 实验课题:岩石的观察记录
实验目标:认识到岩石组成地球外壳,覆盖在地球表面;
知道常见岩石在颜色、结构、软硬程度及遇酸后的不同特征;
认识岩石有三种类型:岩浆岩、沉积岩、变质岩
实验器材或药品:不同的岩石标本、放大镜、烧杯、钉锤、滴管、稀盐酸
实验设想:了解岩石的特征,你打算用哪些方法?(学生充分发言后,教师应当引导他们认识要从颜色、结构、软硬等方面,通过观察、实验来研究岩石的特征)
实验探究过程:
1.用水冲洗并检查每块岩石。摸摸每块岩石,是光滑的还是粗糙的?观察它的棱角,是圆的还是尖的?用刀片、铜钥匙、手指甲刻划每块岩石,测试其硬度大小。每块岩石的颜色又是怎样的?
2.观察岩石的内部。用手掰开或者用锤子敲开每块岩石,看一看,岩石的内部有什么东西?岩石内部和外部的颜色是相同的吗?有小沙粒掉下来吗?
3.在每块岩石上滴一滴盐酸(注意安全),冒泡吗? 现象观察:
岩石的结构比较复杂,同学们在观察时可以利用放大镜来判断岩石是层状的,还粒状的;
是粗粒的,还是细粒的;
是由同种颗粒构成的,还是由几种不同的颗粒构成的。
实验结论:花岗岩,花斑状,很硬块状结构,遇盐酸无反应。页岩,红褐色或灰色,较软,薄层状结构,遇盐酸无反应。石灰岩,青灰色或褐色,较硬,颗粒状结构,遇盐酸冒泡。
31 实验课题:认识几种常见的岩石,尝试用不同的标准对其分类(如颜色、形状、质地等)
实验目标:
1、观察、记录、描述几种常见岩石的颜色、结构和构造。
2、根据岩石的显著特征对照有关资料识别岩石。
3、根据需要对岩石进行观察、比较、以及查阅相关资料。
实验器材或药品:各种常见的岩石标本
实验设想:我们来看一看地质学家是怎样描述岩石的? 实验探究过程:
1、观察岩石的颜色、光泽等;
2、利用条痕板观察矿物的条痕,用指甲或小刀来估计硬度;
3、按三大类岩石进行分类;
4、观察火成岩的结构、构造,对火成岩进行分类;
5、观察沉积岩的颜色、成分、结构、构造,对沉积岩分类;
6、观察变质岩的矿物、结构、构造等。
现象观察:引导学生认识岩石学家对岩石种类作出判断的方法,如用放大镜和显微镜观察岩石薄片的成分和颗粒组成;
岩石颗粒的大小和结构。
实验结论:岩石不都是粗糙的石块,表面光滑、色彩鲜艳、纹理美丽的鹅卵石、雨花石也是岩石,只是由于风化、流水的冲击摩擦等自然因素的影响而改变了她的模样。
32 实验课题:观察、描述矿物(条痕、软硬、透明度、光泽和形状)
实验目标:指导在学习过程中获取一些矿物颜色、条痕、软硬等方面的基本科学知识。
实验器材或药品:各种矿石标本,钥匙,小刀,放大镜等
实验设想:我们知道岩石是由矿物组成的,那我们会对矿物进行描述吗?哪些方面你觉得最能反映矿物的本质属性?
实验探究过程:
1、观察各种矿物的集合体形态(粒 状、片状、致密块状等集合体)和物理性质(颜色、光泽、解理等)
2、还可以利用条痕板观察矿物的条痕,用指甲或小刀来估计硬度;
3、对矿物进行分类。
现象观察:很多的矿物是以颜色的名字命名的,因为颜色是最容易观察到的矿物的特征,也是辨认矿物的重要依据之一。但有些矿物具有多种色彩,有些不同矿物却具有相同的色彩。
实验结论:在识别矿物时,清楚有些矿物具有多种色彩,有些不同的矿物具有相同的色彩,知道矿物的条痕颜色比矿物的外表颜色更可靠,一部分同学能适当举出例子。
33 实验课题:昼夜交替现象的模拟实验
实验目标:知道昼夜交替现象有多种可能的解释,初步理解昼夜交替现象与地球和太阳的相对圆周运动有关。
实验器材或药品:地球仪,电灯等
实验设想:昼夜交替现象的产生可能与什么有关? 假如太阳和地球,它俩都静止不动,能产生昼夜交替现象吗?为什么?
实验探究过程:
1、将实验室窗户适当遮挡。
2、在地球仪的中国北京贴上小红旗。手电筒代表太阳,六名同学围成圆圈,圆圈中间站一同学手中擎起地球仪。
3、假设地球和太阳的运动方式,并模拟,做好记录。 现象观察:昼夜交替现象产生与太阳和地球运动有关。
实验结论:地球是个球体,太阳只能照亮地球的一半,对着太阳的一面是白昼,背着太阳的一面是黑夜。地球不停地转动,昼夜现象就会交替出现。
34 实验课题:太阳运动与影子变化模拟实验
实验目标:能用简单的方法(借助身体和器物)进行观察,发现影子变化的规律;
能继续观察和记录阳光下物体影子的变化;
知道一天中气温和影子的变化与太阳的运动有关。
实验器材或药品:竹篾,电筒,橡皮泥,铅笔 实验设想:太阳每天从什么方向升起?在什么方向落下?阳光下的物体有什么特点?
实验探究过程:1.手电筒代表太阳,竹篾代表太阳运动的轨迹,小标杆代表地球上能产生影子的物体。
2.围绕地球仪转动手电筒,观察地球仪上的明暗变化。3.固定电筒位臵,转动地球仪,观察地球仪上的明暗变化。
现象观察:太阳的位臵和高度决定了影子的方向和长短。太阳在东,影子在西……太阳高度高,影子则短,太阳高度低,影子则长。影子的长短变化和气温存在着一定的联系:一般情况下影子长,气温就低……但每天最高气温并不是影子最短的时侯,而是在下午1—2点之间,这是因为那时地球吸收太阳热辐射最多,故气温最高。
实验结论:太阳高度越高,影子越短;
反之影子越长。
35 实验课题:模拟月相变化
实验目标:根据已有的现象进行简单集体模拟,同时学生能了解月球、地球、太阳的运行位臵以及初一的月相;
利用模拟实验,清楚观察到月相,明白月相变化的规律。
实验器材或药品:月相盒套装
实验设想:月相怎样变化?月相为什么会发生变化? 实验探究过程:
1、把塑料球的一半用黑墨水涂黑;
2、在地面上画上直径一米和0.5米的两个同心圆,小圆代表地球,大圆代表月球的公转轨道。其中一名同学站在同心圆的圆心上;
3、一名同学手举塑料球站在图中标出的四个位臵上,站在中央的同学观察白半球的外形。
现象观察:月相变化是月球围绕地球公转过程中形成的,变化是有一定规律的:农历上半月由缺到圆,亮面向右;
下半月由圆到缺,亮面向左。
实验结论:观察到塑料球的西半边先看到,而且越来越大,直至整个满月的出现,然后再是东半球亮,然后越来越小,直至什么也看不到。
36
电工学实验课教案
实验一
基尔霍夫定律的验证
实验二
电压源与电流源的等效变换
实验三
叠加原理的验证
实验四
戴维南定理的验证
实验五
日光灯线路的连接
实验六
功率因数的提高
实验七 三相负载Y.的接线方法 实验八 三相负载Δ的接线方法 实验九 三相异步电动机启动控制 实验十 三相异步电动机正;
反转控制系统
1 实验一
电位、电压的测定及电路图绘制
一 实验目的:
1理解电路中电位及电压的概念。
2 通过实验数据证明电位具有相对性而电压具有绝对性。
3学会电位图的绘制方法。
二 实验原理:在一个确定的闭合电路中,各点电位的高低视所选参考点的不同而变。但任意两点间电位差是不变的。它不因参考点电位的变化而改变。
FI 1R1510I 3AR21KI 2B+12V510R3+6v--R4300三 实验内容:
E510DC
1 分别将两路直流稳压电源调为E1= 6V 。E2=12V,接入电路中。
2 以图中A点为电位参考点,分别测量B C D E F 各点电位值及相邻两点间的电压值,Uab Ubc Ucd Ude Uef Ufa .2 以D点为参考点。分别测量以上2中数据。
四 注意事项:
测量时万用表黑表笔与参考点相连,红表笔与待测点相连。
2 实验二
基尔霍夫定律的验证
一 实验目的:学会使用直流电压表、电流表和数字万用表测支路电压、电流,验证基尔霍夫定律。
二 实验原理:KLC即∑I=0 任一节点的电流代数和为零。
KVL即∑U=0 任一回路,各元件电压代数和应为零。
FS1I 1R1510I 3AR21KI 2BS2+12V1-S1R4R3510+I I-S2S36vS3300D三 实验步骤:如图
E510DC 1. 熟悉电工试验台上各元件性能及稳压电源使用方法;
将直流稳压电源调为6V,12V。注意切换开关位置;
2.熟悉数字万用表、电压表、电流表各量程掌握电压并电流串的测量方法。
3.用万用表测各电阻值,并记录。
4.任意设定各支路电流参考方向,选定电路中的任意节点验证KCL的正确性,
5.选定电路中的任意回路验证KVL的正确性。 6.数据记入表22.四:注意事项 :
1。严禁带电测量电阻;
防止并联电阻存在;
注意仪表极性,量程;
2。记录数据时注意正负号;
3 实验三 电压源与电流源等效变换
一 实验目的:
1 掌握电源外特性的测试方法。
2 验证电压源与电流源等效变换的条件。
6v+Is=US/R0Us-Ro Us=IsR0-RLR0=R0IsRo RL+二 实验原理:
电压源模型 电流源模型
1 实际电源摸型:一个电源可以用两种不同的电路模型来表示,及电压源模型与电流源模型。其中电压源模型为理想电压源与电阻串联构成,R0 = 0 。电流源模型为理想电流源与电阻并联构成R0 = ∽
为理想电流源。
2 电源模型的外特性:
电源模型的外特性:指输出电压与输出电流间的变化关系。
即 U = F(I)
(1) 电压源模型的外特性 :伏安关系式,即U = U —I R , 作的曲Us Uoc IO O Is RIs线称外特性曲
I s 线如图A。
U
A
B
4 (2) 电流源模型的外特性 :即U = I R — I R , 作的曲线称外特性曲线 ,如图B ; (3) 电压源与电流源的等效变换
同一个实际电源的两种电路模型外特性是完全一致的,两者可以等效替换。等效(互换)的条件为:US=IS X R0,电阻一致。
注:A电压源与电流源的等效关系只对外电路而言,对电源内部则是不等效的。
B 理想的电压源与理想的电流源不能等效互换。
三 实验内容及步骤:
1.测定电压源的外特性;
+mA-mA+6vV+R1200+R1-Ro 1512006v--R2470R2470
按图连接线路 Us = 6V
R1=20,R2=O—470 可调电阻。调节R2由大到小变化,测出R0 = O或R0=51 两种情况下的U I 值。记入表3—1中。
2.测定直流电流源与恒流源的外特性:
mAIs+Ro -
RL V 470/2W 5m A
按图连接线路,R0 =1K Is = 5mA R0= R0 = 1KΩ。
与 RO = ∽ 两种情况下 .调节RL 0—470Ω
数据记入表3—2中。
3.测定电源等效变换的条件:
按图3—5连接线路,先记录A图中V I 值,而后调节B图中恒流源,使B图中V I 数据和A图中数据相等。记录恒流源输出IS,验证IS=US / R0。的电源等效变换的条件。
四 注意事项:
1恒流源负载禁止开路,电压不可超过20V。
2 换接线路时,必须关闭电源。
3仪表接入应注意级性和量程。
6 实验四 叠加原理的验证
一 目的:验证线性电路叠加原理的正确性,从而加深对线性电路的叠加性和齐次性的认识和理解。
二 原理:在有几个电源共同作用的线性电路中,通过任一支路的电流或两端电压等于每个电源单独作用时在该支路产生的电流或电压的代数和。在单一电源作用的电路,若激励信号增加或减小K倍,电路的响应也将增加或减少K倍,为齐次性
FS1I 1R1510I 3AR21KI 2BS2+12V1-S1R4R3510+I I-S2S36vS3300D三 实验步骤:如图
E510DC 1. 将直流稳压电源调为6V,12V。注意切换开关位置;
2. 将S3开关拨向300Ω电阻,E1单独作用时,去掉E2,S2拨向短路测;
E2单独作用时,去掉E1,S1拨向短路测各支路电流;
及各元件电压,测E1, E2共同作用时,各支路电流I1 I2 I3 ,及各元件电压值。数据记入表4 – 1。
3. 将开关S3拨向二极管侧,重复2的内容,数据记入表4-2。
四:注意事项 :
1。注意仪表极性,量程;
2。记录数据时注意正负号;
3.E1单独作用时,E2不要短路
7 实验五 戴维南定理的验证
一 目的:掌握有源两端网络等效参数的测定方法,加深对戴维南定理的理解并验证该定理的正确性。
二 原理:任何一个线性有源两端网络,对外电路而定,总可以用一个理想的电压源和电阻和串联来代替R1R2AU0C10mAVRLR4R3R0RL。
12V
三 实验步骤:如图;
1 按图连线路,将电压源调为12V,电流源调为10mA可变电阻箱接入电路中RL,测UOC,ISC得到RO记入表中5 - 1;
2有源两端网络外特性的测定,调节电阻箱改变RL,数据记录表5-2 3 验证代维南定理:将稳压电源调致U0C;
1K 电位器调致R0数值,两者串联等效,再接上负载电阻箱,按步骤2测其外特性。数据记入表5 – 3。
4.用零示法测VOC。按图接好线路,在RL端接一可调稳压源,调整稳压源使安培表读数为零,电压表读数即为UOC 四 注意事项:
1 接线注意电源+-;
测量注意仪表量程;
2 改变线路时注意关掉电源
8 实验六 日光灯线路的联接及测量
一 实验目的
1 学会日光灯线路的接线方法 2 学会功率表的使用及接线方法
3 掌握测量交流电路元件等效参数的方法。
二 实验步骤:如图
*A*WL220VVRLS
1按图连结线路测W、U、I。VL、VR 2讨论:VR+ VL≠220V(交流) 为什么? 三 注意事项:
1 因电源为220V(交流) 接线注意安全 2 功率表注意电流串,电压并的原则。
3 电流表电压表注意量程
实验七 功率因数的提高
一 目的:理解提高功率因数的意义
掌握感性负载提高功率因数的意义、方法及原理;
ISI1RULICUICIC二 实验原理:
如图:K断开时,总电流 I = I1 ,COSΨ1=P/UI1
IL
K闭和时,总电流
I = I1+IC COSΨ=P/U(I1+IC)
∵I < I1 ∴COSΨ > COSΨ1
三 实验步骤:如图
*A*WSL220VC2C3SRLC1 1.按图连结线路;
电压调为220V。电容分别为0、2.2
4.7 6.9UF时,测量Pw、UV、IA、IL、IC值,数据记入表8 – 1。
2.说明提高功率因数的意义;
四 注意事项:
1.功率表的接线方法;
2.
注意仪表量程;
实验八 三相负载Y星接法
一 实验目的:
1. 掌握三相负载Y连接方法,
2. 验证三相负载对称情况下,Y接法时,线电压与相电压,线电流与相电流之间的关系。
3. 充分理解三相五线制供电,中线的作用。
二 实验原理:
Y形接法如图;
ASS BFULALSCFULAAN 对称负载,线电流 = 相电流IL = IP ,线电压UL = √3 UP In = O, 中线可以省去。不对称负载,中线电流≠O ,无中线时三相电压不对称,三相负载不能正常工作,故中线不能省去。
三 实验内容:
1. 将线电压调为220V,把三相灯负载接成Y形,分别测量UAB UBC UCA,UA0、UB0、UC0,IA、IB、IC、I0、及中点电压。
2. 了解中线的作用。
四.注意事项:
1. 注意安全;
不可带电接线,
2. 严格遵守先接线、后通电;
先断电、后拆线的操作要求。
实验九 三相负载Δ接法
一 实验目的:
1. 握三相负载Δ连接方法
2. 掌握三相负载对称情况下,Δ接法时,线电压与相电压,线电流与相电流之间的关系。
二 实验原理:
三相负载Δ接法时,线电压UL = UP ,
负载对称时,三相电压、电流对称,IL = √3 I P 负载不对称时,三相负载电流不对称 IL ≠√3¯ IP 三 实验内容:
SAS BSFU1LAFU2LDS1-3DS2-3AFU3LCNADS3-3
将线电压调为220V,把三相灯负载接成Δ形,负载对称和不对称时,分别测量Uab Ubc Uca ,Iab、Ibc、Ica、及Ia 、Ib、Ic 四.注意事项:
1.注意安全;
不可带电接线,
2.严格遵守先接线、后通电;
先断电、后拆线的操作要求。
3.防止短路事故。
12 实验八 三相交流电压.电流的测量
一实验目的:
1掌握三相负载Y.Δ的接线方法
2验证三相负载对称是Y.Δ接法时,各自的线电压,相电压,线电流,相电流方向的数值关系;
3熟悉三相四线制中线的作用;
二 原理:
1.三相负载Y形连接时,对称负载
IL = IP I0 = O 中线可以省去。
UL = √3UP 不对称负载;
电压不对称, I0 ≠ O 中线不能省去。
2.三相负载Δ形连接时,UL = UP ,对称负载 IL = √3IP
不对称负载;
IL ≠√3IP
三 实验步骤: 1. 2. 3. 将电源调为线电压220V(交流)
将三相灯负载接成Y,测UL、UP、IP、IN 将三相灯负载接成Δ,测UL、IL、IP 根据灯亮暗程度,注意电线的作用。
四 注意事项噶: 1注意安全。
2 Δ接法防止短路。
∽
13 实验九 三相异步电动机启动控制
一 实验目的:
1. 2. 3. 4. 熟悉电动机的铭牌数据并记录 熟悉电动机结构及各引线端 测量电机绕组与外壳的绝缘电阻 练习正确接线,直接起动及反转
二 原理:
见原理图:
A B CSWFUFRSB2SB1KM2KMKMKMFRM3
熟悉电动机的各项技术指标
掌握使用兆欧表的方法测量电动机绝缘电阻,熟悉电路图,用刀闸直接起动电动机
14 三 实验步骤:
1熟悉接触器。按钮。热继电器。电机等控制元件的构造,并记录其型号,规格。
2检查接触器。按扭的常开。常闭。触点是否正常 3按图连接线路
4启动电机。看是否运转正常。
四:注意事项:
1. 严禁带电操作
2. 测电机绝缘电阻时应将兆欧表引线端接触良好 3. 合电源刀闸时,应检查无误,并使刀闸接触良好4 。按电机铭牌所注额定电压和接线方式接线(Y△)
实验十 三相异步电动机正。反转控制系统
一 实验目的:
1学习三相异步电动机正。反转控制线路的连接。
2加深理解三相异步电动机正。反转控制线路的工作原理,及线路中“自锁”和“互锁”环节的作用。
A B CSWFUFRSB3SB1KM1KM2KM1KM1KM2SB2KM1KM2KM2FR二 原理:见原理图。三 实验步骤:
M3
1 按图连接线路,接成点动控制,再加自锁和互锁。使电动机正。反转运转正常。
四 注意事项:
1严禁带电操作
2连好线路要认真检查,防止短路。
《自动控制理论》实验课教案 实验名称:控制系统的MATLAB校正设计
指导教师:孙红鸽、吴翔
一、实验目的
1、学习通过对系统性能的分析,选择合适的校正方式,设计校正器模型;
2、学习通过matlab仿真,在时域和频域内对校正效果进行验证
3、学习通过通过模拟实验台搭接电路和校正器模型验证校正效果(增加)
二、实验仪器
仿真实验设备与软件:
(1)计算机 (2)MATLAB软件 模拟实验设备与器材:
⑴ 控制理论实验台 ⑵ 示波器 ⑶ 信号源 ⑷ 阻容元件
三、实验原理及方法
实验指导书内容同。
四、教学内容
1、原理讲述(任课教师讲述)
2、实验内容及要求
1).对未加校正装置时系统的性能进行分析,根据性能要求进行校正器模型的理论设计(要求课下完成);
2).Matlab仿真。
(1)观测校正前系统的时域、频域性能。
(2)观测校正后系统的时域、频域性能。
(3)对比(1)、(2)中的结果分析校正器性能,在保证校正效果的前提下并根据实验台实际参数进行校正器模型调整。最终确定校正器模型。
3).模拟实验。
(1)根据给定的系统模型和实验台实际参数搭接校正前的系统模拟电路。
(2)根据最终确定的校正器模型搭接校正器模拟电路
(3)用上位机软件观测系统时频域性能进行分析,验证是否满足设计要求;
4).对仿真实验和模拟实验的结果进行分析比较。
在以上内容部分包括了理论、仿真、模拟电路三部分,由于时间限制可能会有所取舍,建议在实验室里时,以模拟电路搭接为主,理论和仿真部分课下补全。(实际操作有点脱离本次试验大纲,但是为了让学生达到理论和实践的很好结合,以后预计按此进行修订,本次算是实验改革试验吧)
五、实验教学组织
1、先讲原理。
2、实验内容介绍。
3、提醒常出问题的地方:
程序编写应在M文档完成,
程序运行方式(两种:拷贝选取点击右键;
拷贝到程序窗口运行。), feedback命令的使用,程序中“;
”的使用等。
Figer()命令的使用以及多个图形在同一窗口显示的实现 参数的获取,分析
模拟部分问题较多,如运放坏、实际电阻电容值达不到标称值,加校正器后放大倍数的改变等。
4、实验报告要求:
A、统一使用chbcc-1软件中提供的实验报告模板,所有需要保存的图形均采用截屏键(视图最大化)。
B、实验报告每人交一份纸质稿同时提交电子稿 C、实验报告每组除实验数据相同外,实验结论及实验总结应有自己的见解。若同组内实验报告完全相同只给一半分数。
D、若非同组出现相同数据或实验报告完全一致,则所有相同者此次实验报告均为零分(特别强调)
E、若非同班内出现完全相同数据,则本门课程实验为零分。(特别强调)
六、实验教学的重点及难点
1、重点:原理的应用和能力的锻炼
2、难点:根据系统要求设计校正器模型
bode图判断系统稳定性的实际应用;
校正器模型的设计
七、实验中容易出现的问题
1、模拟电路中试验参数受到实验台限制,参数搭配取近似值。
2、通常将开环函数当做负反馈闭环函数使用。
3、图形正确,分析不到位,理解有难度
八、实验参考数据(例子)
本次实验数据,可以根据学生编制的程序运行出现。
例1:系统开环传递函数:Go(s)K
S(0.5S1)性能要求:Kv25,35,c10rad/s
1.MATLAB仿真部分
1.1根据实验四和实验七进行系统校正前的仿真时频域分析 由Kv25,确定K25,取K25 频域分析:
在Matlab软件中输入程序:g0=tf([25],[0.5 1 0]);bode(g)
绘制出校正前系统的伯德图如图9-2所示:
图9-2 校正前系统的伯德图
由图9-2中可知系统的性能不满足性能要求,需要校正。
时域分析:
输入程序为:gf=feedback(g0,1);
step(gf) 校正前闭环系统的阶跃响应曲线如图9-3所示:
图9-3校正前闭环系统的阶跃响应曲线
1.2将理论计算出的校正器模型引入,进行校正后的仿真时频域分析
频域分析:在Matlab软件中输入程序:gc=tf([0.4 1],[0.05 1]);g=g0*gc;bode(g0,g)
绘制出校正后系统的伯德图如图9-4所示:
图9-4校正后系统的伯德图
由图中可知系统的性能均满足性能要求,校正器模型合理。
时域分析:
输入程序为:gcf=feedback(g,1);
step(gcf) 校正后闭环系统的阶跃响应曲线如图9-5所示:
图9-5校正后闭环系统的阶跃响应曲线
从校正前后系统的阶跃响应曲线上显示的参数可见,系统性能得到了改善。
1.3对校正前后的系统性能进行对比分析,初步确定校正器模型。
仿真确定校正器模型为Gc(s)0.4S1
0.05S11.4校正器模型修订,根据实验台上可提供的电阻电容值对初定的校正器进行调整使得最终的校正器模型既满足系统的性能要求又能够在实验台上实现。
上面确定的控制模型可以在实验台实现,故不需要调整。
2.模拟部分
2.1根据给定的实验模型搭接校正前系统的模拟电路图 根据传递函数绘制系统模拟电路图如图9-6所示:
图9-6校正前系统的模拟电路图
根据Kv25,结合实验台实际数据图中取Rf1=510K,C1=1uF,R1=20K 2.2在实验台上按照上图连接电路,用“THBCC-1”软件观测校正前系统的阶跃响应。其响应曲线如图9-7所示:
图9-7 校正前系统的阶跃响应曲线
从图9-7中读取ts=4.1s,δ%=∆Y/Y1=1.71/5.75=29.7% 2.3搭接校正后系统的模拟电路图
控制系统的校正器的模拟电路图如图9-8所示:
图9-8 校正器的模拟电路图
根据校正器模型传递函数,图9-8中取:Rc1=400k,Rc2=510k,Cc1=1 uF,Cc2=0.1uF。
在实验台上搭接校正器的模拟电路图,并引入原系统,则校正后控制系统的模拟电路如图9-9所示:
图9-9 校正后控制系统的模拟电路图
2.4用“THBCC-1”软件观测校正后系统的阶跃响应,如图9-10所示
图9-10校正后闭环系统的阶跃响应曲线
从图中读取ts=1.8s,δ%=∆Y/Y1=0.07/5.75=1.2% 3.实验结果分析
由图9-
7、9-10进行分析。
4.适当调整校正装置的性能参数,重复上述实验,分析相应参数的改变对系统性能的影响。
九、实验结果检查方法
1、程序没时间检查,只看实验图形,结果错误要求学生自查程序,更改后查验;
2、实验图形完全正确,根据实验内容随机提出问题,回答正确者加分。
十、课堂实验预习检查题目
1、实验目的
2、实验原理及原理图
3、计算公式
4、实验步骤
5、数据记录表格
6、注意事项
实验课教案
课题
密度知识的应用
教时
1课时
(一) 教学目标:使学生初步学会运用密度知识分析和解决一些实际问题,懂得密度知识的实际应用。训练学生灵活运用所学物理知识解决实际问题的能力,培养学生进行科学思维的习惯。让学生知道密度知识在生活、生产、科学研究中有广泛的应用,培养理论联系实际的学风。
(二) 重点难点:
密度知识的应用和自编习题的训练。
(三) 教具、学具:铁丝、天平、刻度尺、铅笔、瓶、烧杯、量筒、水
(四) 教学过程:
1、由生活、生产实际引入密度可用来鉴别物质、求质量、算体积、选用不同密度的材料,科学研究中还能通过测密度发现新物质,100多年前,瑞利通过测气体密度发现了氩气。
2、密度公式的变形
m基本公式:ρ=
表示 单位体积某种物质的质量;
v变形公式:m=P V
表示 物体的质量等于它的密度乘它的体积;
V=m
表示 物体的体积等于它的质量除以它的密度。
3、例题分析:
课本人民英雄纪念碑的质量的计算;
4、实验思考:
① 指导学生阅读课文的内容,明确实验内容和要求;
② 启发学生拟定实验方案,选择器材;
③ 由学生进行实验,然后交流评价。
5、自编习题:
要求:注意文字叙述和数据要符合实际,语句通顺。
6、作业:
① p117作业5第1题
② 有一块金属,质量是6750千克,体积是2.5立方米,金属的密度是多少?这是一块什么金属? ③ 自编两道习题。
人类的朋友
教学目标:
1、学会分析“发面”的实验数据。
2、探究酵母菌在发面过程中的规律
3、酵母菌的适宜发酵温度在生活中的运用。 教学重、难点:
1、探究酵母菌在发面过程中的规律
2、通过实验,证明酵母菌在发面过程中的作用。 教学准备:
1、课件、小黑板;
2、面粉、酵母粉、温水、盆、量筒、烧杯、玻璃棒、直尺、计时器、温度计、显微镜、生物显微演示装置。 教学过程:
一、导入
同学们,看老师手上拿的是什么?(两个大小不一样的馍馍)这是老师用相同重量的面粉做成的,你们看了这两个馍馍后有没有什么想说的?(为什么一大一小)它们为什么有这样的特点呢?(酵母粉的多少,水温,揉面硬软程度等)同学们说的都非常好,这些因素都能够导致馍馍变得一大一小。今天我们就来实验探讨一下在酵母粉和面粉重量相同的情况下,水温不同,发面会有怎样的变化。
二、实验过程
过程一:面团会发胖吗?
1、清点实验用品并作安全提示。
2、把100克面粉和5克的酵母粉倒入盆中。
3、烧杯取60毫升温水,师生共同完成温水调配。(不同小组取水温度不一样并测量水温告诉记录员,记录员上黑板填写)。
4、把60毫升温水倒入盆中,操作员开始和面。
5、把面团揉捏成比量筒口稍细的圆柱状后,拍平面团两端,放入量筒内,还可以用玻璃棒按平面团,尽量使面团保持平实。
6、用直尺记录下面团的高度,观察面团的高度变化。 (开始0分钟的计时,刚才同学们在揉面团的时候有什么感受?你们虽然没看见酵母菌,但它们已经看见了你,你们想不想见一见酵母菌的真面目?)
过程二:观察酵母菌
1、发放课前制作的生物标本,每组的观察员按要求操作显微镜。(第一个5分钟)(提醒学生拿放载物片的时候要轻拿轻放)(记录员上黑板填写数据)
2、组织学生谈谈所看到的酵母菌是什么样子的,把看到的酵母菌样子画在随堂记录本上。(第二个5分钟记录员填写数据)
3、用“生物显微演示装置”把观察到的酵母菌图像放大到屏幕上,与学生画的作比较,出示酵母菌的相关图片。(第三个5分钟记录员填写数据)
过程三:
观察分析数据
请同学们认真仔细地观察表格中的数据,你们有没有什么发现?(学生不会的情况下教师引导,分横向和纵向引导,的出发面的最佳温度区间)
三、师生总结:
1、在一定温度内,随着时间的增加,和面水温越高的面团成长
的体积就越大。
2、超过一定水温,面团成长体积反而不如低水温面团成长体积。
四、拓展延伸
1、观察曲线图,得出酵母菌最佳的发酵温度。
2、以后逢年过节的时候,家家户户都可能利用面粉做发面,如果家里人
板书:
人类的朋友
酵母菌 发酵 30℃--40℃
授课教案
( 2016—2017学年度第一学期)
课程名称:
课程编码:
总学时:
课程类别:
任课教师:
开课单位:
职称:
授课专业:
授课班级:
64
数据结构 B13040009A 总学分:
专业课 李素若 计算机工程学院
教授 计算机科学与技术
2015级计算机科学与技术专业
1、2班
4 授课进度第3周,第6次课(2学时) 授课题目
(教学章、节实验一线性表的顺序存储结构 或主题)
授课日期
016年9月14日(9 2
月13日)
.掌握线性表顺序存储结构的特点:逻辑上相邻的数据元素其物理位置上也相邻。
1 2 .掌握线性表顺序存储结构的插入、删除操作特点移动操作。
教学
目标
1.线性表的顺序存储特点
教学 2.线性表的顺序存储的基本算法 重点
1.线性表的顺序存储的基本算法
教学 难点
请选择你授课时所采用的教学方法(在括号中画“√”):
讲授法﹝﹞,讨论法﹝﹞,演示法﹝﹞,案例法﹝﹞,发现法﹝﹞,探究法﹝﹞,
教学
谈话法﹝﹞,实验法﹝√﹞,参观法﹝﹞,考察法﹝﹞,自学辅导法﹝﹞,练习
方法
法(习题或操作课)﹝√﹞,读书指导法﹝﹞,听说法﹝﹞,写生法﹝﹞,视唱 法﹝﹞,工序法(技能课)﹝﹞,实习作业法﹝﹞,其他﹝﹞ 教学
实物﹝﹞,多媒体﹝﹞,投影﹝﹞,影像﹝﹞,CAI课件﹝﹞,PPT﹝√﹞,标本
手段
﹝﹞,挂图﹝﹞,模型﹝﹞,其他﹝﹞ 讨 论、思考 题、作业
[ 1]李素若,陈万华,游明坤主编.数据结构.北京:中国水利水电出版社,2014.[ 2]李素若,陈万华,游明坤主编.数据结构习题集及上机指导.北京:中国水利水 请选择你授课时所采用的教学手段(在括号中画“√”):
参考
电出版社,2014.文献
教学过程及内容
一、实验内容
.输入一组整型元素序列,建立顺序表。
1 2 .遍历该顺序表。
3 .在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。
.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。
4 .判断该顺序表中元素是否对称,对称返回1,否则返回0。
5 .输入整型元素序列利用有序表插入算法建立一个有序表。
6 .利用实验6建立两个递增有序表并把它们合并成一个递增有序表。
7
二、实验指导
1.参考程序为:
voidCreateSqList(SqList*L) { intn,i; do{ printf("请输入数据元素的个数:");
scanf("%d",&n);
if(nelem[i])); L>length=n;
} 2 .参考程序为:
voidPrintList(SqListL) { inti;
for(i=0;i
intFindelems(SqListL,ElemTypee) { inti;
for(i=0;i
return0;
} 4.分析:从顺序表表头开始扫描,当数据元素为偶数时就从该数开始往后查找,一旦
— 1—
教学过程及内容
找到奇数,则将该偶数与此奇数交换。顺序表中所有数据全部扫描结束后,所有奇数就排列 在表的前端。参考程序为:
voidChangeVal(SqList*L) { inti,j,temp;
for(i=0;ilength;i++) { if(L>elem[i]%2==0) { for(j=i+1;jlength;j++) {
if(L>elem[j]%2!=0) {
temp=L>elem[i];
L>elem[i]=L>elem[j]; L>elem[j]=temp; break; } } if(j==L>length)break; } } } 5.参考程序为:
intYesNo_Symmetry(SqListL) { inti,j;
j=L.length1; for(i=0;i
return0; } return1;
} 6 .参考程序为:
voidInsert_OrderList(SqList*L,intx) { inti,j;
for(i=0;ilength;i++) if(L>elem[i]>x)break; for(j=L>length1;j>=i;j)
— 2—
教学过程及内容
L>elem[j+1]=L>elem[j]; L>elem[i]=x; L>length++;
} voidCreate_OrderList(SqList*L) { intn,i,input; do{ printf("请输入数据元素的个数:"); scanf("%d",&n);
if(n
while(n
Insert_OrderList(L,input); } } 7 .参考程序为:
SqList*Merge_OrderList(SqListA,SqListB) //将有序顺序表A和B合并到有序顺序表C中返回 { inti=0,j=0,k=0;
SqList*C=(SqList*)malloc(sizeof(SqList)); C>length=0;
while(j
C>elem[i++]=A.elem[j++]; else C>elem[i++]=B.elem[k++];
} if(j==A.length)
while(kelem[i++]=B.elem[k++]; if(k==B.length) while(jelem[i++]=A.elem[j++]; C>length=i; returnC;
}
— 3— 授课进度第4周,第8次课(2学时) 授课题目
(教学章、节实验二单向链表 或主题)
授课日期
016年9月21日(9 2
月20日)
.掌握线性链表的操作特点,即指针是逻辑关系的映像。
1 .掌握动态产生单链表的方法。
2 3 .熟练掌握单链表的插入、删除操作特点,即指针赋值的先后次序。
教学
目标
1.掌握动态产生单链表的方法。
教学 2.熟练掌握单链表的插入、删除操作特点,即指针赋值的先后次序。
重点
1.熟练掌握单链表的插入、删除操作特点,即指针赋值的先后次序。
教学 难点
请选择你授课时所采用的教学方法(在括号中画“√”):
讲授法﹝﹞,讨论法﹝﹞,演示法﹝﹞,案例法﹝﹞,发现法﹝﹞,探究法﹝﹞,
教学
谈话法﹝﹞,实验法﹝√﹞,参观法﹝﹞,考察法﹝﹞,自学辅导法﹝﹞,练习
方法
法(习题或操作课)﹝√﹞,读书指导法﹝﹞,听说法﹝﹞,写生法﹝﹞,视唱 法﹝﹞,工序法(技能课)﹝﹞,实习作业法﹝﹞,其他﹝﹞ 教学
实物﹝﹞,多媒体﹝﹞,投影﹝﹞,影像﹝﹞,CAI课件﹝﹞,PPT﹝√﹞,标本
手段
﹝﹞,挂图﹝﹞,模型﹝﹞,其他﹝﹞ 讨 论、思考 题、作业
[ 1]李素若,陈万华,游明坤主编.数据结构.北京:中国水利水电出版社,2014.[ 2]李素若,陈万华,游明坤主编.数据结构习题集及上机指导.北京:中国水利水 请选择你授课时所采用的教学手段(在括号中画“√”):
参考
电出版社,2014.文献
教学过程及内容
一、实验内容
.随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。
1 .遍历单向链表。
2 3 .把单向链表中元素逆置(不允许申请新的结点空间)。
.在单向链表中删除所有的偶数元素结点。
4 5 .编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建 立一个非递减有序单向链表。
.利用实验5建立两个递增有序单向链表,然后合并成一个递增链表。
6 7 .利用实验1建立的链表,实现将其分解成两个链表,其中一个全部为奇数,另一个 全部为偶数(尽量利用已知的存储空间)。
二、实验指导
1.参考程序为:
LinkListCreateListH(void)//头插法产生带头结点单链表 { intch;
LinkListhead=(LinkList)malloc(sizeof(LNode)); LinkLists;
head>next=NULL;
while(scanf("%d",&ch)==1)//输入数据类型错误时结束单链表的生成 { s=(LinkList)malloc(sizeof(LNode)); s>data=ch;
s>next=head>next; head>next=s; } returnhead;
} LinkListCreateListRand(void)//利用随机函数产生带头结点单链表(头插法) { intch,i;
LinkListhead=(LinkList)malloc(sizeof(LNode)); LinkLists;
head>next=NULL;
srand((unsigned)time(NULL));
printf("PleaseinputCreateNnmbers:"); scanf("%d",&ch);
for(i=0;i
s>data=rand()%50;//随机产生0~49之间的数
— 1—
教学过程及内容
s>next=head>next; head>next=s; } returnhead; } 2 .参考程序为:
voidPrintLinkList(LNodeL) { LinkListp; p=L.next; while(p) { printf("%d",p>data); p=p>next; } printf("\\\\n"); } 3.参考程序为:
voidInverse_set(LinkListhead) { LNode*r,*m=NULL,*p; p=head>next; while(p!=NULL) { r=m;m=p; p=p>next; m>next=r; } head>next=m; } 4.参考程序为:
voidDelEvenLinkList(LinkListhead) { LinkListq,p; p=head>next; q=head;
while(p) { if(p>data%2==0) { q>next=p>next; free(p);
— 2—
教学过程及内容
p=q>next; } else { q=p;
p=p>next; } } } 5 .参考程序为:
voidInsertIncr(LinkListhead,ElemTypex) //将结点插入递增的单链表 { LinkListq,p,s;
s=(LinkList)malloc(sizeof(LNode)); s>data=x; q=head;
p=head>next;
while(p&&p>data
p=p>next; } s>next=q>next; q>next=s;
} LinkListCreateListIncr(void) //通过调用插入有序链表函数生成递增单链表 { intch;
LinkListhead=(LinkList)malloc(sizeof(LNode)); LinkLists;
head>next=NULL;
while(scanf("%d",&ch)==1)//输入数据类型错误时结束单链表的生成 InsertIncr(head,ch); returnhead; } 6 .参考程序为:
LinkListLinkListCat(LinkListhead1,LinkListhead2) { LinkListh1,h2,h;
LinkListhead=(LinkList)malloc(sizeof(LNode)); head>next=NULL;
— 3—
教学过程及内容
h1=head1>next; h2=head2>next; h=head; while(h1&&h2) { if(h1>datadata) { h>next=h1; h=h>next;
h1=h1>next; } else { h>next=h2; h=h>next; h2=h2>next; } } if(h1)h>next=h1; if(h2)h>next=h2; returnhead; } 7 .参考程序为:
# include # include # include typedefintElemType;//元素类型 typedefstructLNode { ElemTypedata; structLNode*next; } LNode,*LinkList;
voidPrintLinkList(LNodeL) { LinkListp;
p=L.next; while(p) { printf("%d",p>data); p=p>next;
— 4—
教学过程及内容
} printf("\\\\n");
} voidDecoLinkList(LNodehead,LinkListhead1,LinkListhead2) //将单链表head拆分奇数链head1和偶数链head2 { LinkListh,h1,h2;
h=head.next; h1=head1; h2=head2; while(h) { if(h>data%2==0) { h2>next=h; h=h>next; h2=h2>next; } else { h1>next=h; h=h>next; h1=h1>next; } } h1>next=NULL; h2>next=NULL; } main() { LinkListhead;
LinkListhead1=(LinkList)malloc(sizeof(LNode)); LinkListhead2=(LinkList)malloc(sizeof(LNode)); head=CreateListIncr();
PrintLinkList(*head);
DecoLinkList(*head,head1,head2); PrintLinkList(*head1); PrintLinkList(*head2);
}
— 5— 授课进度第5周,第10次课(2学时) 授课题目
(教学章、节实验三栈的存储及基本运算 或主题)
授课日期
016年9月28日(9 2
月27日)
.掌握栈这种数据结构特性及其主要存储结构,并能在现实生活中灵活运用。
1 2 .了解和掌握递归程序设计的基本原理和方法。
教学
目标
.掌握栈的两种存储结构 1 .栈的基本运算 教学 2 .了解栈在递归函数中的作用 重点 3 .掌握栈的两种存储结构 1 教学 2 .栈的基本运算 难点
请选择你授课时所采用的教学方法(在括号中画“√”):
讲授法﹝﹞,讨论法﹝﹞,演示法﹝﹞,案例法﹝﹞,发现法﹝﹞,探究法﹝﹞,
教学
谈话法﹝﹞,实验法﹝√﹞,参观法﹝﹞,考察法﹝﹞,自学辅导法﹝﹞,练习
方法
法(习题或操作课)﹝√﹞,读书指导法﹝﹞,听说法﹝﹞,写生法﹝﹞,视唱 法﹝﹞,工序法(技能课)﹝﹞,实习作业法﹝﹞,其他﹝﹞ 教学
实物﹝﹞,多媒体﹝﹞,投影﹝﹞,影像﹝﹞,CAI课件﹝﹞,PPT﹝√﹞,标本
手段
﹝﹞,挂图﹝﹞,模型﹝﹞,其他﹝﹞ 讨 论、思考 题、作业
[ 1]李素若,陈万华,游明坤主编.数据结构.北京:中国水利水电出版社,2014.[ 2]李素若,陈万华,游明坤主编.数据结构习题集及上机指导.北京:中国水利水 请选择你授课时所采用的教学手段(在括号中画“√”):
参考
电出版社,2014.文献
教学过程及内容
一、实验内容
.采用顺序存储实现栈的初始化、入栈、出栈操作。
1 2 .采用链式存储实现栈的初始化、入栈、出栈操作。
3 .写一个程序,将输入的十进制数据M转换为八进制数据M8,将其调试通过。在此 基础上修改程序,实现十进制数据M向N进制(2或8或16)的转换。
( 1)采用顺序存储结构实现栈。
( 2)采用链表结构实现栈。
二、实验指导
.参考程序为:
1 # include # include # defineStack_Size100 # defineOK 1 # defineERROR 0 typedefintElemType; typedefstructStack { ElemTypeelem[Stack_Size]; inttop;
//用来存放栈中元素的一维数组
//用来存放栈顶元素的下标
} SqStack;
intInitStack(SqStack**s)//初始化顺序栈 { ( *s)=(SqStack*)malloc(sizeof(SqStack));
if((*s)==NULL)returnERROR; (*s) >top=1; returnOK;
} intEmptyStack(SqStacks)//判断栈空 { if(s.top==1)
{ printf("stackisempty!\\\\n"); returnOK; } returnERROR;
} intGetTop(SqStacks,int*e)//取栈顶元算 { if(EmptyStack(s))returnERROR;
*e=s.elem[s.top];
— 1—
教学过程及内容
returnOK;
} intPush(SqStack*s,inte)//入栈 { if(s>top==Stack_Size1)
{ printf("stackisfull!\\\\n"); returnERROR; } s>top++;
s>elem[s>top]=e; returnOK;
} voidPrintStack(SqStacks)//打印栈中数据 { inti;
for(i=0;i
} intPop_Stack(SqStack*s,int*e)//出栈 { if(EmptyStack(*s))
returnERROR; *e=s>elem[s>top]; s>top; returnOK; } voidmain() { intcord,e,x,y; SqStack*s; do { printf("\\\\nMainMenu\\\\n"); printf("1CreatStack\\\\n"); printf("2GetTopElement\\\\n"); printf("3Push\\\\n"); printf("4Pop\\\\n"); printf("5Print\\\\n"); printf("6quit\\\\n"); scanf("%d",&cord);
— 2—
教学过程及内容
switch(cord) { case1:
InitStack(&s); break; case2:
if(GetTop(*s,&y))
printf("StackTop=[%d]\\\\n",y); break; case3:
printf("Pleaseinputpushelement:"); scanf("%d",&e); Push(s,e); break; case4:
if(Pop_Stack(s,&x))
printf("Popstack=[%d]\\\\n",x); break; case5:
PrintStack(*s); break;
case6:
return;
} } while(cord # include # defineStack_Size100 # # defineOK 1 # defineERROR 0 typedefintElemType; typedefstructstacknode { ElemTypedata;
structstacknode*next; } StackNode; typedefstruct { StackNode*top;/*栈顶指针*/ LinkStack; }
— 3—
教学过程及内容
voidInitStack(LinkStack*s)//初始化栈 { s>top=NULL;
} intEmptyStack(LinkStacks)//判断栈空 { if(s.top==NULL)returnOK;
elsereturnERROR;
} intGetTop(LinkStacks,int*e)//取栈顶元素 { if(EmptyStack(s))returnERROR; *e=s.top>data;
} voidPush(LinkStack*s,inte)//入栈 { StackNode*p=(StackNode*)malloc(sizeof(StackNode));
p>data=e;
p>next=s>top; s>top=p;
} intPop_Stack(LinkStack*s,int*e)//出栈 { StackNode*p;
if(EmptyStack(*s))returnERROR;
p=s>top; *e=p>data; s>top=p>next; free(p); returnOK;
} voidPrintStack(LinkStacks)//打印栈中元素 { StackNode*p=s.top; while(p) { printf("%d",p>data); p=p>next; } } voidmain()
— 4—
教学过程及内容
{ intcord,e,x,y; LinkStacks; do { printf("\\\\nMainMenu\\\\n"); printf("1CreatStack\\\\n"); printf("2GetTopElement\\\\n"); printf("3Push\\\\n"); printf("4Pop\\\\n"); printf("5Print\\\\n"); printf("6quit\\\\n"); scanf("%d",&cord); switch(cord) { case1:
InitStack(&s); break; case2:
if(GetTop(s,&y))
printf("StackTop=[%d]\\\\n",y); break; case3:
printf("Pleaseinputpushelement:"); scanf("%d",&e); Push(&s,e); case4: break;
if(Pop_Stack(&s,&x))
printf("Popstack=[%d]\\\\n",x); break; case5:
PrintStack(s); break;
case6:
return;
} } while(cord
— 5—
教学过程及内容
voidConversion(SqStack*S) { intN,n1,t;
printf("输入一个十进制数字:\\\\n");
scanf("%d",&N);//输入一个十进制数字
printf("输入要转换的n进制数字(
2、
8、16):\\\\n"); scanf("%d",&n1);//输入要转换的进制
while(N) { Push(S,N%n1); N=N/n1; } printf("该数转化为%d进制数为:\\\\t",n1); if(n1==16) { while(!EmptyStack(*S)) { Pop_Stack(S,&t); if(t==10){printf("A");continue;} if(t==11){printf("B");continue;} if(t==12){printf("C");continue;} if(t==13){printf("D");continue;} if(t==14){printf("E");continue;} if(t==15){printf("F");continue;} printf("%d",t);
} } else PrintStack(*S); } voidmain() { SqStack*S; InitStack(&S); Conversion(S); } (2)
voidConversion(LinkStack*S) { intN,n1,t;
printf("输入一个十进制数字:\\\\n");
scanf("%d",&N);//输入一个十进制数字
— 6—
教学过程及内容
printf("输入要转换的n进制数字(
2、
8、16):\\\\n"); scanf("%d",&n1);//输入要转换的进制 while(N) { Push(S,N%n1); N=N/n1; } printf("该数转化为%d进制数为:\\\\t",n1); if(n1==16) { while(!EmptyStack(*S)) { Pop_Stack(S,&t); if(t==10){printf("A");continue;} if(t==11){printf("B");continue;} if(t==12){printf("C");continue;} if(t==13){printf("D");continue;} if(t==14){printf("E");continue;} if(t==15){printf("F");continue;} printf("%d",t);
} } else PrintStack(*S); } voidmain() { LinkStackS; InitStack(&S); Conversion(&S); }
— 7— 授课进度第8周,第14次课(2学时) 授课题目
(教学章、节实验四队列 或主题)
授课日期
016年10月19日(10 2
月18日)
.掌握队列这种数据结构的逻辑特性及其主要存储结构。
1 2 .在简单情况下会使用顺序结构的实现队列,熟练掌握循环队列的使用。
.在复杂情况下会使用链表结构的队列,并能在现实生活中灵活运用。
3 教学
目标
1.熟练掌握循环队列的使用。
教学 2.在复杂情况下会使用链表结构的队列。
重点
1.链队列的使用。
教学 难点
请选择你授课时所采用的教学方法(在括号中画“√”):
讲授法﹝﹞,讨论法﹝﹞,演示法﹝﹞,案例法﹝﹞,发现法﹝﹞,探究法﹝﹞,
教学
谈话法﹝﹞,实验法﹝√﹞,参观法﹝﹞,考察法﹝﹞,自学辅导法﹝﹞,练习
方法
法(习题或操作课)﹝√﹞,读书指导法﹝﹞,听说法﹝﹞,写生法﹝﹞,视唱 法﹝﹞,工序法(技能课)﹝﹞,实习作业法﹝﹞,其他﹝﹞ 教学
实物﹝﹞,多媒体﹝﹞,投影﹝﹞,影像﹝﹞,CAI课件﹝﹞,PPT﹝√﹞,标本
手段
﹝﹞,挂图﹝﹞,模型﹝﹞,其他﹝﹞ 讨 论、思考 题、作业
[ 1]李素若,陈万华,游明坤主编.数据结构.北京:中国水利水电出版社,2014.[ 2]李素若,陈万华,游明坤主编.数据结构习题集及上机指导.北京:中国水利水 请选择你授课时所采用的教学手段(在括号中画“√”):
参考
电出版社,2014.文献
教学过程及内容
一、实验内容
.采用顺序存储实现循环队列的初始化、入队、出队操作。
1 2 .采用链式存储实现队列的初始化、入队、出队操作。
3 .编写一个程序,使用两个链队q1和q2,用来分别存储由计算机随机产生的20个 100以内的奇数和偶数,然后每行输出q1和q2的一个值,即奇数和偶数配对输出,直到任 一队列为空为止。
二、实验说明
.循环队列类型采用如下结构:
1 defineMAXSIZE100//最大队列长度 # typedefintElemType; typedefstruct{ ElemTypedata[MAXSIZE]; intfront,rear;//队头、队尾指针
SqQueue; } .链队类型采用如下结构:
2 typedefstructQNode { ElemTypedata; structQNode*next;
QNode,*QueuePtr; } typedefstruct { QueuePtrfront; QueuePtrrear;
LinkQueue; }
三、实验指导
1.参考程序为:
intInitQueue(SqQueue**Q)//初始化循环队列 { * Q=(SqQueue*)malloc(sizeof(SqQueue)); if(!(*Q))
return0;
*Q)>front=(*Q)>rear=0; ( return1;
} intQueueEmpty(SqQueueQ)//判断队空 { returnQ.front==Q.rear;
}
— 1—
教学过程及内容
intQueueFull(SqQueueQ)//判断队满 { return(Q.rear+1)%MAXSIZE==Q.front;
} intEnQueue(SqQueue*Q,ElemTypee)//入队操作 { if(QueueFull(*Q))
/队列满 return0; /Q>data[Q>rear]=e;
Q>rear=(Q>rear+1)%MAXSIZE; return1;
} intDeQueue(SqQueue*Q,ElemType*e)//出队操作 { if(QueueEmpty(*Q)) return0; else { *e=Q>data[Q>front];
Q>front=(Q>front+1)%MAXSIZE; return1; } } 2 .参考程序为:
intInitQueue(LinkQueue*Q)//将Q初始化为一个空的链队列 { Q>front=Q>rear=(QueuePtr)malloc(sizeof(QNode));
if(Q>front==NULL)
return0;
Q>front>next=NULL; return1;
} intQueueEmpty(LinkQueueQ)//判断队空 { returnQ.front==Q.rear;
} intEnQueue(LinkQueue*Q,ElemTypee)//入队操作 { QueuePtrp;
p=(QueuePtr)malloc(sizeof(QNode)); if(!p)
return0;
— 2—
教学过程及内容
p>data=e;
p>next=NULL; Q>rear>next=p; Q>rear=p; return1;
} intDeQueue(LinkQueue*Q,ElemType*e)//出队操作 { QueuePtrp;
if(QueueEmpty(*Q)) return0;//若队列Q为空队列 p=Q>front>next;
*e=p>data;
Q>front>next=p>next; if(Q>rear==p)
Q>rear=Q>front;//若Q只有一个结点 free(p); return1;
} 3 .参考程序为:
intmain() { LinkQueueq1,q2; inti=0,j=0,num; InitQueue(&q1); InitQueue(&q2);
srand((unsigned)time(NULL)); while(i
— 3—
教学过程及内容
{ DeQueue(&q1,&i);DeQueue(&q2,&j); printf("%3d%3d\\\\n",i,j);
} free(q1.front); free(q2.front); return0;
}
— 4— 授课进度 授课题目 第9周,第16次课(2学时) 授课日期
016年10月26日(10 2
月25日)
(教学章、节实验五二叉树(Ⅰ) 或主题) .掌握二叉树的存储实现。
1 .掌握二叉树的遍历思想。
2 教学
目标
.掌握二叉树的存储实现。
1 .掌握二叉树的遍历思想。
教学 2 重点
1.掌握二叉树的遍历思想。
教学 难点
请选择你授课时所采用的教学方法(在括号中画“√”):
讲授法﹝﹞,讨论法﹝﹞,演示法﹝﹞,案例法﹝﹞,发现法﹝﹞,探究法﹝﹞,
教学
谈话法﹝﹞,实验法﹝√﹞,参观法﹝﹞,考察法﹝﹞,自学辅导法﹝﹞,练习
方法
法(习题或操作课)﹝√﹞,读书指导法﹝﹞,听说法﹝﹞,写生法﹝﹞,视唱 法﹝﹞,工序法(技能课)﹝﹞,实习作业法﹝﹞,其他﹝﹞ 教学
实物﹝﹞,多媒体﹝﹞,投影﹝﹞,影像﹝﹞,CAI课件﹝﹞,PPT﹝√﹞,标本
手段
﹝﹞,挂图﹝﹞,模型﹝﹞,其他﹝﹞ 讨 论、思考 题、作业
[ 1]李素若,陈万华,游明坤主编.数据结构.北京:中国水利水电出版社,2014.[ 2]李素若,陈万华,游明坤主编.数据结构习题集及上机指导.北京:中国水利水 请选择你授课时所采用的教学手段(在括号中画“√”):
参考
电出版社,2014.文献
教学过程及内容
一、实验内容
1.数据域为字符的一棵二叉树用广义表形式输入,创建一个采用二叉链表存储的二叉 树,并按广义表的形式输出这棵二叉树。
.在实验1的基础上完成这棵二叉树的中序遍历的递归算法。
2 .在实验1的基础上完成这棵二叉树的中序遍历的非递归算法。
3
二、实验指导
.参考代码为:
1 # defineMaxSize100 voidCreateBTNode(BTree*b,char*str) //广义表形式输入二叉树,按二叉链表存储二叉树 { BTNode*St[MaxSize],*p=NULL; inttop=1,k,j=0;
charch; *b=NULL; ch=str[j]; while(ch!="\\\\0") { switch(ch) { case"(":top++;St[top]=p;k=1;break; case")":top;break; case",":k=2;break; default:p=(BTNode*)malloc(sizeof(BTNode));
p>data=ch;p>lchild=p>rchild=NULL; if(*b==NULL) *b=p; else { switch(k) { case1:St[top]>lchild=p;break; case2:St[top]>rchild=p;break; } } } j++;
ch=str[j]; } } voidDispBTNode(BTNode*b)//广义表输出二叉树
— 1—
教学过程及内容
{ if(b!=NULL) { printf("%c",b>data);
if(b>lchild!=NULL||b>rchild!=NULL) { printf("(");
DispBTNode(b>lchild);
if(b>rchild!=NULL)printf(","); DispBTNode(b>rchild); printf(")"); } } } 2 .参考代码为:
voidInOrder(BTreeT)//中序递归遍历 { if(T) { InOrder(T>lchild);/*中遍历左子树*/ printf("%3c",T>data);/*访问根结束*/
InOrder(T>rchild); } } 3 .参考代码为:
voidInOrder1(BTreeT)//非递归中序遍历 { SqStack*S;BTreeP=T;
InitStack(&S); do{
/*从树或子树根出发往左到叶子*/ while(P){ Push(S,P); P=P>lchild; } if(S>top!=1){/*P为NULL要么是叶子,要么是没有左子树*/
Pop(S,&P);
printf("%3c",P>data); P=P>rchild;
} } while((S>top!=1)||P); }
/*中根遍历右子树*/
— 2— 授课进度第11周,第20次课(2学时) 授课题目
(教学章、节实验五二叉树(Ⅱ) 或主题) .二叉树的常用算法。
1 2 .二叉树线索化及遍历。
授课日期
016年11月9日(11 2
月8日)
教学 目标
1.二叉树的常用算法。
教学 重点
1.二叉树的常用算法。
教学 难点
请选择你授课时所采用的教学方法(在括号中画“√”):
讲授法﹝﹞,讨论法﹝﹞,演示法﹝﹞,案例法﹝﹞,发现法﹝﹞,探究法﹝﹞,
教学
谈话法﹝﹞,实验法﹝√﹞,参观法﹝﹞,考察法﹝﹞,自学辅导法﹝﹞,练习
方法
法(习题或操作课)﹝√﹞,读书指导法﹝﹞,听说法﹝﹞,写生法﹝﹞,视唱 法﹝﹞,工序法(技能课)﹝﹞,实习作业法﹝﹞,其他﹝﹞ 教学
实物﹝﹞,多媒体﹝﹞,投影﹝﹞,影像﹝﹞,CAI课件﹝﹞,PPT﹝√﹞,标本
手段
﹝﹞,挂图﹝﹞,模型﹝﹞,其他﹝﹞ 讨 论、思考 题、作业
[ 1]李素若,陈万华,游明坤主编.数据结构.北京:中国水利水电出版社,2014.[ 2]李素若,陈万华,游明坤主编.数据结构习题集及上机指导.北京:中国水利水 请选择你授课时所采用的教学手段(在括号中画“√”):
参考
电出版社,2014.文献
教学过程及内容
一、实验内容
.求二叉树的宽度。
1 2 .求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。
.输出二叉树中从每个叶子结点到根结点的路径。
3 4 .建立前序线索二叉树,并实现前序遍历。
二、实验指导
1.参考代码为:
intBTWidth(BTNode*b)//求二叉树宽度 { struct {
/结点的层次编号 intlno; /BTNode*p; //结点指针
Qu[MaxSize];//定义顺序非循环队列 } intfront,rear;
//定义队首和队尾指针
intlnum,max,i,n;
front=rear=0;//置队列为空
if(b!=NULL) { rear++;
//根结点指针入队 Qu[rear].p=b;
Qu[rear].lno=1; //根结点的层次编号为1
//队列不为空 while(rear!=front)
{ front++;
b=Qu[front].p;
//队头出队 //左孩子入队 lnum=Qu[front].lno; if(b>lchild!=NULL) { rear++; Qu[rear].p=b>lchild; Qu[rear].lno=lnum+1; } if(b>rchild!=NULL) { rear++; Qu[rear].p=b>rchild; Qu[rear].lno=lnum+1; } }
— 1— //右孩子入队
教学过程及内容
max=0;lnum=1;i=1; while(i
while(i
/求每层的结点数 n++;i++; /} lnum=Qu[i].lno; if(n>max)max=n; } returnmax; } else return0; } 2 .参考代码为:
intBTNodeDepth(BTNode*b)//求二叉树b的深度 { intlchilddep,rchilddep;
if(b==NULL) return(0); else { lchilddep=BTNodeDepth(b>lchild);//左子数的高度 rchilddep=BTNodeDepth(b>rchild);//右子树的高度
return(lchilddep>rchilddep)?(lchilddep+1):(rchilddep+1); } } voidLong(BTreeT) { if(T!=NULL)//在T不为空的情况下
{ printf("%3c",T>data);//访问节点
if(BTNodeDepth(T>lchild)>BTNodeDepth(T>rchild))//判断往左走还是往右走 Long(T>lchild); else Long(T>rchild); } } 3.参考代码为:
— 2—
教学过程及内容
voidPrintStack(SqStack*S)//使用线性栈辅助操作 { inti;
for(i=0;itop;i++) printf("%3c",S>elem[i]); printf("\\\\n");
} voidAllPath(BTreeT,SqStack*S)//输出二叉树上从根到所有叶子结点的路径 { charch; if(T) { Push(S,T>data); if(!T>lchild&&!T>rchild)//如果左指针和右指针同时为空,才说明该节点为叶子节
点
PrintStack(S); else { AllPath(T>lchild,S); AllPath(T>rchild,S); } Pop(S,&ch); } } 4.参考代码为:
BiThrTreepre;
voidPreThreading(BiThrTreep)//先序线索化 { if(p) { if(!p>lchild)
{ p>LTag=Thread;
p>lchild=pre; //前驱线索 } if(!pre>rchild)
{ pre>RTag=Thread;
pre>rchild=p; //后继线索 } pre=p; if(p>LTag==Link)
PreThreading(p>lchild);//左子树线索化 if(p>RTag==Link)
— 3—
教学过程及内容
PreThreading(p>rchild);//右子树线索化
} } BiThrTreePreOrderThreading(BiThrTreeT)//先序线索二叉树 { BiThrTreethrt; if(!(thrt=(BiThrTree)malloc(sizeof(BiThrNode))))
returnNULL; thrt>LTag=Link;
thrt>RTag=Thread;//建头结点 thrt>rchild=thrt;//右指针回指 if(!T) thrt>lchild=thrt;//空二叉树 else { thrt>lchild=T; pre=thrt;
PreThreading(T);//先序遍历进行先序线索化
pre>rchild=thrt;pre>RTag=Thread;//最后一个结点线索化 thrt>rchild=pre; } returnthrt;
} voidPreOrderTraverse_Thr(BiThrTreethrt)//先序遍历二叉树 { BiThrTreep;
printf("先序遍历结果为:"); p=thrt>lchild; while(p!=thrt) { printf("%3c",p>data); while(p>LTag==Link) { p=p>lchild;
printf("%3c",p>data); } p=p>rchild; } printf("\\\\n"); }
— 4— 授课进度第13周,第24次课(2学时) 授课题目
(教学章、节实验六哈夫曼树 或主题)
授课日期
016年11月23日(11 2
月22日)
.理解哈夫曼树的特征及其应用。
1 .在对哈夫曼树进行理解的基础上,构造哈夫曼树,并用构造的哈夫曼树进行编 2 码和译码。
教学 目标 3.通过该实验,使学生对数据结构的应用有更深层次的理解。
1.哈夫曼树构造。
教学 2.哈夫曼编码和译码。
重点
1.哈夫曼树构造。
教学 难点
请选择你授课时所采用的教学方法(在括号中画“√”):
讲授法﹝﹞,讨论法﹝﹞,演示法﹝﹞,案例法﹝﹞,发现法﹝﹞,探究法﹝﹞,
教学
谈话法﹝﹞,实验法﹝√﹞,参观法﹝﹞,考察法﹝﹞,自学辅导法﹝﹞,练习
方法
法(习题或操作课)﹝√﹞,读书指导法﹝﹞,听说法﹝﹞,写生法﹝﹞,视唱 法﹝﹞,工序法(技能课)﹝﹞,实习作业法﹝﹞,其他﹝﹞ 教学
实物﹝﹞,多媒体﹝﹞,投影﹝﹞,影像﹝﹞,CAI课件﹝﹞,PPT﹝√﹞,标本
手段
﹝﹞,挂图﹝﹞,模型﹝﹞,其他﹝﹞ 讨 论、思考 题、作业
[ 1]李素若,陈万华,游明坤主编.数据结构.北京:中国水利水电出版社,2014.[ 2]李素若,陈万华,游明坤主编.数据结构习题集及上机指导.北京:中国水利水 请选择你授课时所采用的教学手段(在括号中画“√”):
参考
电出版社,2014.文献
教学过程及内容
一、实验内容
1.哈夫曼树问题。
利用哈夫曼编码进行通讯可以大大提高信道利用率,缩短信息传输时间,降低传输成本。
但是,这要求在发送端通过一个编码系统对待传数据进行预先编码;
在接受端将传来的数据 进行解码(复原)对于双工信道(即可以双向传输的信道),每端都要有一个完整的编/译码 系统。试为这样的信息收发站写一个哈夫曼的编译码系统。
基本要求;
(1 )从终端读入字符集大小为n(即字符的个数),逐一输入n个字符和相应的n个权 值(即字符出现的频度),建立哈夫曼树,进行编码,最后输出并存于文件hfmtree中。
2)利用已建好的哈夫曼编码文件hfmtree,对键盘输入的正文进行译码。输出字符正 (
文,再输出该文的二进制码。
3)测试数据。
(
用表2.1中给出的字符集(n=27)和频度的实际统计数据建立哈夫曼树。
表2.1用于测试的字符集合频度
并实现以下报文的译码和输出:“THISPROGRAMISMYFAVORITE”。
2.思考题:利用哈夫曼树及哈夫曼编码的原理编写一个算法,n个自然数之间经过加 减运算后结果最小的值是多少。注意:只能进行加减运算,且最后结果和运算的中间结果不 能为负。
二、实验指导
# include # include # include # include typedefstruct unsignedint unsignedint {
weight; parent,lchild,rchild;
} HTNode,*HuffmanTree; typedefchar **HuffmanCode; typedefstruct{ unsignedint s1; unsignedint s2;
} MinCode;
MinCodeSelect(HuffmanTreeHT,unsignedintn);
HuffmanCodeHuffmanCoding(HuffmanTree*H1,unsignedint*w,char*ch,unsignedintn) //求哈夫曼树及哈夫曼编码,将哈夫曼编码写入文本文件 {
— 1—
教学过程及内容
unsignedinti,s1=0,s2=0; HuffmanTreep,HT; HuffmanCodeHC; char *cd; unsignedintf,c,start,m; MinCodemin; FILE*fp;
if((fp=fopen("Huffman.txt","wt"))==NULL) { printf("CannotopenfileHuffman.txtanykeyexit!"); exit(1); } if(n
HT=(HuffmanTree)malloc((m+1)*sizeof(HTNode)); for(p=HT,i=0;iweight=*w;p>parent=0; p>lchild=0;p>rchild=0; } for(;iweight=0;p>parent=0; p>lchild=0;p>rchild=0;
} for(i=n+1;i
HT[s1].parent=i;HT[s2].parent=i; HT[i].lchild=s1;HT[i].rchild=s2;
HT[i].weight=HT[s1].weight+HT[s2].weight;
} HC=(HuffmanCode)malloc((n+1)*sizeof(char*)); cd=(char*)malloc(n*sizeof(char*)); cd[n1]="\\\\0"; for(i=1;i
if(HT[f].lchild==c)cd[start]="0";
— 2—
教学过程及内容
elsecd[start]="1";
HC[i]=(char*)malloc((nstart)*sizeof(char)); strcpy(HC[i],&cd[start]); } free(cd);
for(i=1;i
} MinCodeSelect(HuffmanTreeHT,unsignedintn) //求权值的最小值和次最小值 { unsignedintmin,secmin; unsignedinttemp; unsignedinti,s1,s2; MinCodecode; s1=1;s2=1;
for(i=1;i
} for(;i
s2=i; break;
} for(i=1;i
— 3—
教学过程及内容
s2=i;
} code.s1=s1; code.s2=s2; returncode;
} voidTranscodeing(intn,char*Char_Code,char*Huffman_Code) //从文本文件中读取哈夫曼编码,并字符编码转为哈夫曼编码 { FILE*fp;
charstr[215],ch[50]={"\\\\0"}; HuffmanCodeHC=NULL; inti=0,len,j,k;
HC=(HuffmanCode)malloc((n+1)*sizeof(char*)); if((fp=fopen("Huffman.txt","rt"))==NULL) { printf("CannotopenfileHuffman.txtanykeyexit!"); exit(1); } while(!feof(fp)) { memset(str,0,sizeof(str)); fgets(str,215,fp); if(str[0]==0)break; len=strlen(str); ch[i]=str[0];
HC[i]=(char*)malloc((len1)*sizeof(char*)); memcpy(HC[i],&str[1],len2); HC[i][len2]=0; i++; } fclose(fp); i=0;k=0;
while(Char_Code[i]!="\\\\0") { for(j=0;j
— 4—
教学过程及内容
free(HC); } intmain() { HuffmanTreeHT=NULL; HuffmanCodeHC=NULL; unsignedint*w=NULL,i,n;
charch[50]={"\\\\0"},Huffman_Code[1024]={"\\\\0"};
charChar_Code[]="THISPROGRAMISMYFAVORITE"; printf("Inputn:\\\\n"); scanf("%d",&n);
w=(unsignedint*)malloc((n+1)*sizeof(unsignedint)); w[0]=0;
printf("Enterweight,character:\\\\n"); for(i=1;i
Transcodeing(n,Char_Code,Huffman_Code); printf("%s\\\\n",Huffman_Code); free(w); return0; }
— 5— 授课进度第14周,第26次课(2学时) 授课题目
(教学章、节实验七图的遍历(Ⅰ) 或主题)
授课日期
016年11月30日(11 2
月29日)
.掌握图常用的邻接矩阵存储存储结构。
1 .掌握图的邻接矩阵存储结构上的两种遍历图的方法,即深度优先遍历和广度优 2 先遍历。
教学 目标
1.图的邻接存储结构。
教学 2.图的邻接矩阵存储结构下的两种遍历。
重点
1.图的邻接矩阵存储结构下的两种遍历。
教学 难点
请选择你授课时所采用的教学方法(在括号中画“√”):
讲授法﹝﹞,讨论法﹝﹞,演示法﹝﹞,案例法﹝﹞,发现法﹝﹞,探究法﹝﹞,
教学
谈话法﹝﹞,实验法﹝√﹞,参观法﹝﹞,考察法﹝﹞,自学辅导法﹝﹞,练习
方法
法(习题或操作课)﹝√﹞,读书指导法﹝﹞,听说法﹝﹞,写生法﹝﹞,视唱 法﹝﹞,工序法(技能课)﹝﹞,实习作业法﹝﹞,其他﹝﹞ 教学
实物﹝﹞,多媒体﹝﹞,投影﹝﹞,影像﹝﹞,CAI课件﹝﹞,PPT﹝√﹞,标本
手段
﹝﹞,挂图﹝﹞,模型﹝﹞,其他﹝﹞ 讨 论、思考 题、作业
[ 1]李素若,陈万华,游明坤主编.数据结构.北京:中国水利水电出版社,2014.[ 2]李素若,陈万华,游明坤主编.数据结构习题集及上机指导.北京:中国水利水 请选择你授课时所采用的教学手段(在括号中画“√”):
参考
电出版社,2014.文献
教学过程及内容
一、实验内容
图的邻接矩阵存储结构如下:
#defineMaxVerNum100//设置邻接矩阵的最大顶点数 typedefcharVertexType;//设置图的顶点信息为字符
//设置边上权值为整型 typedefintEdgeType;
typedefstruct{ VertexTypevexs[MaxVerNum];//图的顶点信息表
EdgeTypeedges[MaxVerNum][MaxVerNum];//图的邻接矩阵
//图的顶点数和边数 intn,e;
MGraph;//图的邻接矩阵表示结构定义 } 1.键盘输入数据,建立一个图的邻接矩阵,并进行图的深度优先遍历和广度优先遍历。
二、实验指导
.参考代码为:
1 # include # include # defineMaxVerNum100//设置邻接矩阵的最大顶点数 typedefcharVertexType;//设置图的顶点信息为整型
//设置边上权值为整型 typedefintEdgeType;
typedefstruct{ VertexTypevexs[MaxVerNum];//图的顶点信息表
EdgeTypeedges[MaxVerNum][MaxVerNum];//图的邻接矩阵
//图的顶点数和边数 intn,e;
MGraph;//图的邻接矩阵表示结构定义 } typedefenum{FALSE,TRUE}boolean; booleanvisited[MaxVerNum];//顶点访问标记向量 structlinkqueuenode { intdata; structlinkqueuenode*next; } ;
typedefstruct { structlinkqueuenode*front; structlinkqueuenode*rear; linkque; } voidInitQueue(linkque*q) { structlinkqueuenode*p; p=(structlinkqueuenode*)malloc(sizeof(structlinkqueuenode)); p>next=NULL;
— 1—
教学过程及内容
q>front=p;q>rear=p;
} intQueueEmpty(linkqueq) { inti;
if(q.front==q.rear)i=1; elsei=0; return(i); } voidEnQueue(linkque*q,intx) { structlinkqueuenode*p; p=(structlinkqueuenode*)malloc(sizeof(structlinkqueuenode)); p>data=x;p>next=NULL; if(QueueEmpty(*q)) { q>front>next=p; q>rear=p; } else { q>rear>next=p; q>rear=p; } } intDeQueue(linkque*q,int*x) { structlinkqueuenode*p;
if(QueueEmpty(*q)){printf("queueisempty!\\\\n");return(0);} else { p=q>front>next; *x=p>data;
q>front>next=p>next; if(p>next==NULL)
q>rear=q>front; free(p);
return(1); } } linkqueQ;
voidCreateMGraph(MGraph*g)//建立图g的邻接矩阵表示
— 2—
教学过程及内容
{ inti,j,k,w; intflag;
printf("创建:有限图选0,无向图选1\\\\n");
scanf("%d",&flag);
printf("请输入顶点数和边数(格式为:顶点数,边数)\\\\n"); scanf("%d,%d",&g>n,&g>e);
printf("输入顶点的信息,每个顶点以回车作为结束:\\\\n"); for(i=0;in;i++) { getchar();
scanf("%c",&(g>vexs[i])); }
/将邻接矩阵数组初始化 for(i=0;in;i++) /for(j=0;jn;j++) g>edges[i][j]=0;//图的遍历算法初始化该值为0 for(k=0;ke;k++) { printf("输入顶点号i,顶点号j,权值w(非网图权值为1):\\\\n"); scanf("%d,%d,%d",&i,&j,&w); g>edges[i][j]=w;
//构造无向图 if(flag)
g>edges[j][i]=w;
} } voidDFSM(MGraph*g,inti) //对以邻接矩阵表示的图,以序号为i的顶点为出发点进行深度优先搜索 { intj;
printf("%c",g>vexs[i]);//访问序号为i的顶点 visited[i]=TRUE;//将序号为i的顶点设置访问过标记 for(j=0;jn;j++)//扫描邻接矩阵的第i行,做以下操作
if((g>edges[i][j]!=0)&&(!visited[j]))//寻找序号为i的顶点的未访问过的邻接点 设序号为j) (
{ printf(">");
DFSM(g,j);//以序号为j的顶点为出发点进行深度优先搜索 } } voidDFSMTraverse(MGraph*g,intstart) //对以邻接矩阵表示的图,从最初顶点start出发进行深度优先搜索 { inti;
for(i=0;in;i++)//将图的所有顶点设置为未访问过
— 3—
教学过程及内容
visited[i]=FALSE; DFSM(g,start);//对图进行深度优先搜索 printf("\\\\n");
} voidBFSM(MGraph*g,intk) //对以邻接矩阵表示的图,以序号为k的顶点为出发点进行广度优先搜索 { inti,j;
InitQueue(&Q);
printf("%c",g>vexs[k]);//访问序号为k的顶点 visited[k]=TRUE;//将序号为k是结点设置为已访问过 EnQueue(&Q,k);//将序号为k的顶点入队 while(!QueueEmpty(Q)) { DeQueue(&Q,&i);
for(j=0;jn;j++)//寻找序号为i顶点的邻接点,并做如下处理
if((g>edges[i][j]!=0)&&(!visited[j]))
//若序号为i的顶点有未访问过邻接点 { printf(">%c",g>vexs[j]);//访问序号为j的顶点 visited[j]=TRUE;//设置序号为j的顶点访问过标记 EnQueue(&Q,j);//将序号为j的顶点入队 } } } voidBFSMTraverse(MGraph*g,intstart) //对以邻接矩阵表示的图,从最初顶点start开始进行广度优先搜索 { inti;
for(i=0;in;i++)//将所有顶点设置为未访问过 visited[i]=FALSE; BFSM(g,start);//对邻接矩阵表示的图进行广度优先搜索 printf("\\\\n");
} voidmain() { MGraph*g=(MGraph*)malloc(sizeof(MGraph));//申请图g的邻接矩阵表示空间 CreateMGraph(g);//建立图
DFSMTraverse(g,0);//从顶点0出发进行图的深度搜索遍历 BFSMTraverse(g,0);//从顶点0出发进行图的广度搜索遍历 }
— 4— 授课进度 授课题目 第15周,第28次课(2学时) 授课日期
016年12月7日(12 2
月6日)
(教学章、节实验七图的遍历(Ⅱ) 或主题) .掌握图常用的邻接表存储存储结构。
1 .掌握图的邻接表存储结构上的两种遍历图的方法,即深度优先遍历和广度优先 2 遍历。
教学 目标
1.图的邻接表存储结构。
教学 2.图的邻接表存储结构下的两种遍历。
重点
1.图的邻接表存储结构下的两种遍历。
教学 难点
请选择你授课时所采用的教学方法(在括号中画“√”):
讲授法﹝﹞,讨论法﹝﹞,演示法﹝﹞,案例法﹝﹞,发现法﹝﹞,探究法﹝﹞,
教学
谈话法﹝﹞,实验法﹝√﹞,参观法﹝﹞,考察法﹝﹞,自学辅导法﹝﹞,练习
方法
法(习题或操作课)﹝√﹞,读书指导法﹝﹞,听说法﹝﹞,写生法﹝﹞,视唱 法﹝﹞,工序法(技能课)﹝﹞,实习作业法﹝﹞,其他﹝﹞ 教学
实物﹝﹞,多媒体﹝﹞,投影﹝﹞,影像﹝﹞,CAI课件﹝﹞,PPT﹝√﹞,标本
手段
﹝﹞,挂图﹝﹞,模型﹝﹞,其他﹝﹞ 讨 论、思考 题、作业
[ 1]李素若,陈万华,游明坤主编.数据结构.北京:中国水利水电出版社,2014.[ 2]李素若,陈万华,游明坤主编.数据结构习题集及上机指导.北京:中国水利水 请选择你授课时所采用的教学手段(在括号中画“√”):
参考
电出版社,2014.文献
教学过程及内容
一、实验内容
图的邻接表存储结构如下:
#defineMaxVerNum100//定义最大顶点数为100 typedefcharVertexType;//设置图的顶点信息为字符
//边表表结点结构 typedefstructNode{ intadjvex; structNode*next; } EdgeNode;
typedefstructVNode{//顶点结点结构
VertexTypevertex;
EdgeNode*firstedge; } VNode,AdjList[MaxVerNum]; typedefstruct{ AdjListadjlist;
//顶点数和边数 intn,e;
intkind; //有向图为0,无向图为1 } ALGraph;
1.键盘输入数据,建立一个图的邻接邻接表,并进行图的深度优先遍历和广度优先遍 历。
二、实验指导
1.参考代码为:
# include # include # defineMaxVerNum100//定义最大顶点数为100 typedefcharVertexType;//设置图的顶点信息为字符
//边表表结点结构 typedefstructNode{ intadjvex; structNode*next; } EdgeNode;
typedefstructVNode{//顶点结点结构
VertexTypevertex;
EdgeNode*firstedge; } VNode,AdjList[MaxVerNum]; typedefstruct{ AdjListadjlist;
//顶点数和边数 intn,e;
intkind; //有向图为0,无向图为1 } ALGraph;
typedefenum{FALSE,TRUE}boolean; booleanvisited[MaxVerNum];//顶点访问标记向量
— 1—
教学过程及内容
structlinkqueuenode { intdata; structlinkqueuenode*next; } ;
typedefstruct { structlinkqueuenode*front; structlinkqueuenode*rear; linkque; } voidInitQueue(linkque*q) { structlinkqueuenode*p; p=(structlinkqueuenode*)malloc(sizeof(structlinkqueuenode)); p>next=NULL;
q>front=p;q>rear=p;
} intQueueEmpty(linkqueq) { inti;
if(q.front==q.rear)i=1; elsei=0; return(i); } voidEnQueue(linkque*q,intx) { structlinkqueuenode*p; p=(structlinkqueuenode*)malloc(sizeof(structlinkqueuenode)); p>data=x;p>next=NULL; if(QueueEmpty(*q)) { q>front>next=p; q>rear=p; } else { q>rear>next=p; q>rear=p; } } intDeQueue(linkque*q,int*x) {
— 2—
教学过程及内容
structlinkqueuenode*p;
if(QueueEmpty(*q)){printf("queueisempty!\\\\n");return(0);} else { p=q>front>next; *x=p>data;
q>front>next=p>next; if(p>next==NULL)
q>rear=q>front; free(p);
return(1); } } linkqueQ;
voidCreateALGraph(ALGraph*g)//建立图的邻接矩阵表示 { inti,j,k; intflag;
EdgeNode*s1,*s2;
printf("创建:有向图选0,无向图选1\\\\n");
scanf("%d",&flag);
printf("请输入顶点数和边数(格式为:顶点数,边数)\\\\n"); g>kind=flag;
scanf("%d,%d",&g>n,&g>e);//输入图的顶点数和边数 printf("输入顶点的信息,每个顶点以回车作为结束:\\\\n"); for(i=0;in;i++)//初始化顶点数组 { scanf("%c",&(g>adjlist[i].vertex)); g>adjlist[i].firstedge=NULL; } printf("输入构成边或弧:顶点号i,顶点号j:\\\\n"); if(flag==0)//有向图 { for(k=1;ke;k++) { scanf("%d,%d",&i,&j);
s1=(EdgeNode*)malloc(sizeof(EdgeNode)); s1>adjvex=j; s1>next=g>adjlist[i].firstedge; g>adjlist[i].firstedge=s1; } }
— 3—
教学过程及内容
else { //无向图
for(k=1;ke;k++) { scanf("%d,%d",&i,&j);
s1=(EdgeNode*)malloc(sizeof(EdgeNode)); s1>adjvex=j;
s2=(EdgeNode*)malloc(sizeof(EdgeNode)); s2>adjvex=i;
s1>next=g>adjlist[i].firstedge; g>adjlist[i].firstedge=s1; s2>next=g>adjlist[j].firstedge; g>adjlist[j].firstedge=s2; } } } voidDFSAL(ALGraph*g,inti) //对以邻接表表示的图,以序号为i的顶点为出发点进行深度优先搜索 { EdgeNode*p;
printf("%c",g>adjlist[i].vertex);//访问序号为i的顶点 visited[i]=TRUE;//将序号为i的顶点设置访问过标记 p=g>adjlist[i].firstedge; while(p) { if(!visited[p>adjvex]) { printf(">");DFSAL(g,p>adjvex); } p=p>next; } } voidDFSALTraverse(ALGraph*g,intstart) //对以邻接表表示的图,从最初顶点start出发进行深度优先搜索 { inti;
for(i=0;in;i++)//将图的所有顶点设置为未访问过
visited[i]=FALSE; DFSAL(g,start);//对图进行深度优先搜索 printf("\\\\n");
} voidBFSAL(ALGraph*g,intk) //对以邻接表表示的图,以序号为i的顶点为出发点进行广度优先搜索 { inti;
— 4—
教学过程及内容
EdgeNode*p; InitQueue(&Q); printf("%c",g>adjlist[k].vertex);//访问序号为k的顶点 visited[k]=TRUE;//将序号为k是结点设置为已访问过 EnQueue(&Q,k);//将序号为k的顶点入队
while(!QueueEmpty(Q)) { DeQueue(&Q,&i); p=g>adjlist[i].firstedge; while(p) { if(!visited[p>adjvex]) { printf(">%c",g>adjlist[p>adjvex].vertex);//访问p>adjvex的顶点
visited[p>adjvex]=TRUE; EnQueue(&Q,p>adjvex); } p=p>next; } } } voidBFSALTraverse(ALGraph*g,intstart) //对以邻接矩阵表示的图,从最初顶点start出发进行广度优先搜索 { inti;
for(i=0;in;i++)//将所有顶点设置为未访问过 visited[i]=FALSE; BFSAL(g,start);//对邻接矩阵表示的图进行广度优先搜索 printf("\\\\n"); } voidmain() { ALGraph*g=(ALGraph*)malloc(sizeof(ALGraph)); CreateALGraph(g);
DFSALTraverse(g,0);//从顶点0出发进行深度优先搜索 BFSALTraverse(g,0);//从顶点0出发进行广度优先搜索 }
— 5— 授课进度第16周,第30次课(2学时) 授课题目
(教学章、节实验八查找 或主题)
授课日期
016年12月14日(12 2
月13日)
.掌握顺序查找、折半查找算法的思想及程序实现。
1 2 .掌握二叉排序树、AVL树的查找、插入、删除、建立算法的思想及程序实现。
.掌握散列存储结构的思想,能选择合适散列函数,实现不同冲突处理方法的散 3 教学
目标 列表的查找、建立。
.掌握顺序查找、折半查找算法的思想及程序实现。
1 .掌握散列存储结构的思想,能选择合适散列函数,实现不同冲突处理方法的散 教学 2 重点 列表的查找、建立。
1.掌握散列存储结构的思想,能选择合适散列函数,实现不同冲突处理方法的散
教学 列表的查找、建立。
难点
请选择你授课时所采用的教学方法(在括号中画“√”):
讲授法﹝﹞,讨论法﹝﹞,演示法﹝﹞,案例法﹝﹞,发现法﹝﹞,探究法﹝﹞,
教学
谈话法﹝﹞,实验法﹝√﹞,参观法﹝﹞,考察法﹝﹞,自学辅导法﹝﹞,练习
方法
法(习题或操作课)﹝√﹞,读书指导法﹝﹞,听说法﹝﹞,写生法﹝﹞,视唱 法﹝﹞,工序法(技能课)﹝﹞,实习作业法﹝﹞,其他﹝﹞ 教学
实物﹝﹞,多媒体﹝﹞,投影﹝﹞,影像﹝﹞,CAI课件﹝﹞,PPT﹝√﹞,标本
手段
﹝﹞,挂图﹝﹞,模型﹝﹞,其他﹝﹞ 讨 论、思考 题、作业
[ 1]李素若,陈万华,游明坤主编.数据结构.北京:中国水利水电出版社,2014.[ 2]李素若,陈万华,游明坤主编.数据结构习题集及上机指导.北京:中国水利水 请选择你授课时所采用的教学手段(在括号中画“√”):
参考
电出版社,2014.文献
生物实验课教案模板(共8篇)
小学实验课教案模板(共6篇)
实验课教学实践评语(共14篇)
实验课教学评语大全(共4篇)
课堂实验教学心得体会(共19篇)