可视化编程

2024-10-11

可视化编程(精选8篇)

可视化编程 篇1

可视化编程是指编程过程中可随时看到结果, 程序与结果的调整同步。可视化编程泛指一切使用可视化元素的操作, 代替文本 (编码) 输入的程序设计方式, 它大体上就像画流程图一样, 通过连接若干“盒子”和“箭头”来实现程序逻辑。传统程序设计给人的印象是长长的代码, 而可视化编程则使人人都可以成为程序员。因此, 在中小学信息技术教育的发展历程中, 可视化编程始终是国际程序设计教学的重要发展方向。

然而, 回顾我国中小学信息技术教育发展的历程, 从上世纪80年代计算机教育发展到强调计算机素质, 再从计算机素养发展到重视和突出信息素养。期间, 在信息技术课程中虽然开设有“程序设计”模块, 但是, 程序设计教学逐渐被冷落, 则是不争的事实。

从计算机教育到信息技术教育的发展演变

世界各国从20世纪80年代开始都特别重视将计算机引入到学校教育中。我国教育部1982年就在全国设立了五所计算机教育实验学校。1983年, 教育部在总结试点学校经验的基础上, 制定了计算机选修课的教学大纲, 1984年颁发了《中学电子计算机选修课教学纲要 (试行) 》。在全世界程序设计思想的影响下, 我国规定教学内容是简单的计算机工作原理和BASIC程序设计语言。

之后, 教育工作者不断反思, 自上世纪90年代中期开始, 中小学计算机教育的“文化论”开始受到“工具论”的冲击。1999年, 计算机课程更名为信息技术课程, 2000年, “全国中小学信息技术教育工作会议”召开, 会议提出了“在中小学大力发展信息技术教育”。

随着《中小学信息技术课程指导纲要 (试行) 》 (教育部, 2000) 和《基础教育课程改革纲要 (试行) 》 (教育部, 2001) 的出台, 信息技术教育的目标确定为信息素养的培养。之后, 伴随着信息与通讯技术的发展, 在过去的十多年时间里, 我国中小学信息技术教育取得了巨大的成绩, 也日益显示出信息技术教育的重大意义。

可视化编程:让青少年以轻松有趣的方式学习编程

史蒂夫·乔布斯曾经说过, “在这个国家, 我觉得每个人都应该学习计算机编程, 因为程序设计学习可以教会你如何去思考”。程序设计教学对儿童创造性思维能力的培养、思维训练以及创新能力培养具有至关重要的意义。

然而, 如何教会儿童编程?特别是如何以一种儿童喜闻乐见的、有趣的方式学习程序设计是一个值得思考的问题。也因此, 可视化编程 (Visual Programming Language) 成为世界各个国家重视青少年程序设计教学的人们始终努力的方向。

