模块化程序论文

2024-09-01

模块化程序论文(精选9篇)

模块化程序论文 第1篇

汽轮机机转子结构由多级叶轮构成, 并具有很多典型的相似部位。只不过是具体的尺寸不同。以往, 汽轮机转子数控程序编制是通过计算机绘制出转子的图形, 利用一些CAM自动编程的软件进行自动编程, 但是对于不同的转子编制独立的程序, 由于绘图和计算方法的不同, 类似型线也因细小差别需要重新编制程序。新程序必须进行模拟和空运行, 占用了一定的时间。程序没有通用性, 计算工作量大, 操作者不能独立完成, 编程工作比较繁琐。

经过自主研发, 利用数控系统强大的计算功能、逻辑判断功能、参数的灵活运用等特点, 通过编制模块化子程序进行参数化赋值, 将类似的型线划分为几大模块, 以变化的尺寸为变量, 编制通用程序。在程序参数的选择上设计部门尺寸标注的惯例为依据, 使得通用程序不用计算可直接将图示尺寸代入, 即可完成相应图形的加工。

2 模块化程序设计

模块化子程序是利用数控系统强大的计算功能, 逻辑判断功能, 参数的灵活运用等特点将通用部位相关尺寸进行参数化, 加上数学运算和逻辑判断进行子程序模块化设计。本文仅以转子叶轮外圆的定位销槽 (如图1) 为例进行说明。

(1) 设计该子程序流程图 (见图2) 。

(2) 根据流程图编制模块子程序。

(3) 编制转子加工主程序, 并在主程序中按图纸尺寸赋值参数、调用子程序, 例如:

至此, 完成定位销的加工程序编制最后, 通过机床模拟和试加工最终完成子程序的模块化设计。

3 结语

模块化程序论文 第2篇

信号机主程序模块是整个系统的主要模块,它按优先级利用其它模块的执行结果,生成当前信号灯周期。

定时控制程序模块支持通过键盘输入固定的时间数值,改变当前所执行的信号灯周期,以人工经验与系统相结合,体现出人机交互能力。

车流调节程序模块是利用RFID技术识别交通路口附近的车流量,经由GA(遗传算法)并引入模糊逻辑理论[6],对路口交通情况进行实时分析计算,依据结果对信号灯周期进行调整。本系统中,此模块也是最能体现智能化的部分。此外,通过RFID技术的扩展技术,即车辆自动识别管理(AVIM)系统,把车流信息与车辆信息监控管理中心连接起来,就可构成车辆信息管理平台。

定时调节程序模块是针对已经形成一定路况规律的路段而设置的。可以一次性预先设定每天不同时段对应不同的信号灯周期。比如,晚上车流量较少,可做定时调节将红绿灯改成闪烁的黄灯,当第二天指定时刻到来时,自动恢复红绿灯。

黄闪警告程序模块可以立刻中断所有的红绿灯,全部改成闪烁黄灯。主要是在车流量很小的时段使用,可以提高通行效率。

遥控强置程序模块是为交警现场指挥交通而设计的,只需用遥控器对红外接收端按下特定的按钮,就可以对现场的信号灯相位全部强制重置,特别适用于单向塞车车流的调节和像救护车救火车这样需要无障碍通行的交通工具快速通过路口。

联动处理程序模块是用来处理上位机(交警联动中心控制机)所发来的指令。信号灯联网以后,整个区域的交通路口就可以进行协调联动控制,如果一个路口发生拥堵,联动中心可以发来指令,适当延长相邻路口信号灯来车方向的通行时间,有效疏导交通。

“看门狗”程序模块在主程序运行异常时可产生的一个溢出信号,并通过引脚向处理器发送复位信号,使主程序重新开始运行。

模块化程序论文 第3篇

摘 要:在数控加工中,程序编制的好坏是决定加工质量、加工效率的重要因素之一。目前,随着计算机、CAD/CAM软件的普及,自动编程被操作者广泛使用,而渐渐忽略了对CNC系统用户宏程序功能的手工编程应用。本文介绍了宏程序的主要特点,并和自动编程方法对比,说明其所具有的不可取代的优势,希望学生在工程训练及专业技能培训中能有所重视,提升编程能力,提高技术水平。

关键词:宏程序编程 CAD/CAM软件编程 优点 对比

进入21世纪后,我国已成为制造业大国,并逐步向“世界制造中心”的目标迈进。企业中广泛地使用各种先进制造设备,提高产品质量,提升效率,增强竞争能力。其中,最常用的加工设备有数控车床、数控铣床、加工中心和车削中心等。

数控编程水平是决定加工质量、加工效率的重要因素之一。目前,由于各种基于PC平台的CAD/CAM软件出现,如MasterCAM、UG、Pro/E等,因其具有几何造型、工艺决策、加工仿真、自动生成程序等优点,被编程人员普遍采用,成为流行趋势。在实际工作中不论什么情况,均用软件编程,依赖程度很高,甚至产生自动编程完全能代替手工编程的误区。而在国家、省级数控技能大赛或数控职业技能鉴定等级考试中,明确规定是不能使用计算机软件进行编程的,只能用手工编程,特别对宏程序的编程运用有明确的考查。在自动化、智能化程度更发达的日本也是如此,不会因为软件的普遍使用而忽视对编程基本素质的要求。殊不知在有些场合,宏程序编程是其他方法不能替代的,可为数控加工带来事半功倍的效果。

一、什么是宏程序

所谓宏程序(Custom Macro),就是以变量的组合,通过各种算术和逻辑运算、转移和循环等命令,而编制的一种可以灵活运用的程序,只要改变变量的值,即可以完成不同的加工和操作。调用用户宏程序的指令叫宏指令。宏程序即可以书写在主程序中,也可像子程序一样,被宏指令一次或多次调用。宏程序是基本手工编程的高级形式,因在标准CNC程序基础上附加控制特征,使功能更强大、更具智能性。各种数控系统,如:日本FANUC、德国SIEMENS、华中HNC等。虽然宏指令的名称、符号、定义各不相同,但本质上是共通,都离不开变量,本文以FANUC-0i系统用户宏程序B说明。

二、宏程序编程优势突出

1.简化编程的重要手段

宏程序允许使用变量、算术和逻辑运算、条件转移和循环命令。这样编程中大量重复或有规律的刀具移动路径程序段就可省略,大大降低了人工计算难度,程序结构清晰明了,长度缩短,书写和输入工作量减小,从而达到简化编程目的。

2.存储容量小,存储方便

软件自动编程生成的程序冗长,经常出现成千上万条语句,占用的存储空间大,FANUC-0i系统内存的标准配置为128KB或256KB,电脑经常存储不下,只能用专用的存储卡或DNC在线加工。而宏程序结构简单、短小精悍,一般不会超过100条,系统内存的容量足够使用,存储方便。

3.检查、修改、调试方便

完成一个合格零件的加工,通常要经过反复试切、测量、调试的过程。软件自动编程生成的程序,是由若干直线去逼近曲面的点的组合,若要调整某项加工参数,如刀具尺寸、刀补值、步长、计算精度等,都要根据变化后的参数重新编程,原程序无法修改。而宏程序则不同,程序中包含了所有加工参数和信息,阅读直观,调试时可直接在原程序上修改,无需重新编程。

