心得体会是指一种读书、实践后所写的感受性文字。那么心得体会怎么写才恰当呢?接下来我就给大家介绍一下如何才能写好一篇心得体会吧,我们一起来看一看吧。
vb程序设计心得体会篇一
教材版本:人民教育出版社
中学信息技术(计算机)通用教程》(下册)
授 课 人:张 红
教学模式:运用信息技术建立以学生为主体的自主性学习模式
教学目标:
1、认知目标
(1)掌握滚动条控件的属性设置;
(2)掌握rgb函数的使用方法;
(3)掌握调色板程序的代码编写。
2、能力目标
(1)培养学生自主学习的能力;
(2)提高学生对处理信息、应用信息的能力;
(3)培养学生的实践能力和创新精神。
3、情感目标
激发学生对信息技术的兴趣和意识。
教学重点:
1、rgb函数的使用
2、调色板程序的代码编写。
教学方法:学生自主学习,任务驱动教学法
教学课时:两课时
教学工具:多媒体教学网络教室,辅助教学软件
教学准备:通过多媒体教学网,将“”、“”文件传给每个学生。
教学过程:
一、任务启动
我们在操作word或frontpage软件时,都对颜色进行过设置,在配置颜色时,我们可以根据某几种颜色合成其他的颜色。那么,我们可不可以利用vb自己来设计一个合成颜色的程序。(通过多媒体网络向学生出示本节课的任务)
[任务] 按照rgb色彩模式,编写一个调色板应用程序。改变红、绿、蓝中任何一种颜色的比例值时,都能马上预览到合成后的颜色。
教师活动:讲解rgb色彩模式合成颜色的原理。
(通过多媒体网络向学生展示调色板程序“”文件的运行过程,让学生明白程序的大致过程)
问题:通过什么控件可实现红、绿、蓝颜色的变化?
[学生讨论,回答问题]
确定任务:如何设计界面?发生何种事件?如何编写代码?
二、学生自主学习、协作学习
(通过多媒体网络出示“”)
教师活动:下面请同学们根据学案中的内容,学习滚动条控件、图片框控件和rgb函数、change事件。同学们可以互相讨论交流,分析程序的过程,可以通过发电子邮件发表自己的观点。
学生活动:学生自学学案中的内容。
„„
教师活动:教师巡视学生的学习活动,及时帮助有问题的学生并记下他们的问题。
学生活动:学生根据自己学习的内容,互相讨论,并能通过网络的功能利用电子邮件向其他的同学发表自己的观点;(激发学生的兴趣)
„„
学生活动:学生根据以学知识,自己设计调色版程序。
教师活动:巡视,发现典型作品。
三、效果评价
教师活动:同学们利用学案自己学习了本节课的知识点,掌握了滚动条控件、图片框控件和rgb函数、change事件;并能设计出调色板应用程序,而且大部分同学能运行通过。
(通过多媒体网络向学生展示学生的优秀作品)
教师质疑:(本节课的更高要求)利用前面几节课已经学过的知识,在界面上显示红、绿、蓝滚动条的当前值。
学生活动:讨论、思考、探索 教师提示:通过 “标签”控件或“文本框”控件可以显示滚动条的当前值。
学生活动:学生根据自己的设计要求调整已经设计的程序并进一步美化界面。
四、小结
本节课要点(利用多媒体网络,逐页显示)。
附:学案
知识点一、一个控件——滚动条控件(scrollbar)
1、主要属性
(1)max/min属性
用于设置滚动条中滚动块移到最右边(水平)或最下边(垂直)时,value的最大值/最小值。取值范围[-32728,32767]中的整数。系统默认的max值为32767,min值为0。
(2)value属性:用于表示滚动块的移动值。它的取值范围为[min属性值,max属性值]之间。
(3)largechange属性:单击滚动区域时滚动块的移动量。它的取值范围为[1,32767],系统默认为1。
(4)smallchange属性:单击滚动箭头时滚动块的移动量。它的取值范围为[1,32767],系统默认为1。
2、典型事件——change事件和scroll事件
·拖动滚动条控件的滚动块后,引发change事件;
·拖动滚动条控件的滚动块时,引发scroll事件;
·滚动条控件具有焦点时,按下pageup、pagedown键,引发change事件和scroll事件。
二、函数——rgb函数
作用:生成一个可以显示的特定颜色。
格式:rgb(数值表达式1,数值表达式2,数值表达式3)
数值表达式3的值是[0,255]之间的整数,表示颜色中蓝色成分。
例如: rgb(0,0,0)表示黑色,其中红、绿、蓝的成分均为0;
rgb(0,0,255)表示蓝色,其中红、绿的成分均为0,蓝色成分为255。
[任务] 按照rgb色彩模式,编写一个调色板应用程序。改变红、绿、蓝中任何一种颜色的比例值时,都能马上预览到合成后的颜色。
步骤:
一、创建用户界面
1、滚动条控件。
2、标签控件,区分三个滚动条。
3、图片框控件,可以预览调出的颜色。
4、命令按钮控件,结束程序
二、设置对象的属性(书本第103页)
三、代码编写
private sub form_load()‘初始化程序
= 0 = 0 = 0
lor = rgb(0, 0, 0)‘设置背景色为黑色,预览颜色
end sub
private sub hscroll1_change()
lor=rgb(,, )end sub
private sub hscroll2_change()
lor=rgb(,, )end sub
private sub hscroll3_change()
lor=rgb(,, )end sub
四、调试运行
1、单击三个滚动条中的滚动箭头,调整红、绿、蓝的值,观察预览框颜色的变化。
2、拖动三个滚动条中的滚动块,调整红、绿、蓝的值,观察预览框颜色的变化。
3、单击三个滚动条中的滚动区域,调整红、绿、蓝的值,观察预览框颜色的变化。
4、改变三个滚动条的large change、small change属性值,每改变一个值,重复上面三个步骤,注意比较滚动块的变化及预览框中颜色变化的速度。
五、保存文件
教后小结:
1、本节课以学生自主学习、操作为主,教师讲解为辅,保证学生有60%以上的练习时间。旨在培养学生自学的能力,创新实践的能力。
2、本节课采用“任务驱动,学生自主学习”的教学模式,还处在研究探索的阶段。从学生角度说,任务驱动是一种有效的学习方法,让学生带着任务入手,带动理论和应用软件的操作,大大提高了学习的效率和兴趣。一个“任务”完成了,学生就会获得满足感、成就感,从而激发了他们的求知欲望,逐步形成一个感知心智活动的良性循环。
3、本节课采用了建构主义教学理论基础上的教学模式,以解决问题、完成任务为主的多维互动式教学理念,将再现式学习转变为探究式学习,使每一位学生都能根据自己对当前任务的理解,运用共有的知识和自己特有的经验提出方案、解决问题、为每一位学生的思考、探索、发现和创新提供了开放的空间,使课堂教学过程充满了民主、人性,使课堂气氛真正活跃起来。
vb程序设计心得体会篇二
数据库课程设计大赛的尘嚣渐渐远去,怀着对这次大赛的些许不舍,怀着对当初课程设计开始时候的豪情万丈的决心的留恋,怀着通过这次课程设计积累的信心与斗志,我开始写这篇文章,为自己的足迹留下哪怕是微不足道但是对自己弥足珍贵的痕迹并期望与大家共勉。
首先,让我的记忆追溯到大二暑假,在老大的指引下(),我接触到microsoft 产品。那个时候我已经学过vc和asp,因为windows程序设计实验的课的关系,接触过vb,但是没有专门去学他,因为习惯了c++里面的class,int,觉得vb的sub,var 看着就不是很顺心。我是一个好奇心很强的人,突然看到了一个号称“.net是用于创建下一代应用程序的理想而又现实的开发工具”,而且主推c#语言,由于对c语言的一贯好感,我几乎是立刻对他产生了兴趣。我就开始了对c#的学习,任何语言都不是孤立存在的,所以数据交互是很重要的,暑假的时候我把我们这学期的课本数据库系统概论看了一遍()。我记得以前用c语言编程的时候,数据是在内存中申请空间,譬如使用数组等等。很耗费内存空间。这个时候就是数据库站出来的时候啦,于是我又装上了sql server2000,以前学asp的时候用的是access,那个时候只是照着人家做,理论是什么也不是很清楚。
通过一个暑假的学习,基本搞清楚了理论方面的东西,具体怎么用也不是很清楚。但是这为这学期的课程设计打下了铺垫。
来到学校后,随着这学期的数据库课程大赛开始了,我有一个看法就是我自己应该具备的能力不是我会多少,而是我应该具备快速学会东西的能力。遇到什么就学什么。我们有时候很容易被一些专业名词说吓着,包括什么建模,软件工程,数据分析,数据挖掘等等。我身边就有很多同学被这些纸老虎所唬住,而没有勇气去接触他们,总是说这个太难了之类的退堂鼓的话,他们低估了自己的潜力同时也压抑住了他们自己的好奇心。
其实都是纸老虎,又不是什么国家科研难题,只是去用一些工具,发明工具是很难,但是用一个工具就容易多了,just do it!我记得我做这个数据库之前,我们老师说要做好前期分析,我就在网上搜索用什么分析工具好。最后我选择了roseuml建模工具。在此之前,我脑袋里面没有软件建模的思想,什么uml建模对我而言就是一张空白的纸。但是真正接触后并没有想象的那么难,有什么不懂的上网去搜索,这是一个信息横流的世界,有google,baidu就没有不能解决的知识难题。以及后来的数据库分析的时候用到的powerdesigner也是一样。
开发的时候我想过用什么架构,c/s模式?模式有很多,怎么选择?我就上网搜索现在最流行的架构是什么。结果搜到了mvc架构,就是你啦。我决定用这个架构,不会,没关系,咱学。just do it!前期工作准备好后,加以实践。操纵数据库的知识。并且对数据库里面的存储过程有了比较深入的了解。经过大概2个多星期的奋斗,数据集的图书馆管理系统。并最后非常荣幸的获得了大赛的一等奖以及以及新技术应用奖。
与其临渊羡鱼,不如退而结网。这次数据库课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。出于对知识的渴望,出于对新技术的好奇,出于对一切未知的求知。我完成了这次数据库课程设计,不过这只是我学习路上的驿站,的核心技术就是xml[至少微软是这么宣传的],我会继续学习它,包括jave公司的j2ee我也很想试试,语言本来就是相通的,just do it!语言并不重要毕竟它仅仅是工具,用好一个工具并不是一件值得为外人道的事情,主要是了解学习思想。古语说的好:学无止境啊!
我很庆幸我参加了这次数据库大赛,让我确实打开了眼界。
vb课程设计心得体会(二)
vb程序设计心得体会篇三
;摘 要:vb由于具有强大的界面生成能力及灵活的数据库操作功能,是上位软件的主要编程工具之一,在很多场合领域得到了应用。然而,直接采用vb编程的主要问题是可靠性较差,特别是在与其它低层设备,如plc通讯时。本文提出一种采用内存共享技术的程序之间数据交换方法,将vb的通讯子程序和主程序分离,以解决通讯子程序死锁等故障对主程序的影响。本方法用在汽车安全气囊装配生产线的软件设计中,取得了良好的效果。
关键词:vb;内存映射;共享内存;串行通讯;plc
huang di, liu huajie, li yanning
(school of precision instruments and optoelectronics engineering, tianjin university, tianjin 300072, china)
0 引 言
汽车安全气囊作为汽车行驶过程的第一很总要安全部件,对其生产过程的可靠性以及质量控制研究即已成为近年来的研讨热点。通常,一条汽车安全气囊装配线多会由若干个装配或检测工位计算机,以及一台数据库服务器工位计算机组合设计而成[1]。其中,每个工位计算机可能和本工位的条码扫描器、plc、电动螺栓拧紧机和专用电气检测仪表等多种串行设备进行广泛互连,可实现部件品种纠错及工序间顺序控制等功能;进一步地,还可记录操作人员信息、机械或电气等检测参数信息,并存入sql数据库实现产品追溯功能。但是,如果计算机上的监控软件均采用组态软件时,由于站点数量较多,而使得成本颇高,同时组态软件还存在着对数据库支持功能不足等缺陷。基于此种情况,经过分析可知,应用vb等高级语言设计程序仍然是比较常用的方法之一。但是由于设计者技术等方面的原因,该类应用程序普遍存在可靠性差,后续维护困难等问题,特别是在与其它底层设备,如plc通讯时,常会由于通讯错误而引发系统死机或操作反映延迟等现象。本文即针对这一状况,提出了一种采用内存共享技术的解决方案[2],并以上位计算机与s7-200 plc进行串行通讯为例进行了仿真验证,而且取得了良好的应用效果。
1采用内存共享技术的通讯原理
多数情况下,普通用户会将通讯子程序嵌入到主程序中,这样当通讯发生错误,或通讯返回数据需要时间较长时,系统将会发生死锁或停顿现象,严重时还会影响操作界面程序的正常运行。为此,本文采取了一种利用公共数据区交换数据的方法,将通讯程序和主程序分成两个独立的可执行文件,并且通讯程序位于后台工作,而主程序则位于前台。采用这种方法的优点在于通讯程序和人机界面及其它控制程序、也就是主程序是完全分离的,即使通讯程序出现暂时的死锁现象,也不致影响主程序的正常运行,从而提高了软件的可靠性和可操作性。同时,由于win32是一个基于页式虚拟内存的操作系统,每个进程只能访问自己的虚拟内存页面空间,若要实现这种公共数据区的预设功能,就要利用内存映射文件的概念。
内存映射文件技术是windows内存管理的一个重要组成部分。当一个应用程序启动时,文件,确定该应用程序的代码和数据规模,系统也随之保留一个地址空间的区域,文件本身,这一过程可称为内存文件映射,文件,并将其映射到进程地址空间的过程。如果使两个或多个进程映射同一文件映射对象的视图,那么就将共享磁盘上同一文件或者物理磁盘的同一页面,这样当一个进程将数据写入另一个共享文件映射对象的视图时,其他进程可以立即在其对应视图中查看数据的变化,从而实现了进程间内存级的高速数据传输[3],这一过程如图1所示。
图1 采用内存映射文件的公共数据交换过程示意图
需要指出的是,共享文件可以是一个磁盘文件,也可以是一个物理内存区域,或一个虚拟磁盘区域。为了实现高速交互,一般只使用物理内存或虚拟磁盘文件。另外,对每一个通讯程序,根据数据类型和应用要求,可以设置多个共享文件映射对象。
2 内存映射文件的使用步骤
long mappinghandle= createfilemapping(&hffffffff,0,page_readwrite,0,256, “map”)
即表示创建了一个可读写的、256字节、且名字为“map” 的内存映射文件。同时,为了实现快速数据传输,设置第一个参数为&hffffffff,即表示在物理内存上创建对象。通过调用本函数就可获得文件映射内存对象句柄。
long mapingaddress = mapviewoffile(mappinghandle, file_map_write, 0, 0, 0)
long mappinghandle = openfilemapping(file_map_write, false, "map")
(4) 如果通讯程序成功获得了共享内存对象的句柄,也需要执行(2)的操作来获取映射对象视图指针。
(5) 主程序或通讯后台程序利用(2)返回的映射对象视图指针mapingaddress,采用copymemory()函数实现即可实现对该空间的访问,具体可参见实例代码部分。
(1) 调用unmapviewoffile()从进程地址空间中撤销文件映射内核对象的映像。
(2) 调用closehandle()关闭文件映射内核对象。
3 pc与plc的串行通讯技术
vb中通常采用了mscomm控件以实现工位pc与plc等底层设备的交互通讯。mscomm控件的实用性强、功能完善,同时更为应用程序提供了通过串行接口收发数据的简便方法[4]。
mscomm控件提供了两种处理通信的方式。一种是事件驱动方式,当有字符到达或发生变化时,mscomm控件都将触发oncomm事件。事件驱动方式的优点就是程序响应及时,但由于接收一个完整信息却需多次中断,如此则不仅降低了程序的执行效率,而且也增加了出错的可能性;另外一种即是查询方式,通过定时或延时查询mscomm控件的某些属性(比如commevent和inbuffercount属性)值是否发生变化,以此来选择并确定相应的处理程序。这种方式的优点就在于可以由用户控制通讯过程,尤其当程序空闲较多时多采用这种方式。
本文将每个通讯过程设计成独立的通讯程序,每一通讯程序将采用查询方法来实现和底层设备的通讯过程,再通过各自定义的公共数据区而与主程序实现数据交换。下面即可、以与西门子的s7-200plc的modbus通讯方式为例,介绍通讯程序的设计,plc侧的modbus通讯程序利用西门子公司所提供的库函数[5]。
具体地,通讯程序的一次通讯流程则如图2所示,实际程序中,每次通讯过程均由定时器定时触发。
由图2可知,通讯程序设置定时器定时向通讯对象(如plc)发出读信息命令,并置循环计数器n=0、再休眠(延时)一定时间间隔后,即进入读取接收信息死循环。程序首先读取缓冲区接收字符长度(inbuffercount)信息,若该值不为零,说明数据已经收到,接收后分解数据,同时根据接收到的功能号或校验结果,判断接收是否正确。若正确,置为1,,并调用writetosharedmemory()存入公共数据区(详情参见程序代码);若不正确则丢弃。若inbuffercount值为零,说明没有接收到数据,空循环,再次读取inbuffercount信息,并使空循环计数器n加1,当n超过设定次数(如10次)时,即预定为接收失败,将跳出接收死循环。
采用如上方法可以人工控制程序流程,避免出现死循环现象,而且需要根据读信息命令的内容,调节延时间隔,即可以实现正确的接收过程。
而对于通信主程序来说,也是由相同定时间隔的定时器触发定时读取公共区的数据,来判断是否进行更新显示或控制等操作,由此可见数据更新标志在主程序和通讯子程序之间起到一个同步作用,详细流程则如图3所示。此外,对于向plc下发控制命令,则采取相反的流程。
4 部分程序代码
在此,给出内存映射文件的部分实例代码,具体则如下所示。
type stshrplc "定义plc数据结构
bfalg as boolean " plc数据更新标志
nddata as integer " plc数据
end type
public hmh_shrplc as long "内存映射句柄
public hma_shrplc as long "映射视图指针
public sub form_load() "窗口加载函数
hmh_shrplc =createfilemapping(&hffffffff,0, page_readwrite,0, len(g_shrplc), str_shrplc)
"创建内存映射文件
closehandle (hmh_shrplc) "关闭映射文件
end
end if
if hma_shrplc = 0 then
closehandle(hmh_shrplc) "退出前关闭
end
end if
end sub
if hma_shrplc 0 then
call copymemory(byval hma_shrplc, byval g_shrplc, len(g_shrplc))
end if
end sub
if hma_shrplc 0 then
call copymemory(byval g_shrplc, byval hma_shrplc, len(g_shrplc))
end if
end sub
5 结束语
将主程序与plc等通讯程序分离,同时利用共享内存技术实现程序间数据的快速交换,并且充分利用windows系统自身的多任务调度机制,得到的监控程序具有通讯可靠、界面操作流畅等优点。应用时由主程序调用sell()启动其它通讯程序,并设其为后台运行方式。本方法可用于研制的汽车安全气囊装配生产线上,而且通过在企业的实际应用,系统已完全达到了设计目标,获得了良好的应用效果。
参考文献:
相关热词搜索:;
一键复制