计算机辅助程序

2024-11-01

计算机辅助程序(共9篇)

计算机辅助程序 篇1

在工程测量中, 需要采集地表上各种形式的目标点坐标, 如地形与地籍测量中的碎部点和细部点、变形观测的监测点等, 全站仪是一种具备在地面上直接测量目标点三维坐标的功能的常用测量仪器, 利用全站仪测量目标点的坐标一般包括两种方法, 即定点设站法和自由设站法, 其中, 定点设站法是普遍采用的测量方法, 经过广大测绘工作者的研究和创新, 自由设站法也逐步得到推广。邓清军等将全站仪自由设站法应用于数字化测图工作中。张伟、陈子进等将全站仪自由设站法拓展应用于变形观测工作中。王庆等对自由设站法进行了精度分析, 得出结论: (1) 全站仪自由设站的测站点点位精度呈现同心圆等距向外衰减, 圆中心在已知点加权平均中心上, 半径决定于已知点的精度、数量和分布, 与测站的交会角度几乎没有关系; (2) 全站仪自由设站测量目标点的精度呈现同心圆等距向外衰减, 圆中心在已知点加权平均中心上, 半径决定于已知点的精度、数量和分布, 与测站点的位置几乎无关, 且可能高于测站点的精度。定点设站法的外业基本包括:对中、整平、设站 (输入测站点坐标、后视点坐标和仪器高) 、定向、观测 (输入镜站高和编码) 。定点设站法观测得到的目标点的坐标通常是工程坐标系中的成果, 因此, 内业可直接利用。自由设站法的外业基本包括:整平、定向、观测 (输入镜站高和编码) 。自由设站法观测得到的目标点的坐标一般是测站坐标系中的成果, 而测站坐标系不一定与工程坐标系一致, 如果不一致, 则需要在内业中将测站坐标系中的成果转换为工程坐标系中的成果, 然后才能进一步利用。在外业上, 自由设站法比定点设站法具有更高的作业效率, 主要表现在:自由设站的测站位置可自由选择, 更加方便和灵活;自由设站步骤少, 不需要对中, 也不需要输入测站点坐标、后视点坐标和仪器高, 只需要设置测站坐标系, 一次性输入测站假定坐标 (10 000, 10000, 10 000) ;在定向前可先行开展观测工作, 在观测过程中, 经过已知点时顺便进行定向, 在内业上, 自由设站法比定点设站法较为繁琐, 以地形图测量为例, 需要逐测站绘图, 再逐一平移旋转图形。为了提高自由设站法内业的效率, 专门开发了一种辅助计算程序“细部之友”, 利用“细部之友”, 能够在内业中快速将自由设站法测站坐标系坐标成果自动批量转换为工程坐标系成果, 在道路勘测工作中应用在地面数字化测图和路线精细数字地面模型制作以及高边坡变形测量等方面, 本文拟介绍全站仪自由设站法辅助计算程序“细部之友”的设计情况。

1 程序设计思路

全站仪自由设站法测量目标点的坐标所定义的平面坐标系为测站假定坐标系, 高程系统也是假定的, 在观测目标点时, 也观测均匀分布在目标点附近的二个或两个以上已知点, 那么, 在采用自由设站法完成一个测站的观测工作后, 观测成果保存在一个数据文件中, 其中已知点有分别采用工程坐标系和测站坐标系的两套成果, 不同坐标系中的已知点的空间位置关系在一定测量误差范围内是一致的, 即分别在测站坐标系中和工程坐标系中, 任意两个已知点间的距离和高差是近似相等的, 任意不在同一直线上的三个已知点所组成的三角形是近似全等的, 利用已知点空间位置关系的相似性, 可建立工程坐标系中和测站坐标系中同一已知点的对应关系, 从而建立工程坐标系和测站坐标系的转换关系, 将同一测站所观测的目标点成果全部由测站坐标系转换为工程坐标系成果, 其中, 平面坐标转换采用四参数法 (即赫尔默特转换法) , 高程转换采用平均高差改正法。

2 程序主要控件设计

“细部之友”采用VB6.0编程语言进行设计, 如图1所示, 在主窗体的上方设置了6个“ComboB-ox”控件、2个“OptionButton”控件和2个“CheckBox”控件, 分别用于设置计算控制参数、关联方法、数据处理方法以及是否输出坐标转换分析文件, 在主窗体的中间位置对称设置了2个“DirListBox”控件和2个“FileListBox”控件, 其中, 左侧的“DirListBox”控件用于设置父级细部点数据文件路径, 左侧的“FileListBox”控件用于选定父级细部点数据文件, 右侧的“DirListBox”控件用于设置子级细部点数据文件路径, 右侧的“FileListBox”控件用于选定子级细部点数据文件。

3 程序运行过程和结果

如图2所示。在测量项目文件夹下建立以测量日期命名的文件夹, 再在该文件夹下建立“转换后”和“转换前”两个文件夹, 将工程坐标系中的已知点成果以数据文件的形式放在“转换后”文件夹中, 将测站坐标系的观测成果以数据文件的形式放在“转换前”文件夹中。

准备好数据文件后, 先按默认的转换条件进行自动批量转换, 如果个别数据文件不能满足默认的转换条件, 再重新设置转换条件进行手动转换。转换条件包括:已知点间最短距离条件、边长比对差值条件、高差比对差值条件、允许点位误差条件、允许高程差值误差条件、关联方法条件。其中关联方法包括:自由边关联、自由网关联、受控边关联、受控网关联。边关联指只有两个公共已知点, 网关联则多于两个公共已知点, 自由关联指观测数据文件中全部测点两两之间均计算边长和高差对照, 受控关联则将观测数据文件中经过编码标记的已知点挑选出来计算两两之间的边长和高差对照, 显然, 受控关联的计算效率高于自由关联, 故通常采用受控关联的计算方法, 但在外业时必须对已知点进行编码标记, 另外, 已知点之间的高程差值必须大于高差比对差值的设置值, 一般应大于10cm。

程序自动建立已知点在工程坐标系和测站坐标系的对应关系, 并自动进行坐标转换。

自动批量转换或手动转换的结果放在“转换后”文件夹里 (如图2所示) 。

采用手动转换时, 会产生图3所示的转换结果, 图3中, 左上为工程坐标系已知点数据文件, 右上为测站坐标系数据文件, 左下为转换后的观测数据文件, 右下为已知点边长和高差对照信息及精度评定信息, 右下的完整信息如图4所示, 图3正下方信息栏中还会显示已知点转换的最大点位误差、最大高差误差和最弱边相对精度。

在进行高精度转换时, 通常全部采用手动转换方法。

与定点设站法相比较, 每天平均多花费大约10min, 利用辅助计算程序“细部之友”将测站坐标系中的观测数据文件全部转换为工程坐标系中的成果, 完成坐标转换工作后, 后续的内业与定点设站法的内业无异。

4 结束语

与定点设站法相比较, 自由设站法主要有以下技术特点:

1) 外业步骤少, 效率更高。

2) 对已知点通视条件不限制, 在等级已知点密度不足的情况下, 可以采用网状图形发展下一级控制点, 比定点设站法支点更具可靠性, 下一级控制点点位选择更加灵活, 甚至可用油漆笔画在墙壁上或电线杆上 (如果测量地形图, 非地表控制点不能保留在地形图图面上) 。

3) 在地形测量或数字地面模型测量中, 图根控制测量在工序上可后于碎步测量, 在外业组织安排上更加灵活, 并且, 在外业中不必频繁输入控制点, 观测员压力小, 每一测站一般至少测量三个已知点, 检核条件多, 出错的可能性低, 与GPS-RTK配合, 技术优势更加突出。

4) 目标点的测量精度与全站仪标称精度、镜站对中精度、已知点测量照准精度和镜高测量精度直接相关, 可根据需要灵活控制。

5) 利用高精度免棱镜全站仪开展运营阶段公路高边坡位移监测, 一人一车一机即可快速完成外业, 内业可自动化处理。

近五年来, “细部之友”已经在二十多个高速公路勘测项目中得到应用, 采用自由设站法, 提高作业效率, 达到化繁为简的目的, 降低劳动强度, 取得显著的综合效益。

到目前为止, 道路勘测数据处理自动化的研究和开发工作, 已经初步建立了道路勘测数据处理自动化技术体系, “细部之友”是其中的一个“小精灵”。如果增加全站仪的通讯功能, 使之能将目标点测站坐标系的成果实时发送给镜站电子手簿, 从镜站电子手簿中输入镜高, 并且在镜站电子手簿中实时完成坐标转换, 那么, 全站仪自由设站测量目标点坐标的功能就更加完善了。如果对全站仪内置点位放样程序进行优化, 能够实现全站仪自由设站法进行点位放样的功能。

计算机辅助程序 篇2

文摘:信息技术和语文课程的有机整合,是教学技术发展的迫切需要。但不能走过场,讲排场,一切都要为了达成教学目标,提高教学效果。学校要形成制度规划,促使老师信息和课程整合水平的提高,形成良好的教学氛围;授之以渔,培养孩子运用信息的能力,引导学生自主学习,以适应未来学习的需要。

关键词:计算机辅助教学教学效果制度