4.加工精度高、效率高

软件自动生成的程序,是直线插补近似的过程,存在计算误差和后置处理误差。在线加工时,机床与电脑的传输速度成为了影响加工速度的“瓶颈”,FANUC-0i系统RS-232串口最大传输波特率为19200Bit/s,当计算精度较高、进给速度F值较大(如F1800~F2500)时,程序传输速率往往跟不上机床的节拍,甚至可以看到机床的进给运动有明显的断续、迟滞现象。宏程序能采用圆弧插补拟合,误差小,系统直接插补运算,速度和机床硬件响应快,避免了传输不稳定现象,从而使得加工效率和加工精度更高。

5.灵活性、通用性强

生产中,经常会碰到许多零件形状轮廓类似,而几何尺寸不同情况,编程人员可制作这类轮廓的宏程序模板,如椭圆模板、双曲线模板、锥螺纹模板等,应用时只需要把零件的具体加工信息和参数输入到模板中对应的程序段中,就完成了程序的编制。可见宏程序具有很强的灵活性和通用性,给编程带来事半功倍的效果。这是其他编程方法都做不到的。

另外,在构成零件三维要素较多,自动编程困难的场合,如加工异形螺旋槽、加工非标螺纹等,用宏程序就非常方便灵活,可很好地发挥其优势。

三、编程对比举例

为了更好地说明宏程序编程的特点,分别用宏程序和CAD/CAM软件编程方法,对同一零件进行编程和加工,对比各方面综合性能。加工中,使用MasterCAM软件,设定同样的工艺路线、切削用量、设备和刀具等加工条件。

如下图所示,零件是一个平面非圆曲线台阶零件,适用数控铣削加工,图形由直线、圆弧和一段椭圆构成。编程的关键是椭圆部分。因人工很难计算出每点的坐标值,光用普通基本指令编程是无法完成的,手工编程时必须用到宏程序方法。用WHILE/DO语句编写,以X值作变量,Y为X的函数,X以0.1mm长度增加,取值范围从0~30mm,Y随X的变化都有一个唯一的值和它对应,并用直线插补指令,来逼近椭圆曲线。椭圆曲线部分的宏程序只需6条,而使用MasterCAM软件后置处理生成的NC代码有400多段。

从上表中可见,宏程序简化编程、方便检查修改、编程和加工效率高、精度高的特点得到充分体现,不用计算机、不用软件、无需传输也可得到自动编程效果,既经济性能又高。

四、小结

宏程序编程具有的优势,是自动编程不能完全替代的,在数控加工中占有广泛的空间。但也不能否定CAD/CAM软件编程的作用,对于不规则复杂曲面的模具、三轴或三轴以上联运的加工场合,用宏程序编程是有局限性的。

在学生工程实训和技能培训中,不能忽视宏程序编程的教学要求,明确宏程序编程的优势,丰富课程内容和形式,开设专题性的开放性实验以及参加比赛。多角度引导学生重视这方面的训练,从而牢固树立手工编程是编程根本的思想。只有练好编程基本功,才能更好地深入理解自动编程的本质。请学生们不要过分依赖软件自动编程而忽视编程基本能力的锻炼。养成能不用CAD/CAM软件编程的就不用,尽量手工编程的习惯,以提升高级编程能力,充分了解手工编程和自动编程各自的特点和适用场合。在实践中,学生应灵活选择合理的编程方法,成为基本功扎实的高素质、高技能型人才。

参考文献:

[1]胡育辉,赵宏立,张宇等.数控宏编程手册[M].北京:化学工业出版社,2010.

[2]陈海舟.数控铣削加工宏程序及应用实例[M].北京:机械工业出版社,2006.

