辅助程序范文(精选8篇)
辅助程序 第1篇
斯隆联盟连续十一年发布美国在线教育调查报告显示, 高校在线教育保持稳定发展的态势[1]。中国在线教育发展如火如荼, 各种新产品不断涌现[2]。中国石油大学 (华东) 从2010年开始引入程序设计的在线测试平台, 学生日常编程都提交到该平台上, 因此积累了大量的数据。在线测试平台对程序设计语言教学的辅助作用非常巨大。目前平台的平均日访问量在2000人次以上, 最高访问量达到8000人次。某教师在一个学期的学生人数为92人, 一学期接收学生提交的程序超过1万。庞大的数据量使教学工作者很难对教学情况做出有效的分析。
教育分析是对教育过程中所获得的各种信息进行定性定量分析, 为教学内容、教育方式、教育手段的选择提供依据, 为教育决策提供信息[3]。本文将教学与可视化技术[4]相融合, 利用新的技术、新的理念和新的学习理论尝试构建新的教学模式。课程组将在线测试平台上学生的日常完成状况进行了可视分析, 总结出了做题数量、一次性提交成功率、重复率等多个影响因子, 将这些影响因子与学生的考试成绩做了综合分析, 并利用分析得到的结论, 辅助于程序设计语言的教学。
一、做题数量与学生的学习成绩成正比
将学生的做题数量和成绩进行了关联分析, 如图1所示, 每个点代表一个班级, 横轴表示平均做题数量, 纵轴表示该班学生的平均成绩。对该图做了一个线性回归后, 得到的回归线为y=0.3136x+45.025, 斜率0.3136表明做题数量和成绩成正比。将图1中代码重复率高于40%的班级剔除掉, 斜率进一步得到提升, 正比关系更加明显。也就是说, 在学生独立完成的情况下, 做题数量是影响学生对程序设计语言掌握程度的一个重要因素。
进一步分析, 图1中的右上角圈选部分明显离群, 该班平均做题76道, 平均分82分。该班为我校的理科实验班, 成绩明显高于其他班级, 而较高的做题数量保障了该班取得良好的成绩。图1中的左侧圈选部分也离群较远, 做题数量明显偏少, 成绩整体偏低。
从图1的左、中、右位置上各选取一个班级, 深入分析三个班级的做题数量和学生成绩的关联状况。首先, 无论成绩状况, 每个班级的绝大部分学生的习题总量接近该班教师布置的数量;其次, 三个班级平均做题数量依次上升, 平均分也依次上升;最后, 做题少的同学很难得高分。通过这三个发现, 一方面再次证明了做题数量对学生成绩的影响较大, 另一方面也说明了大多数学生都能尽量去完成布置的作业, 教师应该根据学生的承受能力, 尽量多布置习题的数量。
二、平均提交次数、一次性提交成功率和抄袭的可能性
学生编程时, 都是在本地编译运行通过后, 提交到在线测试平台上。因为一方面本地编译器与在线编译器略有区别, 另一方面学生做题时考虑问题不够全面, 较难一次性通过该问题对应的所有测试用例, 所以学生的平均提交次数很难接近1。将全校学生根据平均提交次数进行人数统计, 其中平均提交次数对应人数最多的位置为1.58, 全校学生的平均提交次数为2.02, 平均提交次数非常接近于1的学生数量较少, 把这些学生称为E类学生。本文针对E类学生进行了深入的研究。将平均提交次数对应的学生成绩做了一个加权平均, 得到图2。从图2中可以看出, E类学生的平均成绩比较低。平均提交次数接近1的学生平均成绩仅为30分。随着平均提交次数的增加, 成绩逐步提高。在平均提交次数大于2之后, 平均成绩开始趋于稳定。较低的成绩说明绝大多数E类学生不是因为对课程内容掌握的非常好才形成较低的平均提交次数, 从而推断这部分学生具有较大的抄袭可能性。
在此基础上, 一次性提交成功率也能说明相同的问题。这个参数是指学生仅需一次提交就能编译成功, 并通过所有测试用例的题目数量占总做题数量的比例。经过回归分析证实了一次性提交成功率和平均提交次数成反比。也就是说在一般情况下, 学生在需要多次提交才能通过所有测试用例的题目越多, 其他题目能够一次性提交成功的概率就越低。图3将全校学生的平均提交次数 (横轴) 、平均成绩 (纵轴) 和一次性提交成功率 (不同颜色) 进行了综合分析和数据统计, 每一个点代表一个学生。其中的颜色能够大体上沿横轴依次变化, 也同样说明了两个对应的参数存在着比例关系。黄色和青色部分的学生占总人数的80%, 代表了学生的整体状况, 他们的平均提交次数在1.5~3.5, 一次性提交成功率在60%~80%。因为代码是在本地系统上编译运行通过后才提交到平台, 所以这个范围的提交成功率比较正常。而对于前文提到的E类学生, 在图中显示为粉色和红色, 他们一次性提交成功率大于90%, 平均提交次数小于1.2, 从较低的平均成绩上推断, 这些学生复制他人代码的可能性较高。E类学生只占学生总数的4%, 说明绝大多数学生能够独立完成题目。
图4中展示了三名学生在不同日期 (横轴) 的提交状况 (纵轴) 。其中绿线表示题目的完成数量, 黄线表示尝试的提交次数。左图中两条线保持比较均匀并相对较短的距离, 平均提交2次可以成功完成一道题目。这是一个比较正常的学生, 他在图3中显示为青色。图4中图的两条线基本重合, 平均提交次数为1.01, 一次性提交成功率大于97%, 也就是说几乎所有题目都是一次性提交成功。考虑到编译器的不同和初学者的能力状况, 推断出该学生抄袭的可能性非常高。29分的考试成绩说明该生对课程掌握程度较差。他在图3中显示为红色。
图1中右下角圈选部分的两个班级, 相对做题较多, 但班级平均分较低, 这不符合做题多则成绩相对好的规律, 可以认为是一种异常状况。通过分析发现, 两个班级的平均提交次数分别为1.48和1.33, 一次性提交成功率分别为0.79和0.82, 与全体学生的平均提交次数2.02和一次性提交成功率0.61相比, 有较大差距。因此推断两个班级的整体抄袭状况比较严重, 从而较好地解释了这种异常状况的出现。
三、坚持不懈地给予学生更多的关注
在图3左图中的绿色点所对应的学生, 平均提交次数都比较高, 这说明他们在做题时多需要花费较大的精力。图4右图显示了一个平均提交次数为5.08的学生, 做题数量和提交次数两条线之间距离较远。以4月1日为例, 该生完成4道题目, 却提交了30次, 这说明他们在做题时遇到了问题, 是靠坚持不懈的努力来学习这门课程的。图2中横轴大于3.5的部分对应着这部分学生, 折线的震荡状况说明这部分学生分为两种:一种是已经掌握的相对较好, 通过不断提交努力寻找更好的方法;另一种是没有掌握程序设计语言的核心, 但他们一直保持着较大的学习热情。在图3右图中显示该部分学生的平均成绩高达72.40, 说明他们的努力得到了回报。占总人数5%的比例说明一个人数为30人的班级, 平均只有1~2个同学会出现这样的状况。如果任课教师能在教学过程中尽早发现这些学生, 给予足够的帮助并帮助他们突破瓶颈, 那么这些学生依靠自己的努力应该可以取得更好的成绩。
四、结论
本文将学生在程序设计课程中提交的数据与学生的成绩进行了关联分析, 提取出了做题数量、平均提交次数和一次性提交成功率等影响因子, 发现学生的掌握程度与做题数量成正比, 当平均提交次数接近1, 且一次性提交成功率很高时, 学生有很大的抄袭可能, 而平均提交次数很高的学生非常努力, 但付出的代价很大, 需要更多的教师辅导。教师可以把这些结论当作程序设计课程的指导标准, 改善教学环节, 提高教育质量。
摘要:随着信息化时代的到来, 程序设计语言课程已经进入到在线教育的时代。大量教育信息的电子化给教育工作者更多的参考依据, 但是庞大的数据量给分析和总结工作带来了巨大的难度。本文针对程序设计课程的特点, 将课程信息进行可视化, 通过总结得到的规律进一步促进教学, 提升了程序设计课程的教学质量。
关键词:可视分析,程序设计,教育分析,影响因子
参考文献
[1]朱永海, 韩锡斌, 杨娟, 程建钢.高等教育借助在线发展已成不可逆转的趋势——美国在线教育11年系列报告的综合分析及启示[J].清华大学教育研究, 2014, (04) :92-100.
[2]管佳, 李奇涛.中国在线教育发展现状、趋势及经验借鉴[J].中国电化教育, 2014, (08) :62-66.
[3]薛琴娣.教育分析及其在思想教育管理中的运用[J].无锡教育学院学报, 1995, (01) :52-54.
辅助程序 第2篇
飞行程序计算机辅助设计中地形图的处理应用
主要介绍在利用计算机辅助设计系统进行飞行程序设计时如何建立地图投影.通过对纸质地图进行配准和矢量化,获取地形数据,重点介绍了计算机中对高斯-克吕格投影跨带处理的.实现算法.
作 者:陈海青 CHEN Hai-qing 作者单位:中国民用航空中南地区空中交通管理局空中交通管制处,广州,510405刊 名:中国民航大学学报 ISTIC英文刊名:JOURNAL OF CIVIL AVIATION UNIVERSITY OF CHINA年,卷(期):26(1)分类号:V355.1关键词:飞行程序 计算机辅助设计 地形图 处理
辅助程序 第3篇
移动教学 (Mobile Teaching) , 是近些年随着科学技术发展出现的一门新兴的学习与教育理论, 其含义是使用基于无线移动网络的移动设备来实现教师与学生交互式教学活动, 内涵包括以下三个方面:第一、学习形式是移动的, 学生不再受时间、空间的限制, 可以随时随地进行学习;第二、学习内容精挑细选、知识点合理划分并且充分利用多媒体技术加入声音、图片、动画内容, 做到图文并茂快速吸引学生的注意力;第三、实现方式上是基于无线移动设备数字化学习, 是远程教育发展的一个新阶段。近年来随着微信、微博、微电影的兴起已经全面进入“微时代”, 其中微信做为一种人们交流信息的平台, 同时也可以利用其来获取知识、技术交流辅助教学, 微信的普及给移动教学提供了绝佳的平台与环境。。
一、PHP程序设计课程特点
PHP语言作为当今最为流行的WEB技术之一, 在各高校中不仅是计算机专业的必修课, 也是很多非计算机专业的学习课程。随着社会发展个人电脑的普及, 学生运用电脑的能力越来越强, 但程序设计课程因其自身特点, 例如:较复杂的语法、较强的逻辑思维能力等, 依然是学生学习上的“拦路虎”。
PHP语言程序课程知识点琐碎、概念繁多, 函数成百上千且用法灵活度高不易掌握;涉及到课程较多, 例如:WEB前端有HTML、CSS、Java Script等, 后台有数据库等;学习中对应规则繁多且易混淆, 使得学生容易产生畏难、厌学情绪;理论与实训教学学时分布不合理, 导致课堂教学中, 学生编程思路不清晰;在实训过程中不能将理论知识应用自如, 在处理实际问题时往往不知从何着手, 要想达到良好的教学效果, 需要在平时教学中注意培养学生动手能力, 预习与复习相结合才产生较好学习效果。
PHP语言程序课程的这种特点, 适合采用移动学习作为其辅助教学方式。针对PHP程序设计的特点, 可以在课前发送微信提示预习摘要, 课后发送复习要点与练习内容例如:某一个函数理解与运用, 以及用法与示例, 同时学生在复习、做练习过程中可以与教师实时沟通及时解决学生遇到的问题以提高学生的兴趣。
二、移动学习在课程教学中的应用
根据上述分析, PHP程序课程教学要以传统教学方式为主, 移动学习方式为辅, 移动学习方式充当课堂教学的重要补充, 能够实现课堂知识的延伸。实现方式, 主要采用微信交流群的移动学习方式和网站资源建设为内容。针对课堂教学, 精心设计课前案例, 提出驱动式问题, 课后设计相关重难点回顾, 知识点延伸, 以微信的形式发给学生。智能手机在学生中已经普及, 所以将移动设备限定于手机, 使用微信公众平台、开发相应的配套软件满足学生学习的需求。PHP移动辅助教学具体实现方式如图所示:
移动学习做为一种辅助教学方式, 应积极参与到PHP程序设计课堂教学的课前准备, 课后辅导以及实验指导等方面。以微信平台为基础的辅助学习分为两部分、一部分是实时交流群、另外一部分是移动学习频道两部分;对于大容量的视频、PPT等文件放置于网站上, 共学习者下载至移动设备上, 可随时进行学习。
微信的实时交流群提供了教师学生之间的自由交流空间。在交流群中定期设置专题讨论, 这些专题既可以是关于某个问题进行分析, 也可以针对某些经典程序讨论分析, 还可以是对当前教育模式与方式、方法进行探讨。 (1) 课外知识拓展, 相关技术讨论与交流, 例如:JSP、ASP.NET等技术交流。 (2) 常见问题分析, 常见错误解读及可能出错原因。 (3) 经典程序分析, 使其能够体现课程各个阶段的进度, 并且具有一定的实用性, 能够调动学生的学习积极性。 (4) 课程与职业发展规划, 经过本课程学习之后能够从事的岗位有哪些, 目前现状如何, 未来发展怎么样等, 让学生做到学习有目标、就业有方向。
网站资源建设主要包括课程内容的各种学习资源, 如课件、相关视频、程序示例等;课程的各种辅导资料, 电子书、电子资料、课程设计任务库、程序设计案例库、试题库等都可以作为下载的资料。
移动学习内容的设计要有自己的特点, 课程的资源要适合移动终端特点, 不仅要考虑学生的设备支持程度, 还要考虑移动学习随意性特点, 对于资源部要进行特殊处理使其适合移动学习, 处理原则要按知识点将文档, 影音资料都处理成片段, 确保一个片段一个知识点, 每个片段不超过10分钟为宜。学生只需要把资源下载到自己的移动终端上, 不论是在公园还是在公共汽车上, 都可以通过移动设备学习这些内容, 充分享受移动学习的便捷。
三、结束语
实验证明, 移动学习对学生也有一定的要求, 比如需要一定的自控能力和较强的学习欲望等。使用移动学习方式作为程序设计课程的辅助教学方式能够大大调动学生学习的积极性, 一部分学生兴趣高涨, 能够充分利用提供的学习资源, 学习进度甚至出现超前现象, 同时也出现了一些问题, 例如:一部分学生不但没有通过移动终端学习, 反而陷入到网络不能自拔。针对这种问题提醒教师加强大学生的思想教育, 使其认识到网络的便利性和危害性。
摘要:移动教学是近些年新兴的学习与教学理论, 随着科学技术的发展社会已然全面进入“微时代”, 移动教学同时也得到了飞速发展。论文阐述了移动教学的含义与内涵, 借助于微信平台有了新的发展。同时论文介绍了《PHP程序设计》课程的特点, 寻求了确定传统教学为主, 移动教学为辅的教学模式;随后详细介绍了如何在课程中利用微信平台与网站作为辅助教学手段, 如何设计教学资源等, 最后实验证明移动辅助教学有积极方面也有消极的一面。
关键词:移动教学,移动学习,微信,PHP
参考文献
[1]侯志鑫.移动学习环境下学习资源建设模式的研究.北京交通大学.2014.3
[2]王萍.微信移动学习的支持功能与设计原则分析.远程教育杂志.2013.12
[3]朱学伟, 朱昱, 徐小丽.微信支持下的移动学习平台研究与设计.中国远程教育2014.4
计算机辅助设计椭圆的宏程序 第4篇
在数控系统中,为用户提供了算术参数宏指令。在编制零件加工程序中,利用系统提供的宏指令功能,可实现数控程序的逻辑判断、比较、转移及各种运算,为解决特殊零件的数控编程问题提供了方便。这里对加工程序中用到的一些语句作以介绍。
1.1 变量
变量分为四类:空变量(#0);局部变量(#1-#33);公共变量(#100-#1 99),(#500-#999),系统变量(#1000-)。
1.2 宏程序语句使用
转移和循环:在程序中,使用GOT0语句和IF语句可以改变控制的流向。有三种转移和循环操作可供使用:
1.2.1 GOT0语句(无条件转移)
1.2.2 IF语句(条件转移:IF…THEN…)或IF[(条件表达式)]GOTON
1.2.3 WHILE语句(当…时循环)
1.3 用户宏程序的特点及应用
数控加工中常常会遇到数量少,品种繁多,有规则几何形状的工件,我们只要稍加分析与总结,找出它们的之间共同点,把这些共同点设定为局部变量(局部变量只能用在宏程序中存储数据)应用到程序中,就能达到举一反三,事半功倍的效果。
2 计算辅助设计数控程序的工艺分析
无论是手工编程还是自动编程,在编程前都要对所加工的零件进行工艺分析,拟订工艺方案,选择合适的刀具,确定切削用量。在编程中,对一些工艺问题(如对刀点,加工路线等)也需要做一些处理。因此,数控编程的工艺处理是一项十分重要的工作。数控加工工艺的主要内容:
2.1 选择适合在数控上加工的零件,确定工序内容。
2.2 分析加工零件的图纸,明确加工内容及技术要求,确定加工方案,制定数控加工路线,如工序的划分、刀具的选择、夹具的定位与安装、切削用量的确定、走刀路线的确定等等。
2.3 调整数控加工工序的程序。如对刀点、换刀点的选择、刀具的补偿。
3 计算机辅助设计数控程序刀具补偿:
刀具补偿应用到数控系统中后,编程人员就可以直接按照工件的轮廓尺寸进行程序编制。在建立、执行刀补后,由数控系统自动计算、自动调整刀位点到刀具的运动轨迹。当刀具磨损或更换后,加工程序不变,只须更改程序中刀具补偿的数值。刀具补偿使用简单方便,能极大提高编程的工作效率。数控加工中主要有以下四种补偿方式:a.刀具长度补偿;b.刀具半径补偿;c.夹具偏置补偿。
3.1 刀具长度补偿
刀具长度补偿功能在加工程序编制过程中的运用具有较强的实用性和高效性。刀具长度补偿主要是用刀具的实际长度作为刀长的补偿。
用对刀仪测量刀具的长度,然后把这个数值输入到刀具长度补偿寄存器中作为刀长的补偿。用该方式进行刀具补偿,可以避免在加工不同工件时不断地修改刀长偏置,即使受刀库容量限制,需取下刀具而重新安装时,只需根据刀具标牌上的刀长数值作为刀具长度补偿而无需再测量,可节省辅助工作时间。
3.2 刀具半径补偿
与使用刀具长度补偿后在编程时基本不用考虑刀具长度一样,当使用了刀具半径补偿后,编程时就不必过多考虑刀具的直径。刀具长度补偿适用于所有刀具,刀具半径补偿一般只适用于铣刀类刀具。用铣刀加工工件的外轮廓或内轮廓时,采用刀具半径补偿;用端面铣刀加工工件的端面时,采用刀具长度补偿。
半径补偿功能时,先将刀具的半径值预先存入存储器DXX(XX为存储器号)中,执行刀具半径补偿后,数控系统自动计算,并按照计算结果自动补偿刀具。刀具半径左补偿(G41)指刀具偏向编程加工轨迹运动方向的左方,刀具半径右补偿(G42)指刀具偏向编程加工轨迹运动方向的右方。取消刀具半径补偿G40或D00指令。
在编制工件粗、精加工程序的过程中,合理运用刀具半径补偿功能,可以极大减少计算工作量,提高加工效率。使用刀具半径补偿时应注意以下几点:
3.2.1 在建立、取消刀补时所使用的G41、G42、G40指令的程序段中,必须同时使用G00或G01指令,不能使用G02或G03指令;
3.2.2 当刀具半径补偿取负值时,G41和G42的功能互换;
3.3 夹具偏置补偿
正像刀具长度补偿和半径补偿让编程者可以不需考虑刀具的长短和大小一样,使用夹具偏置补偿可让编程者不必过多考虑工件夹具的位置。夹具偏置补偿使用夹具偏置指令G54~G59来执行。
3.4 椭圆数控编程加工注意事项
3.4.1 选择工艺路线时,主要考虑加工精度和加工效率两个原则。
3.4.2 切入与切出方向控制:
径向切入,工件表面留有凹坑;切向切入、切出,工件表面光滑。
3.4.3 一次逼近方法选择:
只具有直线和圆弧插补功能的数控机床在加工不规则曲线轮廓时,需要用微小直线段或圆弧段去逼近被加工轮廓(其误差称为一次逼近误差),逼近时,应该使工件误差在合格范围同时程序段的数量少为佳。
4 计算机辅助设计椭圆曲线的数控程序
下面介绍用直径小于椭圆曲率的立铣刀进行数控编程加工的方法。例如,椭圆长轴100mm,短轴30mm。
程序中利用多段光滑连接的直线来逼近椭圆曲线,控制最大偏离度在公差允许范围内,然后计算出每段圆弧的起点坐标、终点坐标及圆弧半径,再编制数控加工程序进行加工。由于必须按照允许的精度要求计算各小段直线或圆弧的起点和终点,当工件轮廓较长而精度要求很高时,逼近段直线或圆弧必须分得很细,这样才能加工出高精度的椭圆形零件。
辅助程序 第5篇
在以周为单位安排事件的环境下,计算当前周数一件比较麻烦的事,虽然目前存在很多软件提供当前周数,但是它们或是起始日期为一年的第一天或是无法自定义起始日期。为了方便计算周数,实现了一个可定义起始日期的程序。程序主界面如图1所示。程序配置界面如图2所示,程序提供每周起始于配置主要是由于每周的起始因实际情况不同而不同。
1 需求分析
需求分析阶段主要任务是提取系统需求并加以归纳总结。在此过程中,分析人员必须同用户一道工作,从用户所提供的对问题的陈述中充分了解现实世界的基本特征,然后根据这些特征把实际问题加以抽象,逐步建立起从3个互不相同然而又密切相关的角度来描述现实世界的模型。
用例图[2]是软件需求分析到最终实现的第一步,描述的周计算辅助程序的用例图如图3所示。
上述用例图清晰地描述了周计算辅助程序的主要功能,以及用户的主要操作,有了这样的用例图之后,在后一阶段就可以分析出系统中的对象。
2 对象设计
对象设计阶段是面向对象方法的软件工程中最具特色且又最为繁重的设计阶段。它是在前述的分析和系统设计基础上的进一步加工,加进了具体实现方法的细节。
UML[3](Unified Modeling Language)是软件界第一个统一的建模语言,它是一种标准的表示,是一种基于面向对象的可视化的通用建模语言。周计算辅助程序使用UML语言描述系统涉及的对象,这些对象主要分两类,一类为表现对象,另一类为业务对象。表现对象处理与界面相关的内容,而业务对象处理与界面无关的内容。这么做的原因是目前程序以Window Form[4]为界面库,而Windows Form已是非常古老的技术,为了能跟上技术发展的潮流,例如将程序升级到Windows Presentation Foundation(WPF)界面,或者移植到手机平台,实现表现与业务分离[5],增强代码重用。
为了减少系统设计的复杂度,系统没有采用常用的模式设计,而是采用简单的分层设计,基本达到数据与数据的表现的分离。该系统主要由4个对象组成,分为业务对象和表现对象两类,其中表现对象包括Notify Text和Opt Week Calculator,业务对象包括Week Calculator Settings和Week Calculator。
Notify Text类,如图4所示,主要用于显示周数,它监听Week Calculator.W-eek Number Changed事件,当Week Calculator对象触发Week Numbe-r Changed事件后,Notify Text从事件参数Week Number Changed Ev-ent Args.Week Number获取当前周数并显示在通知区域。
Opt Week Calculator类,如图5所示,主要用于配置Week Calculator Settin-gs对象,该设计实现了数据与界面的分离,方便程序开发人员轻松替换用户界面,程序开发人员可以使用ASP.NET技术或者WPF技术来展现Week Calculator Settings对象,这里主要使用Wind-ows Form技术来表现Week Calculator Settings对象。
Week Calculator Settings类,如图6所示,主要用于配置Week Calculator-对象,确定如何计算周数,即起始日期,每周起始。Week Calcula-tor Settings.Start Date属于用于描述何时开始计算,Week Calc-ulator Settings.Week Starts On属性描述每周的起始,例如每周起始于星期一或者每周起始于星期日。Week Calculator Settings.Start Date Changed事件响应Week Calculator Settings.Start Dat-e属性的变化,Week Calculator Settings.Week Starts On Changed事件响应Week Calculator Settings.Week S-tarts On属性的变化。
Week Calculator类,如图7所示,主要用于计算周数。它根据Week Calculat-or Settings对象计算当前周数,当完成周数计算后,它触发Wee-k Calculator.Week Number Changed事件。Week Calculator.Setti-ngs属性用于配置Week Number Calculator,而Week Num属性用于保存Week Number Calculator计算结果。Week Calculator.Calcula-te方法包含4个重载方法,目的是简化客户端对计算当前周数的调用。Week Calculator.Settings Changed事件响应Week Calculat-or.Settings属性的变化,例如在用户界面赋予Week Number Calc-ulator.Settings实例新的Week Number Calculator Settings实例。
当完成UML类图的详细设计后,下一阶段就是对象的实现阶段。
3 对象实现
对象实现阶段主要是以某种语言实现对象设计阶段提取的对象,使概念上的系统成为具体的、实际的、可用的系统。本文程序的业务对象主要使用VB.NET实现,而程序的表现对象主要使用C#实现。
3.1 周数计算算法
计算周数是周计算辅助程序的核心内容,主要是指计算当前日期周数到指定日期间隔的周数,具体算法如图8所示。本文首先建立一个通用的计算周数算法,然后利用重载化简客户端对它的调用。
3.2 实现在通知区域显示周数
在通知区域显示周数是本文程序的第二个难点。虽然.NET框架提供了Notify Icon[6]类,其目的在于允许程序在通知区域显示图像,但有两个缺点:
第一,只能显示图像。因此只能将周数转换成图像后,才能使用Notify Icon类
第二,Notify Icon类为sealed[7]。sealed类是无法通过继承来修改其默认行为的,因此本文利用封装绕过该问题。
新建了一个Notify Text类,其以Notify Icon对象作为字段,通过调用Notify Text.Display方法实现在通知区域显示周数,具体实现如图10所示。
3.3 实现周数自动更新
周数自动更新是指每过一周周数自动加1。本文采用最简单的方法,即利用计时器实现。Week Calculator对象有一个类型为System.Timers.Timer[8]的属性,即Week Calculator.Timer,通过设置Timer.Interval为1秒,同时监听Timer.Timer Elapsed事件,完成周数自动更新,完整代码如图11所示。
3.4 初始化周计算辅助程序业务对象
周计算辅助程序业务对象初始化是指设置Week Calculator.Settings属性,其流程为调用Week Calculator Settings的静态方法Load Option从外部文件返回Week Calculator Settings对象,初始化过程在Week Calculator.Initialize方法中完成。图12展示的是完整代码。
3.5保存周计算辅助程序配置信息
在.NET世界中,XML[9]是Visual Studio和.NET Framework的许多功能的核心,XML及其相关技术对Microsoft Visual Stud-io中处理数据的方式起着十分重要的作用。微软扩展了万维网联合会(W3C)DOM级别1和级别2中可用的API,使XML文档的使用更加容易。在完全支持W3C标准的同时,附加的类、方法和属性增加了使用W3C XML DOM无法完成的功能。.NET Framework提供了System.Xml命空间及System.Xml.Schema、System.Xml.Serializ-ation、System.Xml.Xpath、System.Xml.Xsl 4个子命空间来包容XML操作相关的类。
本文中的周计算辅助程序使用XML技术保存用户配置信息。由于将用户配置信息抽象表示为对象,故使用.NET中Xml Seriali-zer[10]操作最方便,具体细节如图13所示。
4结语
通过周计算辅助程序的开发,个人认为采用面向对象的方法开发程序,更适合人类思维方式,代码的描述更接近人类解决问题的方法,但是在设计时需要权衡好对象数量和系统复杂性,否则将陷入对象的泥沼中。面向对象程序设计能更自然、更容易地表现现实世界,为解决软件产品扩展和质量保证中的许多问题提供了技术支持,极大地提高了软件开发的效率,估计这也是为众多软件开发人员所青睐的原因之一。
参考文献
[1]张岚,张志伟.浅谈面向对象的程序设计[J].内蒙古科技与经济,2009,(05):119-120.
[2]休梅克.UML实战:面向.NET开发人员[M].清华大学出版社,2006.
[3]徐宝文,卢红敏.UML与软件建模[M].清华大学出版社,2006.
[4]SELLS,C.Windows Forms程序设计[M].人民邮电出版社,2004.
[5]JOSHUA.KERIEVSKY.重构与模式[J],2007.
[6]NotifyIcon类.http://msdn.microsoft.com/zh-cn/library/system.windows.forms.notifyicon.aspx.
[7]WATSON,K.,康博.C#入门经典[M].清华大学出版社,2002.
[8]Timer类.http://msdn.microsoft.com/zh-cn/library/system.timers.timer.aspx.
[9]刘德贵.XML发展综述[J].微型机与应用,2000,(05):4-6,19.
辅助程序 第6篇
关键词:色彩构成,色彩搭配flash互动
在色彩构成教学中,需要授予学生色彩搭配的技巧,学生也需要根据自己的创意来完成色彩搭配的作业。由于纸上绘画调色耗时很长,学生难以在短期内尝试多种色彩搭配的方案,尤其是高职类院校的学生,美术基础相对薄弱,调色能力不太熟练,对他们的耐心和信心造成了很大的挑战和考验。
那么笔者就在思考,能不能制作一个方便学生使用的互动程序,使得他们能够在有限的时间内,更多地尝试不同的色彩搭配方案,更快地掌握色彩搭配的方法呢。笔者想到了flash软件,具有直观界面设计,互动程序编写也快捷方便,由于flash播放器的普及,无论是本机运行还是在页面中播放都十分方便,不用另装程序,因此,用flash软件制作色彩搭配的互动程序成了我的首选。
1. 界面的设计
整个界面设计简洁明了,简单易用。如图1所示,界面底部列出了备选的图案,分为人物、风景、动物三个大类别。鼠标点击某图案后,该图案对应的黑白大图将显示在左侧的主界面中。界面右侧有圆形状的拾色面板,以及调节色彩明度和纯度的滑块。用户点选了左侧大图中的某个区块后,即可实时调节该区块的色相、明度和纯度。"重置"按钮可以将当前选中区块颜色恢复为初始的颜色。"保存"按钮可以保存对当前选中区块的色彩设置。
2.使用示范
以人物类别中的第四张图--手为例,来说明如何使用。当选中"手"图案后,手的黑白大图即显示在界面的左上侧中。再点选手掌中的一块区域,该区域则作为了当前选中区块,以黄色的粗边框标示,如图2所示。当鼠标在圆形状拾色面板内滑动时,将有一个小圆环状的图案取代了鼠标指针形状,圆环状的拾色器滑动到哪里,被选中区域的颜色就随之相应改变。结合明度、纯度滑块的调节,可对选中区域色彩实时调节。
依次再选择"手"图案的其他区域进行调色,最终完成的效果参考图3。
3.程序实现
既然涉及到了交互操作,那必然就涉及到了程序部分。在此使用flash软件中的AS3脚本语言编写交互操作。主要技术点有"选择图案","选定区块","实时变换颜色"这几个。
3.1 选择图案
每张黑白大图均对应着基类为flash.display.MovieClip的一个类,如图4所示,"手"图案对应的类为People4。当鼠标选择了人物类别的"手"图案时,即会新建一个对应类的实例,添加在舞台上并显示出来。代码如下
3.2 选定区块
需要实现大图中的各个区块能够被选中,并且以边缘黄色边框高亮显示。首先要将图片进行分割并定义为元件。因为嵌入软件中的大图是位图的形式,需要分割成各个区域后,才能够用程序实现交互。最快捷的方法,就是选择菜单栏中的"修改"/"位图"/"转换位图为矢量图",在弹出的对话框中设置合适的参数后,点"确定"即可将该图片的转换为矢量图。选择每个区块并按F8键,转换为影片剪辑,并依次将其舞台实例命名为shape1shape2等等。双击某影片剪辑(如shape1),选择工具栏中的墨水瓶工具,设置墨水瓶工具的线条属性为:黄色,线宽为4。设置好后,鼠标点击影片剪辑内的区块,即会在区块边缘生成黄色的线条。选中该黄色线条,按F8键盘,转换为影片剪辑,并将舞台实例命名为border。其他的shape2, shape3等影片剪辑也按照同样的方法设置,黄色线条的舞台实例名全部是border。
图案分割并命名之后,便可对库中的"人物4"影片剪辑对应的People4类编码,以实现鼠标与区块的交互。
People4类的主要代码如下
3.3 实时变换颜色
从圆状拾色面板中吸取颜色,用到了BitmapData类的getPixel () 方法。该方法从作为参数传递的一组x, y(像素)坐标中检索RGB值。在本应用中x, y即鼠标在拾色面板中的坐标。
依据色相,明度,纯度对影片剪辑进行实时变换颜色用到了Grant Skinner所写的开源类ColorMatrix中的方法[1]。颜色变换涉及到的矩阵非常复杂,应用Grant Skinner封装好的ColorMatrix类,直接调用调节色相,明度,纯度的方法,使得程序编写更加快捷。
3.结束语
使用该套互动程序后, 学生能方便地调节出心中期望的色彩搭配图,为实际的手绘作业提供了很好的参考。色彩感觉得到了一定提升。目前的互动程序没有提供保存图片的途径,只能学生手动截图保存在自己的机器中,为多人交流带来了不便。后继可以完善与后台的传图功能。提供上传按钮,让学生可以将自己完成的搭配图直接上传,并在网站上展示,交流。
参考文献
辅助程序 第7篇
在PET/CT[1,5]扫描完成后,一般首先对图像进行融合后处理,即把需要的CT图像与PET图像挑选出来后将其融合,这个部分必须由医生手工完成。我院使用的是西门子16排PET/CT,其工作站软件在融合图像后每次只能存储一张图像,而系统每次在存储图像时都使用相同的文件名,如果动手快了,后融合的图像将会覆盖前一幅图像,所以要对产生的图像进行更名,我们以往的做法是在存储图像时手工录入该病人图像的顺序号,这个环节非常容易出错,而且非常耗时。为此,我们设计了一个辅助程序以提高这部分的工作效率。
1 材料与方法
1.1 程序简介
为了使手工录入变成自动化,就要实现自动更改文件名的功能,由于系统每次存储图像的时候默认文件名为“msv_allviews.bmp”,只要及时更改这个文件名为指定并编好顺序号的名称即可。为了符合PACS工作站文件存储规则,我们设定的命名规则为:“病人检查号”+“-”+“图像顺序号”+“.bmp”,病人检查号是固定的,只有减号后面的图像顺序号在变化,这样只要每次更改图像顺序号即可。更改完的文件名通过程序的网络传输模块传输到指定服务器的文件夹下由PACS工作站转换为DICOM格式。
1.2 软件部分
由于工作站平台为Windows XP(SP2),故采用目前兼容性最好,运行速度最快的Visual C++.Net[1]作为开发工具,开发程序基本模块,本程序无需使用数据库。
1.3 程序基本模块
1.3.1 基本信息录入模块
本模块设置必要的参数,包括设定检测指定目录下“msv_allviews.bmp”文件的时间间隔,固定文件名名称,图像顺序起始号,产生新的图像输出文件夹,热键调用程序主窗口。
1.3.2 后台工作模块
由于工作站窗口的界面为最前台,所以必须使程序工作在后台,本模块功能包括:隐藏或显示程序主窗口、注册系统热键(以方便调出主窗口),出错时调用窗口报错功能。
1.3.3 图像删除模块
由于融合后的bmp格式图片文件大小通常为1M~3M,大量积累多个病人的图像将导致工作站空间的浪费,在网络传输模块传输图像后,为了减少资源浪费同时避免手工删除文件,更好的提高工作效率,我们设定一个按钮专门删除已传输的图像文件,此功能包括:删除当前病人图像、删除所有病人图像。
1.3.4 时间触发器模块
为工作在后台的模块,单独的把这个模块列出来,主要原因是该模块非常重要,如果处理不当则会与操作系统或工作站软件冲突,导致工作站程序异常。其功能包括:按指定时间循环检测“msv_allviews.bmp”文件、文件命名功能、异常文件冲突处理功能。
1.3.5 网络传输模块
该模块功能主要是将单个病人的所有后处理图像传输到指定服务器的文件夹下,我们利用Windows操作系统的文件夹共享功能[4],在PACS服务器上建立一个文件夹并做安全访问权限设定,当完成图像后处理,按下指定按钮,把单个病人的所有图像复制到PACS服务器文件夹里。
2 结果
普通手工操作进行后处理图像单个病人需耗时20分钟~30分钟,而使用了本程序后,减少了手工录入文件名、手工网络传输图像、删除无用的后处理图像等枯燥繁琐工作,每个病人后处理时间为5分钟~10分钟,大大节约了时间,既减轻了医生的工作量又提高了工作效率,使医生能更好的把工作精力放在诊断工作中,。
参考文献
[1]李厍.Visual C++.NET[M].北京:中国铁道出版社,2003.
[2]杨荣英.WindowsXP入门?提高?精通[M].北京:机械工业出版社,2007.
[3]王恒,等.DICOM医学图像文件信息提取及图像显示的实现[J].医疗设备信息,2007,(9):1-3.
[4]刘逸敏,等.医院信息系统建设过程中若干问题讨论与对策[J].医疗设备信息,2007,(1):35-36.
辅助程序 第8篇
关键词:PLC,程序设计,辅助继电器,应用
0 引言
可编程序控制器, 即PLC, 是以微处理器为基础的通用工业控制装置。它以应用面广、功能强大、使用方便等优点, 成为当代工业自动化的主要控制设备之一。它的控制原理核心是通过程序来实现或改变控制功能。因此, 在应用PLC来实现所要求的控制功能时, 编制PLC用户程序成为必不可少的关键组成部分。本文就三菱FX系列PLC程序设计中辅助继电器M的应用技巧作重点阐述。
1 辅助继电器简介
辅助继电器, 又称为内部继电器, 元件类型用字母M表示, 是一种用软件实现的PLC内部的状态标志。它们不能直接接受PLC外部的输入信号, 也不能直接驱动PLC外部的负载, 只能用来设计PLC用户程序。它们在PLC用户程序中的作用, 相当于继电器控制系统中的中间继电器所起的作用, 是程序设计中的辅助器件。这类器件在PLC梯形图程序中有三种体现方式:常开触点、常闭触点和线圈。它们的常开、常闭触点在编程时可以无限次地使用;它们的线圈与输出继电器的线圈一样, 由PLC内的各种编程元件的触点驱动。在程序中, 辅助继电器M的文字符号是由字母和十进制的数字组成的, 例如:M0M1, ……M9等。三菱FX系列辅助继电器M是PLC中数量最多的一种继电器, 它们通常分为三种类型:通用辅助继电器、有保持功能的辅助继电器和特殊辅助继电器。
1.1 通用辅助继电器
通用辅助继电器用于PLC逻辑运算的中间状态存储和信号类型的变换。它没有断电保持功能, 即在PLC运行时电源突然断开, 通用辅助继电器将全部变为OFF;电源再次接通, 除了因外部输入信号而变为ON的以外, 其余的仍将保持为OFF状态。这类辅助继电器在PLC程序中的性质与输出继电器Y类似。其中FX1S、FX1N子系列对应的通用辅助继电器为M0~M383, 共384点;FX2N、FX3U4C子系列对应的为M0~M499, 共500点。
1.2 有保持功能的辅助继电器
有保持功能的辅助继电器, 又称为电池后备/锁存辅助继电器, 具有断电保持的功能。这类继电器主要用于一些要求记忆电源中断瞬时状态的控制系统, 重新通电后, 可以再现其断电前的瞬时状态。此类辅助继电器对应不同子系列编号区域分布较复杂, 在此不再赘述。
1.3 特殊辅助继电器
特殊辅助继电器是指具有特定功能的辅助继电器。根据使用方式又可分为触点利用型和线圈驱动型两类。触点利用型特殊辅助继电器为状态标志或专用控制元件, 由PLC的系统程序来驱动其线圈, 在用户程序中直接使用其触点, 而其线圈则不能出现;如M8000运行监视, M8002初始化脉冲。线圈驱动型特殊辅助继电器, 由用户程序驱动其线圈, 使PLC执行特定的操作, 用户程序中不出现其触点;如M8030的线圈“通电”后, 使电池电压降低LED灯熄灭。FX1S、FX1N、FX2N子系列对应的特殊用途的辅助继电器为M8000~M8255, 共256点;FX3U4C子系列对应的为M8000~M8511, 共512点。
2 辅助继电器M的应用
本文仅对通用辅助继电器和特殊辅助继电器在PLC程序设计中的应用进行举例说明。
2.1 通用辅助继电器的应用
应用实例一:小车在初始状态时停在中间, 限位开关X0为ON, 按下起动按钮X3, 小车按图1所示的顺序运动, 最后返回并停在初始位置。用经验设计法设计小车控制的梯形图。
控制要求分析及梯形图的设计:小车在初始位置时限位开关X0为ON, 说明小车与限位开关X0触碰, 限位开关X0处于动作状态, 在此条件下按下起动按钮X3小车才能起动右行, 表示这两个条件同时满足的方法是把X0和X3的常开触点串联起来驱动Y0的线圈;由小车的运动轨迹示意图可知第一个运动阶段是连续运动, 故在X0和X3的常开触点串联电路两端并联Y0的常开触点实现自保持的功能, 在Y0线圈前串联限位开关X1的常闭触点来控制第一个运动阶段的停止, 则对应第一阶段的梯形图程序应设计为:
小车右行碰到限位开关X1后运动状态自动切换为左行, 碰到限位开关X2后停止左行, 由此可得出第二个运动阶段的起动条件应为X1的常开触点, 停止条件应为X2的常闭触点, 同时由运动轨迹示意图可知道小车的第二个运动阶段亦有自保持的功能, 则第二个运动阶段对应的梯形图程序应设计为:
左行碰到限位开关X2后自动切换为右行, 碰到限位开关X0后停止右行, 回到初始状态, 说明此运动阶段的起动条件为X2的常开触点, 停止条件为X0的常闭触点, 由图可知也需要自保持的功能, 那么实现第三个运动阶段控制的PLC梯形图应设计为:
三个阶段综合起来对应的完整梯形图为:
观察此梯形图不难发现它存在一个很明显的问题:输出继电器Y0出现了双线圈输出。为了解决这个问题, 需作如下修改:
但修改后的梯形图又出现了另外一个问题:在第一个电路块中, X0的常开和常闭触点是串联连接关系, 无法同时闭合, 则小车在第一阶段不能起动, 第一阶段的运动就无法实现。
针对以上问题, 可以尝试借助于辅助继电器来设计小车的PLC控制程序。在第一个运动阶段, 先用相应的起保停条件控制一个辅助继电器M1, 在第三个运动阶段, 用相应的起保停条件控制一个辅助继电器M2;最后, 再用M1和M2的常开触点并联起来驱动Y0的线圈;第二个运动阶段的设计保持不变, 则编制出的梯形图程序如下:
再观察分析此梯形图程序发现完全满足题目的控制要求, 条理清楚, 便于理解和掌握, 且不存在任何控制问题。在此程序中, 辅助继电器M1、M2起中间状态的存储作用。它们就像一座座连接了此岸与彼岸的桥梁, 把PLC不能实现直接控制的输入信号和输出信号之间建立起联系, 其控制的实质就是X→M→Y。
2.2 特殊辅助继电器的应用
应用实例二:十字路口交通信号灯控制系统的工作示意图如图2所示, 在此图中, 车道绿灯和人行道绿灯在控制系统的每个工作周期均有5s时间处于闪烁状态, 闪烁的周期为1s, 也就是说每1s的时间, 绿灯接通、熄灭一次。
为了实现周期为1s的闪烁功能, 可以用两个100ms的定时器来设计如下的闪烁电路:
其中, X0为闪烁电路的控制开关, Y1为闪烁灯。如果想使电路的设计更加简单, 也可以这样来设计周期为1s的闪烁电路:
其中, X0为闪烁电路的控制开关, 特殊辅助继电器M8013为1s的时钟脉冲, Y1为闪烁灯。采用了特殊辅助继电器来实现闪烁的设计方法, 较第一种设计方法简单, 易于理解和掌握, 不容易出错, 也更加实用。基于这种设计方法, 还可以利用M8011-10ms的时钟脉冲、M8012-100ms的时钟脉冲、M8014-1min的时钟脉冲来设计出不同闪烁周期的闪烁电路。也可以把特殊辅助继电器M8011~M8014和计数器结合起来使用, 设计计数或延时电路。
应用实例三:设计一个控制系统, 要求实现如下功能:系统上电后, 计数器C0清零, 闭合开关X20, 每0.1s计数器C0计数一次, 计满10个数后, 计数电路自动断开, 计数器清零, 重新开始计数, 计满10个数后, 再次断开, 清零, 重新计数;如此循环往复, 直至开关X20断开。
根据题意设计出如下梯形图程序:
在此程序中, 利用特殊辅助继电器M8002 (初始化脉冲) 的常开触点来实现“系统上电后, 计数器C0清零”, 用特殊辅助继电器M8012 (100ms时钟脉冲) 的常开触点与控制开关X20的常开触点串联, 来实现“开关X20闭合后, 每0.1s计数器C0计数一次”。
从实例二和实例三中, 不难看出, 在某些应用场合, 可以利用特殊辅助继电器的特殊功能来设计控制程序, 以达到简化程序或实现控制要求的目的。
3 结束语
在三菱FX系列PLC的程序设计中, 有些控制要求的实现很难直接用输入信号控制输出信号, 这时就可以借助于通用辅助继电器进行设计。由于PLC的控制程序具有多样化和灵活性的特点, 对于同样的控制功能, 能设计出多种不同的控制程序;为了达到简化程序和实现准确控制的目的, 在设计时也可以考虑用通用辅助继电器或特殊辅助继电器来实现。至于PLC控制系统中某些特殊的控制要求, 也可以通过特殊辅助继电器进行设计满足。总之, 设计PLC用户程序的方法很多, 借助于辅助继电器无疑是一个不错的方法。本文仅从部分角度对辅助继电器的应用进行了举例说明, 以期达到使读者窥一斑而知全豹的目的。
参考文献
[1]廖常初.PLC基础及应用[M].北京:机械工业出版社, 2009.