第一次接触现代教育技术的是在2000年,当时在南陵县一中多媒体教室听一位芜湖老师的《雄鹰之死》一课的教学,目睹大屏幕上展现的雄鹰高翔的英姿,耳闻歌唱家容中尔甲的高亢邈远的《雄鹰在飞翔》的歌曲,不觉震心动魄,深受感染。它是那样的撼动着我,我似乎觉得自己也要像雄鹰那样飞起来了!那印象何其深刻!相信在场的学生也一定有我那样的感觉,能快速进入情景,感悟雄鹰形象,对其战天斗地的精神生出崇敬之心。以此进入教学,先就成功了一半!我当时就想:我要学着用!

感谢党和政府花大资本、下大气力进行农村远程教育建设,我校陆续的有了计算机、网络教室,建了多媒体教室,我也积极学习现代信息技术,深刻的感受到计算机辅助教学的勃勃生机和独特的魅力。也不断向别人学习方法经验,认真探索,并积极尝试把信息技术与语文教学整合,于是有了一些感受,说出来,以求教于大方之家。

一、急需把现代教育技术引入语文教学当中去

1、信息技术飞速发展,尤其是电脑的普及,它将信息技术与课程有机整合,能创设学习情境,激发学生学习兴趣(如前面提到的例子);提高学生学习自主性,更好把握教学重难点,比如《斑羚飞渡》一课可以把羚羊如何飞渡的过程用Flash生动形象的再现出来,让学生体会动物的顽强求生意志,为种族延续所作出的贡献。能调动学生多感官参与,增强感染力,提高学生记忆力。曾经看过一节作文课《唱歌的作文真精彩》的录像,阎维文一曲母爱的颂歌一下子将学生带入情境。教师再引导学生联系自己,回想母亲对我们关爱的一点一滴,学着仿写歌词——那情景对于学生不仅是一堂作文课,更是一节生动的尊敬父母的思想

教育课。有了真情投入,何愁文章写不好?

2、相对于传统的“我讲你听,我写你记”的教学方式,计算机辅导教学特别是多媒体教学的确给课堂带来了很多生机。通过文本、图像、动画、声音等,课堂与自然拥抱了,与社会贴近了,与生活融合了,与新信息技术接轨了;学生学习更为积极,教学效果也得到大大提高。农远工程的普及,使农村孩子也能赶上时代的快车,与城里的孩子接受的教育接近了,城乡教育的差距在不断缩小。

二、电脑辅助教学,只是一种教学手段;尤其是在多媒体教学过程中,不能忽视与传统教学媒体的有效结合。

1、要界定信息技术教育的辅助地位。把电脑辅助教学作为实施课堂教学及评价优秀课例的首要条件,甚至是必不可少的条件,这是不对的。随着电脑的普及教育,信息化成了潮流。教师有一种意识,觉得不用它就显得落伍,形成“无多媒体不成公开课”的局面。结果,录音机,投影仪被弃置一旁,实物、模型也不用准备。——用多媒体课件展示,一切都很方便。甚至板书也可以没有,因为老师可以把课文整篇整篇的投影到屏幕上。更有甚者,教师一堂课从头到尾只是点点鼠标,而没有在黑板上写下哪怕一个字的板书!这种教学方法能是正确的吗?

记得早些时候,听过一节芜湖二中曾鸣老师的课《荔枝蜜》,他到南陵一中借班上课,那时还没有多媒体,是一节传统课,可直到今天,我仍记忆犹新。那节课上,曾老师随着教学进程用简洁而形象的板书把课文的内在逻辑顺序和要点全展现出来。他注意了作者感情的先后顺序(如先板书“感情疙疙瘩瘩的,总不那么舒服”,接着跳几行写结局“梦见自己变成了一只蜜蜂),然后扣住这一首一尾两处感情的抒发,让学生理清其中作者感情发展的脉络,可说是把住了要点!而且曾老师还用了彩色粉笔作了强调(厌恶——喜爱)。板书一结束,一节课也快结束了。在曾老师的课堂中,黑板、粉笔有了灵性,有了生命,板书和课堂教学相辅相成,多么的和谐!设想这样的总结性的板书换到多媒体教学中,一笔一画的加,那叫单调,显示不出现代技术教学的优越;一下闪过,又能给学生留下多少印象?

2、这样说,不是指多媒体教学不好,我认为它必须要与传统教学结合起来。一切都是

手段,最终目标都在于使教学更生动、方便、高效,让学生提高运用知识解决问题的能力,提高道德素养,形成积极健康的世界观。语文课堂仍然要注重听说读写能力的培养,作秀作不来。可在电脑辅助教学中,往往“看、听”成了第一要素、第二要素,授课老师进行视听轰炸;灌输教学仍是灌输教学,不过由“人灌”改为“电灌”而已,穿新鞋走老路,这都是不足取的,和课改精神背道而驰。我们呼唤书声琅琅的课堂,学生希望听到他们的老师声情并茂的范读,教师需要切实地培养学生的想象力、创造力,这些都是计算机辅助教学无法独立完成的。比如学习马致远的《天净沙&S226;秋思》,前三句为我们展示了老树昏鸦、小桥流水、古道瘦马,加上一个抒情主人公,一轮落日,学生通过文本的描绘、老师的点拨展开想象,脑海再现那游子思归图,体味并能描述出主人公的情感,效果就好得很。老师何苦费心劳神去找那未必都能符合意境的图片?《送东阳马生序》中写到作者年幼好学,大冷天,砚台中墨汁都结冰了,宋濂坚持抄书,“弗之怠”;成年后外出求师“行深山巨谷中,穷冬烈风,大雪深数尺,足肤皲裂而不知”,到了学舍“四肢僵劲不能动”,这描写非常形象、直观,人物简直呼之欲出,试问:我们花大力气去制作Flash或Authorware动画,是否值得?而在一些科学说明文,比如《奇妙的克隆》教学中,运用多媒体那就大展“身手”了,形象、直观,老师好教,学生好懂,但这需要我们精心制作课件。

由此看来,我们备课要备学生备课本,运用计算机辅助教学同样要备人,备课文,让其更好的为我所用,为教学所用,为提高教学效果所用。

三、计算机辅助教学应当走规范化、制度化

不可否认,制作一个优良的CAI课件要花费相当多的精力,为准备一节课,需要投入五、六节课甚至几天的时间,所以有的老师只在上公开课、评奖课时才“弄一弄”,而平时,是“没有”时间,也不情愿去用的。这样一来,用计算机辅助教学只能是走走过场,做做排场的。怎样让老师们形成一种乐于运用电脑辅助教学的氛围?我想应该做到以下几点:

1、学校应抓好多媒体设备的配备管理,保证教学资源能让教师随时运用,电教设备一开能用。还应该设法鼓励老师在教学中多多运用。成立多个计算机辅助教学小组,每个小组吸纳同学科的老师参加,不定时集体备多媒体课件,共同筹划,参与制作,提出评价并加以

修改,打造一个现代化信息技术与学科整合的良好平台。学校可以建立校园网,完善资源库、素材库的建设,加强资源共享的力度,让一个优秀的CAI课件能为多人重复使用,并把使用中的心得、建议提出交流,加以改进,以期不断完善。这样就无需你上一遍备一遍,他上一遍备一遍,把节省下来的精力,投入到教学研究中去。

2、学校要形成有关计算机辅助教学的一系列规划制度,对任课老师的电教技能的培训、教学中运用计算机辅助教学的情况做好统筹规划安排,并且做好评价记录,作为实施新课程改革的成绩,教科研方面的实绩。在计算机技术进入学科教学后,很多老师也想尝试运用,但苦于知之甚少,需要加强培训;学校应配备专门的电教教师,能对教师在制作CAI课件时给以切实的指导。学校要建立健全听课制度,在学期一开始就安排好各教师的听课计划表,组织好听课活动,并进行集体评课、反思,对实施计算机辅助教学成绩优秀者予以表彰。去年笔者曾去过一趟江苏洋思中学。洋思中学就规定,所有老师每人每周至少要到阶梯教室上一节公开课,允许访问者旁听,并作全程摄像。一个月下来,进行评比选出优劣。此举能有效的促成教研风气的形成,促使教师向计算机辅助教学要质量、要效果,因而教研水平,信息与学科整合水平不断上升,或得到优化。

四、培养孩子运用信息的能力,引导学生自主学习,提高学习效果。

教育前辈叶圣陶先生有言:教是为了达到用不着教,讲是为了达到用不着讲。我想这话也适用于电脑辅助教学。网络的建成及资源共享,各种学习资源和信息以爆炸般的速度向我们涌来,这些不是老师都能掌握再回转来教给学生的。设想教会孩子操作技术,让孩子根据自己的能力需要和兴趣学习,教师做好学习策略指导,让孩子能围绕目标充分利用资源,自主学习研究,这是对孩子学习技能切实的培养,形成独立、自主、探索的精神,让他们能适应未来学习的需要,是真实的“授之以渔”。但资源类型,我认为仍要以校园网资源为主,对因特网的资源加以控制。笔者曾听过一节历史课《难忘九&S226;一八》,是芜湖二十七中的一位老师在我校(南陵县弋江镇奚滩初中)网络教室里上的,网页制作精良,内容充实,图片丰富。由主机发到学习机,学生人手一机,在老师的指导下展开自主学习,教学效果显著;而且通过预先指定的链接可链接到因特网,能查看到更多更新的关于“九&S226;一八”