在计算机技术的发展历程中, 涌现出过各种各样的程序设计语言:机器语言、汇编程序设计语言、高级程序设计语言 (BASIC, FORTRAN、PASCAL、C、C++、Prolog、Java、C#等) 、数据库管理语言 (如SQL) 、网络数据交换语言 (如XML) 等。可视化编程是在高级程序设计语言的基础上发展起来的, 它是让程序设计人员利用软件本身所提供的各种控件, 以一种可视化的方式, 像搭积木似地构造应用程序。可视化编程因其可以使教学模式更加直观, 教学效果提高更加明显而备受关注。

LOGO语言和Scratch软件是两款出自美国麻省理工学院的早期编程语言, 也是两种与自然语言非常接近的可视化编程语言, 它们通过“绘图”的方式, 以一种寓教于乐的方式, 来帮助青少年儿童学习编程。LOGO语言创始于1968年, 是由美国国家科学基金会所资助的一项研究, 在麻省理工学院 (MIT) 的人工智能研究室完成。而Scratch则是2007年推出, 在推出之后, 与LOGO当年的情景一样, 许许多多的中小学纷纷将Scratch教学纳入信息技术课程之中。

随着LOGO、Scratch、BYOB、Alice、Treehouse、Hackety Hack、Codecademy、Codea等一批可视化编程工具的应运而生, 以及支持学习者编程制品分享的在线社区的迅速兴起, 以“社交化转向”为特征的计算参与, 开始成为当今世界各国中小学程序设计教学实践中培养学生计算思维的新范式。

事实上, 在过去几年间, 在国内, 有一批热衷对中小学信息技术课程教学进行改革的教师, 他们对单纯由信息素养主导的中小学信息技术课程进行了反思, 并创造性地运用Scratch之类的可视化编程语言, 开展可视化程序设计教学, 积极推动Scratch及相关传感器技术的教学应用, 尤其是学生创新思维能力培养上的应用, 取得了可喜的成绩。

跳房子:基于iPad的儿童可视化编程应用

遥想当年, 邓小平讲“计算机要从娃娃抓起”, 我想他强调的应该不仅仅是从小就抓计算机应用, 还应该包括借助计算机通过编程教学从小培养孩子的创新思维能力。因此, 在计算机教育阶段, 计算机课程的学习, 基本上就等同于某一种编程语言的学习了, 因学生在算法和数据结构等方面缺乏基础, 加之当时计算机珍贵稀少, 联系机会很少, 学生所学较难实践应用, 所以教学效果并不理想。

最近一些年, 随着移动终端的普及, 不少学校开展了基于平板电脑、笔记本电脑等移动终端的一对一数字化学习, 而基于平板电脑的可视化编程应用开始倍受人们的重视。后来, 受Scratch的启发, 利用Javascript、HTML5和其他开放Web标准开发的基于iPad的可视化编程应用不断涌现出来, HopScotch、Daisy the Dino以及Tynker就是最有影响力的两款。

Hopscotch, 其中文翻译为“跳房子”。这款应用程序非常适合8~12岁的儿童使用, 它采取模块化代码和图形编程界面, 儿童只需要拖动编程模块到代码区域就可以完成一个功能, 不需要进行任何输入操作, 就像是堆积木一样, 这样“编”出来的程序有点类似于游戏, 互动性很强。

Hopscotch还专门开发了一款更加适合低幼儿童使用的、基于iPad的可视化编程应用, Daisy The Dino, 它采用“自由创作”和“挑战升级”两种模式, 以更加直观、有趣的方式培养低幼儿童的编程兴趣和创造的乐趣。

另外一款可视化编程应用叫Tynker。它是一个基于网页的学习平台与一个可视编程语言, 为中小学教师和在校中小学生提供编程学习服务。Tynker可以在课堂上和回家以后使用, 教师和家长只要通过其网站给孩子们注册, 后者就可以访问基于Web的课程和学习内容, 这些学习内容既有游戏、练习, 也有互动式辅导及答疑。

可视化编程应用:让儿童快乐学编程

随着移动终端的日益普及, 以可视化的方式, 借助可视化编程应用, 让儿童快乐有趣地学习编程, 从而培养学生创新性思维能力, 相信业已成为许多教育工作者、学生家长以及广大教师的共同愿景。

那么, 究竟如何借助可视化编程应用, 让儿童快乐有趣地学编程呢?关中客这里分析自己的几点建议:

第一, iPad不只可以“切西瓜”、追电视剧, 还可以用来做很多事情, 其中包括教授孩子编程。教师和家长应当身先士卒, 率先垂范, 树立终身学习的榜样。

第二, 了解可视化编程应用, 建议下载安装Hopscotch, 对于幼儿园以及小学中低年级的孩子, 可以安装Daisy the Dino。安卓平板也可以检索获取适合Andriod操作系统的可视化编程应用。

第三, 克服学生对编程的恐惧心理, 在学龄前和小学中低年级以游戏为核心, 以鼓励“创造”为主要目标。

第四, 示例演练, 模仿尝试, 跟孩子一起探索。先让孩子采用“挑战过关”的模式, 熟悉基于平板的可视化编程基本操作, 再鼓励孩子模仿, 家长和孩子一起尝试探索是非常重要的且值得鼓励的举措。

第五, 鼓励孩子将自己的作品上传到相关社区, 分享交流, 和其他小伙伴、老师、家长一起展示自己的作品、分享编程的快乐。

可视化编程的实践与思考 篇2

通过近两年编写证券分析可视化的软件,对可视化编程中遇到的一些问题的解决方案进行总结,如动态显示数据的擦除和重绘、不同数据源的切换、单例模式和门面模式的使用。

2 动态显示价格、成交量、指标擦清

在Java图形编程中,动态显示数据代码一般放在鼠标移动事件中(public void mouseMoved(MouseEvent e)),同时应将绘图模式设置为异或模式setXORMode(color),指定颜色和已存在的图形颜色相同时,在已存在的图形上重绘,异或操作后可以擦去图形,达到动态显示数据的目的;指定颜色和已存在的图形颜色不同时,在已存在的图形上重绘,异或操作后绘出新颜色的图形。在实践编程中通过移动光标可以动态显示光标所在位置对应的价格、成交量或技术指标等数据。在慢速或中速移动光标的情况下动态数据擦除和绘制正常,但快速移动光标时出现部分数据无法完全擦除,可以初步认定程序代码逻辑没有问题,是执行效率问题,也就是说在光标快速移动的情况下,Java虚拟机来不及处理数据擦除和绘制。

显示的数字位数多、特别是包含有小数部分时容易无法完全擦除,进一步确认代码逻辑没有问题,是执行效率问题。尝试对代码进行优化:首先把重复出现的相同代码块整合到一个地方。其次将在绘制价格、成交量或指标时同时进行float向String转换的语句String.format("%.2f",pVFloat/1000.0f),从绘制语句g.drawString(String.format("%.2f",pVFloat/1000.0f),x1,y1)中移出,移到该语句执行之前执行,即pV=String.format("%.2f",pVFloat/1000.0f);g.drawString(pV,x1,y1),此时该问题不再出现。

分析原因,主要是在绘制价格、成交量或指标时执行float向String转换操作占用时间,影响擦清。

3 对不同数据源分析

由于软件主要功能是进行盘后分析、资金管理,如果无法及时获得准确的日线数据,那么软件就失去作用。对不同数据源进行分析发现目前各大证券公司使用的数据主要有两种格式,以下是某品种的两天交易数据。

数据源a:

数据源b:

之前使用数据源a存在不及时、接收慢、有时数据缺少等问题,目前切换到数据源b,数据源a的缺点都得到较好的纠正,通过在配置文件中更改数据源文件所在位置实现数据源切换。一旦一个数据源数据出现问题可以很容易切换到另一个数据源。

4 使用单例模式加快窗口显示速度

作为对象的创建模式,单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。由定义可以总结出单例模式的要点有3个:(1)单例类只能有一个实例;(2)它必须自行创建这个实例;(3)它必须自行向整个系统提供这个实例。

在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。

一个经典的单例实现:

在软件设计中使用单例模式改写反复被显示的窗口,如:管理窗口(包含板块设置、持股、交易历史、叠加排序、指标选项卡)、代码和品种名称对照窗口,减少资源占有,减轻JVM垃圾回收的负担,实践证明能明显加快窗口调用速度,并能保留之前对窗口显示数据的更改。

一个单例窗口类:

5 使用门面模式简化调用

门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。门面模式涉及到的角色:门面角色:客户端可以调用这个角色的方法,此角色知晓相关的一个或多个子系统的功能和责任,通常情况下,此角色会将所有从客户端发来的请求委派到相应的子系统去。子系统角色:可以同时拥有一个或多个子系统,每一个子系统可以不是一个单独的类,而是一个类的集合,每一个子系统都可以直接被客户端调用或者被门面角色调用,子系统并不知道门面角色的存在,对于子系统而言,门面仅仅是另外一个客户端。

在证券交易软件中使用sortSZSH(int date1,int date2,String szshPath,String[]codeName)方法对一段时期上海或深圳所有股票进行涨跌幅排序,参数说明:date1为排序开始日期、date2为排序截止日期、szshPath为上海或深圳数据所在的路径、codeNameA为上海或深圳股票代码名称对照表。由于上海和深圳数据所在的路径不同,上海和深圳股票代码名称对照表分别存放在不同的文件中,进行排序需要4个参数,通过门面模式可简化调用,减少两个调用参数。

对上海所有股票进行涨跌幅排序:

其中szPath为深圳数据所在的路径、shPath为上海数据所在的路径、codeNameA[11]为上海股票代码名称对照表、codeNameA[12]深圳股票代码名称对照表。这样在实际调用中就不必要记住不同交易所数据所在的路径和股票代码名称对照表存放的位置。

6 结语

在软件开发的过程中,什么是可以深信不疑的?什么是软件开发的一个不变的真理?不管在何处工作,构建些什么,用何种编程语言,在软件开发上,一直伴随的那个不变真理是变化!不管当初软件设计得多好,一段时间之后,总是需要成长与改变的,否则软件就会被淘汰。驱动需要改变代码的原因有很多,如:用户需求发生了变化或者想要新功能;采用别的数据库产品,又从另一家厂商买了数据,造成数据格式不兼容等。因此在软件开发生命周期的任何阶段,尽量使用设计模式和架构,提前在代码中加入弹性,方便后期功能扩充和维护。

参考文献

[1]Harvey M.Deite,lPaul J.Deitel,Sean E.Santry.高级Java2大学教程.北京:电子工业出版社,2003,2.

可视化编程 篇3

听课评课稿

本课教学以设计编写简单的程序为任务主线,熟悉VB编程的环境,学习可视化编程的方法与概念。将编程的方法与概念及思想渗透到真实的任务情境中是一种比较高效务实的教学策略。避免单纯的概念说教,也容易实现可视化编程的方法与概念的具体落实。教师能够讲清可视化编程的几个重要概念。学生也按教学设计完成小程序的编写任务。教学中师生交流和谐融洽,学生学生认真,同学间交流能顺利完成教学任务。可见平时教师教学严谨,学生训练有素。以下就几个方面做简单点评,希望批评指正。

1.过程与思想 本模块教材《算法与程序设计》以VB语言程序设计为载体,通过让学生亲历具体的程序设计案例,学习可视化编程的思想与方法。程序设计是过程,而在完成程序设计中学习通过计算机解决问题的思想方法、学习编程的基本算法,进而引导学生体会编程思想是本模块的重要教学内容。而本节课正是基于前两章学生学生编程结构之后,对可视化编程的方法与概念的一次整理与总结。教师在出示教学目标时应明确指出本节课不是做一个VB程序,而要淡化“VB”的概念,要将学习内容扩展到所有计算机编程语言的共通的程序设计理念。通过程序设计学习思想与方法才是真正的目标。

2.通过交流理解概念 本节中概念集中抽象,如:对象、属性、方法、过程、事件等。教师将几个概念集中讲解,之后切入到小程序的制作中讲解设置对象的属性。前后衔接有脱节之感。在上课的前23分钟进行全体控制时间有些长,学生注意力容易分散。一些概念可以让学生来举例,看看学生是如何理解的。教师补充。对于控件箱里的控件,也可让学生先试试。

可视化编程 篇4

在自动化加工中, 切削参数及切削力是影响加工质量的重要因素, 对切削力及切削参数的分析是合理选择刀具、切削功率及夹具的前提。为了更好更方便地对切削数据进行分析, 各国相继建立了金属切削数据库。切削数据库的建立不仅方便了编程人员对切削参数的储存、查询及调用, 而且为实现网络共享及在线切削监控打下了坚实的基础。长期以来, 切削数据库中数据的可视化技术也是一个重要的研究方向, 通过对切削力及切削参数图形的认识, 编程及分析人员可以直观地对各种加工情况进行比较分析, 这对提高生产率有积极的推动作用。本文提出了一种利用MATLAB和C++软件实现Access中切削数据可视化的方法。

1系统总体结构

众所周知, MATLAB具有强大的图像处理及显示功能, 而C++语言与MATLAB相比则具有代码执行效率高、可移植性强、易于隐藏算法等优点, 综合考虑这两个软件的优缺点之后, 决定采用MATLAB作为切削参数的可视化工具, 而C++作为系统开发的平台, 负责执行编辑系统执行程序、调用数据库数据和MATLAB引擎的任务。实现MATLAB与C++混合编程的方法有8种:使用MATLAB引擎、使用ActiveX控件、使用MAT文件共享数据、使用C-MEX技术、使用MATLAB COM Builder、使用Mideva工具、使用MATLAB Add-in以及使用MATLAB编译器。本系统之所以选择使用MATLAB引擎的编程方式是因为此编程方式采用的是C/S模式, 相当于在后台启动了一个MATLAB进程, 这样便可以使用MATLAB中的所有图形处理及显示程序, 和其他编程方式相比可以实现更多图形显示及处理功能, 这无疑是最适合本系统的方法。在选择C++访问数据库的技术方面, Visual C++提供了5种相关技术:ODBC、MFC ODBC、DAO、OLE DB和ADO。其中, MFC由于封装了ODBC API, 编写程序时非常简便, 因此选择MFC作为开发数据库技术。系统总体结构如图1所示。

2数据可视化的实现

本文的试验数据为CA6140B车床的车削加工数据, 采集和储存系统及过程这里不做介绍, 采集的数据为切削速度及切削力两部分。可视化的实现过程分为以下3步:①在利用C++程序创建工程之前需对数据源进行注册, 并设置MATLAB引擎以实现在C++中对数据库和MATLAB引擎的调用;②利用C++建立工程项目、编辑对话框以及关联变量;③编写程序实现数据可视化。

2.1 注册数据源及设置MATLAB引擎

注册数据源是在利用C++创建工程项目之前进行的, 采集的数据包括了切削速度及切削力两部分, 由数据储存系统将数据自动储存到“cut.accdb”数据库中。对数据源进行注册的方法是:选择控制面板进入管理工具, 选择数据源命令, 进入数据管理器, 单击“添加”按钮, 选择“Microsoft Access Driver (*.mdb, *.accdb) ”选项, 并在选择数据源名时在相应储存路径下选择“cut”, 单击完成按钮即完成对数据源的注册。对MATALB引擎的设置是在创建项目时进行的, 要在VC++中调用MATLAB引擎, 必须包含头文件engine.h并引入MATLAB中对应的库文件libmx.lib、libmat.lib、libeng.lib。具体步骤如下:首先启动VC++, 在菜单/工程选项中打开“选项”页, 进入“目录”页面, 找到Include files, 并添加MATLAB相应的安装路径下的externinclude;然后选择Library files, 添加路径为MATLAB安装路径下的externlibwin32microsoftmsvc60和externlibwin32;最后通过菜单工程/设置, 打开属性设置页面, 在Link处添加文件名libmx.lib、libmat.lib、libeng.lib, 即完成对MATLAB引擎的设置。

2.2 创建工程编写可视化程序

在创建工程项目时选择选项卡中的“MFC AppWinzard[exe]”选项, 项目名称为“visualization”, 其他保持默认值, 然后一直单击“Next”直到完成对项目的创建。在创建完成后切换“WorkSpace”到“ResourceView”选项卡编辑对话框, 根据实际情况设计合适的对话框, 并在设置好对话框之后对每个成员设置变量关联, 以保证对话框的输入和输出。选中“View|ClassWizard”中的“成员变量”, 选择“添加变量”之后在“添加成员变量”对话框中依次输入变量名及变量值并选择变量类型, 保存之后展开“CDemo01Dlg”类, 对件数内容进行修改, 其主要代码如下:

#include"stdafx.h"

#include 进行数据库编程所需的头文件

#include 进行数学分析所需的头文件

#include"engine.h" 包含MATLAB引擎头文件

… …

voidCDemo01Dlg∷Onok ()

{UpdateData (TURE) ; 更新关联

try{ m-pdatabase=new CDatabase; 定义CDatabase类型指针

m-pdatabase->Open (-T ("cut") , FALSE, FALSE, -T ("ODBC;DSN=cut") , FALSE) ;建立数据连接

m-pset=new CRecordset () ;

m-pset->m-pDatabase=m-pdatabase;}

catch (CDBException* e)

{e->ReportError () ; 判断数据库连接

if (!m-pdatabase->IsOpen () ) return FALSE;

if (!m-pset) return FALSE;

try{BeginWaitCursor () ;

if (m-pset->IsOpen () ) m-pset->Close () ;连接成功则指针指向close () 类函数

m-pset->Open (CRecordset::dynaset, strSQL) ; 返回数据库记录集, 并动态更新数据

… …

for (int n=0;n

{m-pset->GetODBCFieldInfo (n, fieldinfo) ;

while (!m-pset->IsEOF () ) {

for (int j=0;j

… …

Engine *ep; 定义MATLAB引擎指针

If (! (ep=engOpen (NULL) ) )

{cout<<"engine start error"<

mxArray *x=mxCreatDoubleMatrix (1, N, mxREAL) ; 定义mxArray为1行weCount列数组

memcopy (mxGetPr (x) , ss, N*sizeof (double) ) ; 复制x数组到ss数组中

engPutVariable (ep, "ss", ss) ; 将数组写入到MATLAB工作空间

… …

engEvalString (ep, "y=0:0.2:100") ; 数据采集时间间隔为0.2 s

engEvalString (ep, "plot (ss, y") ; 绘制参数变化曲线

engEvalString (ep, "y label ('speed') " 在Y轴标注speed

engEvalString (ep, "xlabel ('t') "; 在X轴标注t

engEvalString (ep, "hold on") ; 叠加绘图模式

… …

mxDestroyArray (x) ; 销毁数组

engClose (ep) ;} 关闭MATLAB引擎

2.3 实例运行结果及分析

图2为加工零件, 图3为数据可视化结果。从图3中可以直观地看到切削力及切削速度在加工过程中的变化:当由B点加工到C点时由于切削速度及切削深度同时增大导致切削力有了明显的增加;当由C点向D点加工时, 虽然切削速度没有变化, 可是由于切削深度的变化导致了切削力的增加。

3结语

通过对实例的分析可知, 切削参数的可视化可以帮助加工及编程人员直观地了解切削参数的变化范围及方向, 这不仅有利于工作人员对切削时各切削参数的变化进行直观认识, 而且可以帮助工作人员判断实际加工过程中机床的工作情况, 如机床实际工作效率等, 以便根据实际数据对机床进行调整, 最大限度地提高机床的工作效率。当然, 利用数据可视化技术亦可以对其他参数进行可视化操作, 相信其将在更多的领域得到应用。

参考文献

[1]王正林, 刘明.精通MATLAB7[M].北京:电子工业出版社, 2006.

[2]科教工作室.Access2007数据库应用[M].北京:清华大学出版社, 2007.

[3]张亮, 王继阳.MATLAB与C++混合编程[M].北京:人民邮电出版社, 2008.

[4]求是科技.Visual C++6.0数据库开发技术与工程实践[M].北京:人民邮电出版社, 2004.

[5]刘维.精通MATLAB与C++混合编程[M].北京:北京航空航天大学出版社, 2005.

[6]陈焕英, 张红琴, 曹小荣.运用VC与MATLAB混合编程实现切削数据库中数据的可视化[J].煤矿机械, 2005 (9) :61-63.

可视化编程 篇5

怎样能让学生在课堂上学好VB语言课呢?怎样能激发学生学习的兴趣, 吸引学生的注意力?怎样改善学生的学习方式, 提高学生的学习自信心?

我结合近年来从事可视化编程课程教学的经验, 就这门课程模式的教学改革作了以下探讨, 不当之处, 请同行和专家批评指正。

1 实验教学必须和课堂讲授结合

将实验教学与课堂讲授有机结合起来, 进行恰当衔接, 可以提高学习效率, 并收到良好的效果。首先, 实验教师最好是本门课程的主讲教师, 这样, 讲课进度、讲课内容和风格、作业的布置以及学生的听课情况及存在问题, 都能了如指掌, 为实验教学的准备提供了第一手资料。与此同时, 我们也注意在上机实验中发现学生学习存在的问题, 在上机实验中能及时解决, 同时采纳学生提出的合理化意见或建议, 反过来使课堂教学的效率不断提高。其次, 在每周一次的教研活动时, 同门课程的教师可经常一起集体备课, 研究教材教法与实验教学的方法, 讨论学生学习情况, 交流心得体会, 研究考试及评分方法, 大家做到胸中有数, 使得实验教学更加具体化, 并将实验教学与课程教学紧密结合, 从而提高学生的学习效率。

2 教材改革

随着计算机技术的迅猛发展, 程序设计课程的教材不断推陈出新, 教师应深入分析过去教材中的优点和不足之处, 根据学科发展的特点、内在规律及其对教学的影响, 按照教学改革方案的要求, 在新一代教材中选择能反映学科发展的现状、趋势、特点的, 能适应经济发展及市场人才需求的新教材和整套具有系统性的教材。教材内容努力做到:准确定位, 合理取舍, 思路清晰, 通俗易懂, 语言优美。

现在的教材基本都是一个模子来的, 内容、顺序都基本一致, 大多数教师的授课进度都是按照教材顺序, 一章接着一章。因此, 课程的讲授也要按照这个进度进行。虽然这在一定程度上影响教学效果, 但是笔者认为这不是影响教学效果的唯一因素, 任课教师只要重新组织一下教学顺序即可, 教学效果可能会更好些。当然, 笔者已经在着手编写新教材。

3 精心组织教学内容

精心组织好每一堂课程的教学内容, 力求做到重点突出、思路清晰、理论联系实际, 抓住教学的重点难点、合理地分配课时, 才能把学生必须掌握的内容传授给学生, 并能让学生把容易学的知识和技能牢牢地记住, 不容易理解的能够学会、理解并且能基本灵活应用, 使学生感到听课是一种享受, 教师和学生要将心比心, 设身处地为学生着想。

在程序设计课中会遇到的一个问题是:讲课是从语法规则入手还是从具体问题或任务入手。在程序设计课的传统教学中, 经常是一开始就介绍一大堆规则、定义, 就如讲外语先讲语法, 等讲完语法再讲造句阅读。然而人们的认识规律往往是从具体到一般, 因此, 讲授程序设计课程, 不能孤立地讲语法规则, 要把它结合到程序应用中, 通过阅读和编写程序让学生自然地理解和记住有关规定。

在教学方式上, 从应用出发组织教学。第一步提出问题。第二步介绍解决问题的方法。第三步, 归纳出必要的规律和概念。为了激发学生的学习热情, 我们采用了任务驱动的方式, 即在讲授新的课程内容时, 精心设计, 从具体问题入手, 在授课之初首先提出一个学生比较熟悉且实际的任务, 然后告诉学生, 要通过后续课程的学习来完成这一任务。学生一听, “哦, 原来这些新的内容可以解决很实际的问题”, 学习的兴趣被激发出来了, 同时也会激起学生达成任务的好胜心。在此基础上一步步深入, 将学生逐步引向相应的学习内容, 通过学习和讨论来完成这个任务, 解决这个问题。随后再通过大量例题说明有关语句或函数的功能, 并归纳总结出几点结论, 说明使用规则和需要特别注意的细节。简单地说, 即采用“提出任务—介绍完成任务的方法、知识—归纳结论和规律”三部曲。这样学生看得见、摸得着, 思想跟得上, 学了就能用。

总之, 教师不能再把传授知识作为自己的主要任务和目的, 而应成为学生学习的激发者、辅导者、各种能力的和积极个性的培养者, 把教学重心放在如何促进学生的“学”上, 我们的着眼点不是只注意学生“学会”哪一个知识点, 而应当培养学生“会学”有关的知识。从而真正实现教是为了不教。

4 精选授课例题

在进行课堂授课过程中, 选择合适的例题非常重要。因此笔者建议每一堂课的每一个例题都要经过精心选择, 例题要有针对性最好结合学生所学专业, 以激发学生的学习热情, 调动学生学习的积极性。选择好一个例题, 对学生理解相关内容会达到事半功倍之效果。特别要安排一个综合性的课程设计如完成一个MIS系统的设计与实现, 会对提高学生的动手编程能力大有好处。

5 改革考核方法

一定要彻底改革传统的死记硬背的考核方法, 完全可以实行开卷考试, 让学生个人或几个人一组完成一个小型MIS系统的开发, 最大限度地发挥学生在学习过程的主动性、积极性和创造性, 既可以把对学生的创新思维和创新能力的培养贯穿到我们的教学环节又可以让学生在开发系统过程中体会到学习的快乐、完成系统后体会到自己的成就感。成绩评定可以采用学生答辩的方式, 还可以锻炼和培养学生的思维能力和表达能力。

诚然, 课程的教学效果还会受到很多因素的影响。但是, 笔者认为只要抓好上述五个环节, 就可以很大程度提高教学质量, 特别是提高课堂授课质量。因此, 如何在短时间内, 通过教学使学生对这门课程知识的理解和掌握得到很快的升华, 是值得探讨和研究的。只有通过在教学过程中不断发现问题、解决问题, 不断探讨新的教学方法, 才能使教学质量不断提高, 这正是我们教师的任务, 也是我们的责任。

摘要:由于可视化编程应用-Visual Basic课程的特殊性, 职业学校计算机专业的学生学习这门课程普遍存在困难, 许多学校采取了“讲解+演示+操作”的授课方法, 但在教学实践中存在许多突出问题, 教学效果欠佳, 本方在对这些问题进行全面分析的基础上提出了多项改进建议。

关键词:可视化编程应用,实验教学,任务驱动

参考文献

[1]魏晓林.计算机课程在高职工科类专业的教学探讨[J].煤炭高等教育, 2002 (5) .

[2]李伶.高职计算机专业教育的探析[J].求实, 2004 (S3) .

[3]虞凤娟.在计算机教学中开展“任务驱动法”的尝试[J].成才之路, 2009 (3) .

可视化编程 篇6

可视化编程技术是计算机专业学生必须掌握的内容, 同时也是程序设计人员、开发人员必须熟悉的内容。它能够锻炼学生的逻辑思维能力、分析问题和解决问题的能力。但对初学者而言, 仅仅学习了面向过程的C语言程序设计, 很难理解可视化的含义。如何理解图标、控件、窗口、对话框, 如何实现一个优美的界面, 如何做到“所见即所得”, 都是需要考虑的问题。因此, 对可视化编程技术的教学进行改革与实践是有重要意义的。

1教学目的

由于学生已经学过C语言程序设计, 基本掌握面向过程的设计方法。考虑到学生的接受能力和以后的就业, 选择Visual C++作为程序编辑器和编译器。希望通过本课程的教学, 培养学生清晰OOP程序设计基本概念, 能够掌握C++语法基础;掌握Visual C++中各种应用程序的开发技巧, 及Visual C++工具的使用;理解软件开发前沿技术的概念并掌握其开发方法;形成学习可视化语言的系统方法;最终使学生能够达到并且胜任软件开发工作的水平要求, 为进一步学习和应用计算机打下基础。

2教学内容

根据学院教学安排, 《可视化编程技术》一共有56学时。按照学习的过程, 可以将教学内容分为以下3个部分:

(1) 面向对象程序设计。根据面向对象程序设计的特点, 主要讲述封装性、抽象性、继承性、多态性是如何实现的, 指出与面向过程的程序设计方法的不同之处。重点讲述类、对象的概念, 继承与派生、多态、虚函数的实现过程以及如何解决二义性问题。

(2) 利用Windows API函数进行程序设计。讲述Win32应用程序的框架, 鼠标和键盘消息的响应过程、图形绘制过程、文本的输出、字体的设置、菜单、位图、对话框、图标等资源的使用。

(3) 利用MFC进行程序设计。讲述MFC类的组织结构、主要类的介绍、MFC应用程序的框架, 以及按钮、滚动条、静态控件、列表框、组合框、编辑框、对话框等控件的使用, 单文档与多文档应用程序的区别, 串行化的使用。

3教学方法

3.1教学方式

为尽可能地锻炼学生的动手能力, 教学方式采用机房上课, 教师和学生都有一台电脑。使用专业的教学软件, 当教师开始讲课时, 学生的电脑屏幕与教师的电脑屏幕一致, 学生动用鼠标和键盘无效。当教师讲完以后, 学生可以使用键盘和鼠标向老师提问。

3.2实验设计

考虑到学生的实际情况, 将实验内容分为4个实验作业:①面向对象程序设计部分;②利用Windows API程序设计部分;③利用MFC程序设计部分;④综合实验。每个实验包括精心选出的8~10道题目, 循序渐进, 依次增加难度。其学时安排如表1所示。

每个实验要求学生在规定的学时内完成。对学生的实验报告认真批改, 找出犯错误最多的地方。在课堂上详细讲解为什么出现错误, 并选出作业完成比较好的同学的答案供其他同学参考。由于每个学生的个体能力不同, 建议采取同学们之间多讨论多交流的方式, 或者直接问老师, 这样可以避免作业抄袭的情况, 从而保证大多数同学能够按时完成实验作业。

3.3考核方式

期末考试采用开卷方式上机考试, 学生可以随时查阅自己以前做的作业、使用的教材和参考书。根据学生平时作业的掌握程度, 找出学生容易出问题的知识点, 按照基本知识题目和拔高题目7:3的比例选出考试题目。其中拔高题目以一个具体的项目为例, 把相关的知识点串起来。比如设计开发一个绘图系统, 具体要求如下:

(1) 创建MFC或Windows应用程序。

(2) 修改应用程序的标题:修改为自己的学号和姓名加上“简单绘图”, 如“08010012 张三 简单绘图”。

(3) 修改应用程序的图标:图标可以自己设计。

(4) 创建自己的菜单Draw: Draw菜单下的菜单项为:Rectangle、Circle, 将自己设计的菜单添加响应函数。Rectangle输出红色矩形, 用蓝色填充;Circle输出红色圆形, 用绿色填充。

(5) 创建自己的工具栏:常用的2个功能 (分别对应Rectangle、Circle) , 并将它与菜单项进行关联。

这样, 学生可以根据自己掌握的知识点一步一步地编程实现, 不至于前一步不会做而影响了后面的解答。

学生最终的期末考试成绩由2部分组成, 平时实验作业和期末上机考试, 所占比重分别为60%和40%。

4教学实践效果

根据近3年来的实施效果来看, 由于学生平时上机时间充足, 都能较好地完成实验内容。而期末上机考试由于时间比较紧张, 需要在200分钟内完成, 效果不够理想, 仍有少数同学没有做完题目。根据考试现场效果和学生反馈结果来看, 没有做完题目的同学主要还是编程不够熟练, 尽管题目会做, 但需要翻书和查阅教材, 导致时间不够用。某一个班的上机考试成绩分析如表2所示, 66%的同学的成绩位于60~80分之间, 只有少部分同学超过80分。总体而言, 基本达到教学改革的目的。

5结束语

针对初学者, 本文在《可视化编程技术》教学中, 尝试了若干教学改革措施。经过3年的实施, 其效果得到了多数同行和学生的认可。该课程教学还有改进的余地, 比如学生在上机考试的时候, 总是感觉时间不够用, 那么就需要有针对的措施。在今后的教学中就应注意增加练习题并适当调整习题类型。继续深化探索教学内容和方法改革, 使得理论教学和实践联系得更加紧密, 从而培养出更多符合当前社会需要的人才。

参考文献

[1]张龙波.《VB程序设计》课程教学新思维[J].软件导刊, 2012 (1) .

[2]陈雪梅, 韩洁琼.C语言可视化编程环境的设计与实现[J].武汉理工大学学报, 2010 (4) .

[3]陈贵兰.计算机专业可视化编程教学方法探究[J].农业网络信息, 2010 (12) .

[4]张妍琰.《可视化编程技术》课程教学改革探讨[J].电脑知识与技术, 2010 (33) .

可视化编程 篇7

备自投装置在110 kV及以下电压等级配电网中的广泛应用,对迅速恢复停电用户负荷、提高配电网的可靠性发挥了重要作用。备自投是一个基于一定时序和逻辑对变电站设备进行自动控制的过程,不同备自投方式的过程条件差异很大,导致了客户对备自投装置的定制率达近100%。传统的备自投装置是将其时序条件过程直接用软件实现,因此需要开发与运行方式相关的多个软件,且软件通用性差,没有伸缩性和扩展性,不便于开发和工程维护。本文提出了一种具有通用性的备自投软件实现方案,可满足现有的110 kV及以下电压等级配电网各种运行方式备自投的要求。该方案功能简单直观,能满足将来可能出现的各种新方式的备自投。

1993年IEC正式颁布了有关可编程逻辑控制器(PLC)硬件、安装、试验、编程、通信等方面的国际标准IEC61131[1]。IEC61131-3是有关编程的标准,它规范了PLC的编程语言及其基本元素等[2],该标准的软件功能模型是一种支持模块化设计,并融入了面向对象概念的可编程系统软件平台标准。PLCopen(致力于PLC接口标准化的国际组织)提出的使用XML描述IEC61131-3的方法,目前已经成为工业控制领域中通用的、开放的PLC接口方法[3,4]。备自投的本质是一系列逻辑判断的顺序执行,和PLC的特性相似,所以借助于这些标准和方法为可编程备自投的实现提供可行的参考。

某变电站内对应的运行方式如图1所示:进线2同时带2段母线运行,分段断路器合上,进线1断路器分开,处于明备用状态。现以此为例对可编程备自投的实现方案进行阐述。

1 备自投逻辑的梯形图[5,6]

备自投主要有充电、启动和动作3个过程。以图1所示的运行方式为例,充电条件为同时满足进线1备自投投入、进线1断路器分位、进线2断路器合位、分段断路器合位、I母有压、Ⅱ母有压及进线1有压等条件一定的时间。充电完成后,若满足Ⅰ母无压、Ⅱ母无压、进线2无流、进线1有压及进线2断路器合位则进入备自投启动过程,启动延时一定时间后进入备自投动作过程,跳开进线2断路器,在采到进线2断路器分位后则合上进线1断路器,备自投动作成功。从上述备自投动作过程中可抽象出充电元件、启动元件、动作元件及时间元件等。在充电元件中,输入为电压、电流或者断路器位置满足一定状态,逻辑运算为与运算,结果是充电完成与否的结果。以I母有压为例,可以用图2的梯形图进行描述。当I母电压的测量值大于装置所设定值后,I母有压标志置1(线圈带电),依次可得出其他充电输入条件的梯形图,时间元件可用时间继电器来完成。备自投的启动元件和充电元件类似,动作元件的区别是除了置位动作成功标志外,还需启动所设定的出口继电器,整个过程的梯形图如图3所示。

2 XML配置文件

2.1 XML配置文件的生成[7,8]

如何把备自投逻辑的梯形图转换为装置可以读取的配置文件是实现可编程备自投的重点,PLCopen组织提出的使用XML语言来描述梯形图信息是一种直观有效的方法。

XML代表扩展标识语言,其自描述性使其非常适用于不同应用间的数据交换,而且这种交换是不以预先规定一组数据结构定义为前提的,因此具有很强的开放性。XML语言与HTML语言类似,都是采用尖括号“<”和“>”括起来的文本字符串作为节点的标记,对读入XML文档的应用程序来说,它们是伪指令。XML描述的是数据本身。作为一种数据描述语言的XML,允许将数据组织成数据结构,甚至是很复杂的数据结构,可以按照自己的需要来剪裁数据。XML最有吸引力的特征是用户可以创建自己的标记,能在XML文档中以自己的方式组织数据。

依据PLCopen组织定义的XML,根元素下有若干个子元素,子元素中包含全部的逻辑图信息。而子元素中又包括变量类型和逻辑组织单元集合,逻辑组织单元集合又包含变量表和具体逻辑表达。其中定义的变量表中包括如图2所示的I母电压等所有的变量集合,如图4所示。

在图2中右电轨连接了线圈“TokenOFlg”,在XML文件中可以表示如图5所示的关系。其中右电轨localId为16,是自动生成的唯一标识,“TokenOFlg”线圈refLocalld为17,由此可以看出localld属性和refLocalld属性是全部逻辑表征的关联符号,类似可以描述出图2中左电轨及TokenOLogic的属性。

2.2 XML配置文件在装置内的解析

生成XML配置文件后,可通过FTP等网络协议将配置文件下装到装置内,在装置内解析XML文件并读取该备自投的逻辑配置。

在装置内,通过解析模块解析配置,运算模块在读取配置后实现备自投功能。在解析模块中,首先遍历XML树型结构,获得备自投逻辑的前缀表达式。图3所示备自投逻辑可划分为如下6个表达式:(1)是否开始充电延时为备自投是否投入、进线1是否分位等7个条件的逻辑与。(2)备自投是否充电为充电延时是否完成的逻辑值。(3)是否开始启动延时为备自投是否充电完成、I母是否无压等6个条件的逻辑与。(4)备自投是否启动为启动延时是否完成的逻辑值。(5)备自投动作1动作为备自投是否启动的逻辑值。(6)备自投动作2动作为备自投是否启动和进线2是否分位的逻辑与。

为了便于运算模块的运算,逻辑表达式需转换为后缀表达式,对后缀表达式的解析如图6所示,在表达式中的变量为在变量库中定义的标识,操作符为约定的码值。其中变量库为I母电压值、进线1断路器位置等所用到元素的集合,在基于IEC61850标准的智能变电站内,变量库中每个变量的属性包括该逻辑节点的路径、描述和唯一标识。其中在备自投启动和备自投动作线圈中,包含存报告的属性,而在备自投动作线圈的属性中,有需要启动的继电器的信息,所有继电器需要有一个统一约定的编号来标识。在运算模块中,分别对解析模块中输出的6个逻辑表达式进行循环运算,在运算过程中需要存取报告的则把相关信息行存储,需要启动出口继电器的则调用该继电器驱动模块对其进行操作。

3 结语

本文提出一种基于IEC61131-3的可编程备自投软件设计方案,引用工业控制领域内PLC控制的思想和标准,实现了完全可编程的备自投。可以满足现有的110 kV及以下电压等级变电站备自投各种运行方式,且该备自投方案功能增加简单、步骤环节扩展灵活,也能满足将来可能出现的各种备自投新方式。该方法提高了工程维护的工作效率,也大大减少了因为修改非标软件而出现的软件漏洞。

摘要:针对备自投装置的特点,提出了一种基于IEC61131-3标准的可编程备自投装置的设计方案。详细阐述了如何通过使用XML文件作为中间转换媒介实现备自投装置逻辑顺序的可视及可编程。该方案具有不用修改源码、简单直观、不易出现软件漏洞等优势。

关键词:可编程,备自投,IEC61131-3,XML语言

参考文献

[1]Programmable controllers.Part3:Programmipg languages[S],1993

[2]陈文升.IEC1131标准及其在变电站自动化系统中的应用[J].电力自动化设备,2003,23(5)

[3]王君.基于IEC61131-3标准的PLC梯形图编码及解算的研究[D]:[硕士学位论文].北京化工大学,2008

[4]陈忠华.细说IEC61131-3(第一节)[J].自动化博览,2003,20(6)

[5]谢干淼,刘青华.备用电源自动投入和系统自动恢复装置的研究和实现[J].继电器,1998,26(6)

[6]李红伟,王洪城,谭雪峰.基于PLC实现的低压双电源备自投系统[J].电气应用,2007,26(6)

[7]Younis M B.Frey G.Visualization of PLC Programs Using XMI.[R].American Control Conference,2004

可视化编程 篇8

随着我国交通基础设施的大量兴建, 在高速公路和市政项目设计实践中由于线形、防洪和主辅分离的需求, 经常会布设超长超多跨径的装配式结构桥梁。如某高速公路主线为跨越大面积湖泊布设了65×20+3×40+ (40+40+35) +主桥+ (25+30) +6×40+325×20m预应力砼分体小箱梁特大桥, 桥梁跨数达到439跨, 桥梁长度达到9000m, 此类桥梁虽结构简单, 但设计中数据处理工作量相当大, 这种数据处理实际是有规律的重复工作, 设计人员依靠简单的复杂工具手工处理将耗费大量的时间, 且容易出错。

Visual Basic是一种入门级可视化编程语言, 界面友好, 自带与Excel和Auto CAD的接口, 是工程技术人员开发软件的理想工具。笔者在设计实践中, 针对超长超多跨径桥梁设计的特点, 利用Visual Basic与Auto CAD、Excel接口编程技术, 开发出桥梁路线数据集成处理系统 (以下简称系统) , 将超长超多跨径的装配式结构桥梁的设计简单化, 大大提高了设计效率及准确度。

装配式桥梁施工图设计通常需根据路线数据计算的主要内容包括桥面特征点标高、墩台特征点标高、桩基坐标、预制梁长及桥墩墩柱桩基数量。系统开发的思路根据路线软件生成的平面、纵面、超高、地面线格式化文件, 利用VB与Excel的接口, 直接输入, 通过模块化处理, 得到设计需要的数据及图形, 系统结构如图1所示, 可视化界面如图2所示。系统内部的主要模块包括纵面数据处理模块、平面数据处理模块、桥墩墩柱桩基数量处理模块, 以下分别介绍各模块的设计思路及功能特点。

2 纵面数据处理模块设计

纵面数据处理模块需输入的数据包括纵面线形数据、地面线测量数据、超高数据及桥梁结构设计相关基础数据。功能包括生成桥型布置图立面, 计算桥面特征点高程及横坡数据, 生成墩台特征点标高数据表, 此模块的主要特点如下:

(1) 可以查询任意桩号的纵面及横坡数据;、

(2) 针对山区桥梁设计特点, 可以根据横断面测量数据, 提取任意距离边线的数据

(3) 立面桩顶标高处理方便话, 先按照统一规则根据地面线数据插值生成桩顶标高数据Excel文件, 根据个别桥墩特殊要求可对文件的数据进行修改, 桩长数据也是在Excel文件中输入, 方便快捷。

(4) 对于桥面特征点高程数据和墩台特征点标高数据直接生成CAD图, 避免复制粘贴出错。

3 平面数据处理模块设计

平面数据处理模块需输入的数据包括平曲线要素表及桥梁结构设计相关基础数据。功能包括生成桥型布置图平面, 生成基础坐标平面示意图表和上部结构梁长表, 此模块的主要特点如下:

(1) 可以根据桩号、偏距查询任意点的坐标, 也可根据坐标反查任意点的桩号和偏距, 并可批量操作, 极大方便了坐标和桩号类数据处理, 比如布置钻孔计算坐标。

(2) 对于基础坐标的处理, 先按照统一规则生成坐标源文件, 按墩台号自动编号, 包含桩号、偏距信息, 对于个别特殊设计的墩台, 可以直接修改坐标源文件, 包括增删操作, 完毕后软件读入坐标源文件, 即可方便、准确、快捷的完成墩台基础坐标示意图的绘制。

(3) 对于上部结构梁长, 软件可以按照布跨信息自动生成全桥各片梁长的数据及弦弧差值, 用户可根据伸缩缝和及现浇连续段的设置情况对上部结构梁长表修改, 即可方便、准确、快捷的完成上部结构平面图绘制。

(4) 对于斜桥, 软件可以在利用平面计算模块中的坐标和桩号转换功能, 自动计算桥面特征点高程和斜向横坡, 避免了繁琐的手工计算。

4 桥墩墩柱桩基数量处理模块设计

桥墩墩柱桩基数量处理模块主要是根据每个项目的墩柱、桩基钢筋布置自动生成墩柱、桩基钢筋数量表格只需输入具体项目的墩柱、桩基钢筋数量表格模板, 软件可以自动识别Excel表格中的公式, 根据纵面计算模块中得到桥墩的墩高和桩长信息, 自动生成全桥的墩柱、桩基钢筋数量表格和合计工程量, 避免以往的繁琐的墩高和桩长录入工作, 方便、准确的完成墩柱、桩基钢筋布置图。

结语

桥梁路线数据集成处理系统是在实践中根据设计实际需求编制出的软件, 兼顾了数据的标准化和的特殊化, 避免了大型成熟软件数据输入复杂, 对于特殊设计无法处理的缺点, 极大的提高了设计效率, 以上述439跨的桥梁为列, 利用系统只需3天左右即可完成桥型布置图、桥墩一般构造图、桥梁桩基坐标示意图、上构平面布置示意图和桥墩墩柱桩基布置图等, 熟练的设计人员利用辅助的小工具完成此工作至少需要15天左右时间, 而且由于数据处理量极其庞大, 极易出错, 此桥目前已经建成通车, 验证了系统的可靠性。桥梁路线数据集成处理系统将设计人员从纷繁复杂的数据处理中解放出来, 大大的提高了超多跨径桥梁的设计效率。

摘要:本文介绍了运用Visual Basic可视化编程技术开发的桥梁路线数据集成处理系统的结构及功能, 只需输入路线格式化数据和简单的桥梁基础数据, 即可大大提高超多跨径桥梁的设计效率。

关键词:Visual Basic,超多跨径桥梁,数据处理,设计效率

参考文献

[1]邵旭东, 等.桥梁设计与计算[M].北京:人民交通出版社, 2007.

[2]颜东煌.桥梁电算程序设计[M].长沙:湖南大学出版社, 1999.

上一篇:造价控制工程设计下一篇:多产权建筑