(作者单位:赵雁,南京理工大学工程训练中心;

程序的模块化编写应注意的问题 第4篇

1 程序的可引用性

这里主要指的是功能程序的可引用性。功能程序是指能独立完成至少某一特定功能或作用的一段(部分)程序。分别从语句的可引用性、Form的可引用性以及界面外观的可引用性3个方面的问题进行探讨。

1.1 语句的可引用性

语句就是平时编程时一行一行的代码。代码语句的可引用性:

(1)需要平时的积累,也就是把自己写过的源程序注意留存,特别是实现某些功能的代码语句进行分类保存并标示清楚,根据个人编程的心得来看,最方便的是利用代码语句中的右单引号进行注释,如下面的“倒计时”和“显示剩余时间”及“条件达成”等。

(2)利用网上的编程之家类的网站,直接下载部分代码语句。值得注意的是,网上下载的代码语句由于各种原因,如Option Explicit、Form_Load或类模块代码不全等因素,很多只是说明编程结构,程序本身并不完整,是不能独立运行的,需要仔细甄别,必要可以单独建立Form实际运行检测。

1.2 Form的可引用性

Form是可视化编程里面的窗体,俗称界面。在一个综合性程序中,某些功能会被反复引用,而为了减少软件的体积以及维护的方便,会给这个功能模块单独设立一个Form窗体界面,在适当的时候利用命令语句show、Hide、Unlode进行调用或关闭。例如最常见的“关于”界面。

为了方便地进行整体引用,就要求此界面除了在分辨率以及色调方面与其他界面保持一致外,各种Option Explicit、Form_Load的语句必须独立,不能出现和其他窗体语句横向的跳转或引用类模块。值得注意的一个问题是这种独立界面的数据库引用如果和其他界面共用一个数据库的时候,容易出现数据信息的滞后性问题,也就是说上一个界面数据库发生变动后,没有经过其他数据库操作直接跳转到独立界面,所打开的数据库数据是发生变动之前的数据,解决的方法就是在跳转之前把数据库进行刷新,使Data的Recordset指针重新指向First。

1.3 界面外观的可引用性

对于一个完整的软件或系统,界面的美观是很重要的。但每个人有不同的审美观,就连360安全卫士、搜狗拼音也会给用户提供换肤功能。而且随着软件的重要升级,为软件界面换一个整体风格也是一个传统。而对于一个普通的软件写手最应该避免的就是指定安装目录,也就是要求用户在安装完成后,再把某个文件夹复制到电脑的某个位置,这很容易引起用户的反感。所要做的就是把素材分门别类,放到一个专门的文件夹里,打包的时候一起打进去,代码设定根目录即可。

上面说的是模块化编程中可引用性所可能出现问题,同样可替换性的问题也类似。可引用性是把以前的程序引用到现在的程序中,而可替换性是现在的程序在编写过程中就考虑到以后用其他程序的替换问题。

2 关键程序的可选择(设置)性

除了上述可应用性和可替换性外,还有一种就是程序在设计过程中就预设了几种分别独立的情况,用户使用时可以自行选择(设置)运行的模式。如图1及程序代码所示。

可选择(设置)性是模块化编程不可或缺的组成部分,当进行此类程序的编写时就已经不知不觉地用到了模块化编程的理念了。对于一个软件可选择(设置)的程序,一般包括界面(皮肤)、音效、数据库、时间、排列等部分,而这些部分本身就是一个一个小模块。如上面语句“Command6.Pic-ture=LoadPicture(App.Path+"素材按钮26.jpg"”就属于可引用的语句范畴。

3 结语

利用模块化的程序编写方式,可以极大地简化编程工作,减轻维护负担,方便升级修改。同时由于模块化的相对独立,将减少类模块及横向跳转的应用,部分小模块也会反复在同一程序中出现,使得软件的体积增大,运算速度也不可避免地有所降低,但随着双核、四核处理器及大容量硬盘的普遍应用,这些由于模块化编程所引起的问题就显得不怎么重要了。

参考文献

[1]李廷文.Visual Basic开发答疑300问.人民邮电出版社,200.

程序设计模块化实验教学研究与实践 第5篇

高校非计算机专业计算机基础教学改革势在必行。应该根据现代教育思想和教学理论,改进教学方法,正确选择教学内容,改革课程体系和教学模式,更新教学手段,强化实验教学[1],改进考核方式,加强师资队伍建设,以提高计算机基础的教学效果和教学质量。掌握和应用计算机知识,是培养新型人才的一个重要环节,是高等学校全面素质教育中极为重要的组成部分。

结构化程序设计语言类课程在多数工科院校均普遍开设,作为计算机基础教育课程,非计算机专业学生选课面较广,学生人数也较多,课程教学效果的好坏将直接影响到是否能有效培养和提高学生的程序设计思维和动手能力。由于程序设计课程非常注重学生实践能力的培养,因此实验教学环节尤其重要。非计算机专业程序设计课程的教学同样非常强调对于学生实践和动手能力的培养,实验教学是程序设计课程的重要组成部分,实验效果的好坏直接影响到课程的整体教学质量。课堂的理论知识,能否被学生真正接受并加以应用,是通过实验这一重要环节进行消化、吸收的。但是目前在实际的教学过程中,出现了诸多急待解决的问题,如实验教学过程控制不合理,教学方法和内容陈旧,教学效果不佳等等。本文针对实验教学存在的不足,提出基于一般结构化程序设计语言类课程(如C语言,FORTRAN)的实验教学模式,将”模块化”思想应用到整个教学过程中,以培养和提高学生的实践动手能力为导向,以教学大纲为基准,根据学生专业背景和掌握程度的差异设置不同的实验环节,在实际的《C语言程序设计》课程教学实践中取得了比较好的效果,学生反映良好,此方法还可推广到其他课程的实验教学中去。

2 对于传统教学模式的分析

实验课程教学实际上是程序设计教学过程当中的重头戏。近几年随着高校的扩招,学生人数急剧上升,但师资却没增加多少,从而经常出现一个老师同时辅导多个班级的实验。实验课上学生网上聊天、打游戏、听歌、看电影等现象比较严重,从而导致实验环节的教学质量大大下降。目前多数实验还是验证性的,这样做固然有它的好处,但这不利于学生的创新性教育,使学生失去了学习计算机的兴趣。根据对所在学校情况的分析调查和研究分析,大部分专业的学生对于程序设计类语言课程实验环节的学习主要具有以下特点:

1)由于专业背景和能力的不同,学习中大都有畏难情绪。课程初期阶段,学生都有一定的学习兴趣,但是到最后能坚持下来的寥寥无几。很多学生抱怨程序看不懂,不会编,久而久之丧失了学习下去的信心。

2)在非计算机专业同学中,有一部分学生对于F语言程序设计的基本理论和知识掌握比较好,但是缺乏一定的实际动手设计能力,实验设计环节效果不理想,遇到具体问题不能很好地编程解决和实现。

3)由于课程结束后要参加统一的省级考试,所以相当一部分学生为了应试,只能硬者头皮来上课,导致课堂教学气氛沉闷,很多学生不认真上课,而是利用上课时间做水平考试的练习题。综上所述,现有的程序设计课程实验教学重点大多放在了程序设计的理论知识点上,没有很好地考虑到实际应用和各专业学生的学习特点和状态,因此存在各种各样的问题急待研究和改革。首先,现有的教学模式下,实验教学理论知识和实践应用相脱节。理论知识不能很好地体现在实际的教学内容中。学生普遍感觉到实验教学与实际的专业和具体应用联系不紧密,没有什么用处。比如在F语言程序设计实验教学中,对于输入输出语句的格式控制部分,由于现有内容设置不够合理,很多学生感觉到没有什么实际意义。

其次,实验内容和教学方法陈旧。实验教材质量的好坏会直接影响到整个实验教学过程的效果,现有的实验内容虽然对实验类型做了划分,但是还没有能够很好的考虑到学生的专业和个体差异,只是“一刀切”,如何合理科学地设置实验内容和教材是一个急待解决的根本问题;授课教师把精力主要放在了理论教学环节上,而现有的实验教学方法几乎是空白,只是学生在实验课做实验,完成实验报告而已,实验教学不能很好的被控制,同时也导致理论和实践相脱节。

另外,现有的实验教学管理水平不高,对于学生的实验秩序管理,实验内容管理和实验教学的效果评价等诸多问题还没有较好的通用解决方法。最后,学生对于实验教学的兴趣度比较低,普遍存在实验上课态度不认真,准备不充分,实验完成后不认真总结分析写报告,甚至抄袭。

针对以上问题,如果不很好地反思和改革我们现有的实验教学模式并解决相应的问题,那么将会在很大程度上阻碍我们的程序设计课程教学总体质量。

3 模块化教学思想

3.1 模块化的理论根据

设函数F(x)定义问题x的复杂程度,函数E(x)确定解决问题x需要的工作量(时间)。对于两个问题R1和R2,如果F(R1)>F(R2),显然E(R1)>E(R2)。

根据我们解决一般问题的经验和过程,可以找到另一个规律是F(R1+R2)>F(R1)+F(R2),于是E(R1+R2)>E(R1)+E(R2)[2]。这个结论是模块化的根据———把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。

根据模块化理论观点,实验教学课程体系可视为一个由许多独立的课程子系统(即实验内容)构成的,课程子系统从属于课程体系这一大系统;而各课程子系统又彼此构成完整的实验教学体系。每个专门的课程子系统都有独立而特定的功能。课程子系统与课程体系之间,以及彼此的子系统之间通过内在运作机制建立起和谐的关系,当系统间的耦合实现平衡时,整个课程体系的综合功能就能达到最佳。按照这一系统功能运作,模块化的实验教学效果就能发挥出来。借助模块化思想可以对现有实验教学的各个层面进行改进和完善。

3.2 基于模块化的实验教学模式

3.2.1 教学目标模块化

教学目标模块化的目的在于针对学生掌握知识的不同情况来设置各个层次的学生在教学活动中所要达到不同的学习目标。可根据学生的不同专业来区分,可归结为计算机专业和非计算机专业两类。对于计算机专业学生,程序设计能力是必须很好掌握的;而对于非计算机专业学生,既要培养他们基本的程序设计能力和思维以适应今后的实际专业工作需要,又不能过于苛求.因此可在实验教学大纲中依据情况设置不同的教学目标作为指导。

3.2.2 教材及教学内容的模块化