事变的资料,了解国内外忘国耻,、某些国家军国主义复兴的情况,让学生了解天下风云,树立正确的历史观、世界观,培养忧患意识。计算机辅助语文教学,我想同样可以借鉴。综上所述,电脑辅助教学作为新兴的教学技术,是一定要学习实践的,但必须要与传统的教学媒体有机的结合,与课程有效结合,一切都要为了提高教学效果。学校应建立健全电脑辅助教学的良好平台和规章制度,推动信息技术与课程整合向更高更优水平发展;把学生推到学习资源的最前面,培养学生运用信息技术的能力,以适应未来的学习。

参考书目:

1、《中学信息技术新课程标准评析》彭绍东湖南师范大学出版社

计算机辅助程序 篇3

通过在教学思想、教学内容、教学方法等诸方面的探究和实验, 发现要想解决听障学生学习计算机程序设计的困难, 首先就要解决程序设计“入门难”的问题。根据多年的教学经验, 学生在学习程序流程控制方面面临的问题最严重, 因此研究并开发一个教学辅助系统, 帮助学生理解和灵活应用程序流程控制结构。该系统通过屏幕仿真和流程图与计算机编程语言对照的方式来辅助讲解VB程序设计中的流程控制结构, 帮助学生理解和灵活应用程序流程控制结构。此系统一样可以应用于正常学生计算机编程类课程的自学和入门。

1、系统功能模块设计

该软件设置一个环境, 把流程图和计算机指令的执行效果的以图形化的方式表现出来, 使一些抽象的概念比如循环概念变成形象具体的图形在屏幕上进行仿真演示, 避开听障学生难于理解的技术术语。通过视觉效果吸引听障学生的注意力, 培养他们的兴趣, 指导学生进行程序的分析和设计。

1.1 系统功能结构图

系统功能结构图见图1。

1.2 各个模块的主要功能

1.2.1 案例学习

学生可以通过此环节进行课前预习、课上学习、课下复习VB课程。学习内容有V B教程、V B函数、V B程序案例。学生根据要学习的内容, 选择教学内容, 打开相关的控制结构介绍, 以及相关的案例、案例流程图、虚拟仿真。

1.2.2 案例管理

此功能针对课程进度, 课程安排和学生学习的情况及时更改、更新案例学习模块中的内容, 有针对性的调整以适应学生学习的需要。

主要包括登录管理、教程管理、函数管理、程序案例管理。

1.2.3 流程图与控制结构:

在此模块中学生可以绘制流程图, 并将绘制后的流程图转化为相应的VB代码。主要是针对包括顺序结构、选择结构、循环结构三种流程控制结构的流程图绘制, 通过对案例流程图的观察和老师的讲解, 在流程图绘制的环节, 帮助学生尽快进入流程图的绘制, 通过简单的拖拽动作就可以完成简单流程图的绘制, 增强学生学习的兴趣, 掌握流程图的基本画法, 为以后学习和绘制复杂流程图打下坚实的基础。

1.2.4 屏幕仿真

该模块主要实现将绘制的流程图利用小车的运动进行屏幕仿真。

许多学生认为学习程序设计与实际生活相关性不大, 不能将程序设计与现实生活相互联系, 通过屏幕仿真的方法, 将枯燥的程序设计与真实的生活联系在一起, 同时也非常符合听障学生学习的特点——从视觉补偿角度来学习程序设计。

2、系统实现

系统实现是根据系统设计中所确定的功能与任务, 采用面向对象的模块化分解方法进行模块划分, 然后对各个模块进行具体实现, 遵循“模块间低耦合, 模块内高聚合”的原则, 使系统得到了较高的稳定性。

2.1 开发工具的选择

系统选择Delphi为开发工具, Delphi被称为第四代编程语言, 它具有简单、高效、功能强大的特点。和VC相比, Delphi更简单、更易于掌握, 而在功能上却毫不逊色;和VB相比, Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。

系统采用Microsoft SQL Server最为后台数据库, 其安全性、事务处理能力和误差符合重要事物的要求:其智能服务技术增强了服务器上的数据整体性, 减少了开支和维护的成本。支持方便的单一处理系统和新型的对称多处理器系统, 保证应用程序符合尺寸上的需求。

2.2 数据库设计V B教程表

BookUnit:教程单元信息 (单元号, 单元名称)

Book Chap:教程小节信息 (小节号, 单元号, 小节名称)

BookDetail:教程详细内容 (编号, 单元号, 小节号, 标题, 内容, 备注)

V B函数表

HansshuClass:函数分类 (分类号, 分类名称)

Hanshu:函数信息 (编号, 分类号, 函数名称, 功能, 使用方法, 例子, 备注)

VB程序案例设表

ProExample:程序案例表 (案例编号, 案例题目, 案例分析, 流程图, 代码, 备注)

用户表

U s e r s:用户表 (用户编号, 用户名, 用户密码)

2.3 核心功能的设计

此系统的核心功能是流程图与控制结构模块。通过对案例流程图的观察和老师的讲解, 在此环节可以帮助学生尽快进入流程图的绘制, 通过简单的拖拽动作就可以完成简单流程图的绘制, 增强学生学习的兴趣, 掌握流程图的基本画法, 为以后学习和绘制复杂流程图打下坚实的基础。

根据需要完成的功能, 设计3个类, 中心控制类Center、绘图类Paint和代码转换类CodeChange。时序图如图2, 操作界面如图3。

3、结语

面向听障学生计算机程序设计的教学辅助系统利用计算机技术, 来满足计算机语言学习和计算机实践技能训练的需求, 探索建立一种新的教育教学实践环境, 完成针对听障大学生的学与教的个性化和技能化教育。实现听障大学生计算机专业化技能人才的培养目标;达到帮助残疾人完成学业并根据自身具体情况掌握某项专业技能的目的。

参考文献

[1]吴旭光.计算机仿真技术.化学工业出版社发行部.2005.8.1

[2]邵维忠, 杨芙清.面向对象的系统设计.清华大学出版社.2003.2

计算机辅助绘图技巧 篇4

无论应用哪一种绘图软件,前面所述施工图的绘制原则及表达方法仍然适用。CAD(Computer Aided Design或Computer Aided Draw)使设计人员从繁重的手工绘图工作中解放出来,能够集中精力进行创造性设计,便于反复修改和减少重复性的劳动,使出图速度和图面质量得到极大的提高。

通过毕业设计,应学会运用一种绘图软件绘制、修改、打印结构施工图,

下面以天正系列CAD软件为例加以说明。天正结构CAD或天正建筑CAD是以AutoCAD R14为平台开发的绘图软件,它涵盖了AutoCAD R14的全部功能,针对某些复杂、难懂的AutoCAD R14命令,提供了许多实用的分布式工具集,采用模糊设计、以智能图形交互方式及参数化绘图,具有强大的专业设计功能,可以快速完成和修改结构施工图。“天正CAD”所有的绘图命令都有相应的图标菜单或屏幕菜单(下拉菜单),初学者仅需记住几个简单的AutoCAD控制键(如光标正交状态的切换键F8)、会使用拾取框或窗选功能选择物体、会用捕捉开关等,就能够通过用鼠标选择菜单和对话框的方式完成所需要的设计图纸及表格。当然这只是初步掌握和简单应用。

有关AutoCAD R14及天正结构CAD详细的绘图命令可参考软件的使用说明。以下仅介绍笔者在应用该软件及指导设计过程中的一些体会和技巧:

用优先图辅助并发程序设计 篇5

如果将程序内部的语句(或程序段)之间设计成并发执行,则可以加快程序的运行速度,提高资源的利用率。程序并发度越高,系统的性能就越好,用户越满意。但是,程序内部的语句(或程序段)之间并不都是可以并发执行的,有些语句之间有严格的先后关系,因而在设计并发程序时,必须严格保证这些先后关系的正确性,否则程序运行时就会出错。找出程序里语句(或程序段)之间所有的先后关系,成为了并发程序设计的关键。然而,不借助于一定的辅助方法,只在程序里查找语句(或程序段)之间的先后关系,不直观、不形象,而且容易出错。

优先图PG是一种描述顶点间先后关系的有向无圈图。优先图常用于描述具有先后约束关系的工程问题[1]。实际上,优先图也可以用来辅助并发程序设计,利用优先图描述并发程序内语句之间的先后关系,将使得并发程序的设计变得更加直观、简便、不易出错。利用优先图辅助并发程序设计的一般步骤是:原程序→优先图(化简)→并发程序。即根据原程序内部语句间存在的先后制约关系,将其描绘成优先图,化简优先图,再将优先图转换为并发程序。

1语句之间的先后关系

程序里语句(或程序段)之间,常常存在着一些先后制约关系。例如:变量要先赋值、后读取,这样,针对同一变量的赋值语句与读变量语句(或程序段)之间就存在先后关系;函数、过程或子程序要先定义、后调用,那么,定义函数的程序段与调用该函数的语句(或程序段)之间也存在着先后关系;还有程序流程图中有许多其它先后关系,等等。尽管语句(或程序段)之间的先后关系有许多种,但都可以用如下方法来判定:

对于程序里的两个语句(或程序段)Si和Sj,如果存在“只有当Si执行完以后,才能执行Sj”的制约关系,则称Si和Sj之间存在着先后关系[2]。这就是判断程序里两个语句(或程序段)之间是否有先后关系的依据。

