工程材料基础实验报告(通用7篇)
一.实验目的
1.观察和分析碳纲和白口铸铁在平衡状态下的显微组织。
2.分析含碳量对铁碳合金的平衡组织的影响,加深理解成分、组织和性能之间的相互关系。
3.熟悉灰口铸铁中的石墨形态和基体组织的特征,了解浇铸及处理条件对铸铁组织和性能的影响,并分析石墨形态对铸铁性能的影响。
4.识别淬火组织特征,并分析其性能特点,掌握平衡组织和非平衡组织的形成条件和组织性能特点。
二、.实验仪器及材料
1.观察表2—1中的金相样品.2.几种基本组织的概念与特征见表2—2 3.XJB—1型、4X型、XJP—3A型和MG型金相显微镜数台 4.多媒体设备一套 5.金相组织照片两套
三、实验内容
1.实验前应复习课本中有关部分,认真阅读实验指导书。2.熟悉金相样品的制备方法与显微镜的原理和使用。
3.认真聆听指导教师对实验内容、注意事项等的讲解。
4.用光学显微镜观察和分析表2—1中各金相样品的显微组织。5.观察过程中,学会分析相、组织组成物及分析不同碳量的 铁碳合金的凝固过程、室温组织及形貌特点。
四、实验问题分析
2.根据实验结果,结合所学知识,分析碳钢和铸铁成分、组织和性能之间的关系。
(1)亚共析钢
含碳量在(0.0218—0.77)%之间的铁碳合金,室温组织为铁素体和珠光体,随着含碳量的增加,铁素体的数量逐渐减少,而珠光体的数量则相应的增加,显微组织中铁素体呈白色,珠光体呈暗黑色或层片状。
(2)过共析钢
含碳量在(0.77—2.11)%之间,室温组织为珠光体和网状二次渗碳体,含碳量越高,渗碳体网愈多、愈完整。当含碳量小于1.2%时,二次渗碳体呈不连续网状,强度、硬度增加,塑性、韧性降低,当含碳量大于或等于1.2%时,二次渗碳体呈连续网状,使强度、塑性、韧性显著降低,过共析钢含碳量一般不超过(1.3—1.4)%,二次渗碳体网用硝酸酒精溶液腐蚀呈白色,若用苦味酸钠溶液热腐蚀后,呈暗黑色。(3)共晶白口铸铁
含碳量为4.3%,室温组织由单一的莱氏体组成,经腐蚀后,在显微镜下,变态莱氏体呈豹皮状,由珠光体,二次渗碳体及共晶渗碳体组成,珠光体呈暗黑色的细条状及斑点状,二次渗碳体常与共晶渗碳体连成一片,不易分辨。呈亮白色。(4)灰口铸铁
由铁碳双重相图可知,铸铁凝固时碳可以以两种形式存在,即以渗碳体的形式Fe3C和石墨G的形式存在。碳大部分以渗碳体Fe3C形式存在的,因其断口呈白色。而称白口铸铁,如前所述,白口铸铁硬而脆,很少用做零件。而碳大部分以石墨形式存在的,因其断口呈灰色,而称灰口铸铁。
3.分析碳钢(任选一种成分)或白口铸铁(任选一种成分)凝固过程。
共晶白口铸铁[ w(C)=4.3%]平衡结晶过程:
合金在1点发生共晶反应, 由L转变为(高温)莱氏体Le[即(A+Fe3C)]。1¢~2点间, Le中的A不断析出Fe3CII。Fe3CII与共晶Fe3C相连, 在显微镜下无法分辨, 但此时的莱氏体由A+ Fe3CII+ Fe3C组成。由于Fe3CII的析出, 至2点时A的碳质量分数降为0.77%, 并发生共析反应转变为P;高温莱氏体Le转变成低温莱氏体Le¢(P+ Fe3CII+ Fe3C)。从2¢至3点组织不变化。所以室温平衡组织仍为Le¢, 由黑色条状或粒状P和白色Fe3C基体组成。
共晶白口铸铁的组织组成物全为Le¢, 而组成相还是F和Fe3C。
共晶白口铸铁室温平衡组织
典型铁碳合金在Fe-Fe3C相图中的位置 2
《材料工程基础》课程主要是学习动量传递、热量传递和质量传递的基本原理,并将这些原理应用于流体输送、传热、吸收、蒸馏和干燥等单元操作中。这些内容与《化工原理》有相似性。这些过程均为物理过程,通过数学建模和推导获得一些经验或半经验方程,为实际的工程应用提供计算依据。教授这门课程的目的在于使学生具有工程思想,并能够将这些具体的物理过程抽象为数学模型,通过计算获得相应的工程参数。因此在学习这门课程过程之前,需要学生具有高等数学和物理学的基础知识,同时还需要具备数学建模的思想。因此,本课程的开设在本科学习的第五学期。
1 开展微型实验的背景分析
尽管目前高校学生都具备相应的知识,但是在学习该门课程的过程中,仍然反映课程难学,计算复杂,表现出对其中研究方法的不适应感。通过对历年的学习情况和学生反馈进行剖析,我们发现是由于以下原因引发了学生在学习时的不适应感:
( 1) 思维方式的变化: 本科学习的前期知识均为经典理论,而《材料工程基础》课程中开始出现了半经验的理论,即黑箱模型的引入。
( 2) 知识的综合程度变化: 前期的理论课学习均为数学、物理和化学单方面的基础理论学习。而《材料工程基础》课程的学习,是将物理过程通过数学模型进行描述和分析。同时,一些物理参数由之前简化的二维参数状态扩展到了四维参数状态,从而增加了微积分计算的复杂程度,例如流体的速度,在前期学习中仅定义为时间和长度的二维参数,而在材料工程基础课程中,速度被定义为空间坐标 ( x、y、z) 和时间的四维参数。
( 3) 描述概念的变化: 流体的动量传递、热量传递和质量传递均属于物理过程,在描述这些过程中,引入了一些抽象、专业的工程概念和术语,这些概念是后期模型建立、计算和应用的基础。例如,流线、截流断面、水力粗糙、层/湍流、边界层、层流底层、有效层流膜层、湿度、相对湿度、平衡水分和自由水分等。
对于前两项原因产生的障碍,可以通过实验课程解决,即通过实验的操作和分析,使学生对该类思维方式和数据处理方法熟悉并适应。但是对于抽象的专业概念,学生面临抽象思维建立的困难。我国著名科学家钱学森也说: “我按我们习惯的称呼,把一个人的思维分为三种: 抽象 ( 逻辑) 思维、形象( 直觉) 思维和灵感 ( 顿悟) 思维。”“我建议把形象思维作为思维科学的突破口。”[2]因此在普遍的教学中,会先通过实验课建立形象思维,然后再在课堂上讲解以建立抽象思维。这样的方法是遵从学习规律的,但是将实验和理论课堂分开,会产生理论和实验现象对照讲解不及时的问题,从而会造成学生对一些概念理解延滞,甚至会引起相似概念的混淆。因此,在抽象概念的教学中,需要有时效性的引入实验课程,才能充分发挥实验课程的优点。
然而目前高校的教室和实验室都独立存在,实验装置体积较大,因此材料工程的一些实验,难于移动到教室中展示。微型实验概念的引入,有助于解决这个难题。
2 微型实验的介绍与教学实施情况
微型实验主要是作者受到微型化学实验的思想提出的。微型化学实验( M. L. ) 是近10年来国际和国内化学界,在绿色化学思想下用预防化学污染的新思想对常规实验进行改革而发展起来的化学实验的新方法和新技术,在教学中被引入以提高化学教学的效率[3,4,5,6,7,8]。
借鉴这种做法,微型实验可以在《材料工程基础》课堂教学中被引入进来辅助教学,所用材料可以利用无毒无害物质进行。作者在课堂教学中已开始尝试加入了部分微型实验。以下为将微型实验引入课堂抽象概念教学的两个案例。
( 1) 案例1
概念: 流线和迹线
定义: 流线为某一时刻各质点的切线方向与通过该点的流体质点的流速方向重合的空间曲线,迹线为同一质点在各个不同时刻所占有的空间位置所连成的空间曲线。
微型实验: 1在玻璃板上滴加一滴硅油,将玻璃板慢慢立起来,重力作用使得硅油滴向下流动,最后留下一条痕迹线。2然后连续滴加硅油,让学生在某一时刻进行拍照。
课堂讲解:
在第一个实验中,得到的痕迹线即为迹线,根据定义能够使学生容易理解。然后让学生提供一张刚才拍下的照片,选择十个位置点,以各点为质点进行分析,画出速度方向,然后画出质点的切线和流速方向,从而获得一条曲线即为流线。
然后讨论稳定流动和非稳定流动现象,并介绍均匀流和非均匀流,定性说明速度的差别,为后期伯努利方程的讲解储备均匀流的速度分布知识。
( 2) 案例2
概念: 流动阻力和能量损失
定义: 流体微团之间有相对运动时,由于流体具有黏性,相互间必产生阻力,对流体运动形成阻力,这种阻力称为流动阻力。为维持流动需要克服阻力,从而消耗能量,即为能量损失。能量损失表现为机械能转化为热能。
微型实验:
实验装置如图1所示。将装置水平放置,分别以水和硅油为流体,通过微型泵使流体产生水平流动。由测压管获得A、B和C处的压力,同时采用毕托测速管测定这三处的流速。
课堂讲解:
1以水为流体时,观察测压管中产生压降,比较A、B和C三点的机械能,引导学生发现机械能降低。由此引入能量损失的概念。
2比较硅油和水分别作流体时,A、B和C三点的机械能变化情况,引导学生发现当流体的粘度发生改变时,能量损失量也发生改变。由此解释流体阻力及其产生原因。
3 结 论
通过与历年学生的考试成绩比较,发现在《材料工程基础》课堂教学中引入微型实验辅助教授专业知识时,学生对这些专业概念和术语理解加深且记忆增强,并能够区分相似概念。此外,教师在讲解过程中,讲解难度降低,教学效率提高。
参考文献
[1]袁华.《材料工程基础》课程内容探讨[J].中国科教创新导刊,2012(7):193,195.
[2]钱学森.关于思维科学[M].上海:上海人民出版社,1986:129-141.
[3]钱贵晴.微型化学实验与创新教育[J].化学通报,1999(5):2-6.
[4]熊枝金.高中化学实验微型课程开发的策略及初步实践[J].化学教学,2014(5):10-13.
[5]王珺,朱舜丰.论微型实验进入科学习题课的重要性[J].基础教育,2013(6):179.
[6]游利琴,袁金伟,毛璞.浅析微型有机化学实验教学的开展[J].广州化工,42(19):176-177.
【摘要】《机械工程控制基础》课程的实验教学是该课程的重要环节。搞好实验环节可以提高学生的学习兴趣,加深其对理论知识的理解,还可以提高动手能力。本文将软件仿真、设计制作、搭建调试等形式的实验项目结合起来,方便学生从多角度理解控制系统,锻炼学生设计、制作、操作等多方面的能力。经过两年的教学实践,取得了良好的教学效果。
【关键词】机械工程控制基础 实验教学 MATLAB
【中图分类号】G64【文献标识码】A 【文章编号】2095-3089(2016)03-0215-02
《机械工程控制基础》是我校机械制造及其自动化专业和测控技术与仪器专业学生必修的一门重要的专业基础课, 课程的主要内容是依托控制论的理论基础, 来研究和分析机械工程技术中的实际问题。主要包括系统的数学模型、时域频域分析、稳定性分析和控制器设计等。如果在学习过程中,脱离工程实践,不能搞懂这些理论分析作用和依据,而只会套公式,就会使学生不是主动学习知识,而是被动的接受知识,使其失去学习兴趣,影响学习效果。因此和这门课相对应的实验环节尤其重要。
一、实验形式的思考
随着社会的发展,应用型本科教育的重心向实用性靠拢;这就要求我们的学生既懂控制系统的原理与设计等理论知识,还要能解决在生产过程中遇到的控制系统实际问题。但以往的实验环节,均采用在电脑上用MATLAB软件进行仿真验证的方式进行,学生完成实验后,对控制系统的构成、作用、分析等仍然理解不深,不能很好地把实验结果和工程实际很好地结合起来。为了适应社会和企业的要求我们的实验教学就必须有所改进和创新,根据教学要求和我校实验室设备的具体情况,我们对实验形式做了以下改进:
1.保留工程设计应用软件这种形式,充分利用软件的强大仿真能力,使得学生能够将抽象的理论知识形象化,曲线化,用以验证自己的设计是否合理。
2.应用实验箱、面包板和元器件让学生对仿真模块进行进一步的验证,可以加深学生对知识的理解,将理论知识与实际应用更好地联系起来,还可以提高学生元器件选用和动手搭建电路的能力,同时也掌握了信号发生器、示波器等仪器的使用能力。
3.用实际的工业工程设备组成一个闭环的调节系统,通过系统连接,参数设定将被调参数控制到预定的数值,使得学生能够在实际的控制回路中体会PID参数设置的神奇。作为应用型本科的学生,毕业后从事的工作往往不是控制系统的设计制造而是控制系统的应用维护等实际问题,这种实验形式与之关联度更高,更切合实际。
二、实验的具体实施
下边以控制器设计为例,讨论上述实验形式是如何具体实施的。
1.应用MATLAB中SIMULINK模块中的方框图,将比例电路,积分电路和微分电路的传递函数数学模型连接起来,组成如下的系统方框图,分析本系统的时域特性和频域特性。
实验时要求学生根据理论课所学知识,在阶跃干扰的作用下,分别加载P(比例)作用控制,PI(比例积分)作用控制,PID(比例积分微分)作用控制的校正曲线进行比较;同时改变调节系数(KP、KI、KD),直观的了解不同的调节系数对控制质量的影响。
2.应用实验箱和面包版,用元器件搭建比例、微分、积分电路和被控对象,并用信号发生器和示波器分别发送和观察输入输出信号的波形。
这个环节练习的重点是元器件的选用、信号发生器和示波器的使用以及改变元件参数对应控制系统的响应情况、改变干扰信号的输入点输出信号的变化分析等。比较自己搭建的系统和仿真软件系统同样输入信号下曲线的相同点和不同点,并分析原因。
3.用传感器、调节器、执行元件、被调对象等工程设备组成一个闭环调节系统。
系统包含PT100热电阻,智能调节器,温度源(内装电加热丝和冷却风扇)综合实验台等,具体原理及实物图如图4、图5所示。
当温度源的温度发生变化时,温度源中的热电阻Pt100的阻值发生变化,将电阻变化量作为温度的反馈信号输给PID智能温度调节器,经调节器的电阻-电压转换后与温度设定值比较再进行PID运算输出可控硅触发信号(加热)和继电器触发信号(冷却),使温度源的温度趋近温度设定值。
本环节可以加深学生对温度控制系统的组成、原理、控制器设计等基础知识的理解,了解热电阻传感器在工程实践中为了消除线路误差采用的三线制接法,掌握温度控制系统PID参数的整定方法。还可以使学生比较人工整定和智能调节器自整定有什么不同,自整定是否可以完全取代人工整定等问题。通过上述过程,可以利用这个简单的温度控制系统来提高学生的工程意识和工程能力。
三、实验效果的总结
通过两年的探索和实施,我们《机械控制工程基础》这门课的实验紧紧围绕“设计—制造—使用”这条主线进行,取得了意想不到的效果。最明显的一点是学生对课程的兴趣提高了,从被动的听课到主动地到实验室预约实验时间和实验设备,想尽快尽早的验证自己设计方案是否合理,如果和预想的有出入可以马上修正。应用型本科的特点就是培养实用型人才,我们的实验教学就是要把学生培养成懂设计、懂原理、懂制造、会安装调试、会合理使用、会快速维修、会维护保养的“三懂四会”的人才,为学生走上工作岗位打下坚实的基础,同时也为我们其他课程的实验提供了成熟的改革思路。
参考文献:
[1]艾超,陈立娟,孔祥东,姚静.控制工程基础课程教学模式的改革与实践[J].教学研究,2015,(7):94-97.
[2]陈晓.《控制工程基础》课程实验教学的研究与探讨[J].安阳工学院学报,2015,(2):112-113.
作者简介:
实验目的:
掌握系统初始化的相关内容和操作过程,理解系统初始化在整个系统中的作用
实验要求:
1、以“Manager”的身份建立帐套;
2、以“XX”的身份做系统初始化;(XX:代表自己的姓名;制单人和审核人不能是同一
人)
实验内容:
一、帐套管理:(说明各个操作步骤,操作截图,实验数据见参考指导书)
1、建帐套:
2、增加新用户:
3、备份和恢复帐套:
二、系统初始化:(说明各个操作步骤,操作截图,实验数据见参考指导书)
1、设置财务系统帐套选项:
2、基础数据录入:
备注:报告提交电子档,自己的帐套要求备份同时提交。
一、实验目的
1、熟悉 Visual Studio.NET 开发环境。
2、掌握 C#应用程序的基本操作过程。
3、掌握 C#的数据类型,运算符以及表达式的使用。
4、掌握分支和循环语句的使用方法。
5、掌握一维数组,二维数组及数组型数组的使用。
二、实验要求
(1)编写程序要规范、正确,上机调试过程和结果要有记录(2)做完实验后给出本实验的实验报告。
三、实验设备、环境
安装有 Visual Studio.NET 软件。
四、实验步骤
1、分析题意。
2、根据题目要求,新建项目。
3、编写并输入相关的程序代码。
5、运行与调试项目。
6、保存项目。
五、实验内容
1、编写一个简单的控制台应用程序,打印一行文字(如你的姓名)。
using System;using System.Collections.Generic;
using System.Linq;using System.Text;
namespace one.first {
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine(“我叫王蕾!”);
}
} } 2、编写一个简单的 Windows 应用程序,在窗体 Load 事件中书写代码,标签中显示你的姓名。
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;
using System.Windows.Forms;
namespace one.second {
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Text = “Windows 程序”;
Label lblShow = new Label();
lblShow.Location = new Point(20, 30);
lblShow.AutoSize = true;
lblShow.Text = “王蕾!”;
this.Controls.Add(lblShow);
}
}
} 3、编写一个一个程序,用来判断输入的是大写字母,小写字母,数字还是其他的字符。
using System;using System.Collections.Generic;using System.Text;
namespace one.third {
class Program
{
static void Main(string[] args)
{
Console.WriteLine(“请输入一个字符:”);
char c = Convert.ToChar(Console.ReadLine());
if((c>=“a”&&c<=“z”)||(c>=“A”&&c<=“Z”))
Console.WriteLine(“这是一个字母”);
if(char.IsDigit(c))
Console.WriteLine(“这是一个数字”);
}
}
} 4、分别用 while,do-while,for 循环求 1 到 100 的和。
using System;using System.Collections.Generic;using System.Text;
namespace one.forth.one {
class Program
{
static void Main(string[] args)
{
int i = 1, sum = 0;
while(i <= 100)
{
sum = sum + i;
i++;
}
Console.WriteLine(“1 到 100 的自然数之和为:” + sum);
}
}
} using System;using System.Collections.Generic;using System.Text;
namespace one.forth.two {
class Program
{
static void Main(string[] args)
{
int i = 1, sum = 0;
do
{
sum = sum + i;
i++;
}
while(i <= 100);
Console.WriteLine(“1 到 100 的自然数的和为:” + sum);
}
}
} using System;using System.Collections.Generic;using System.Text;
namespace one.forth.three {
class Program
{
static void Main(string[] args)
{
int i , sum = 0;
for(i = 1;i <= 100;i++)
{
sum = sum + i;
}
Console.WriteLine(“1 到 100 的自然数的和为:” + sum);
}
} } 5、定义一个一维数组,用随机数为此赋值,用 foreach 循环输
出其中的内容。
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace first.five {
class Program
{
static void Main(string[] args)
{
int[] a = {0,1,2,3,4};
foreach(int i in a)
{
Console.WriteLine(a[i]);
}
}
} } 6、实现二维数组的输入和输出。
using System;
using System.Collections.Generic;using System.Linq;using System.Text;
namespace first.six {
class Program
{
static void Main(string[] args)
{
int[,] a = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };
{
for(int i = 0;i < 2;i++)
{
for(int j = 0;j < 3;j++)
{ Console.WriteLine(a[i, j]);}
}
}
}
} }
7、实现数组型数组的输入和输出。
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace first.seven {
class Program
{
static void Main(string[] args)
{
int[][] a = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 } };
for(int i = 0;i < a.Length;i++)
{
for(int j = 0;j < a[i].Length;j++)
{
Console.WriteLine(a[i][j]);
}
}
}
} } 六、实验体会(遇到问题及解决办法,编程后的心得体会)
刚开始编程的时候觉得无从下手,尽管我们已经学了好几种高级编程语言,但每个都有其独特的地方,稍不留神就会混淆。
通过这次实验,我体会到课后复习巩固的重要性。在编程的时候,很多内容都不记得,需要去翻书。不得不说,实验是巩固课程的好方法!本次实验,我熟悉 Visual Studio.NET 开发环境;掌握了 C#应用程序的基本操作过程;掌握了 C#的数据类型,运算符以及表达式的使用;掌握了分支和循环语句的使用方法以及一维数组,二维数组及数组型数组的使用。
实验项目名称:
类与对象
实验学时:
同组学生姓名:
实验地点:
1318
实验日期:
月 26 日-11 月 9 日 实验成绩:
批改教师:
批改时间:
实验 2
类与对象
一、实验目的、要求
(1)掌握类的定义和使用;(2)掌握类的数据成员,属性的定义和使用;(3)掌握方法的定义,调用和重载以及方法参数的传递;(4)掌握构造函数的定义和使用。
二、实验要求
(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。
三、实验设备、环境
安装有 Visual Studio.NET 软件。
四、实验步骤
1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。
五、实验内容
1、定义一个方法,实现两个数的交换(分别把参数按值传递和按引用传递)。
using System;
using System.Collections.Generic;using System.Text;
namespace second.one {
class Program
{
static void Main(string[] args)
{
Swaper s = new Swaper();
Console.WriteLine(“输入 x 的值:”);
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“输入 y 的值:”);
int b=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(s.Swap(a, b));
Console.WriteLine(s.Swap(ref a,ref b));
}
class Swaper
{
public string Swap(int x, int y)
{
int temp;
temp = x;
x = y;
y = temp;
return string.Format(“按值传参交换之后:x={0},y={1}”,x,y);
}
public string Swap(ref int x, ref int y)
{
int temp;
temp = x;
x = y;
y = temp;
return string.Format(“按引用传参交换之后:x={0},y={1}”, x, y);
}
}
} }2、定义一个方法,实现数组的排序。
using System;using System.Collections.Generic;using System.Text;
namespace second.two {
class Program
{
public class sort
{
public void change(int[] a)
{
Console.WriteLine(“排序前,数组顺序为:”);
show(a);
int i, j, m;
for(i = 0;i < 10;i++)
{
m = a[i];
j = i-1;//a[j]为数组前一个值
while(j >= 0 && m > a[j])//判断 i 下标的数是否大于 j 下标的数
{
a[j + 1] = a[j];//如果 i 下标大于j 把 j 往后移一个位
j--;
}
a[j+1] = m;//当不大于 j 的时候就把 M的值放到 i 下标下面 j+1 是为了下标减到最前时考虑-1 + 1 还是下标的最前面
}
Console.WriteLine(“排序后,数组顺序为:”);
show(a);
}
void show(int[] a)
{
int i;
for(i = 0;i < 10;i++)
{
Console.Write(“{0} ”, a[i]);
}
Console.WriteLine();
}
}
static void Main(string[] args)
{
int[] a ={ 4, 7, 1, 2, 5, 8, 9, 10, 3, 6 };
sort s=new sort();
s.change(a);
}
} } 3、定义一个学生类,把学生类当作对象来传递。
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace second.three {
class Program
{
public class student
{
public void st()
{
int a = 999;
}
}
public class st
{
public void aa(student s)
{
Console.WriteLine(s);
}
}
static void Main(string[] args)
{
student s=new student();
st s1 = new st();
s1.aa(s);
}
} } 4、定义一个方法,求两个数的和和差,通过参数把这两个值带回。
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace
second.four
{
class Program
{
public class sum
{
public void ab(out int m, out
int n,int a, int b)
{
m = a + b;
n = a-b;
}
}
static void Main(string[] args)
{
sum s = new sum();
int a = 10;
int b = 3;
int m, n;
s.ab(out m, out n, a, b);
Console.WriteLine(“{0}+{1}={2};{0}-
{1}={3}”,a,b,m,n);
}
} } 5、用构造函数重载,实现矩形的面积,圆的面积,梯形的面积; using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace secong.five {
class Program
{
public class square
{
public double area;
public square(){ }
public square(double a)
{
area = a * a * 3.14;
}
public square(double a, double b)
{
area = a * b;
}
public square(double a, double b, double h)
{
area =(a + b)/ 2 * h;
}
}
static void Main(string[] args)
{
double a, b, h,area;
a = 2;b = 5;h = 3;
square s = new square(a,b);
Console.WriteLine(“求矩形面积,长为 a={0},宽为 b={1},面积 area={2}”,a,b,s.area);
square i = new square(a);
Console.WriteLine(“求圆形面积,半径 a={0},面积 area={1}”, a, i.area);
square j = new square(a, b, h);
Console.WriteLine(“求梯形面积,上底为a={0},下底为 b={1},高为 h={2}面积 area={3}”, a, b,h, j.area);
}
} } 6、设计一个 windows 应用程序,在该程序中定义一个学生类和班级类,以处理每个学生的学号,姓名,语文,数学和英语成绩,要求:
1)能查询每个学生的总成绩。
2)能显示全班前三名的名单。
3)能显示单科成绩最高分和不及格的学生名单。
4)能统计全班学生的平均成绩。
5)能显示各科成绩不同分数段的学生人数的百分比。
Student 类:
using System;using System.Collections.Generic;using System.Text;namespace Test2_6 {
public class Student
{
public string stuNo;
public string name;
public double chinese;
public double math;
public double english;
public double sumScore
{
get { return chinese + math + english;}
}
} } StudentList 类:
using System;using System.Collections.Generic;using System.Text;namespace Test2_6 {
public class StudentList:Student
{
int snums;
public Student[] stu=new Student[50];
public StudentList()
{
snums = 0;
}
public void addstu(Student s)
{
stu[snums] = s;
snums++;
}
public int searchstu(string name)
{
int i;
for(i = 0;i < snums;i++)
{
if(stu[i].name == name)break;
}
if(i == snums)return-1;
else return i;
}
//给所有成绩排序,用后面实现前三名的排名
public void ProThree()
{
for(int i = 0;i < snums;i++)
{
int k = i;
for(int j = i + 1;j < snums;j++)
if(stu[j].sumScore > stu[k].sumScore)k = j;
if(k!= i)
{
Student temp;
temp = stu[k];
stu[k] = stu[i];
stu[i] = temp;
}
}
}
//显示单科成绩的最高分
public int HighScore(int k)
{
int p = 0;
if(k == 0)
{
for(int i = 1;i < snums;i++)
if(stu[i].math > stu[p].math)p = i;
}
else if(k == 1)
{
for(int i = 1;i < snums;i++)
if(stu[i].chinese > stu[p].chinese)p = i;
}
else
{
for(int i = 1;i < snums;i++)
if(stu[i].chinese > stu[p].chinese)p = i;
}
return p;
}
//显示不及格名单
public string
BuhgName(int k)
{
string name=“ ”;
if(k == 0)
{
for(int i = 0;i < snums;i++)
if(stu[i].math < 60)name +=stu[i].name+“n”;
}
else if(k == 1)
{
for(int i = 0;i < snums;i++)
if(stu[i].chinese < 60)name += stu[i].name + “n”;
}
else
{
for(int i = 0;i < snums;i++)
if(stu[i].english < 60)name += stu[i].name + “n”;
}
return name;
}
public string getHL()
{
string Maxer = “ ”, Loser = “ ”;
Maxer += “ 单 科 数 学 最 高 :
” + stu[HighScore(0)].name + “n”;
Maxer += “ 单 科 语 文 最 高 :
” +
stu[HighScore(1)].name + “n”;
Maxer += “ 单 科 英 语 最 高 :
” + stu[HighScore(2)].name + “n”;
Loser += “单科数学挂科名单:” +BuhgName(0)+ “n”;
Loser += “单科语文挂科名单:” + BuhgName(1)+ “n”;
Loser += “单科英语挂科名单:” + BuhgName(2)+ “n”;
return Maxer + “n” + Loser;
}
//全班的平均成绩
public string SumScore()
{
double sum = 0;
double avg=0;
for(int i = 0;i < snums;i++)
{
sum = sum + stu[i].sumScore;
}
avg = sum / snums;
return “班级总分平均分:”+avg;
}
//各科成绩不同分数段的学生百分比
//英语成绩各分数段百分比
public string PerC()
{
double per1, per2, per3, per4, per5;
double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;
for(int i = 0;i < snums;i++)
{
if((stu[i].chinese > 90)&&(stu[i].chinese <= 100))
{
sumC1++;
}
else if((80 <= stu[i].chinese)&&(stu[i].chinese < 90))
{
sumC2++;
}
else if((70<=stu[i].chinese)&&(stu[i].chinese < 80))
{
sumC3++;
}
else if((60<=stu[i].chinese)&&(stu[i].chinese < 70))
{
sumC4++;
}
else
{sumC5++;}
}
per1 = sumC1 / snums;
per2 = sumC2 / snums;
per3 = sumC3 / snums;
per4 = sumC4 / snums;
per5 = sumC5 / snums;
return “ 语 文 成 绩 百 分 比 :”+“n”+“90~100:”+per1+“
80~90:”+per2+“
80~70:”+per3+“
70~60:”+per4+“
以下的:”+per5;
}
//数学成绩各分数段百分比
public string PerM()
{
double per1, per2, per3, per4, per5;
double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;
for(int i = 0;i < snums;i++)
{
if((stu[i].math> 90)&&(stu[i].math <= 100))
{
sumC1++;
}
else if((80 <= stu[i].math)&&(stu[i].math < 90))
{
sumC2++;
}
else if((70 <= stu[i].math)&&(stu[i].math < 80))
{
sumC3++;
}
else if((60 <= stu[i].math)&&(stu[i].math < 70))
{
sumC4++;
}
else
{ sumC5++;}
}
per1 = sumC1 / snums;
per2 = sumC2 / snums;
per3 = sumC3 / snums;
per4 = sumC4 / snums;
per5 = sumC5 / snums;
return string.Format(“数学成绩百分比:” + “n” + “90~100:” + per1 + “
80~90:” + per2 + “
80~70:” + per3 + “
70~60:” + per4 + “
以下的:” + per5);
}
//英语成绩各分数段百分比
public string PerE()
{
double per1, per2, per3, per4, per5;
double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;
for(int i = 0;i < snums;i++)
{
if((stu[i].english > 90)&&(stu[i].english <= 100))
{
sumC1++;
}
else if((80 <= stu[i].english)&&(stu[i].english < 90))
{
sumC2++;
}
else if((70 <= stu[i].english)&&(stu[i].english < 80))
{
sumC3++;
}
else if((60 <= stu[i].english)&&(stu[i].english < 70))
{
sumC4++;
}
else
{ sumC5++;}
}
per1 = sumC1 / snums;
per2 = sumC2 / snums;
per3 = sumC3 / snums;
per4 = sumC4 / snums;
per5 = sumC5 / snums;
return string.Format(“数学成绩百分比:” + “n” + “90~100:” + per1 + “
80~90:” + per2 + “
80~70:” + per3 + “
70~60:” + per4 + “
以下的:” + per5);
}
} } From 窗体代码:
using System;using System.Collections.Generic;
using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test2_6 {
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public StudentList sl = new StudentList();
private void btnAdd_Click(object sender, EventArgs e)
{
Student s = new Student();
s.stuNo = txtStuNo.Text;
s.name = txtName.Text;
s.chinese = Convert.ToDouble(txtChina.Text);
s.math = Convert.ToDouble(txtMath.Text);
s.english = Convert.ToDouble(txtEng.Text);
sl.addstu(s);
MessageBox.Show(“添加成功”);
}
private void btnSearch_Click(object sender, EventArgs e)
{
int pos = sl.searchstu(this.textBox1.Text);
if(pos!=-1)
{
label7.Text = this.textBox1.Text + “的总成绩:” + sl.stu[pos].sumScore;
}
else { MessageBox.Show(“不存在这个人!”);}
}
private void btnFinish_Click(object sender, EventArgs e)
{
label7.Text = “前 3 名:”+“n”;
for(int i = 0;i < 3;i++)
{
sl.ProThree();
label7.Text+= sl.stu[i].name+“n”;
}
label7.Text += sl.getHL()+“n”;
label7.Text += Convert.ToString(sl.SumScore())+“n”;
label7.Text += sl.PerC()+“n”;
label7.Text += sl.PerM()+“n”;
label7.Text += sl.PerE()+“n”;
}
} }
六、实验体会(遇到问题及解决办法,编程后的心得体会)
通过本次实验,我掌握了类的定义与使用;掌握了类的数据成员,属性的定义和使用;掌握了方法的定义,调用和重载以及方法参数的传递以及构造函数的定义和使用。值得注意的是:本次实验中 return的使用以及所在的位置,类型转换时也经常用到
实验项目名称:
继承与多态
实验学时:
同组学生姓名:
实验地点:
1318
实验日期:月 16 日-11 月 30 日 实验成绩:
批改教师:
批改时间:
实验 3
继承与多态
一、实验目的、要求
(1)掌握类的继承性与多态性;(2)掌握虚方法的定义以及如何使用虚方法实现多态;(3)掌握抽象类的定义以及如何使用抽象方法实现多态; 二、实验要求
(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。
三、实验设备、环境
安装有 Visual Studio.NET 软件。
四、实验步骤
1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。
五、实验内容
1、设计一个 Windows 应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生派生类,当输入相关数据,单击不用的按钮时,将分别创建不同的学生类对象,并输出当前学生的总人数,该学生的姓名,学生类型,平均成绩。
Student 类:
using System;using System.Collections.Generic;using System.Text;namespace Test3_1 {
public abstract class Student
{
protected string name;
protected int age;
public static int number;
public Student(string name, int age)
{
this.name = name;
this.age = age;
number++;
}
public string Name
{
get { return name;}
}
public abstract double Average();
}
public class Pupil : Student
{
protected double chinese;
protected double math;
public Pupil(string name, int age, double chinese, double math)
: base(name, age)
{
this.chinese = chinese;
this.math = math;
}
public override double Average()
{
return(chinese + math)/ 2;
}
}
public class Middle : Student
{
protected double chinese;
protected double math;
protected double english;
public Middle(string name, int age, double
chinese, double math, double english)
: base(name, age)
{
this.chinese = chinese;
this.math = math;
this.english = english;
}
public override double Average()
{
return(chinese + math + english)/ 3;
}
}
public class College : Student
{
protected double required;
protected double elective;
public College(string name, int age, double required, double elective)
: base(name, age)
{
this.required = required;
this.elective = elective;
}
public override double Average()
{
return(required + elective)/ 2;
}
} } Form 窗体内的代码:
using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test3_1 {
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnSmall_Click(object sender, EventArgs e)
{
Pupil p = new Pupil(txtName.Text,Convert.ToInt32(txtAge.Text),Convert.ToDouble(txtChinese.Text),Convert.ToDouble(txtMath.Text));
lblShow.Text += “ 总 人 数 :” +Convert.ToString(Student.number)+ “,” + “姓名:” + p.Name + “,” + “小学生” + “,” + “平均成绩为:” + p.Average()+“n”;
}
private void btnMiddle_Click(object sender, EventArgs e)
{
Middle m = new Middle(txtName.Text, Convert.ToInt32(txtAge.Text), Convert.ToDouble(txtChinese.Text), Convert.ToDouble(txtMath.Text),Convert.ToDouble(TxtEnglish.Text));
lblShow.Text += “ 总 人 数 :” + Convert.ToString(Student.number)+ “,” + “姓名:” + m.Name +
“,” + “中学生” + “,” + “平均成绩为:” + m.Average()+ “n”;
}
private void btnBig_Click(object sender, EventArgs e)
{
College c = new College(txtName.Text, Convert.ToInt32(txtAge.Text), Convert.ToDouble(txtChinese.Text), Convert.ToDouble(txtMath.Text));
lblShow.Text += “ 总 人 数 :” + Convert.ToString(Student.number)+ “,” + “姓名:” + c.Name + “,” + “大学生” + “,” + “平均成绩为:” + c.Average()+ “n”;
}
} } 2、设计一个 Windows 应用程序,在该程序中定义平面图形抽象类和派生类圆,矩形和三角形。
Figure 类代码:
using System;using System.Collections.Generic;using System.Text;namespace Test3_2
{
public abstract class Figure
{
public abstract double Area();
}
public class Circle:Figure
{
double radius;
public Circle(double r)
{
radius = r;
}
public override double Area()
{
return radius * radius * 3.14;
}
}
public class JUxing:Figure
{
double chang;
double kuan;
public JUxing(double c, double k)
{
this.chang = c;
this.kuan = k;
}
public override double Area()
{
return chang * kuan;
}
}
public class San:Figure
{
double bian;
double heigth;
public San(double b, double h)
{
this.bian = b;
this.heigth = h;
}
public override double Area()
{
return bian * heigth / 2;
}
} } Form 窗体代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test3_2 {
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnCircle_Click(object sender, EventArgs e)
{
Circle c=new
Circle(Convert.ToInt32(TxtChang.Text));
lblShow.Text = “圆的面积为:” + c.Area();
}
private void btnJu_Click(object sender, EventArgs e)
{
JUxing j = new JUxing(Convert.ToInt32(TxtChang.Text),Convert.ToInt32(TxtHigh.Text));
lblShow.Text = “矩形的面积为:” + j.Area();
}
private void btnSan_Click(object sender, EventArgs e)
{
San s = new San(Convert.ToInt32(TxtChang.Text), Convert.ToInt32(TxtHigh.Text));
lblShow.Text = “三角形的面积为:” + s.Area();
}
} }
3、定义一个 Person 类,包含姓名字段和一个方法,早上 8:30学生开始上课,教师开始讲课。分别用 new 关键字,虚方法,抽象类实现多态性。
New 关键字:
using System;using System.Collections.Generic;using System.Text;
namespace third.three {
class Program
{
static void Main(string[] args)
{
Student s=new Student(“学生”);
Teacher t=new Teacher(“教师”);
Console.WriteLine(s.name+s.work());
Console.WriteLine(t.name+t.work());
Console.ReadLine();
}
}
public class Person
{
public string name;
public interface method
{ string work();}
}
public class Student:Person
{
public Student(string name)
{ this.name = name;}
public string work()
{ return “早上 8:30 开始上课”;}
}
public class Teacher:Person
{
public Teacher(string name)
{ this.name = name;}
public string work()
{ return “开始讲课”;}
} } 虚方法:
using System;
using System.Collections.Generic;using System.Text;
namespace third.three.two {
class Program
{
static void Main(string[] args)
{
Student s = new Student(“张三”,“学生”);
PersonWork(s);
Teacher t=new Teacher(“李斯”,“教师”);
PersonWork(t);
}
private static void PersonWork(Person Person)
{ Console.WriteLine(Person.Work());}
}
public class Person
{
public string name;
public Person(string name)
{ this.name = name;}
public virtual string Work()
{ return string.Format(“Person{0}:早上 8:30 开始”,name);}
}
public class Student : Person
{
private string type;
public Student(string name, string type)
: base(name)
{ this.type = type;}
public override string Work()
{
return string.Format(“Person{0}:早上 8:30 开始上课”, name);
}
}
public class Teacher : Person
{
private string type;
public Teacher(string name, string type)
: base(name)
{ this.type = type;}
public override string Work()
{
return string.Format(“Person{0}:开始讲课”, name);
}
} }
抽象类:
using System;using System.Collections.Generic;using System.Text;
namespace third.three.three {
class Program
{
static void Main(string[] args)
{
Student s = new Student(“张三”, “学生”);
PersonWork(s);
Teacher t = new Teacher(“李斯”, “教师”);
PersonWork(t);
}
private static void PersonWork(Person person)
{
Console.WriteLine(person.Work());
}
}
public abstract class Person
{
public string name;
public Person(string name)
{ this.name = name;}
public abstract string Work();
}
public class Student : Person
{
private string type;
public Student(string name, string type)
: base(name)
{
this.type = type;
}
public override string Work()
{
return string.Format(“Person{0}:早上 8:30 开始上课”, name);
}
}
public class Teacher : Person
{
private string type;
public Teacher(string name, string type)
: base(name)
{
this.type = type;
}
public override string Work()
{
return string.Format(“Person{0}:开始讲课”, name);
}
}
}
六、实验体会(遇到问题及解决办法,编程后的心得体会)
通过本次实验,我理解了类的继承性与多态性;掌握了虚方法的定义以及如何用虚方法来实现多态;掌握了抽象类的定义以及如何用抽象方法来实现多态。
这次实验与前两次不同,采用 Windows 应用程序,既涉及到代码段也涉及到界面的设计。所以,勉强通过实验。
实验项目名称:
接口、文件和流
实验学时:
同组学生姓名:
实验地点:
A205
实验日期:月 7 日-12 月 21 日 实验成绩:
批改教师:
批改时间:
实验 4
接口、文件和流
一、实验目的
(1)掌握接口的定义及使用方法;(2)掌握流,序列化和反序列化的概念和使用方法;(3)掌握流文件的读写操作类及其使用方法;(4)掌握 OpenFileDialog,SaveFileDialog 等控件的使用。
二、实验要求
(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。
三、实验设备、环境
安装有 Visual Studio.NET 软件。
四、实验步骤
1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。
五、实验内容
1、定义一个 Person 类,包含姓名字段和一个方法,早上 8:30学生开始上课,教师开始讲课。用接口来实现。
using System;using System.Collections.Generic;
using System.Text;namespace Test4_1 {
class Program
{
static void Main(string[] args)
{
Student s = new Student(“张三”,“学生”);
Console.WriteLine(s.Work());
Teacher t = new Teacher(“李四”,“老师”);
Console.WriteLine(t.Work());
}
public abstract class Person
{
public string name;
public Person(string name)
{
this.name = name;
}
}
interface IPerson
{
string type { get;}
string Work();
}
public class Student :Person, IPerson
{
public string type
{
get { return string.Format(“老师”);}
}
public Student(string name, string type)
: base(name)
{
this.name=name;
}
public string Work()
{
return string.Format(“Person{0}:早上 8:30 开始上课”, name);
}
}
无机非金属材料工程专业基础实验课程是我校无机非金属材料工程专业的一门重要的专业必修课。自从我校无机非金属材料工程专业2008 年和2009 年相继被安徽省和教育部批准为特色专业建设点以来,无机非金属材料工程专业基础实验课程进行了一系列改革[1 - 2],2009 级开始将专业基础实验作为一门独立的课程,成为一门跨多个学科、信息量大、实践性强、发展速度快的课程。重视和学好专业基础实验课程对于巩固和强化专业基础理论知识,培养学生分析问题、解决问题的能力以及创新能力有着极其重要的意义[3 - 9]。近年来,学生数量增多,师资力量和实验设备台套数相对偏少,专业基础实验课程的教学效果一直不是很理想,主要表现在以下几个方面: ( 1)学生普遍不重视实验课程,实验操作不积极主动,课前不预习,实验操作生疏;( 2) 实验设备台套数和学生人数相比偏少,我校无机非金属材料工程专业基础实验目前的情况是10 ~20 人/ 台套,实验过程中大部分同学在观望; ( 3) 不少实验项目实验原料严重不足,有点因此不能按时上课; ( 4) 实验报告本撰写不规范。如何提高专业基础实验教学效果是我们一直追求的目标。现将我们在专业基础实验课过程中积累的较有成效的经验予以论述,与同行交流提高。
2 实验教学体会
2. 1 改革教学方法———强调课前预习采取互动式教学
实验教学中,发现学生普遍不预习,或者只是对实验原理、实验步骤进行简单的摘抄; 做实验的时候一边看实验指导书一边做,或等着老师手把手教; 实验数据处理过程中有的甚至简单的计算都搞不清楚。这样无法养成良好的实验习惯,也不能达到实验教学的目的。针对这种情况,我们强调课前预习,要求学生写实验预习报告,老师认真批阅。为了提高课前预习效果,每个实验,老师会提出许多问题,让学生带着问题去预习,教学过程中,老师就提出的问题随机提问学生,如在黏土或坯料可塑性测定实验中,可以让学生思考以下问题: 黏土或坯料的可塑性是什么? 测定方法有哪些? 什么是黏土或坯料的可塑性指数? 什么是黏土或坯料的液限? 什么是黏土或坯料的塑限? 黏土按可塑性指数大小分为高可塑性粘土、中等可塑性粘土和低可塑性粘土,它们的可塑性指数范围分别是多少? 影响黏土或坯料可塑性指数的因素有哪些? 这样的问题可以让学生深入思考,真正领会实验的原理。
另外,老师不再详细讲解实验原理和步骤,而是随机抽取学生,由学生讲解实验方案,其他学生可以提问,老师就其中细节问题再给予补充。这样课前预习就不再是一个形式,需要学生积极思考,理论联系实际,大大增强了学生学习的兴趣,调动了学生的学习积极性和主动性。
2. 2 强调人为误差———让每位同学有动手机会
我校无机非金属材料工程专业基础实验的实验设备台套数和学生人数相比偏少,目前的情况是10 ~ 20 人/台套,操作性实验过程中往往是大部分同学在观望,实验数据最后是抄别人的。为了让每位同学都有动手机会,在有限的学时内,不再强调实验设备误差,更加注重人为误差。即原先每位同学每个数据测多次变为每个数据每位同学测一次,实验报告处理数据时收集其他同学的几个数据来求平均值。例如可塑性指数法测定黏土或坯料可塑性实验中,要求每位同学必修测出一个液限和塑限值,再收集同组的其他四位同学的液限和塑限值,组成自己实验报告的原始数据,再计算可塑性指数。
2. 3 广集实验原料,丰富实验课程内容。
本课程中有几个实验项目的原料不好购买,如黏土或坯料的可塑性测定及粉体综合特性测定所需的黏土或坯料及粉体。主要是这些原料价格便宜,我们需要量不大,一些厂商往往不愿费事卖给我们。一次指导学生认识实习到含山瓷业有限公司,我们几个老师发现那里有很多我们专业基础实验需要的原料,和他们领导一商量,他们很爽快的让我们自己拿。于是,成形车间的坯料、原料车间的黏土、石英砂等我们拿回不少,够好几届学生做专业基础实验用。
实验原料多了,实验内容也丰富了。还以黏土或坯料可塑性测定实验为例,以前我们的几组学生往往只用一种黏土来测其可塑性指数,对不同种类黏度可塑性的比较仍然停留在理论上。现在我们可以让几组学生用不同原料测,如有的用坯料,有的用苏州土,有的用高岭土,测出的可塑性指数自然不同,老师会引导同学从黏土的微观结构、矿物组成及粒度大小方面来思考为什么不同的黏土可塑性不同。这样理论课程中所学的知识就直观地、生动地与实际联系起来了,从而调动了学生的学习热情。
2. 4 规范实验报告
实验报告本是实验过程的总结,但是在批改的过程中,我发现有一些学生不假思考地将实验讲义的内容抄一遍,有的没有实验原始数据的记录,有的不写问题讨论题,更严重的是相互抄袭,实验报告内容一模一样,这纯属于应付、走形式。针对这种情况,我们认为首先要提高实验报告在实验成绩中的比例。实验报告中的操作步骤,我们让学生用自己的话将实验操作过程做一总结、概括。对于数据处理方面,要求学生记录完整的原始数据并及时核对并签字,学生上交实验报告时必须将原始数据一并上交。问题与讨论题必须完整。另外,实验报告中,我们鼓励学生写一些老师在教学内容、教学方法、等方面存在的问题及自己认为好的意见和建议及心得体会。只有这样学生才会对实验报告重视、认真,才能达到编写实验报告的重要性和必要性,只有这样老师才能更有利于反省自己、提高自己、完善自己。
3 结语
[关键词]专业认证;机械基础实验;改革
[中图分类号] TU241 [文献标识码] A [文章编号] 2095-3437(2016)07-0142-03
我国工程界、教育界对工程教育专业认证制度已达成广泛的共识:建立完善的认证制度是实现我国工程教育全面、协调、可持续发展的迫切需要,能促进我国工程教育领域与国际接轨,显著提升相关产业的国际竞争力。[1] [2] [3]我国工程教育专业认证中对培养的学生提出了明确的毕业要求:“具有系统的工程实践学习经历,具备设计和实施工程实验的能力,能够对实验结果进行分析,掌握基本的创新方法,具有追求创新的态度和意识等。”[4]结合我国高校工程教育的发展现状,对其改革已刻不容缓。就目前来说,如何将工程教育改革战略、CDIO标准和能力培养目标通过具体的实践教学活动落实到学生的课程学习过程中,是工程教育改革的重点和难点。[5]机械基础实验课程作为机械基础系列课程(工程图学、工程材料、理论力学、材料力学、机械原理、机械设计、机械制造及互换性测量技术等)教学中的主要实践环节,机械基础实验是提高课程教学质量的重要手段,更是大学生提高工程素质与能力,实现知识向技能转化的重要平台。[6] [7]机械基础实验课程学习与实践能给学生提供综合性很强的基本实验技能训练,是培养学生机械设计、研究、开发能力的一个重要环节,对学生更好地理解理论知识、提高实验技能、培养产品创新设计意识等都有重要的意义。[8] [9] [10]
一、存在的主要问题
北京石油化工学院历来重视“实践育人”,尤其是近几年来,其对机械基础实验课程教学进行了大量的改革,取得了长足的进步和丰硕的成果。如实验教学课程独立设课,不再完全附属于理论课程;综合性、创新性实验项目、内容逐年更新,激发了学生的学习兴趣,提高了其独立完成实验项目的积极性、主动性。但总体看来依然存在不少问题:如实践教学的目标仍然以验证理论知识和掌握实验实训技能为主,对学生责任感、表达能力、创新能力和协作能力没有多方面的要求和考核指标,实践教学目标不合理;综合性设计性实验的比重依然较低,且实验项目单一,缺乏对多学科、多课程知识综合运用的新型实验项目内容;另外实验项目设置偏重于理论课程中知识点的演示与验证,缺乏对工程实际问题的关注与思考;课程的过程管理和监督缺位,教学评价流于形式,未形成准确、客观的实验教学考核考评办法。这些都大大降低了实践教学对学生的约束力和吸引力,从而无法保证实验教学的质量,使学生的主动性和创新性很难得到发挥。可见,对实验课程中的相关环节进行改革刻不容缓。[11] [12]
二、改革的思路及主要内容
以机械基础实验课程为载体,学生为主体,实验教师为主导,通过充实实验内容、创新实验项目、转变教学模式、构建考核体系等方法,结合现阶段国家工程教育认证要求,努力改变现有实验教学中的弊端,提高学生解决工程实践问题的能力,使其在工程产品设计中能以更加开阔的视野和思维方式,以考核促学习,考核与激励并重,充分调动学生学习的积极性、主动性。
(一)充实机械基础实验教学内容,通过实验内容的革新加强学生工程素质培养
在日常实验教学中,将实验内容、方法与工程实际紧密联系。首先,尽量在每项实验内容的讲授中引入与课程实验相关的典型工程实例,增强学生对课程所涉及知识点的工程实践应用背景的了解。另外,通过开发改进仪器装置,整合实验内容,使常规实验项目内容与工程实践更为贴近。例如将动平衡实验中通用待平衡转子用高度仿真按比例缩小的汽车车轮、轮毂、车轮整体,风扇、泵的叶轮、普通电机转子代替,采用现有实验系统对这些传动部件的平衡问题进行测试并矫正,增加实验内容的工程真实性等,这些贴近工程实际的实验项目改进更能激发并调动学生参与实验课程的积极性和主动性。我们在实验教学过程中注重培养学生的工程基础理论及解决工程实际问题的思维和方法,加强学生的工程素质培养。
(二)开发新实验,提高主动实验和创新实验的比重,转变教学模式,调动学生的积极性、主动性
综合性、创新性、设计性实验项目内容是工程教育中极为重要的组成部分,为克服传统演示型实验和验证型实验难以调动学生主动性和学习积极性的弱点,开设一批新的综合性、设计性、提高性、创新性实验项目,对激发学生的学习兴趣,拓展其专业视野,锻炼其专业能力都有事半功倍的效果。首先,建立“点面结合”的主动教学模式,提倡学有余力的学生在自主设计的“点”上进行创新,让学生自己设计实验对象,综合运用所学知识进行实验设计或撰写设计报告,实现“面”上创新。其次,建立“课内课外结合”的实践教学模式,将课内实验创意在课外延伸。例如在机构运动方案创新设计,轴系结构设计等试验中将方案设计放在课下完成,增加课后实验问题分析并提出机构或结构的创新性方案和总结,以加深学生对所学专业技术知识的理解,培养其独立工作和分析问题的能力,为后续课程的学习和毕业后从事机械工程的相关工作与研究打下良好的基础。同时应注意现代工程需要学科交叉和集成。这就要求工程师按照项目逻辑而不是学科逻辑开展工作,需要工程师团队运用不同学科的知识协同解决问题;要求工程师既具有所在工程领域的理论知识和实践能力,又具有沟通交流和团队协作的能力。因此,实验课程内容尝试采用“实验小组结合”的探究性实验模式,实验评分增加组内评分环节,以考查学生在组内实验中的领导力、参与度和组织协调能力等综合素质。
(三)制作“慕课”微课程视频,借助网络、微信等现代交流方式,拓宽学习空间
2012年起,慕课(MOOC)的先进理念开始席卷全球,其现已成为最流行的在线开放课程。[14] [15]在课程改革中制作“慕课”微课程视频,并利用学校的网络资源、计算机多媒体等实现教学内容、教学空间和教学时间的全面开放。通过线上学习,线下操作实践的方式来完成教学进程。线上学习主要包含课程视频制作、教学资料及习题内容整理上传以及课前课后的互动讨论,通过现有的教育在线系统及微信群通讯交流方式即能实现相关的功能。“慕课”背景下机械基础实验课程改革的实施,需要学生诚信、自主素质的提高。必须使学生重视每一次登录、点击、作业、答疑,同时可以采用同伴互评、教师课前提问的方法来主动约束规范学生的“慕课”学习过程,提高学习效果。线下操作,是指学生在教师的引导下独立完成实验项目内容。实验教师主要作为实验教学中问题的解答者和推进者而存在,作为一个聆听者、引导者、帮助者,他们给予学生充足的发展空间,从而充分调动学生动手实践的主观能动性,由学生自己去学习,去探索。
(四)建立科学的、合理的实验教学课程考核评价体系
目前,在机械基础实验课程教学中,主要是通过实验报告的水平来对学生的实验技能进行综合评价。很显然,实验报告并不能全面反映学生实验课程的真实完成情况,并且存在抄袭现象。这不仅不能真实、准确的反映学生的实验操作技能、投入程度及实验收获,而且会抑制学生的学习积极性及主动性。因此必须改变现有机械基础实验的教学成绩评定模式,研究出一套科学合理的机械基础实验的考核评价方法。图1为机械基础实验课程考核评价体系框图。
新型考核评价方法首先必须考虑对规定完成的实验项目内容进行客观、全面的评价。通常来说,实验项目的完成情况主要取决于三个方面,即实验准备,实验过程和实验结果分析与数据处理。因此,评价方法除应对实验报告进行量化评价外,还要对实验操作、分析、表达、实验习惯、科学态度等方面进行定性评价,同时还应采用自我评价、相互评价的方法来对实验方案的贡献情况,组员的团队合作意识与能力来进行考量。另外,考虑到实验过程中学生自主思考能力的培养和锻炼,在评价体系中增加了实验思考与附加项。最后在学期末实验课程结束后增加考试环节以强化学习效果。所考实验内容可分为基础性和提高性两类基础性题目,以课程中常规实验题目为主,有既定的实验步骤与方法,学生容易上手,难度低,但起评分也较低;提高性实验题目内容为教师根据工程实际设计拟定,其有一定深度及难度,但起评分也较高。考试前学生可根据自身情况自由分档,分档完成后题目由抽签决定。实验考试通过笔试、实际操作及实验数据处理分析三方面相结合的方式进行评定。实验考试成绩等于学生实验考试分数乘以实验题目起评分。而学生课程成绩综合所有实验项目评定成绩与实验考试成绩来确定。这样一方面可督促学生认真独立完成每次实验,对每次实验内容有更为清晰、准确的了解,并有效杜绝实验报告组内抄袭的不良现象;另一方面也可使教师对学生的综合素质有更为准确的判断,给出客观的评价,并激发学生的学习潜能,使其在实验教学实施过程中更主动、更热情、更独立,同时,更自觉地思考。
三、结语
工程教育专业认证是大势所趋,并且认证标准中已经明确了学生在工程教育的主体地位。机械基础实验课程是机械类各专业的一门重要专业基础课程,应面向机械类各专业工程教育认证的目标,以培养行业内认可的具有创新和综合设计能力及应用现代技术解决工程实验问题的复合型人才为导向,应更新教育理念,充实教学内容,丰富教育方法与手段,建立多元化的课程考核评价体系,以学生专业能力和综合素质的全面提升为目标来持续改进各教学环节。
通过机械基础实验课程的改革实践也证明,相关措施紧密结合国家工程教育认证要求,充分调动了学生主动学习和动手实践的积极性,提高了学生解决工程实践问题的能力,使其在工程产品设计中具有更加开阔的视野,这对二类本科院校高级工程应用型人才培养具有较好的借鉴作用。
[ 参 考 文 献 ]
[1] 方峥.中国工程教育认证国际化之路——成为《华盛顿协议》预备成员之后[J].高等工程教育研究,2013(6):72-76.
[2] 王娜.中国大陆高等工程教育专业认证的发展历程与展望[J].高等理科教育,2011(1):64-67.
[3] 郑秀英,王海滨,姜广峰.以专业认证标准为指导,深化高等工程教育改革[J].高等工程教育研究,2011(5):51-53,77.
[4] 韩晓燕,张彦通,王伟.高等工程教育专业认证研究综述[J].高等工程教育研究,2006(6):6-10.
[5] 蒋宗礼.工程教育认证的特征、指标体系及与评估的比较[J].中国大学教学,2009(1):36-38.
[6] 蔡晓君,傅水根,窦艳涛.依托教学实验基地构建工程实践教学新体系[J].实验技术与管理,2007(9):125-127.
[7] 蔡晓君,刘湘晨,窦艳涛,等.机械基础实践教学新体系的改革与实践[J].实验室研究与探索,2015(1):210-214.
[8] 王庆九,钟瑞明,顾大强.面向工程能力培养的机械基础实验教学方法探讨[J].实验室研究与探索,2011(11):125-127,187.
[9] 郑蓓蓉,周晨,谢晓文,等.构建机械基础实验教学体系培养大学生创新能力[J].实验室研究与探索,2009(11):137-139.
[10] 宋立权,何玉林,李成武,等.机械基础实验实践教学体系改革与实践[J].实验室研究与探索,2009(9):88-91.
[11] 蒋宏春.机械基础实验成绩评价方法的探讨[J].机械基础教育,2012(1):56-59.
[12] 奚鹰,浦海英,熊学训,等.机械基础实验课程学生成绩考核体系的设计[J].实验室研究与探索,2005(2):72-74.
[13] 许涛.“慕课”同伴互评模型设计研究[J].开放教育研究,2015(2):70-77.
[14] 刘莉,贾文友,许德章,等.“慕课”背景下机械基础实验课程教学改革研究[J].机械职业教育,2015(2):17-18.
[15] 董玲玲.“慕课”对传统高等教育的冲击和应对策略[J].中国成人教育,2013(23):145-147.
【工程材料基础实验报告】推荐阅读:
土木工程材料实验课教学改革论文06-15
材料科学工程专业认识实习报告07-22
深海工程材料07-07
工程申报材料10-12
井巷工程实验报告10-02
安装工程常用材料05-25
工程进度汇报材料06-05
道路工程材料论文09-10
工程创优发言材料09-12
关于工程材料检验09-16