实验教材及内容是实验教学的基本材料。现有的程序设计实验教材或指导书数量较多,难度各异,层次不齐。为适应不同层次不同专业的学生,本着因地制宜的原则,教师应根据模块化的教学目标做到从实际出发[3],选择相当难度的教材,最好同一课程组的各授课教师能根据实际情况组织自编实验指导教材,以使得实验内容满足模块化的原则。

首先根据教学目标和实际要求确定程序设计课程的实验次数以及实验类型,设置一般验证性实验,设计性实验和综合性实验等,每种实验类型均要设置相应数量的设计题目和要求以供选择,各类型实验之间力求做到通用性和灵活性,教师要把实验教学的内容和具体要求阐述清楚;其次,针对每次实验内容,同样进行模块化分层,如图1所示,分别设置基础编程题(验证性实验),应用设计题和能力拓展题。

基础编程题和应用设计题主要针对掌握程度一般及非计算机专业学生,应用设计题和能力拓展题则针对掌握程度较好及计算机专业的学生,这样可以做到各取所需,能力拓展题可划分为选做题范围,主要涉及一些综合性设计内容,也可结合课程设计内容来设置。分层的好处在于适应不同的情况,同时也在侧面可对实验教学进行有效管理,每个同学完成的实验内容都有所不同,就能在一定程度上避免实验报告的抄袭现象。另外,尤其对于设计性实验,教师要主动积极融入到实验环节中来,而不是被动地等待学生问题的出现。设计性实验一般都有一定的综合应用特点,对学生而言也有一定的难度和自由性,教师可参与其中做相关的必要指导,例如可预先根据理论内容提出一些设计要求,让学生在实验过程中灵活选择,这样可提高设计性实验的效果,避免学生的盲目性。

3教学过程的模块化

在整个实验教学过程中,也要以模块化思想为主线,这样可促进对于实验教学本身的有效控制和管理。对于一般验证性实验,要让学生有准备这一环节和过程,即事先建立算法编写好程序在进行上机实验,实验完成后提交实验验证报告;对于设计性实验和综合性实验,可设置同步教学和实验讨论两个必要的过程,教师可在实验室利用相应的授课手段(如多媒体)进行同步教学,参与到设计性实验中,而学生之间可针对与具体要求进行实验讨论和互动,这样既可调动学生的积极性,也可大大提高实验的效,实验完成后可提交实验总结和研究报告。

4 基于模块化的实验教学实践

以结构化语言《C语言程序设计》课程的教学实践为例,在实验教学的各个实际层次应用了模块化思想,从而很大程度上提高了程序设计课的整体教学质量。循环结构是结构化程序设计中过程描述的主要语句,C语言中分为for语句,do while循环语句和do loop循环等几种主要形式,一般均要设置相应的实验内容模块以训练学生,下面以循环结构的实验教学为例,介绍实际的教学过程,模块化教学的整个过程如图2所示。

4.2 制定分层的实验教学内容

课堂上我们主要将授课重点放在分析程序的算法模型上,重点讲解程序的设计思想和循环结构的实现,明确将一个实际问题转化为计算机能够实现的算法模型的过程,指导学生“分析具体问题,建立算法模型”,培养学生分析问题的能力。学生通过大量的上机实验解决“怎样将算法模型转化为最终的C语言程序循环结构”的问题。其次设置具体的实验内容,实验指导书中明确指出了每次实验的实验目的、实验要求和实验内容,用以保证实验的进度和试验的效果,实验难度中等为宜。对于验证性的内容,我们在实验教材中设置了一定数量的基本编程题目,例如”求500以内3的倍数的总和”,“统计全班某门课程不及格同学的人数”等,每题都要求使用不同的循环形式来实现,主要针对多数学生以锻炼他们对于循环语句的基本表达和应用能力;对于设计性的内容,我们也给出了相应总体设计目标和要求,例如“思考如何实现彩票机的功能,程序可以随机按要求输出号码”,“实现小型计算器”等,在实验过程中激发了很多学生的设计兴趣。

4.2 制定分层的实验教学管理

在实验过程中,非计算机专业学生对于基本的for语句,do while循环语句和do loop循环等三种形式均掌握不够好,在程序书写过程中常常搞错系统关键字,究其原因主要是语法知识不清楚,因此教师的指导和主动管理就非常关键。在实验之前,我们要求所有的非计算机专业学生写出并上交实验报告,主要是把他们对于循环结构语句的学习掌握情况和实验预习情况进行反馈,让他们把还不理解的问题,想要用循环结构解决的问题全部表达出来,这样教师就可有的放矢,通过这一过程我们了解到很多学生对于怎样把具体问题转化为三种循环结构还不了解,在实验中可允许这类同学相互讨论;对于设计性实验和综合性实验的管理,我们要求实验完成后提交实验总结和分析报告,要求学生在报告中分析解决具体问题的思路和实现的过程,已经实现了什么功能,还有哪些没有很好解决或有待改进,而不是把源程序简单抄写一下。

4.3 制定分层的实验教学组织

我们根据各专业学生的具体情况,借助模块化的灵活原则,组织了程序设计实验课程小组,一个教学班级中由学生自愿组合并在老师的协调下组成若干小组,有的小组中学生能力较好,可设置为综合性实验组;也有的小组中学生对基本的循环结构掌握一般甚至较差,可设置为验证性实验组,各层次小组可进行动态的模块化重新组合,实际证明这种实验组织方式优于传统方式,使得各层次学生能够彼此帮助和协作。我们规定四至五个同学为一组并根据实际情况作了调整,实践结果表明,有85%的同学基本掌握了for语句和do while语句,70%以上的实验内容学生均能很好掌握。

4.4 实验教学效果的评价

对于学生反馈的实验报告,我们根据实验类型的不同,给出不同的评价结果,可总结为“ABC”法和“123”法。对于一般验证性实验,依据学生的实际完成情况和态度给出A,B,C三个等级,A代表完成较好,能够利用循环结构处理一般问题;B表示完成情况一般,可能有语法错误;C等代表完成情况较差。对于设计性和综合性实验,给出积分结果,即根据具体设计需求目标,思路正确但未实现的可得1分;思路合理并部分实现的可得2分;完成较好得3分,由于有一定的设计难度,评价结果要对学生有积极促进作用。实践结果表明,有一半做验证性实验题的同学得了B等,近三成做设计性实验内容的学生得了2分。

5 结论

本文针对实验教学存在的不足,提出基于一般结构化程序设计语言类课程的实验教学模式,将”模块化”思想的灵活优点应用到整个教学过程中,在实际的《C语言程序设计》课程教学实践中取得了比较好的效果,学生反映良好,此方法还可推广到其他课程的实验教学中去,但是在实际的程序设计实验教学组织管理和评价中还有很多的问题值得今后进一步研究和改进。

参考文献

[1]瞿葆奎.教育评价[M].北京:人民教育出版社,1999.

[2]刘成章.信息技术教育学[M].高等教育出版社,2002.

模块化程序论文 第6篇