一个程序里,存在着先后关系的语句(程序段)往往不只一对,对于较复杂的大程序,可能有许多具有先后关系的语句(或程序段)。必须把这些先后关系全都找出来,才能设计出正确的并发程序。如果在查找程序中语句之间的先后关系时,不采用一个较好的方法来描述,当先后关系很多、很复杂时,就很容易遗漏一些、或者将一些先后关系弄错。

2优先图概况

优先图是由顶点集合V和有向边集合A组成的有向无圈图D=(V,A),从顶点Vi指向顶点Vj的有向边表示:只有当Vi完成后,才能执行Vj[2]。

优先图无圈 (no cycle),也一定无环(no loop)[3]。图1(a)所示的有向图含有向圈<V2,V3,V4,V2>,该有向圈表示:只有V2完成以后才能执行V3,只有V3完成以后才能执行V4,只有V4完成以后才能执行V2,这是自相矛盾的先后关系,因而不是优先图;图1(b)所示的有向图中含有自环<V3,V3>,该环表示:只有V3完成后才能执行V3,明显地自相矛盾,因而也不是优先图。图2(a)和(b)所示的有向图无圈无环,因而是优先图,其中图2(a)所示优先图表示的先后关系是:只有当V1完成以后才能执行V2,只有当V2完成以后才能执行V3,只有当V2和V3都完成以后,才能执行V4。

定义1 起点与终点。在优先图中,与有向边的尾部相连的顶点叫起点,与有向边的箭头相连的顶点叫终点。

3用优先图描述程序内先后关系

优先图非常适合描述程序内语句(或程序段)之间的先后关系:用优先图中的顶点代表程序里的语句(或程序段),用连接顶点的有向边表示语句(或程序段)之间的先后关系,图中的有向边表示只有当起点语句执行完以后,才能执行终点语句;当有多条有向边指向同一个顶点(终点)时,即表示:只有与该终点相连的所有有向边的起点语句都执行完以后,才能执行该终点语句。我们来看一个简单实例。

例1 对于图3(a)所示的一段程序,每条语句前已加上标记(V1、V2、V3和V4)。将每一条语句用一个圆形顶点表示,顶点名称即为该语句的标记名称,得到优先图的顶点集(如图3(b)所示)。

对于每两条语句间是否存在优先关系,只看它们之间是否存在“只有当Si执行完以后,才能执行Sj”的关系即可。不难看出:只有当赋值语句“a=1;”(对应于图3(b)中的V1顶点)和“b=2;”(对应于图3(b)中的V2顶点)都执行完以后,才能执行运算语句“c=a+b;”(对应于图3(b)中的V3顶点),因而顶点V1与V3有先后关系、顶点V2与V3也有先后关系。在图3(b)中,应该以顶点V1和V2为起点,分别画一条有向边到达终点V3。同理,只有当顶点V1、V2和V3相应的语句都执行完以后,才能执行顶点V4对应的语句(write(c);),应该以V1、V2和V3为起点,分别画一条有向边到达终点V4。从而得到如图3(c)所示的优先图。

上述实例推而广之,得到将程序描绘成优先图的方法如下:

Step1 将程序中每个语句(或程序段)加上标记,并给所有的标记命不同的名字(如V1、V2、V3……),转step2;

Step2 将每一条语句(或程序段)在优先图中用一个圆形顶点表示,顶点名称为该语句(或程序段)的标记名称,得到优先图的顶点集,转step3;

Step3 观察优先图中的两个顶点,分析它们对应的两个语句(或程序段)之间是否存在“只有当Si执行完以后,才能执行Sj”的先后关系,转step4;

Step4 若存在先后关系,则从先执行语句相应的顶点(起点),画一条有向边到达后执行语句相应的顶点(终点),然后转step5;若无先后关系,则直接转step5;

Step5 如果优先图中任何两个顶点之间的关系都已分析完毕,即所有的先后关系都已找出,并在优先图中画出了相应的有向边,则优先图完成。否则,转step3。

使用该方法,可以将图3(a) 所示的程序段转换为如图3(c)所示的优先图。该方法既可以将一个完整的程序转换为优先图,也可以将一段程序转换为优先图。

从上例可以看出,采用优先图来描述程序里语句之间的先后关系,很形象、很直观,而且结构完整、清晰,便于分析、不易出错、不易遗漏。

4优先图转换为并发程序

设计并发程序,就是尽可能多地让程序里的语句(或程序段)并发执行。并发程序设计的基本方法就是:首先将程序内所有语句(或程序段)全部设置成可并发执行,然后采用信号量和P、V操作原语把语句(或程序段)间所有的先后关系都控制好[2]。

将原始程序描绘成优先图以后,顶点之间的所有先后关系就非常明确地表现出来了,接下来就要把优先图转换为并发程序。

将优先图转换为并发程序,只要按照如下五步操作即可:

Step1 为优先图中的每一条有向边定义一个信号量,并给所有的信号量赋初始值0,转Step2;

Step2 预设所有顶点对应的语句(或程序段)都可以并发执行,将这些语句(或程序段)并列书写在同一并发语句(如parbegin……parend)内,转Step3;

Step3 考虑优先图中的一条有向边,在与之相连接的起点语句的后面,加一个V操作,起唤醒作用;在与之相连接的终点语句前面,加一个对应的P操作,起等待作用;然后,转Step4;

Step4 重复step3的操作,直至将所有的有向边全部转换成P、V操作对。然后,转Step5;

Step5 将每一个顶点语句,以及附加在它前面的所有P操作、附加在它后面的所有V操作,用一个复合词(如begin……end)前后组合,形成一个复合语句。

转换完毕。

采用该算法转换成的并发程序,除了有先后关系的语句(或程序段)不可并发外,其余语句都是可以并发执行的。

按照该算法,将图3(c)所示的优先图可以转换成如下并发程序:

var g,h,i,j,k: semaphores;

(initial value of all semaphores is 0)

begin

parbegin

begin a=1; V(g);V(h); end;

begin b=2; V(i);V(j); end;

begin P(g);P(i); c=a+b; V(k); end;

begin P(h);P(j);P(k); write(c); end;

parend;

end;

在该并发程序中语句“a=1;”与“b=2;”是并发执行的。

5优先图的化简与并发程序的简化

有些优先图是可以化简的,例如图4(a)所示的优先图就可以化简为图4(b)。

证明:图4(a)中有三条有向边<V1,V4>、<V3,V4>和<V2,V4>指向同一个顶点V4,说明只有当V1、V3和V2都完成以后,才能执行V4。然而,从图示先后关系中可以看出:当V3完成时,V1和V2早已完成。因此,指向V4的2条有向边<V1,V4>和<V2,V4>是多余的,可以省略掉。于是,图4(a)所示优先图可以化简为图4(b)所示。证毕。

同理,图4(c)所示优先图中的有向边<V2,V4>也可以化简掉,化简为图4(d)所示优先图。

将图3(c)(即图4(a))所示的优先图化简为图4(b)以后,对应的并发程序变为:

var g,h,i: semaphores;

(initial value of all semaphores is 0)

begin

parbegin

begin a=1; V(g); end;

begin b=2; V(h); end;

begin P(g);P(h); c=a+b; V(i); end;

begin P(i); write(c); end;

parend;

end;

通过前后两个并发程序对比,可看出:优先图化简后,并发程序的复杂性降低了。信号量由化简前的5个(g,h,i,j,k)减少为化简后的3个(g,k,i),P、V操作也由原来的5对减少为3对。可见,通过化简优先图,可以降低相应并发程序的并发控制复杂性。需要注意的是,化简优先图以后,并没有改变程序的并发性质。图3(c)对应的并发程序中,只有“a+1;”与“b+2;”可并发执行;化简为图4(b)以后,依然只有“a+1;”与“b+2;”是可并发执行的。

6结束语

并发程序设计的关键在于找出程序里语句(或程序段)之间所有的先后制约关系,使用优先图辅助并发程序设计,能够简明地显示这些先后关系,便于快速、准确地找出程序里全部的先后关系,为并发程序的设计带来极大的方便。本文论述了优先图辅助并发程序设计的过程:原程序→优先图(化简)→并发程序,阐述了将程序描绘成优先图的方法和将优先图转换为并发程序的步骤。同时,发现有些优先图可以化简,化简以后,相应的并发程序的并发控制复杂度降低了。关于优先图的化简算法,将在下一步工作中研究。

参考文献

[1]刘翔,姜双斌.基于PG图的空间信息服务链建模方法[J].重庆:后勤工程学院学报,2005,2.

[2]邹鹏,罗宇,王广芳等.操作系统原理[M].第二版.长沙:国防科技大学出版社,1995.

电缆辅助办公助手应用程序的开发 篇6

由于电线电缆是类别众多的电工产品之一,产品型号和规格类型数以万计[1],电线电缆产品的核算、统计、制单、报价等工作量巨大、繁琐,因此是否能高效完成这些繁琐的工作关系到电缆制造企业的管理效率。