管螺纹作为管道联接的一种形式,广泛地应用于输送液体、气体的中小尺寸管路的联结与密封[1]。目前,针对管螺纹的加工方法有多种,包括钳工加工、数控加工中心成形铣刀加工以及数控车床车削加工。其中,采用钳工加工螺纹工序多,效率低,所加工螺纹精度较差,密封效果欠佳,数控加工中心主要用于加工难以用车床装夹零件上的螺纹[2],而数控车床车削是最常使用的圆锥管螺纹加工方法。不同型号的管螺纹仅尺寸不同,而几何结构、加工方法均相同。因此,针对不同型号尺寸的产品,需重复编制程序。并且,目前数控车床加工圆锥管螺纹的常用指令为螺纹切削复合循环指令,使用该指令在加工没有退刀槽的圆锥管螺纹时,螺纹有效终点,切削起点与终点的半径差等基点数值的计算较为繁琐,极易出错,严重影响产品的加工效率[3]。

针对目前管螺纹加工程序编制的问题,以FANUC数控系统为研究对象,通过定义系统用户宏程序代码,建立了管螺纹车削模块化程序。用户可直接调用指令快速完成管螺纹车削加工编程。

1 管螺纹车削指令代码的模块化设计

FANUC数控系统是通过G代码控制机床运动的[4]。为开发管螺纹专用指令代码,需定义系统用户宏程序,利用常规螺纹切削G代码、辅助G代码和变量计算相结合的模块化设计,简化指令程序,避免繁琐的编程操作。

为建立管螺纹车削宏程序模块,需规划加工信息代码和几何信息代码[5,6]。其中,加工信息代码是描述精加工重复次数、最小切削深度、精车预留量等加工信息的指令代码,可内置于螺纹切削复合循环指令中,减少输入变量,提高使用的便捷性。几何信息指令时以几何要素为基础的指令代码,描述的是加工零件的几何特征信息。管螺纹车削指令代码是以上两部分代码的组合,其运行流程如图1所示。

如图1所示,管螺纹车削指令代码分4个模块。初始化模块可完成程序的初始化,4个地址分别输入管螺纹的4个最简参数。螺纹结构形式的分类在判定模块中完成,根据判定结果分别进行几何参数计算。计算结果最终输入螺纹切削复合循环指令和辅助指令可完成刀位点计算并控制机床加工运动。

2 指令程序模块技术实现

2.1 参数优化分析

计算模块中各参数之间的计算与传递是管螺纹车削指令代码的关键环节。首先,需对管螺纹的结构进行分析,以便以最少的参数个数将其进行完整描述。以英制圆锥管螺纹为例,其牙型及外螺纹上各主要尺寸如图2所示,总共具有9个参数。直接利用其进行编程虽然可行,但极其繁琐[3]。通过对该螺纹结构进行分析,发现某些参数间具有耦合关系而并非完全独立,可进行参数简化,优化后的输入参数减为4个。因此,给所设计的管螺纹车削指令代码G77设定4个地址,分别代表4个参数。代码指令格式为:

G77 A__B__C__I__;

其中,地址A代表管螺纹螺距P,地址B代表基准距离l,地址C代表螺纹基准直径的大径D,地址I代表螺纹的有效长度L。

2.2 参数传递过程分析

简化后的4个参数并不能直接输入控制模块,根据图1所示螺纹结构的几何关系可推导参数传递矩阵,如式(1)所示。

其中u、w、i、k、f、Δd为螺纹切削复合循环指令G76输入参数,各参数根据不同数控系统有所不同,具体含义可参看数控车床编程手册。j为螺纹类型判定系数,当j=1,即进刀定位时X值大于基面直径D时,为外螺纹;当j=0,即进刀定位时X值小于基面直径D时,为内螺纹。对FANUC数控系统来说,G76指令格式为:

G76 P(m)(r)(a) Q(Δd min) R(d);

G76 X(u) Z(w) R(i) P(k) Q(Δd) F(f);

其中第一条指令为加工信息代码,对于用户来说,其各参数往往是常量,因此可内置于宏程序中,避免参数重复输入。第二条指令包含几何信息,通过上述参数传递矩阵,可将宏程序输入参数转化为该指令可使用的参数。此外,某些辅助指令需要特定的参数,但参数传递过程一般较为简单,在此不赘述。

2.3 宏程序的封装与调用

指令代码封装是将开发的宏程序模块转换成机床本体指令,其方法是在系统参数中设置G代码数字与对应地址参数和开发宏程序号[4]。宏程序编制完成后经调试在MDI状态下将参数#6050~#6059变量定义为用户专用G代码,程序号设定为O9010~O9019,恢复参数保护后即可完成参数封装。本文宏程序号为O9017,将6057号参数改为所定义的G代码号77,可直接进行调用。

3 应用实例

以车削R1/8圆锥外螺纹为例,采用所开发的管螺纹切削程序G77指令对其进行加工编程,图3所示为车削加工示意图。

查手册可得加工R1/8圆锥外螺纹所需的4个参数,分别为:P = 0.907,l = 4.0,D = 9.728,L = 6.5。具体程序为:

上述程序同样适用于其他尺寸代号的内、外管螺纹车削加工,在程序编制时,只需输入管螺纹的上述4个基本尺寸要素。

4 应用实例

本文通过深入分析管螺纹结构以及数控车床系统指令,对管螺纹加工程序进行模块化设计,编写了系统用户宏程序代码,并用于实际生产,具体如下:

1)开发的管螺纹车削加工专用指令,避免了参数的人工计算。可实现多种尺寸规格管螺纹程序的快捷编制,提高生产效率。

2)对管螺纹加工编程进行了参数输入优化和参数传递矩阵建模,大量产品的实际生产证明了其精确性与可靠性。

3)模块化的设计便于程序的调试与更改,减少重复编程工作,便于后续持续开发与改进。

参考文献

[1]王振勇.四种常用管螺纹综述[J].液压与气动,2011,(01):60-62.

[2]樊伟杰.英制圆锥管螺纹数控加工方案[A].中国兵工学会2009年精密加工及数字化制造技术学术研讨会论文集[C].2009.

[3]颜建强,唐重.G76指令车削圆锥管螺纹的编程技巧分析[J].科学创新导报,2012,(09):97-98.

[4]刘宏,罗丽丽,樊永强.三轴椭球精密曲面的数控双指令铣削加工技术[J].制造业自动化,2015,(10):21-23.

[5]张在平,佘抒萌.数控铣削编程中宏程序的应用[J].科技资讯.2010(34):37-37.

[6]汤郁.浅议宏程序在数控车编程中的应用[J].科技信息.2011,(27):78-79.

大地测量模块的VC++程序实现 第7篇

1 设计框架

在程序设计的过程中,整个框架分为参数设置、测量菜单两个部分。参数设置为整个模块的基础,要进行后续的坐标转换工作,首先要采集与本地坐标系统有关的定位信息。在得到本地区的有关参数之后,需要考虑地方的椭球元素、投影方式、坐标系之间的变换等要素。在确定目标椭球的过程中,可以根据参考文献[1]中提出的确定E3椭球的方法来定义一个适合本地区的E3椭球。利用在单个参考点上WGS-84椭球面与投影面之间的垂向距离,根据式(1)即可求得E3椭球的长半径a3和偏心率e32,从而使此区域性椭球面与既定的投影面在该单点上相吻合。

1.1 椭球元素