目前,绝大多数电缆企业采用先根据各自工艺制度编制成套的工艺文件(用于指导生产)和定额文件(用于成本核算和报价),再将工艺文件和定额文件编制成Excel文件,利用Excel强大的函数功能和查询功能,实现快速方便地获取某型号电缆的相关数据。 虽然通过查询Excel文件比过去查阅纸质文件获取数据更为快捷方便,效率更高,但仍存在诸多不足:a.限于一个Excel文件仅与某一类电缆产品对应,随着产品类型增多,累积的海量Excel文件不仅降低了查阅效率,也增加了文件管理的难度,尤其是在生产线上至今仍存在因缺乏自动化办公条件需要查询纸质版文件的情况,导致效率提高有限。b.在电线电缆产品成本核算时,还需根据客户的要求反复修改物料类型、价格等参数,操作繁琐,核算也容易出错。c.在电线电缆产品报价时,除了要考虑材料成本和制造成本外,还需要考虑包装成本和运输费用。包装成本主要是盘具费用,盘具费用核算需要先计算电缆外径,再根据电缆外径选择盘具规格,而后针对选用的盘具统计数量。运输费用核算需要先依据盘具尺寸和核算的盘具数量制定运输方案,再以此计算运输费用。虽然对此可查阅已编制好的Excel文件,但如果某张订单中含有多根电缆,并且电缆型号和规格又各不相同,则核算包装成本和运输费用的复杂程度将陡增。

为了改变上述现状,笔者开发了一款应用程序———电缆辅助办公助手。该程序具备批量输出工艺卡片、统计物料、统计盘具、输出报价单等电缆行业普遍涉及的办公内容,可根据需要对电缆结构和工艺参数进行定制,程序界面也符合大众操作习惯。该程序革新了电缆制造企业中设计和核算人员的工作方式,提升他们的工作效率。本文将对该程序的设计思路、框架结构、具体程序开发等展开详细阐述。

1 程序设计思路

该程序的设计思路是将所有电线电缆产品整体看作一个包含一定数量电缆特性元素的排列组合体集合。尽管电缆特性的数量非常有限,但是排列组合后的电缆规格类型的数量则非常惊人。以表1所列的常规电缆特性和各自的数量为例,在不考虑特性之间相关性的情况下,虽然特性的合计数量只有70,但组合后的电缆规格数量=20×9×2×18×7×3×2×6×3=4 898 880。对此,如果采用通常的电缆数据处理程序的设计思路———查询语句+数据库(即数据被一对一的查询和调用),则实现过程简单,但需要建立庞大的数据库,且功能单一,结构和工艺不支持定制,局限性较大。

由于电线电缆产品属于流程性制品,不同类型电缆可能在产品结构、生产工艺、物料类型等多个特性的某些方面存在重叠,例如对于电力电缆和控制电缆,两者的导体截面积可能均为2.5mm2,绝缘材料可能均为交联聚乙烯,因此该程序基于电缆特性数量的有限性,结合电缆结构的相似性和流程性特点,采用了将不同类型的电缆分解为若干个特性,对每个特性的数据进行识别和处理,同时将需要定制的特性与输入端连接,满足定制化需求,从而使电线电缆产品数据获得快速、高效、灵活的处理。该程序的设计思路如图1所示。

2 程序框架结构

该程序主要包括电缆辅助办公助手、数据模块、CABLEdata数据库三个文件,每个文件的功能体系及三者之间的转换关系如图2所示。电缆辅助办公助手是该程序的输入输出端口,其包括VBA代码模块,主界面(操作界面)sheet表格,报价单、盘具汇总表、物料用量表三个功能输出sheet表格模板,价格目录sheet表格,登录窗体、设置选项窗体、数据录入窗体等。

数据模块是该程序的数据处理中心,其包括数据处理模块、sheet表格工艺模板、sheet表格工艺缓存页、sheet表格参数页、sheet表格物料输出页以及隐藏在后台采用VBA编译的自定义函数。其中数据处理模块是数据模块最核心的模块,能自动对主界面输入电缆型号的特性进行识别、筛选、提取和处理之后输出数据,如电缆结构参数、物料明细、工艺参数等,由VBA代码模块进行调用。

CABLEdata数据库对数据模块不支持的电缆类型进行补充,能为数据模块导入标准化的电缆型号及其对应参数,通过扩展CABLEdata数据库的内容,可以拓宽该程序的使用范围。

3 程序开发

3.1 开发环境

该程序是基于Microsoft Excel 2010二次开发完成的,所有功能代码采用VBA语言编写,为了使操作便捷并符合多数人的使用习惯,主(操作)界面采用Microsoft Office的Ribbon界面风格,采用第三方UI设计程序Custom UI Editor For Microsoft Office开发,数据库文件采用Access 2010数据库,输入输出文件采用Excel.xlsx格式,电缆辅助办公助手和数据模块采用Excel.xlsm格式,核心代码采用Visual Basic 6.0封装成dll格式。该程序可向下兼容Excel 2007版本。

3.2 界面设计

该程序主界面如图3所示,整体简洁明了,界面主要分为操作命令区、常用设置选项区和编辑区三大区域。操作命令区中可视的按钮选项包括导入订单(数据)、输出(工艺)卡片、物料(用量)汇总、输出报价单等使用频率较高命令,点击命令按钮右侧向下的小箭头,可以显示隐藏的命令菜单(如图4a)所示),这样的排列方式既符合了操作习惯,又满足了程序功能的扩展要求。常用设置选项区支持对电缆部分结构参数、物料类型、工艺参数的修改(如图4b)所示),以满足客户定制的需要,其右下角斜向箭头可以调出更多设置选项窗体(如图4c)所示),窗体采用Multi-Form格式,可以同时完成对所有选项的设置,进一步拓展了程序的功能。编辑区主要用于存储从订单提取的有价值信息,采用Excel.xlsx格式,保留了Excel电子表格的大部分特性,以符合大众的操作习惯。

3.3 功能设计

该程序的主要功能是作为工艺设计、生产调度和销售报价的辅助工具,以减少办公人员核算、查询、制单、统计的工作量,降低错误率,提高工作效率。电缆虽然结构简单,但种类繁多,不同系列电缆抑或是相同系列不同规格电缆的结构参数是不同的,即便是同一规格型号电缆,其交货长度不同,物料计算也会不同,这些均导致了大量的、重复的计算工作。因此,针对上述情况,该程序首先着重解决了电缆类型自动识别与电缆结构参数自动计算的问题,并在此基础上进行了该程序功能设计。

3.3.1 程序数据模块的模型

为了能对多种电缆结构参数进行计算,该程序根据电缆流程性特点设计了全结构电缆计算模块,该模块基本涵盖了目前所有的电缆产品结构。为了支持不同种类电缆的结构和物料计算,该程序采用了大量的文本函数,包括采用正则表达式编写的自定义函数。程序数据模块的模型如图5所示,其中数据计算包括第一层级逻辑计算、第二层级结构计算、第三层级物料计算,这三个层级数据计算结果分别独立存放,后一层级的数据计算依赖前一层级的计算结果。逻辑计算是指当电缆型号被操作指令导入到计算模块后,计算模块首先触发型号分解命令,识别和筛选出与输入的电缆型号相匹配的类别和特性,再根据产品的类别和特性对电缆的结构进行判断,给判断结果为“true”的结构赋具体值(包括物料类型和标准参数),给结果为“false”的赋“0”值。结构计算是指按照产品结构的顺序触发各层结构计算,并通过累加计算出各层结构的尺寸和成品外径,将成品外径作为变量计算出装盘容量。物料计算是指根据结构计算得到的电缆结构尺寸数据进行各层物料计算,最后得到电缆总体物料用量。

3.3.2 核心功能

目前,该程序预设了输出工艺卡片、物料用量统计、盘具汇总统计、输出报价单共四项核心功能。一般情况下,电缆需要经过多道生产工序才能形成最终的成品,下道工序接续上道工序时,需查证上道工序的生产记录和检验记录,为了防止生产出现混乱,自第一道工序开始,需要给每道工序的半成品配置工艺流转卡,工艺流转卡除标明工艺要求以外,还用于填写生产记录和检验标识,因此编制工艺流转卡是当前电缆企业生产准备事项中必不可少的环节,而且编制时的工作量较大、错误率较高。该程序中的输出工艺卡片功能不仅能方便、快捷、批量、准确地输出每根电缆的生产工序和工艺参数,还能详细地提供每道工序所需要的原材料重量,彻底解决了工艺流转卡编制时出现的相关问题。

统计生产物料亦是电缆企业生产准备事项之一,该程序中的物料用量统计功能能批量地导出生产计划单中每根电缆所需的物料清单,并且能将相同的物料分类汇总[2],生成采购计划,减少了库存不足和库存积压情况的出现。该程序中的盘具汇总统计功能与物料用量统计功能类似,能批量计算出计划单所需的成品盘具的规格和数量,还可便于售前制定运输方案。

电缆报价是售前的一项重要工作,也是一项繁琐且不容任何失误的工作。在给客户报价的过程中,需要频繁地来回修改产品结构和价格,以满足客户各方面的需求,每修改一次都要耗费报价员大量的精力和时间。该程序中的输出报价单功能能方便地修改产品结构和工艺,并准确地输出每次修改后的报价数据,以及计算包装费、运输费和管理费,给报价环节提供更多的参考数据。

3.3.3 辅助功能

该程序还预设了多项辅助功能,特别是其中智能判断录入订单功能和三个“一键”功能(一键保存、一键删除、一键打印)。当导入计划单出现错误时,智能判断录入订单功能能通过连续或非连续选择Excel电子表格中的电缆型号,自动提取电缆型号、规格和电压等级[3],并录入到主界面的指定区域中,免去了手动输入的过程。三个“一键”功能能自动判断你当前要操作(保存、删除、打印)的是那个文件,等待具体操作命令,非常实用。

3.3.4 防错功能

该程序的防错功能还能有效降低批量性错误的风险。例如当导入的计划单备注有分段提取的特殊要求时,防错功能中的分段长度防错程序针对后续操作中数据项应分段而没有分段的情况,弹出分段提示框,在提示框中可直接输入分段明细,实现数据项分段;分段长度防错程序还针对分段明细之和不等于总长度的情况,弹出分段错误提示框,只有当输入分段明细且输入明细之和正确的情况下,该程序才能继续进行。当导入的计划单中出现该程序未涵盖的产品类型时,防错功能中的产品类型防错程序对此会弹出产品类型错误提示框,同时会在该程序主界面编辑区显示“系统错误或系统不支持该产品型号”的提示。

3.4 程序代码结构和运行机制

该程序的代码结构如图6所示,主体代码主要由界面操作、功能操作、文件操作、辅助操作四部分组成,共计12个子项,每个子项都能独立地完成某项功能。现以输出工艺卡功能子项的程序代码(如图7所示)为例,介绍该程序核心功能的代码编写机制和实现步骤:a.由第①步激活该程序主界面,开始for循环,执行第②~⑤步,依次完成所选区域的第1、2、3、…项,直至完成所有项的工艺卡输出过程;b.判断主界面是否有工艺卡,给操作者提供是否替换提示;c.将主界面编辑区的信息赋给全局变量;d.将循环变量的电缆型号和长度的全局变量导入数据模块,如果循环变量存在分段明细,则调用分段处理模块,输出分段数量和分段长度,开始执行分段的for循环,将第1段的长度导入数据模块,执行完第⑤步后完成第1项的第1段工艺卡输出过程,依次对第2、3、4、…段重复上述操作,直到完成第1项所有分段的工艺卡输出过程;e.数据模块完成计算后导出工艺数据到工艺模版,如果数据模块中没有出现error项,则将工艺模板复制到主界面完成工艺卡输出,否则程序提示错误并在主界面备注栏显示“系统不支持该产品类型”,之后跳过该项的后续操作进入下一项的for循环。

3.5 程序扩展

按照目前规划,该程序将继续向两个方向扩展:a.拓展程序应用范围,使该程序在能批量处理电力电缆、变频电缆、控制电缆、仪表电缆、布电线、补偿电缆、光伏电缆、交联聚烯烃绝缘电线和电缆等电缆类型的基础上,通过调试数据模块,可以支持更多的产品类型,如风力电缆、机车电缆、船用电缆等。b.增加程序功能,如生产计划单编制、操作日志管理、电气参数查询等。

4 结束语

该程序是针对电线电缆行业普遍面临的核算、查询、制单、统计等繁琐的办公任务而设计开发的。该程序虽然功能不多,但却实用,能批量处理多种类型电缆的结构计算、工艺编制、物料统计等办公任务,操作便捷,计算结果准确,输出的表单样式还能根据需要进行定制,实现了办公的高效化、标准化,提高了电缆制造企业的管理效率。

参考文献

[1]王春江.电线电缆手册[M].北京:机械工业出版社,2002.

[2]刘悦.使用VBA实现Excel表单数据的自动抽取与汇总[J].中国管理信息化,2011,14(14):78-79.

计算机辅助程序 篇7

在传统的飞行程序设计中涉及到大量的计算,目前,这些计算大多是采用手工单独进行的,计算工作量大、出错率较高,而对程序设计,只要一个计算出错,就要对所有相关计算重新开始,且手动计算过程中,数据不能连续计算,只能通过有效数据的多次取舍,这不利于着陆标准的精确、有效的建立。基于这些问题,本文依据国际民航组织文件8168《航空器运行-航行服务程序“目视和仪表飞行程序设计”》[1]和中国民用航空规章CCAR-97FS-R1《航空器机场运行最低标准的制定与实施规定》[2]的要求设计了辅助软件,该软件使用简单方便,能够快速、批量的计算,准确度高,提高了设计人员的工作效率和减轻了工作负担,具有良好的可用性。

1 飞行程序设计中相关计算

1.1 速度转换计算

空速是飞机相对于空气运动的速度,由空速表测定;指示空速(IAS)是空速经过仪表误差和空气动力误差修正后的速度。真空速(TAS)是指示空速经过空气压缩性修正量误差和空气密度误差修正后的速度[3]。

在飞行程序设计中,所有涉及到速度的相关计算都必须使用真空速(TAS),本软件在换算时将不考虑空气压缩性修正量误差,则IAS换算TAS公式如(1)所示:

ΤAS=171232.9*(273+tΗ)0.5(288-0.006496*Η)2.628*ΙAS(1)

式中,空中温度(tH)单位为摄氏度(℃);高度(H)单位为米(m);指示空速(IAS)与TAS的单位为km/h。

1.2 坐标转换计算

在飞行程序设计中,一般可以用极坐标和直角坐标来标识障碍物与跑道之间的位置关系。通常测量部门给设计人员提供的障碍物位置都以极坐标表示,而极坐标不便计算,在程序设计中,设计人员首先会将极坐标转换成直角坐标,因此,涉及到障碍物坐标的大量转换问题,如果采用手工计算,将会使工作量倍增,本软件针对此问题进行了设计,只要输入跑道的基本参数和导入极坐标,就可以一次性批量转换,操作简便、准确度高、速度快,大大提高了工作效率。

在转换过程中,首先要理解极坐标和直角坐标定义。其中,极坐标系以跑道中心为原点,磁经线为起始边,用磁方位(MB)、距离(D)和障碍物标高(H)或障碍物高(h)来表示,如图1所示。直角坐标系以跑道入口的中点为原点,x轴与跑道中线延长线一致,跑道入口前x值为正,入口之后为负值;y轴过原点与x轴相垂直,在进近航迹的右侧,y值为正值,左侧为负值,z轴为过原点的竖轴,以入口标高为零,高于入口平面时z值为正值,如图2所示[3]。

极坐标转换成直角坐标通常采用公式(2),其换算示意图如图3所示。

X=-D×cosα-L2; Y=D×sinα (2)

式中,α=ΜΒ-ΜΗ;D为跑道中心至障碍物的距离;MH为着陆跑道的磁方向;L为跑道的长度[2]。

1.3 下降梯度计算

飞行程序设计中,对起始、中间和最后进近航段都有下降高度的规定[3]。本软件针对下降梯度进行了设计,使用者只要将飞机当前航路点的高度、预降航路点的高度和飞行航段的长度输入到对应区域,便可以求出相对于的下降高度。其中下降梯度主要采用公式(3)。

G=(hfirst-hsecond)D×100%(3)

式中,G表示相对应的下降梯度,hfirst表示飞机当前航路点的高度,hsecond表示飞机预降航路点的高度,D表示两点之间的距离。

1.4 最低超障高度计算

最小超障余度(MOC)是指飞机飞越障碍物时与障碍物保持的最小垂直间隔。最低超障高度(OCA)是指飞机飞越障碍物时的最小高度,其等于障碍物标高(h0)再加上最小超障余度(MOC),即公式(4)所示,从图4可看出,当已知h0时,只要求出MOC,便可以得到OCA。其中

OCA=h0+MOC (4)

在不同航段上,障碍物将分布在不同区域,如图5所示,可能分布在主区或副区,其MOC也是不同的。在主区内,各障碍物的MOC相同,h0越高,MOC就越高;在副区,不同位置的障碍物,其MOC不同,必须逐个计算其超障余度,其任意一点的MOC’可由公式(5)计算,如图5、图6所示。

ΜΟC'=L-lL/2×ΜΟC(5)

式中,L为障碍物所在位置的区域宽度,l为障碍物到航迹的垂直距离,MOC为障碍物在对应航段的主区超障余度,单位为米(m),各航段其对应的MOC如表1所示。

在求解障碍物所在位置的区域宽度L时,由于仪表进近程序的各个航段长度都不一样,且规定有相应的安全保护区,因此在计算L时,要通过各航段的长度D和障碍物距下一航段定位点的距离d来计算,如图5所示,其计算如公式(6)。

L=L'+d*tanα (6)

式中,L’为航迹一侧已知点处的区域宽度。

2 飞行程序设计辅助软件开发与测试

本软件采用Visual C++ 6.0对飞行程序设计中的部分计算进行开发[4,5]。VC++ 6.0 是Windows 平台下主要的应用程序开发环境之一,它界面简洁,兼容性及移植性强,开发出来的系统具有人机界面友好、执行速度快、维护和升级方便等优点。

作为程序设计的辅助软件,第一,要提高计算的准确度和精确度;第二,软件操作要简单方便,提高工作效率,能够批量计算和直接得出需求数据;第三,计算结果要便于下一阶段使用,即存储计算结果,撰写程序设计报告和进行检查。

此软件根据目标需求,依据相关规定[1,2],主要对四大部分计算进行了开发,如图7所示为功能图。下面将对各个模块功能进行介绍,同时采用某机场程序设计中的相关数据进行验证,确保了软件在计算过程中的准确性。

2.1 速度转换功能