有关大地测量模块的软件中,参考椭球的定义是不可缺少的,参考文献[3]中指出,椭球的形状和大小是由子午圈的五个基本参数决定的,分别为椭圆的长半轴a、短半轴b、扁率α、第一偏心率e和第二偏心率e′来决定。但实际上如果需要确定一个椭球,只需要上述五参数中任意两个就可以了。在程序设计过程中,采用了WGS-84等11种不同的参考椭球;同时支持用户自定义椭球的输入,可以输入计算得到的E3椭球元素。

1.2 投影方式

程序设计时将几种常用的投影方式均列在参数设置中,常用的几种投影方式有墨卡托投影(Mercator)、横轴墨卡托投影(Transverse-Mercator)、斜轴墨卡托投影(Oblique-Mercator)、兰勃特等角切圆锥投影(Lambert Conic Conformal-2SP),其中考虑到在通用横轴墨卡托投影对应的投影公式中,若把中央子午线长度比由1转换为0.999 6,即可成为高斯投影[1]。

1.3 七参数转换

进行两个空间坐标系之间的转换,常用的转换模型有布尔莎模型、莫洛金斯基模型以及范士模型,具体模型转换及公式推导可见参考文献[1],这三种转换模型有不同的前提条件,故七参数的数值是不同的,但坐标转换的最终结果却是一样的,因此在程序设计时只采用布尔莎模型求出相应参数,进行不同三维坐标系之间的转换。

2 利用VC++实现功能框架的部分函数

2.1 对Microsoft VC++6.0自带的CEdit类重载

由于在使用的过程中会涉及到很多角度问题,并且普通角度与经纬度的表示形式不同:例如界面上纬度的显示方式为“00-00-00.000 0N”,用通常的CEdit类来定义一个控件的时候,用户不仅仅需要输入度分秒等数字键,同时也要输入“-”“.”等字符。为了方便输入,在程序设计时,主要针对CEdit类的OnChar和OnKeyDown函数进行,对不同位置数字键以及W/E/N/S键按下时和“BackSpace”“Delete”按下时进行判断并重载。重载之后用户就只需在键盘上依照度分秒的次序按数字键,固定的数据就自动填充到默认的角度格式中,这样就极大方便了用户的输入。

2.2 四种投影的正反算函数

通用的正反算分别用如下方式定义:

void Projection—pros(double L,double B,double L0,double B0,double B1,double B2,double FE,double FN,CEllipse *elli,double k,int i,double * x,double * y,double *scale);

void Projection—cons(double x,double y,double L0,double B0,double B1,double B2,double FE,double FN,CEllipse *elli,double k,int i,double *B,double *L,double *scale)。

2.3 单点确定E3椭球元素

void GetE3element(double X,double Y,double Z,double h,double * a3,double *e2)。

3不同投影数据验证

从表1中可以看出,该模块经过投影之后得到的平面坐标与其他软件(hypack软件)投影坐标具有相同的数值,因此在各种投影方式的计算上,本模块的功能是完全可以实现的。

4结语

文中主要介绍了利用VC++6.0定义相应大地测量模块的函数,并详细列举了以实际数据对投影方式和七参数求解的验证,计算结果可以满足用户的需求。

摘要:主要介绍了利用VC++ 6.0对相关大地测量模块的设计,并对模块的功能进行了数据验证,验证结果表明设计的大地测量模块完全可以满足用户的需求,并给出了部分代码。

关键词:坐标转换,七参数,投影,VC++,E3椭球

参考文献

[1]施一民.现代大地控制测量[M].北京:测绘出版社,2003.

[2]朱卫东.建筑施工过程中的测量控制要点[J].山西建筑,2008,34(8):351-352.

模块化程序论文 第8篇

SpeedTree是美国IDV (Interactive Data Visualization) 公司研发制作的一款专门的三维树木建模软件, 支持大片树木的快速建立和渲染, 而且它本身还带有强大的树木库。不仅可以通过插件将树木导入到其他的三维建模软件中使用, 也可以为游戏引擎提供强大的树库支持, 目前已经成为著名游戏引擎Unreal的御用树木生成软件。

Vega Prime是Presagis公司研发制作的一款用于创建及配置视景仿真、多领域仿真和通用可视化应用的视景平台, 利用其跨平台性与可扩展性, Vega Prime成为实时3D应用开发与调度最佳的COTS类工具包。Vega Prime开发环境大大提高进行实时3D应用的创建与配置速度, 同时提供功能强大的扩展模块, 以解决实时3D应用开发中遇到的难题, 其中的SpeedTree模块能够在实时帧率下进行真实感植被景观的定义与渲染。SpeedTree模块集成来自IDV公司的获奖产品SpeedTree技术, 此技术目前已经成为US DoD训练系统和大多数视景游戏的特定特征。SpeedTree模块能对Vega Prime应用中高密度植被进行定义和渲染, 能在达到最佳视觉效果的同时保持原有的渲染效率不变, 能生成具备碰撞映射、阴影和精细纹理的植被效果, 提供具有200种树和植物种类的模型库, 包括阔叶树、针叶树、棕榈树、仙人掌和灌木, 允许对现有树型进行修改并创建新的树型。SpeedTree植被还能方便地添加到现有的OpenFlight和MetaFlight数据库中。

下面讨论SpeedTree for Vega Prime模块的程序设计方法。

2 SpeedTree模块

要使用SpeedTree for Vega Prime模块, 必须安装Vega Prime 2.1.2或以上版本。

2.1 SpeedTree模型定义文件

SpeedTree模型定义文件 (SpeedTree Definition File) 用来批量定义spt格式的源模型及其渲染属性, 其文件名是vsgn_speedtree_defs.txt。该文件名是不可更改的, OpenFlight加载器在加载SpeedTree模型时, 只查找文件vsgn_speedtree_defs.txt, 否则, 将会产生不可预测的结果。vsgn_speedtree_defs.txt示例文件如下:

其中, 关键字MODEL定义一个新的模型实例, 接着是标识模型的文件名, 然后在“{“和“}”之间定义模型参数。

2.2 交叉引用文件

交叉引用文件 (Cross Reference File) 用来定义OpenFlight外部引用名字和替换文件名字之间的映射关系, OpenFlight加载器使用Vega Prime提供的搜索路径尝试加载外部引用的替换文件。交叉引用文件的文件名是vsgn_xref_map.txt, 该文件名是不可更改的, OpenFlight加载器在加载SpeedTree模型时, 只查找文件vsgn_xref_map.txt, 否则, 将会产生不可预测的结果。vsgn_xref_map.txt示例文件如下所示:

其中, 第一个字符串是OpenFlight模型数据库外部引用文件名, 第二个字符串是替换文件的名字, 用来加载代替前面的外部引用文件。当OpenFlight加载器读到外部引用节点时, 它将用外部引用文件名同交叉引用文件中提供的文件名进行比较, 如果找到匹配的项, 就尝试用替换文件代替外部引用文件。

2.3 SpeedTreeControl类

SpeedTreeControl类用来控制SpeedTree模型的属性, 该类必须存在且唯一, 其定义的属性包括:Wind Effects、Normal Mapping、Detail Texture、Self-Shadow和Instance Culling。为了在Vega Prime的Active Preview里看到SpeedTree模型, 在应用配置文件ACF里必须有一个SpeedTreeControl实例。