速度转换功能为IAS转换成TAS,只要输入指示空速(IAS),空中温度(tH)和高度(H),便可求出真空速(TAS),如图8所示。

2.2 坐标转换功能

坐标转换功能为极坐标转换成直角坐标,程序设计人员只要填写好跑道参数(跑道长度、跑道磁方位和跑道标高),然后导入已有的极坐标数据文本文件,就可以在显示界面显示,同时可以导出到EXCEL,如图9所示。

2.3 下降梯度计算功能

下降梯度计算功能为求航路段上两航路点高度间的下降梯度。程序设计人员只要在两航路点输入高度和航路距离,就可以快速计算出航路的下降梯度,如图10所示。

2.4 OCA计算功能

在OCA计算功能中,主要是对起始进近、中间进近、最后进近中最低超障高度的计算。在软件中首先通过手动输入或者文件导入相关格式的障碍物的信息,包括障碍物标高、障碍物在该进近航段一侧的区域宽度和障碍物至对应进近航段标称航迹的垂直距离;然后选择障碍物对于的进近航段,若为最后进近航段,选择是否有最后进近定位点(FAF),最后软件会自动判断各个障碍物在主区还是副区,且计算各个障碍物的MOC和OCA,并将最大的OCA显示在列表框,如图11所示。

3 结论

不管是传统的飞行程序设计还是现在新型的PBN飞行程序设计,在设计中都设计到了大量的小型计算,如果都通过设计者手工计算,将会大大增加工作量,也容易出差错,该软件针对这些问题,依据国际民航组织的相关文件的要求进行了设计,使程序设计者在设计中能够快速、批量的计算,增加计算的准确性、提高工作效率、降低计算复杂度,大大减轻了设计人员的劳动强度,减少了人工差错,具有良好的可用性。但此软件还有许多考虑不周的地方,它会在使用过程中被进一步完善。随着计算机技术的发展,相信在不久以后,自动化飞行程序设计软件的诞生将为程序设计人员带来更大的方便。

参考文献

[1]CAO.Procedures for Air Navigation Services(3)Aircraft Op-eration(DOC.8168)Fifth edition[S].2006:486-593.

[2]中国民用航空总局.航空器机场运行最低标准的制定与实施规定(CCAR—97FS—R1)[S].2001.

[3]朱代武,何光勤.目视和仪表飞行程序设计[M].成都:西南交通大学出版社,2004:4-10.

[4]郑莉,董渊,张瑞丰.C++语言程序设计[M].3版,北京:清华大学出版社,2004:62-123.

计算机辅助程序 篇8

科技项目评奖工作一般包括材料汇总、分发初评材料、现场终评等几个环节, 各个环节实际操作是否科学, 会直接影响到整个评奖工作流程的执行效率及最终评奖结果的合理性。随着评奖工作中评奖内容、参评数量、评委设置、评奖规则等方面逐年发生变化, 评奖工作各环节只有在具体执行方式上做出相应的调整, 才能切实保证整个评奖工作的科学高效。

最近, 在一次总局无线局的科技项目评奖工作中, 由于参评项目数量较以往有大幅增加, 我在实际操作中, 遇到了以下两个问题:

(1) 分发初评材料环节中, 如果仍然沿用人工方式规划初评委员项目分配方案, 不仅耗费了大量的时间和精力, 而且很难做到分配的科学合理;

(2) 为了提高现场表决效率, 我们采用了无线智能电子表决器代替以前的纸质选票, 但是该电子表决器的输出结果却不能按照评奖规则实现自动排序, 在表决结束产生后, 还需耗费大量时间进行人工统计, 违背了采用电子表决器提高工作效率的初衷。

针对以上问题, 我自行设计并开发了初评委员项目分配程序和表决器输出结果处理程序, 成功解决了上述问题。本文主要对这两个程序的设计与实现做一下简单的介绍。

2 Java语言和NetBeans开发工具介绍

本文所涉及到的两个Java程序都是桌面程序, 因此我采用了更为适合编制桌面程序的NetBeans进行开发, 下面先对Java语言及开发工具NetBeans进行简单的介绍。

2.1 Java语言

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台 (即JavaSE, JavaEE, JavaME) 的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性, 广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网, 同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下, Java更具备了显著优势和广阔前景。

Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码 (bytecode) , 然后依赖各种不同平台上的虚拟机来解释执行字节码, 从而可实现“一次编译、到处执行”的跨平台特性。与传统程序不同, Sun公司在推出Java之际, 就将其作为一种开放的技术, 全球数以万计的Java开发公司被要求其所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一, 并获得了广大软件开发商的认同。Sun公司对Java编程语言的解释是:Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。

2.2 NetBeans开发工具

NetBeans是一个由Sun公司推出、屡获殊荣的集成开发环境, 可以方便的在Windows, Mac, Linux和Solaris程序中运行。NetBeans包括开源的开发环境和应用平台, 是一个为软件开发者而设计的, 自由、开放的开发工具, 可以使开发人员快速创建Web、企业、桌面以及移动的应用程序, 并将版本控制和X M L编辑融入其众多功能之中。NetBeans IDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、G r a ils和C/C++等开发语言。NetBeans的主界面如图1所示。

3 初评委员项目分配程序

初评委员项目分配, 就是为初评委员按照一定规则分配初评项目, 通过制定算法、编制程序, 由计算机代替人工完成分配工作, 可大大提高项目分配的合理性, 保证了初评结果的科学可靠, 为后期的评奖工作打下良好的基础。

初评委员项目分配应遵循如下原则:

(1) 每个项目分配一主一副两个评委;

(2) 评委专业应尽量与项目涉及领域相匹配;

(3) 各评委所评项目数量大致相同;

(4) 评委组合不重复。

3.1 初评委员项目分配程序算法设计

实际评奖工作中, 参评项目数量和评委人数较多, 用人工方式设计分配方案, 非常耗时耗力, 且无法做到上述各分配原则的兼顾, 唯有编制相应的计算机程序辅助, 才能更加科学、合理、高效地完成此项工作, 在编制程序之前, 首先应依据上述分配原则制定以下算法:

第一步:首先对所有项目进行排序, 目的是将项目按照分配难度由难到易的顺序排列出来, 以利于第二步的评奖委员的分配。图2为初评委员项目分配程序第一步流程图。

第二步:按照第一步得出的项目排序, 逐个对各项目进行分配操作, 最终使每个项目都按规则分配到一主一副两个评委。图3为初评委员项目分配程序第二步流程图。

3.2 初评委员项目分配程序的实现

按照上述两步算法, 编写程序, 程序结构如图4所示, 主要包括如下几个部分:

(1) ExcelOperation包, 其中, 包括Excel Input.java, 用于实现项目汇总Excel表格的导入操作;

(2) MatchLogic包, 其中, 包括Expert.java、Handle Date.java、Project.java, 是本程序的逻辑实现部分, 图3中的分配流程就是通过这几个子程序实现的;

(3) Match包, 其中包括MatchAboutBox.java、MatchApp.java、MatchView.java, 是本程序的界面显示部分。

MatchLogic包是本程序的核心, 其中Expert.java、Project.java分别是初评委员类和评奖项目类声明, HandleDate.java是完全依照上述两步算法编制的子程序。

3.3 初评委员项目分配程序功能介绍

初评委员项目分配程序操作十分简单, 首先将项目汇总表导入, 然后就可执行算法, 程序自动将初评委员分配好, 分配结果还可以按照要求格式输出到指定位置。该程序的主界面如图5所示。

点击图5中的“导入汇总表”按钮, 选择需要处理的汇总表, 并将其导入, 然后为每个项目勾选该项目所涉及专业的选项, 如图6所示。

上述操作完成后, 点击图6中的“执行分组算法”, 程序就会通过对各项目涉及专业的智能判断, 自动为每个项目分配好主评和副评委员, 如图7所示。

委员分配完成后, 可通过点击图7中的“导出Excel”, 将分配结果以规定格式输出指定位置, 以便于日后编辑和使用。

4 表决器输出结果处理程序

针对使用电子表决器对表决结果无法进行排序的弊端, 我们开发了表决器输出处理程序。该程序可以对电子表决器输出结果按照评奖规则进行处理, 实现自动排序。该程序配合电子表决系统使用, 使得整个现场表决工作都可通过电脑完成, 既提高了工作效率, 又确保了表决结果的科学性和准确性。

4.1 表决器输出结果处理程序设计思路

表决器输出结果处理程序主要功能是实现对电子表决器输出结果按照评奖规则进行排序, 奖级评定规则如下:

以参加投票人员的三分之二为评定标准, 即某项目有三分之二的票额认定为某等级奖, 即可评定为该等级奖次, 高等级奖次不足三分之二票额, 自动往下降一个等级奖次计算有效票额, 以此类推。

由于电子表决器输出表格中的项目信息不完整, 而且格式不符合最终所需表格要求, 因此在程序导入表决结果后, 首先需将信息完整、将格式符合要求的项目汇总表进行导入;程序执行时, 先将表决票数结果整合到项目汇总表中, 然后再按上述奖级评定规则, 对各项目得票结果进行分析处理, 对项目奖次进行评定, 分为一等奖、二等奖、三等奖及鼓励奖四组, 并对各奖级组中的项目按得票数进行排序;最后整合排序后的四组数据, 并输出, 就得到了最终的项目评定结果。

4.2 表决器输出结果处理程序的实现

表决器输出结果处理程序结构如图8所示, 主要包括以下几个部分:

(1) ConvLogic包, 其中, 包括ListSort.java和Project.java, 是本程序的逻辑实现部分, 主要实现项目的按规则排序;

(2) Exl Oper包, 其中, 包括ExlRead.java和RowNum.java, 用于实现项目汇总Excel表格的有效行数统计和数据导入操作;

(3) agreexls包, 其中, 包括AgreeXlsAboutBox.java、AgreeXlsApp.java、AgreeXlsView.java, 是本程序的界面显示部分。可指

Conv Logic包是本程序的核心, Proj-ect.java是评奖项目类声明, List Sort.java是完全依照奖次评定规则编制的子程序。

4.3 表决器输出结果处理程序功能介绍

表决器输出结果处理程序操作十分简单, 首先定义评审委员人数, 然后依次导入表决器输出结果文件和项目汇总表, 执行程序后, 项目按照评奖规则自动排列顺序, 排序结果可以按照要求格式输出到指定位置。该程序的主界面如图9所示。

该程序为了灵活适用于各种表决工作, 在点击图9中的“导入表决器表格”按钮后, 需首先定义评审委员人数, 如图10所示, 然后根据提示, 导入表决器系统的结果输出表格。

点击图10中的“导入项目汇总表并排序”按钮, 按照提示导入项目汇总表, 然后程序自动运行, 依据票数结果, 按评奖规则进行排序, 并将排序结果显示出来, 如图11所示。

通过点击图11中的“导出Excel”按钮, 可将排序结果以Excel表格的形式输出到指定位置, 便于日后的编辑和使用。

5 结束语

计算机辅助程序 篇9

关键词:微课程,C++程序设计,辅助教学

1 引言

李克强总理在今年的政府工作报告中,提出了“互联网+”的概念。互联网+教育将会使教与学活动都围绕互联网进行,会对传统教学模式带来深刻变革。新型在线教学模式如微课、微课程、慕课、翻转课堂等,在“互联网+”大背景下,将会越来越成熟,逐步走向大学教学,真正实现教育公平、终身教育和个性化教育[1]。目前,基于微课的学习和研究已经渗透到各学科,微课视频也得到大量开发。虽然微课视频能够帮助学生更好地掌握某一个(或某部分)知识点,但难以帮助学生系统地把握学科知识体系,还不能完成常态学校教学需要[2]。微课程不仅仅是微视频的呈现,而是一门完整的课程,有一套完整的教学设计[3],从学习模式上来看,微课程更接近于MOOC,为今后走向翻转课堂奠定基础。

在当前普通高校的教学中,还没有完全实现在线教学,微课或微课程仅仅是传统教学的一种辅助手段。C++作为大一新生学习的第一门编程语言,知识点多,概念抽象,课时又有限,大部分学生学习时存在困难,可以将微课程教学作为传统C++教学的有效补充。将重要的知识点、重要习题解析等,做成一段段的微课视频。对老师来讲,可以节省上课对重要知识点反复讲解的时间,而且通过课堂外重要习题的解析,巩固学生对所学知识点的认识,掌握解题的方法和步骤。对学生来讲,课堂上没有听清楚地部分可以反复看,有助于学生及时查漏补缺。在课外做习题的过程中,遇到有难度的题目,可以参考相关微课视频,结合学习单,通过反复观看视频中的分析过程,理解老师问题分析的方法、解题步骤、问题小结及拓展应用等,提高自己解决这一类问题的能力。

2 当前C++程序设计教学中存在的问题

C++课程教学中,既包括前面的面向过程编程、结构化编程部分,又包括后面的面向对象编程部分,知识点多,且语法比较复杂。传统的C++教学一般分为两部分:课堂理论教学和上机实践环节。理论教学中,由于课时有限,加之大学中2-3 节课连上、多媒体教学的模式,导致每次的课堂容量都很大。上课老师来不及精讲,下课学生来不及消化,导致老师的教学进度和学生的接收能力之间的差距越来越大,学生学习的积极性逐渐下降,以至到后面学习越来越被动。此外,大多数大一新生受应试教育影响很大,不善于自主学习[4],习惯于被动地接收老师所讲授的内容,缺乏探究和创新精神,应变能力差。

上机实践主要用于消化课堂讲授的知识点,由于上机时间有限,主要偏重于编写几个功能比较单一的“小”程序[5],学生编程思维很难有实质性地提高,更不要提项目设计与开发能力的培养。

新技术是把双刃剑。随着大学生中移动终端的普及、入网的方便及网络资费的越来越低,给大学的教学带来了巨大的挑战,尤其对于自觉性不高的学生问题越来越严重,也严重冲击了传统的教学模式,学生很难整堂课全神贯注在老师所讲的内容上。

3 微课程概述

在我国,广东省佛山市教育局胡铁生率先提出了以微视频为中心的新型教学资源——“微课”[6],微课是根据新课程标准和课堂教学实践,以教学视频为主要呈现方式,反映教室在针对某个知识点或环节的教学活动中所运用和生产的各种教学资源的有机结合体。微课来源于课堂教学,是课堂教师授课的浓缩,本质上属于以教师为中心的模式。

文献[7]给出了微课程的定义,“微课程”是指时间在10 分钟以内,有明确的教学目标,内容短小,集中说明一个问题的小课程。“微视频”需要与学习单、学生的学习活动流程等结合起来,才是一个完整的“微课程”。“微课程”是“微课”的高级阶段或发展趋势,体现了课程改革要求,并且支持以MOOC为代表的第三代课程改革。

大规模在线开放课程MOOC是一个完整的教学模式,有参与,有反馈,有作业,有讨论和评价,有考试和证书。MOOC环境下的微课程定义为:微课程是以在线学习或移动学习为目的,针对某专题的一系列学习内容和教学活动的总和,其中学习内容是以时长在十分钟内的教学视频为主要载体[8]。国内微课程的研究主要用于辅助教学,针对国外学习者完全在MOOC这种在线环境中学习微课程的研究,国内目前还处于探索阶段。

4基于微课程的C++程序设计辅助教学模式

结合在C++程序设计教学中存在的问题,提出了将微课程作为课堂教学有效补充方式的教学模式,如图1所示。

将C++中所有的知识点做成微课程,需要耗费大量的资源和精力,所以目前只考虑将知识点中的重难点部分、重点习题的解析和课后上机拓展练习部分设计成微课程,辅助现有的教学。现有的C++程序设计教学主要包括:课前预习、课堂教学及课后练习和答疑三部分。

课前预习环节,同学们在看书预习的过程中,遇到重点难点部分,可以参考“重要知识点微课程库”。根据微课程中提供的自主学习任务单,明确相关的学习指南、学习任务、困惑与建议。可以在任务单的指导下,瞄准目标,尽力完成学习任务。

课堂教学环节,包括多媒体教学和上机实践两部分。多媒体教学的优点是形象生动,但缺点是课堂容量大,节奏相对快,部分学生跟不上教师的思路,与老师的教学产生脱节,以致丧失学习兴趣。借助C++微课程库,对于课堂上来不及消化的部分,自己可以反复看相关

微课程,辅助自己课后理解。

课后练习环节,苦于课时的限制,很多习题老师无法在课堂上进行详细讲评,虽然有少数同学会主动去问,但大部分同学是囫囵吞枣,知其然而不知其所以然,当题目稍作变化,就无法适从,没有从根本上理解相关知识点。借助C++“重点习题解析微课程库”,对于不能理解或无从下手的题目,可以自主参阅相关微课程进行学习,从在线老师的讲解、在线师生的互动、反思与总结等方面加深自己对该问题的认识,学会举一反三。

课后上机实践环节,在掌握好老师课堂要求的基本算法的基础上,根据“上机拓展实践微课程库”,学会编写算法要求更高的程序,提高自己的编程能力。同时通过一些实际应用项目的训练,以项目任务为驱动,激发学生的学习兴趣,培养学生理论联系实践和自主学习的能力。

5结语

将微课程教学作为传统教学手段的有效补充,是新型互联网时代背景下的必然要求。在国内MOOC课程、翻转课堂还不是特别成熟的当今大学教育,首先尝试将微课程作为辅助教学手段,既有助于改善现有的学习状况,也有利于今后更好地向在线课堂、翻转课堂等新型教学模式转变。

参考文献

[1]张明,郭小燕.“互联网+”时代新型教育教学模式的研究与启示——微课、慕课、翻转课堂[J].电脑知识与技术,2015,11(12):167-171.

[2]易庆竑.基于慕课的翻转课堂及其教学结构研究[J].现代教育技术,2015,25(4):94-100.

[3]梁乐明,曹俏俏,张宝辉.微课程设计模式研究——基于国内外微课程的对比分析[J].开放教育研究,2013,19(1):65-73.

[4]王少荣.C++程序设计课程教学改革探索[J].计算机教育,2013,22:40-44.

[5]韩娜,王洋,关名山.“C++程序设计”课程改革和探索[J].计算机教育,2009,(3):106-107.

[6]胡铁生.“微课”:区域教育信息资源发展的新趋势[J].电化教育研究,2011(10):61-65.

[7]黎加厚.微课的含义与发展[J].中小学信息技术教育,2013,4:10-12.

上一篇:动漫特色论文下一篇:临床生化分析