3 SpeedTree模块程序

SpeedTree for Vega Prime模块程序设计流程主要是:

(1) 用SpeedTreeCAD创建spt模型。

(2) 用Creator创建包含外部引用的flt模型。

(3) 编辑vsgn_speedtree_defs.txt和vsgn_xref_map.txt文件。

(4) 编辑ACF文件, 添加在⑵中创建的flt模型, 添加SpeedTreeControl实例。

(5) 在Active Preview里进行预览, 或者用VC编程进行驱动。

3.1 创建spt模型

在Vega Prime 2.2.1版本中带了SpeedTreeCAD 4.1版本, 可以用来创建spt模型, 运行界面如图1所示。这不是讨论重点, 所以不做详细讨论。

3.2 创建flt模型

flt模型是OpenFlight格式的模型数据库, OpenFlight格式是Multigen Creator建模软件独创的用于描述三维虚拟场景的层次化数据结构, 已经成为事实上的业界标准数据格式。在fl模型数据库中可以添加对其他模型数据库的外部引用, 外部引用的内容在层级视图中被放置在外部引用节点中, 外部引用节点必须用跟组节点同级别的节点作为父节点。外部引用的模型对象在当前模型数据库中具有只读属性, 不能在当前模型数据库中对其进行编辑, 但是可以对外部引用进行整体的移动、旋转或者缩放。向模型数据库中添加外部引用的步骤如下:

(1) 在层级视图中选择适当的组节点, 单击“Parent”按钮将其设为父节点。

(2) 单击菜单“File”-“External Reference”, 打开外部引用对话框。

(3) 在外部引用对话框的“External File Name”编辑框中输入被引用的模型数据库文件名。

(4) 单击“OK”按钮完成外部引用。

还有一种常用的外部引用模型数据库的方法是直接在层级视图中, 通过创建外部引用节点来进行外部引用操作。具体做法是, 首先选择适当的组节点, 然后打开创建工具箱, 单击创建外部引用工具按钮。

下面具体创建一个包含外部引用的flt模型, 使用的Creator版本为3.2, 运行界面如图2所示。

打开Creator, 在默认状态下, 创建一个外部引用节点, 在外部引用对话框的“External File Name”编辑框中输入“tree01.flt”, 单击“OK”按钮退出对话框。单击菜单“File”→“Save”, 打开保存文件对话框, 在文件名编辑框中输入“tree.flt”, 单击“保存”按钮退出对话框, 关闭Creator。

3.3 编辑模型定义文件与交叉引用文件

可以用任意文本编辑器进行编辑, 这里用的是Windows记事本, 具体定义:

编辑vsgn_speedtree_defs.txt文件内容如下:

编辑vsgn_xref_map.txt文件内容如下:

这两个文件定义了外部引用文件和替换模型文件的对应关系。

如上所示, 用模型tree01.speedtree代替模型tree01.flt, 而模型tree01.speedtree的源模型为文件Beech_RT.spt, 即最终tree01.flt被Beech_RT.spt代替。

3.4 编辑应用配置文件ACF

应用配置文件 (Application Configuration File, ACF) 包含了Vega Prime应用在初始化和运行时所需的一切信息, 采用流行的通用文件格式扩展标识语言 (XML) 格式存储, 可以使用Vega Prime的可视化编辑器LynX Prime进行开发。这里使用的LynX Prime版本为2.2, 运行界面如图3所示。

ACF文件具体定义步骤如下:

⑴打开LynX Prime, 在默认状态下, 创建一个Object实例, 模型文件名选择前面用Creator创建的tree.flt, 模型位置设置为 (0, 60, 55) , 其他参数默认。

⑵创建一个SpeedTreeControl实例, 参数设置默认。

⑶编辑搜索路径SearchPath, 添加模型文件tree.flt和Beech_RT.spt所在的目录。

⑷修改运动模式, 将其设为MotionGame。

⑸修改观察者my Observer的位置 (x, y, z) 为 (0, 0, 60) , 姿态 (h, p, r) 为 (0, 0, 0) 。

⑹单击菜单“File”-“Save”, 打开保存文件对话框, 在文件名编辑框中输入“test.acf”, 单击“保存”按钮退出对话框, 关闭LynX Prime。

3.5 程序运行效果

对上面建立的ACF文件, 可以用LynX Prime打开, 在Active Preview里进行预览, 也可以用VC编程进行驱动。使用VC编程驱动时, 可以动态改变环境的风速和风向, 使SpeedTree模型做出随风摇摆的不同响应。在Active Preview里预览效果如图4所示, 在MFC单文档框架下的运行效果如图5所示。

4 结语

SpeedTree模块增强了Vega Prime中树木模型的真实性, 调整Vega Prime里环境风的参数, SpeedTree模型能够以摇摆的方式做出逼真的反应。结合实例介绍了Vega Prime中SpeedTree模块的基本程序设计方法, 在此基础上可以开发SpeedTree模块的具体应用。程序的开发运行环境为:Windows XP SP3、VS2005、Vega Prime2.2、Creator3.2。

摘要:SpeedTree模块能够在实时帧率下进行真实感植被景观的定义与渲染, 生成具备碰撞映射、阴影和精细纹理的植被效果。结合实例, 介绍了Vega Prime中SpeedTree模块的基本程序设计方法, 在此基础上可以开发SpeedTree模块的具体应用。

模块化程序论文 第9篇

一、解读高中信息技术“算法与程序设计”模块会考的指导思想

《2014年福建省普通高中学生学业基础会考信息技术学科考试大纲 (试行) 》指出:“算法与程序设计”是高中信息技术课程的选修模块, 以问题解决与程序设计为主线, 揭示利用计算机解决问题的过程。通过本模块的学习, 使学生体验算法思想, 了解算法和程序设计在解决问题过程中的地位和作用。能从简单问题出发, 设计解决问题的算法, 并能初步使用一种程序设计语言编制程序、实现算法、解决问题。

我校高中信息技术选修“算法与程序设计”模块, 采用的课本是广东教育出版社出版的《算法与程序设计》, 信息技术会考的时间是每年6月和1月中旬左右, 选修模块考试试题分为两个部分:第一部分为单项选择题, 共10题或20题;第二部分为操作题, 共3题。选修模块试题的总分值为50分, 考试全程都在机房环境下进行的。

二、历年试题各题特点及学生答题存在的主要问题

第一部分:选择题

选择题有10小题或20小题, 主要涉及基本知识、数据类型、常量变量、表达式运算、函数运算等。利用在机房考试的有利环境, 掌握技巧, 让电脑轻松给出正确选项。可以使用技巧答题的主要有以下几种题型:

1、求函数值。

如: (2011年1月) 在Visual Basic中, 函数Abs (-3.5) 返回的值是

A.-4 B.-3.5 C.3.5 D.-3

若没有记住函数的含义, 可在VB环境下, 视图—立即窗口, 在弹出的立即窗口中输入?Abs (-3.5) , 按ENTER键, 显示结果为3.5。

2、求算术或逻辑表达式的值。

如: (2010年1月) 在Visual Basic中, 表达式3+7 Mod 5的值是

A.2 B.4 C.1 D.3

如果忘记Mod的含义或运算符的优先级, 可以使用立即窗, 即:?3+7 Mod 5。

3、给出已知条件求程序结果。

例: (2009年6月) 执行下面的Visual Basic程序段后, 变量a, b的值是

A:a=5, b=6 B:a=6, b=5 C:a=1, b=11 D:a=11, b=1

除 (/) 和整除 () 易混淆, 可在VB环境下, 新建一个工程, 拉入一个按钮控件, 双击按钮进入编程状态, 将程序代码输入, 运行后单击按钮就得到结果。

4、判断逻辑表达式真假。

例: (2009年6月) 已知a=5, b=7, c=13, 下列逻辑表达式的值为“真”的是

A:not b<c B:a+b>c and a<b+c

C:a<c and b<c D:b<a or b>c

若不理解逻辑运算符和运算符优先级, 可双击按钮进入编程状态, 将程序代码略做修改输入, 注意结果要用Print或?来显示。本题可改为:

A=5;B=7;C=13

?not b<c

?a+b>c and a<b+c

?a<c and b<c

?b<a or b>c

运行结果如图, 答案一目了然。

其它题型靠平时的积累, 练习, 和理解。这里暂不讨论。

第二部分:操作题

操作题有三大题, 分别是界面设计题、程序补充题、编写程序题

1、界面设计题

如: (2012年1月) 新建一个VB文件, 保存在“Z:VB165”文件夹下, 工程文件名为:“工程1.vbp”, 窗体文件名为:“Form1.frm”, 进行如下操作后保存!按下表的要求添加控件, 并设置其属性:

考查知识点是了解面向对象的程序设计思想与方法、能够使用可视化程序开发工具设计简单的用户界面等。本题只要求学生进行界面设计, 不需要进行编写程序。

学生易出现的问题及建议: (1) Label与Text控件的混淆; (2) 修改属性名时, 错把名称当成属性名, 因为名称默认跟属性是一样的英文单词; (3) 保存文件名不对, 题目要求保存时工程文件名称为"工程1.vbp", 窗体文件为"Form1.frm", 但是首次保存时先弹出的窗口是窗体文件的保存, 然后才是工程文件的保存, 跟题目的顺序正好相反, 所以要求学生认真审题, 完成操作关闭窗口后可从题目所说的位置Z:VB165检查, 至少要有Form1.frm, 工程1.vbp两个文件, 打开工程1.vbp, 检查表格中的控件。 (4) 保存的位置出现错误, 例如本题可能没保存在Z:VB165, 而保存在Z:VB。

2、程序补充题

例: (2011年1月) 在VB代码窗口指定位置修改完善程序代码, 实现求1到500之间能被11整除的个数。

考查知识点:知道常用的数据类型、变量、常量的含义;学会定义常量、变量的数据类型;学会使用循环结构设计程序的基本方法;For语句的格式理解、For循环语句执行过程的理解等。本题一般出现两个空位要填写, 学生先要读懂程序, 再进行完善程序。

学生易出现的问题及建议: (1) 没读懂程序, 根本不知道程序的作用是什么, 无从下手; (2) 不理解For循环语句格式, 特别是Step的作用;不理解执行过程, 对于循环体被执行几次没弄清楚; (3) 不理解算术运算符, 如例题中的Mod; (4) 题目要求只能删除<1><2>处, 其它的文字都不能删除, 有些学生觉得注释 (绿色的字) 是不执行的, 就删除了, 机改时会只找<1><2>与正确的答案比对, 这也是机改的一个弊病。程序补充题与编写程序题难点不同, 要先读懂程序的思路, 比如是否为奇数 (不被2整除) 时有好几种解法。

第一种解法:

第二种解法:

第三种解法:

第四种解法:

出现第四种解法就要用到Step, 如果不熟悉Step的用法, 直接把For整行删除, 用前三种之一来改写程序, 运行结果可能一样, 但是不合题目思路, 分数为零。所以平时多做练习, 要告别关注一题多解的情况, 不要以为只要能写出一种方法就可以。

3、编写程序题

例: (2013年1月) 打开考生目录“VB301”文件夹中的文件:“k1.vbp”进行以下操作后并保存!在窗体“Form1.frm”的“Command1_Click”事件中编写代码 (请不要随便更改其它代码) , 使之能够实现如下功能:分别在text1和text2文本框中输入a和b两个整数, 判断 (a+b) 是否大于10, 如果该值大于10, 则在text3文本框中输出 (a+b) 的值, 否则输出 (a+b) 的平方。

测试数据在text1文本框中输入4, 在text2文本框中输入8, text3文本框输出:12;在text1文本框中输入3, 在text2文本框中输入5, text3文本框输出:64。

考查知识点是知道程序中运算符、函数、表达式的表示方式, 能够转换数学表达式为程序接受的表达式;学会使用分支结构设计程序的基本方法;IF语句的格式和执行过程等。本题界面已设计好, 只要双击按钮进行编程状态, 编程思路由考生自定, 只要顺序运行通过测试数据得到正确答案即可。

学生易出现的问题及建议: (1) 平时没有练习过的, 对于本题只能放空; (2) 此题与数学知识相结合, 出现算术运算符、关系运算符等; (3) 注意英文单词的正确写法, 如:Else错写成Esle; (4) 要双击Command1进入编程, 不能双击Form1等其它控件, 代码输入界面相似, 但运行时单击Command1却得不到结果; (5) 定义变量时出现错误, 整型与实型分不清楚, 可以不定义, 让系统自己在程序运行时遇到变量自己识别; (6) 混淆文本框输出与Print语句输出。 (7) 写完程序后要运行, 关键是要使用测试数据来检测程序, 最后保存。

三、指导今后的教学

1、认真阅读信息技术会考考试大纲, 用以指导平时的教学

以新课程标准、信息技术会考考试大纲为指导, 结合我校学生的实际情况, 总结出一套适合本校教学的材料, 加强基础知识的筑固, 让学生掌握考试中出现的一般题型、解题思路, 掌握各个题型的解题技巧。

2、加强与其它学科的联系, 提高学生信息技术应用能力

要学好编程, 除了要有计算机的基础知识, 还要有丰富的数学、物理知识等, 还涉及许多英语单语, 所以信息技术与其它学科之间是紧密联系的, 反过来, 编程能培养学生逻辑思维能力, 提高学生的信息素养, 学以致用, 解决其它学科和生活中的问题, 提高学习和生活效率。如:学习循环结构, 就可以轻松解决关于象棋麦子的问题, 可以解决斐波那契数列复杂数学问题等。

3、培养学生创新能力

在平时教学过程注重培养学生创新能力, 一题多解, 要在学习中学会思考、学会想像, 要鼓励学生在学习过程中发现问题, 勇于质疑。

4、加强技巧练习和专题训练, 避免死记硬背

平时教学过程中, 加强专题和专项练习, 可结合历年考题考点, 要关注易出现的问题, 强调解题的规范性, 有针对性地进行技巧练习, 特别是选择题;在复习时也要加强答题时间和审题能力的训练。

参考文献

上一篇:社会养老下一篇:国际合作指标