人人范文网 其他心得体会

编程心得体会(精选多篇)

发布时间:2021-06-23 07:59:15 来源:其他心得体会 收藏本文 下载本文 手机版

推荐第1篇:编程心得体会

篇1:java编程心得体会 java编程心得

计算机3班 窦金霞 20104773 最近几周一直在弄程序,说实话真的很累,但累中也有成功的快乐。我觉得学到了很多东西,这是只看课本知识所不能学到的。

说实话,以前我一直没学过java虽然我也知道java的重要性,可是即使上课听了,不实践还是掌握不了。因为种种原因,今年我没有买笔记本。没有机器,仅仅靠每周一次的上机练习是绝对不够的。所以我就插空调程序,在舍友们不用的时候自己再接她们的电脑调。

调上一个web版的通讯录程序时我已经感觉到学的很吃力,好多东西都不懂。这次做的这个学生成绩管理系统更复杂了,所以一开始调的时候感觉特别吃力.所以我告诉自己不能放弃,慢慢来,就这样我从最基本的sql语句seion对象开始学起,我觉得我还有太多不懂得所以要比别人付出更多的努力。就这样我一点一点的学着?? 说心里话,在做上一个web版的通讯录时,我就感觉到成功的喜悦。好多地方我都是一点一点的问的,在问的过程中,我也学会了很多,像:servlet和jsp之间跳不过去时有两种解决办法,一是关闭底层类中的db.close;二是将servlet中的throws exception改成try catch以捕捉异常;我还学到了集中查找错误的方法,可以加上两个双斜杠“//”将具体的方法屏蔽掉,一检查是方法错误还是servlet错误,还有就是写上system.out.println()将获得的数据输出,用来检查数据传输过程有没有错误等等 。

虽然在别人看来,这些方法可能都很常规,但是确实我自己学会的,我觉得很有成就感。我已经做好计划了,暑假的时候去买本本用自己的本本练习一下java,虽然下学期不学java了,但是我对java的热情不会因为这个而削减的!

做完这个学生成绩管理系统后,我觉得我对java的看法已经改变了。一前总以为java很繁琐很难,听同学说java不好学,开始又有一些听不懂,所以一直很畏惧java。但真正做了这个系统以后我才感觉到其实任何事都没有难与不难之分,只要你肯努力的去做,世上无难事只怕有心人!

我现在对java学习充满了热情,我知道我还有很多的不足还有很多需要努力的地方,所以我的java之旅将继续进行??篇2:程序设计心得体会 程序设计心得体会 【收获及体会】

通过两个星期的折腾,总算把课程设计给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,课程设计可是第一次。看着劳动成果,很欣慰!虽然这不是我一个人做的,是大家的共同努力得来的。

刚开始,可以说是没有头绪,于是就去图书馆找资料,找到了一些关于画图方面的,可是这点小进展远远不够,这只是一个小小的开始。下一步是上网查,找到了些与我们题目相似的,那时我们每个人都很高兴,可是那还不是我们要的,于是又上网查到了些有关的函数等等,终于在我们大家的努力下,完成了这个程序。 虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的确如此。做完这个程序最大的收获就是感受到了集体的力量,当然个人的智慧也是很重要的哦!

做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对我们c语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊! ——姜* 【收获及体会】

忙碌了一个多星期,在大家的共同努力下,我们总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。

另外平时扎实的基础也很关键,因为如果你平时学得就不怎么样,那么你面对这么一个比较有难度的程序,你可能会望而却步,看他人的程序都是个难点,更别说让你自己去设计。为了解决此。类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的编写程序的经验,要解决我们的问题,对他们来说只是small case。

在设计这个程序时,我们刚开始是根据老师给我们提供的资料,用画图以及循环将框架设计出来,但是接下去便无从下手了,计算是个关键和难点,我们也查了相应的资料,但是它上面用得是坐标来做的,所以为了方便设计程序,我们也改为坐标来做的,这样计算问题解决了。接下去就是按键问题,我们的资料是用鼠标做的,所以关于按键这个函数就只能我们自己设计,还好手头有类似的资料,经过自己的反复尝试以及与与同学的讨论,这也不难,最好还是被我们搞定了。最后就是闪烁,这个设计的方法很死板,都一个类型,就是算坐标比较烦琐,要确定好它的位置,但是这些只要你自己愿意去尝试,问题都可以迎刃而解的。 从这一个多星期的设计过程中,我看到了大家的拼搏与努力,也让我知道团队精神得难能可贵,尽管一年下来大家不怎么有多大接触,但是彼此之间的友谊已经在我们心里扎根生底,在遇到问题时,我们会共同进退,每个人都很慷慨不会因为是通过自己艰辛劳动设计出来的东西而不准他人剽窃了。总之,这次设计程序让我受益良多,我会好好珍惜像这种难得的机会——薛** 【收获及体会】

自从记事以来就听过了电脑这个高科技,现在终于实现了自己的一个小小愿望——成为了计算机系的一名学生,这学期我们学的c语言,以前就听过这个名字,打开书一看简直一窍不通,学好这门科简直就是一个挑战,课前课后都要把书啃一遍,要不然上课就跟不上,终于学期快结束了,我们有一个课程设计,在两个星期内,完成一个复杂的程序,我们的题目是做一个计算器,计算器从小就见过但让我自己设计一个出来就有点困难了。

第一天,我们都按照老师教的画图函数画计算器的外貌,但发现一个一个画实在是太烦琐,后来在老师的点拨下,我们采取了for语句,果然很快地画出来了,接下来的事就是计算了,用什么函数?怎么用?那个上午就坐那发呆,没有什么新突破,自性心严重受到打击,下午立马找了份材料到图书馆去研究,还专门找了位高手教我,研究了一个下午终于有眉目了,第三天我们成功地把计算功能搞定了,但还有闪烁的功能没有搞,这确实是一个问题,这时团结的力量得到了充分的体现,大家齐心协力,有的找资料,有的帮忙改错,有的??俗话说:“三个臭皮匠顶个诸葛亮。”在大家的共同努力下,我们胜利了。

感谢刘金平老师的淳淳教诲,感谢同学的积极帮忙,我的程序终于顺利完成了,接下来的就是写报告收尾了,看着自己的劳动成果写起报告来特有劲,特有灵感。

很感谢这次的课程设计,它使我更加深刻地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,做任何事都要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。 人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的路上,总遇到重重困难,但正是因为困难我们才变的更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧! ——毛** 【收获及体会】

做了两周的课程设计,有很多的心得体会,更多的是同学之间的合作精神, 这道课程设计花了我们一到两周的时间,几人合作,老师的帮忙才完成。我第一次完成这么完美的杰作,心理有一份别样的滋味,在设计过程中,我付出了很多,也懂得了只有付出才有回报。在这次设计中,我遇到了很多困难,但我没有向困难低头,通过查询资料,虚心向同学、老师请教,才一一得到了解决。我发现平时学的太少了,在今后我首先要把老师在课堂讲的弄懂,弄透,在此基础上利用课余时间多看课外书籍,拓宽知识面。在设计过程中,合作精神必不可少。单凭一个人的力量是不能完成的,毕竟一个人学的很有限。每个人掌握的不同。我相信:态度决定一切,只有努力才有收获。

第一天上机时对如何编计数器程序一点头绪都没有,只是将从图书馆借来的关于如何制作图形看了一遍,大体上有了了解。

第二天我就着手画计数器图形,虽然有些人图形已画好,可我没有着急,毕竟别人花的时间比我多,为了使图形美观我不断运行、调试,直到自己满意为止。

接下来是星期五,说实话那天蛮难熬的,一天都泡在机房。眼睛有点吃不消,可没有办法,将来我们就靠计算机吃饭,再苦再累也要坚持。在已编好的程序上又加了一点精髓,怎样使字符闪烁,这也是我们几个人互相讨论的结果。

第二周,通过周末到网上查的资料,和参考资料又加入计数器的灵魂算法。 接下来几天再将程序不断完善、加工,计数器程序初露头角。 最后小结:程序设计过程有如解决一实际问题,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数,然后确定处理过程--算法。可得最后结论。在程序设计中,可认为也是一个社会,每个一同的社会成员都有不同的想法。程序设计学得的好坏要看你在社会中解决问题的能力的高低,所以不同的人编程的结果是不同的。在这个社会中,经验与想法最为重要。 —左** 【收获及体会】

c语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发创造能力、培养沟通能力。这次实习时间虽然仅有一个星期,但确实使我受益非浅。通过实习我丰富了计算机操作经验,更加深了对c语言的了解,熟悉了其环境,更增强了对turbo c的使用技巧。

另外,实习中老师对我们进行了细心、耐心的指导,鼓励我们对程序进行合理改进,培养了我们的创新意识和创新能力。原来是我认为可怕的课程设计,就在种种辅助条件下完成了,心里有说不出的高兴。

虽说捧着自己的成果很高兴,但成果背后总是付出很大的努力。

一个多礼拜中,我们有过山穷水尽的困惑;有过柳暗花明的惊喜;有过唇枪舌剑的辩论;有过相互鼓励的安慰。一个多礼拜的时间我们经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我不仅学到了很多知识和技能,更重要的是我们学会了如何运用所学知识去解决实际问题.一个多礼拜的挣扎,绞尽脑汁终于带着麻木的手指和大脑脱出那堆“泥潭”。现在的心情是如鱼得水,干涩的眼睛前方是万里晴空。终于,所有的努力即将化成了一个个铅字,打印机“滋滋”的声音仿佛已经宛如天籁般悦耳地篇3:程序设计心得 培训心得体会

《程序设计》是理工类专业必修的计算机技术基础课,是一门实践性很强的课程,不仅要求学生掌握概念,而且还要求学生动手编程并进行上机调试、运行。听了吴教授短短的14节课,受益匪浅。

对于这门课程,实践性非常强。吴教授从课程改革这道题目讲起,结合自身经验,重点突出生动形象。以下为我的几点体会:

1.程序设计必须自己亲自动手动脑上机调程序,否则是学不会编程序的。

其中讲到职业技术院校的实训环节很重要,锻炼学生的好机会好平台,培养学生动手编程的能力和合作精神。大家在一起学习,取长补短,在实训中长知识,提高同学们的学习热情和自学能力。我个人觉得这种教学方式效果非常好,还能激发学生的学习兴趣,用书本上的理论知识来指导实践、解决一些实际生活中的问题。 2.讲授的重要目的是激发学生的兴趣。

因为大多数学生初次接触计算机语言,觉得迷茫、不知所措,觉得这门课程

难、抽象、不易理解,学起来比较吃力,所以讲课过程中必须让学生主动愿意去思考,这就涉及到一个兴趣问题,因为难理解的东西好多学生时间长了都不愿意去学,这就需要教师在授课过程中做工作,如何抓住学生的心是关键。

吴教授授课中基本上不讲书本上的例子,书本上的例子留给学生自己下去自学,而是选择一些贴近生活的例子或者有故事背景的例子,从例子引出所涉及到的知识点,这样就能激发学生的兴趣。其中一个例子“韩信点兵”,从这个故事引出c语言当中函数的递归调用思想。 这就需要我们在上课前做足功课,想法设法吸引学生们的注意力,从一些感兴趣的例子中一步一步引导学生去思考,既增加了与学生间的互动,又锻炼了学生的思考能力。

3.遇到任何问题都不要盲目去解题,要抓住任何事物发展过程中的规律,按照规律再设定合适的算法。

同样授课也一样,首先要明确这门课程的教学目的:通过理论和实践上机教学,使学生较好地掌握 c语言的基本知识,掌握基本的程序设计过程和方法,具备初步的高级语言程序设计能力,并能熟练应用 vc++ 6.0集成环境进行c语言程序的编写、编译与调试,达到能应用c语言解决一般编程问题的水平。目的明确了再设定合适的教学方法。 以上3点就是我的体会。

推荐第2篇:编程课程心得体会

计算机最重要的就是上机操作,自己编写程序,在VisualC++运行,下面就是小编给大家带来的编程课程心得体会范文【五篇】,希望能帮助到大家!

编程课程心得体会范文一

经过一个学期的学习,我对C语言有了一定的了解。C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是毋庸置疑。在上课之前,就经常听同学说,C语言很难学,确实,刚开始听课时觉得老师不知所云。不过,发现对后续内容的预习后,前面的疑团都迎刃而解,这让我对C语言的学习更有信心。

计算机重要的就是上机操作,自己编写程序,在VisualC++运行,刚开始经常会出现错误,经过分析改正后,终于能够运行了,就觉得特别激动。

课程设计是一个把需求分析、程序编写、程序调试、撰写报告结合为一体的过程。在这个过程中,不仅锻炼了我们缜密的思维和坚持不解的毅力,更磨练了一个队伍的团结互助的精神。只有通过大家一起努力才能将课程设计的所有环节都顺利的完成。另外程序设计中我们遇到问题并解决问题的过程,使得我们独自探索并解决问题的能力了有了一个提高,这有利于我们以后的学习。同时这整一个过程,也使我们对程序编写的整个过程有了一个统筹全局的思想,因为需求分析、程序编写、程序调试、撰写报告这些过程是环环相扣的,绝对不可能独立进行。

课程设计是学习《C程序设计》后对知识的全面测试,刚拿到题目时不知道怎么去处理,觉得很复杂,经过和小组成员的讨论,上网查资料,逐个问题逐个击破,问题不再那么复杂。通过课程设计,我发现自己还存在很多知识漏洞,编写程序时,经常会出现低级错误,很多知识点都不熟悉。在今后的时间里,我一定要投入更多精力学习C语言,以课本为基础,请教老师,与同学讨论,参考资料,上机操作,我相信我一定能把C语言学好。

编程课程心得体会范文二

学习vb程序已经一个学期了,但是感觉没有学到真正的知识。但是近几个课时的课程学习让我受益匪浅,学会了一些简单的程序语言设计,并且感觉这是一种乐趣,开始喜欢这门课程了。

然而,我深刻体会到这门课程并不是轻而易举就可也学好的,学习这门课程不仅需要细心严谨的态度,还需要充分发挥我们的想象力,让理论和实践充分的结合在一起,才能达到事半功倍的效果。细节决定成败这句话在程序设计中恰当不过了,因为一个小小的错误代码就可以使你的整个的程序无法进行,有时候绞尽脑汁也没能找出错误所在,只好老老实实的从新进行编写工作。所以课程不仅理论性强,实际操作性更强,没有一个好的心态很难学好这门课程。我们学习的不仅是科学的方法,还包括用什么样的态度去对待这门课程,并且让自理论性和实践性在自身得到充分的发挥,用细心严谨的态度去认识事物,且希望通过这次的实践操作可以让我更好地学习vb程序设计。

编程课程心得体会范文三

本学期我们开设了《模拟电路》与《数字电路》课,这两门学科都属于电子电路范畴,与我们的专业也都有联系,且都是理论方面的指示。正所谓“纸上谈兵终觉浅,觉知此事要躬行。”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的,所以在本学期暨模电、数电刚学完之际,紧接着来一次电子电路课程设计是很及时、很必要的。这样不仅能加深我们对电子电路的任职,而且还及时、真正的做到了学以致用。

这两周的课程设计,先不说其他,就天气而言,确实很艰苦。受副热带高气压影响,江南大部这两周都被高温笼罩着。人在高温下的反应是很迟钝的,简言之,就是很难静坐下来动脑子做事。天气本身炎热,加之机房里又没有电扇、空调,故在上机仿真时,真是艰熬,坐下来才一会会,就全身湿透,但是炎炎烈日挡不住我们求知、探索的欲望。通过我们不懈的努力与切实追求,终于做完了课程设计。

在这次课程兼职设计过程中,我也遇到了很多问题。比如在三角波、方波转换成正弦波时,我就弄了很长时间,先是远离不清晰,这直接导致了我无法很顺利地连接电路,然后翻阅了大量书籍,查资料,终于在书中查到了有关章节,并参考,并设计出了三角波、方波转换成正弦波的电路图。但在设计数字频率计时就不是那么一帆风顺了。我同样是查阅资料,虽找到了原理框图,但电路图却始终设计不出来,实在没办法,只能用数字是中来代替。在此,我深表遗憾!

这次课程设计让我学到了很多,不仅是巩固了先前学的模电、数电的理论知识,而且也培养了我的动手能力,更令我的创造性思维得到拓展。希望今后类似这样课程设计、类似这样的锻炼机会能更多些!

编程课程心得体会范文四

随着我国机械制造业的快速发展,我国正逐步变成“世界制造中心”。为了增强竞争能力,我国制造业正在广泛的使用先进的数控技术。21世纪机械制造业的竞争,很大程度上是数控技术的竞争。为了适应社会的需求,进一步增强机械专业学生的竞争能力,我们进行了为期2周的CAD/CAM综合实训。

这对于我们来说无疑是一件好事。通过两周的数控综合实训,使我们更深一步地认识和掌握CAD/CAM软件,并深刻体会到了自动编程软件(mastercam)在数控机床加工中的巨大作用,尤其是铣削部分。通过学习使我们从理论学习转到了实际生产,同时我们对加工参数的设置有了感性的认识,如下刀位置、下刀方式、进退刀参数以及刀具切削间距的设定等等。

我们加工的零件虽然难度不大,但是十分的耗时间,因为要大量的使用线切割,这就需要我们有足够的耐心。我们经历了穿丝、绘图、加工的整个过程,算是初步掌握了一项技能,确实是受益匪浅。

此次实训以培养学生的创新精神和实践能力为目的,以就业为导向,进一步提高学生对于计算机应用和分析问题及解决问题的能力,为以后适用于社会发展的需要。通过两周实训让我们更好的巩固理解并掌握CAD/CAM的有关知识。达到能熟练、独立的使用CAD/CAM软件配合数控机床,进行合理有效的完成产品加工。

经过两周的实训,我们认识到了我们专业的先进性,更重要的是为我们以后从事数控行业打下坚实的基础,学到了知识和技术,更重要的是学会了团队合作的精神。

编程课程心得体会范文五

经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的基础。 在为期近两周的C++课程设计中,我体会颇多,学到了很多东西。我加强了对C++程序设计这门课程的认识,并且复习了自己以前学习到的知识。这些都使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。像职工信息表这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验。而这些问题,这并不是我们平时只靠课本,就可以轻易解决的(liuxue86.com)。所以,锻炼了我们挑战难题,学会用已掌握的知识去解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。特别是学会了在Visual C++中如何调试程序的方法。当然,老师的指导和同学的帮助也是不可忽视的,他们给了我许多提示和帮助,教会了我编译复杂程序的方法。

在老师和同学的帮助下,通过自己的努力,终于完成了这次职工信息表的简单课程设计。我经过这段时间的编程,对其中的艰辛,我是深有体会。从刚开始的选择程序、理解程序到后来的调试程序以及改进程序这个过程中,我遇到了各种各样的困难和挫折。但是我坚定信念,对自己充满了信心,想尽一切办法克服重重困难。

通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会到了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好利用。

虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。我很欣慰自己能在程序中加入自己的想法和有关程序内容,也就是对它的程序改进了一番改进,并有创新。但是我感觉自己的创新还不够典型,总之还不是很满意。另外由于时间的紧迫和对知识的了解不够广泛,造成了系统中还存在许多不足,功能上还不够完善。以后我会继续努力,大胆创新,争取能编写出透射着自己思想的程序。这次课程设计让我充分认识到了自己的不足,认识到了动手能力的重要性。我会在以后的学习中更加努力锻炼自己,提高自己,让自己写出更好更完善的程序,为以后的编程打好基础!

总而言之,这次C++程序设计实践让我收获很大。

推荐第3篇:软件编程实习心得体会

软件编程是一个计算机专业的专业技能,在开展了专业培训工作之后,我们要学会总结。以下是小编整理的软件编程实训心得体会,欢迎大家阅读!软件编程实习心得体会1

此次暑期实习的主要目的是做一个与数据库有关的小系统。比如:学生信息管理系统、工资管理系统等。熟悉数据库的基本操作,掌握SQL语言。

我们小组所做的是关于学生宿舍的信息管理系统。在这次实习中,我们运用的平台是vs2010(c#),因为大三的软件工程课也是运用了vs2010,而且大二时学习windows程序设计时用的是MicrosoftVisualStudio2005,基本一样。而数据库的选择,选用了Acce2010,Acce供了一个能在办公室环境下使用的、操作简便、易学好用的关系型数据库管理系统,,而我们在大一暑期实习时也学习了这一方面的内容。

通过对老师提供的几个例子的学习,我们开始了我们的数据库系统设计。通过这个学生宿舍管理系统的设计和实现,我们虽然遇到了一些困难,但是最后我们都一一解决了这些问题,了解并掌握了自己对数据库和VS的不足,并且学到了很多东西。

数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照DBMS提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。

设计完我们的数据库,我们就开始了VS2010和Acce的连接。但是在最开始的时候,我们只知道这两个独立的工具,对于它们的连接可以说是一无所知,通过学习,我们终于了解了,数据库与vs2010连接要先创建数据容器,创建数据集,填充数据集,从而把数据库中的数据显示在vs2010的控件中,学习过后才感觉到不是东西太难,而是我们对新事物的恐惧和不了解。

如果说数据库的连接是我们工作的第一步和最基础的一步,那么接下来怎样对数据进行增添,删除和修改是很关键的问题。数据库与VS的连接一定要有,不过在数据更新之前,肯定要在vs2010控件中实现数据修改的实现工作,然后更新到数据库中,这不仅仅涉及到了数据库的问题,同时要对vs2010中的控件的功能和一些固定函数有所了解。例如我们在做dataGridView控件内容的修改,添加,删除,还原,以及对数据库内数据的更新的时候,就碰到了一些困难,主要是对dataGridView控件的一些属性和函数不了解。通过后来的查书和网络查询,我们才发现原来很多东西都是我们不知道的。

对于数据的修改和删除的关键之处在于对数据的选择,而这恰恰是关于dataGridView的属性了解。同学间的相互讨论最终解决了这个问题。

具体到数据的添加、修改、查询、修改后需要运用SQL语言,我们在大三学过SQLserver,而,SQL语言的基本语句是一样的。因此在简单回顾数据库的书后,我们队气加深了印象,在vs平台下进行操作需要加双引号,这使得代码有些繁琐,第一次编写时尝尝吧单引号,“+”和双引号弄混,所以这时候需要耐心,仔细地查找错误,又一次甚至因为一个小括号的中文输入和英文输入造成了几个小时没找出错误,弄得我们都很郁闷。

当对主要的操作界面设计完后,我们需要将它和登录界面进行相连,但是一个上午,我们用调用Form,却发现虽然界面调用了,可是另一个Form无法对数据库进行连接,我们左思右想,始终找不到解决的办法,于是我们只能想办法把所有的界面放在同一个Form中,而解决这个问题是办法是用很多个groupBox,按照设计要求对其实现可见和不可见。这样才解决了这一个艰巨问题。

在最后的检查工作,我们需要对代码进行修复和完善。这时候要体现系统的用户友好型,对用户的错误操作进行有请提示。对于条件的判断,更需要细致的逻辑思维。

软件编程综合实习已经告一段落,但在实习中我们收获颇多。这是我们完成的第一个数据库系统,也是到目前为止最为完善的系统。这一过程,我们掌握到了软件开发的一系列步骤,这能应用到今后的工作生活中去。我相信能给我们带来很大的帮助!

我们需要对整体有个了解,然后细致地一步一步做下去。有很多东西,我们不可能都掌握得很彻底,但是我们可以对其进行了解,知道有这么一回事,所以开始前浏览SQL宝典和c#的书是非常必要的。当了解后,我们可以利用资源丰富的网络进行查询,这样会事半功倍。另外对于困难的问题,如果投入过多时间还是不能解决,那么就须要选择另外一种方法,不能堵死在一条路上。

在本次实习中我们遇到的没能解决的问题,我们会在接下来的时间中全力解决。

同时,我觉得自己要在以下几个方面加以注意:

首先,在编程的时候要注意理论联系实际。注意将课本上的知识应用到日常的操作中,真正做到学以致用。只有这样,才能做到目的明确,才能有足够的学习动力。

其次,在工作过程中要经常与其他成员进行交流,讨论所遇到的问题,并一起解决。在讨论中解决问题,会节约很多时间,并且在交流的过程中,我们也可以学到更多的东西。

软件编程实习心得体会2

目前在国内制造业对数控加工高速增长的需求形势下,数控编程技术人才出现了严重短缺,数控编程技术已成为就业市场上的需求热点。以市场为导向的职业教育不断开辟这一领域的新课题,在传统职业的知识和技术上溶入了数字化信息的新技术、新知识、新工艺。国家大力发展职业教育,大力进行职教师资培训。以骨干教师为重点的培养培训活动在全国各个重点建设职教师资基地纷纷开展。我就是2007年第二批次国家级骨干教师培训的学员,培训地在济南数控编程培训学校,专业是数控加工技术。在济南学习期间,对于数控机床编程技术的学习心得写下来跟朋友们一起探讨。一、学好数控编程技术需要具备以下几个基本条件:

(1)具有基本的学习资质,即学员具备一定的学习能力和预备知识。

(2)有条件选择好的培训机构和培训教材。

(3)在实践中积累经验。

二、学习数控编程技术,要求学员首先掌握一定的预备知识和技能,包括:

(1)基本的机械制图基础。

(2)基本的机械加工常识。

(3)机加工工艺基础。

(4)基本的三维造型技能。

三、选择培训教材应考虑的因素包括:

(1)教材的内容应适合于实际编程应用的要求,以目前广泛采用的基于CAD/CAM软件的交互式图形编程技术为主要内容。在讲授软件操作、编程方法等实用技术的同时也应包含一定的基础知识,使读者知其然更知其所以然。

(2)教材的结构。数控编程技术的学习是一个分阶段不断提高的过程,因此教材的内容应按不同的学习阶段进行合理的分配。同时,从应用角度对内容进行系统的归纳和分类,便于读者从整体上理解和记忆。

四、学习方法与技巧

同其他知识和技能的学习一样,掌握正确的学习方法对提高数控编程技术的学习效率和质量起着十分重要的作用。下面是几点建议:

(1)短期目标规划,在一个较短的时间内集中完成一个学习目标,并及时加以应用,避免进行马拉松式的学习。

(2)系统课题设计,按照课题要求有目的进行实操训练。

(3)注重培养规范的操作习惯,培养严谨、细致的工作作风,这一点往往比单纯学习技术更为重要。

(4)做好实践笔记,将平时所遇到的问题、失误和学习要点记录下来,这种积累的过程就是水平不断提高的过程。

总之,理论指导实践,而实践丰富了理论。理论联系实践才是数控编程技术学习的指导思想。

软件编程实习心得体会3

此次只实训了短短的三周。虽说时间很短,但其中的每一天都使我收获很大、受益匪浅,它不但极大地加深了我对一些理论知识的理解,不仅使我在理论上对Java有了全新的认识,在实践能力上也得到了提高,真正地做到了学以致用,更学到了很多做人的道理,对我来说受益非浅。除此以外,我知道了什么叫团队,怎样和团队分工合作;同时我还学会了如何更好地与别人沟通,如何更好地去陈述自己的观点,如何说服别人认同自己的观点。这也是第一次让我亲身感受到理论与实际的相结合,让我大开眼界。也是对以前所学知识的一个初审吧!这次实训对于我以后学习、找工作也是受益菲浅的,在短短的三周中相信这些宝贵的经验会成为我今后成功的重要的基石;这对于我的学业,乃至我以后人生的影响无疑是极其深远的。

这次实训虽然是我们的第一次,不过同学们表现不错,由此看来,我们在进入大学的这几个月里学到了不少的专业知识,只是自己感觉不到而已。对于所学专业,我们不能过于自卑和担忧,否则会妨碍自己学习。实训是学习Java的重要环节,有利于我们巩固专业知识、掌握工作技能,提高就业筹码。

我把本次为期三周的实训看作是“理论与实践相结合的桥梁”。通过这周的实训和学习,我知道了此次实训的目的,也清楚目前自己的不足,那就是缺乏相应的知识与经验,对所学的专业知识不能够很好地运用于实践操作。正所谓“百闻不如一见”,经过这次自身的切身实践,我才深切地理会到了“走出课堂,投身实践”的必要性。平时,我们只能在课堂上与老师一起纸上谈兵,思维的认识基本上只是局限于课本的范围之内,也许就是这个原因就导致我们对专业知识认识的片面性,使得我们只知所以然,而不知其之所以然!限制了我们网络知识水平的提高。但是课本上所学到的理论知识是为我们的实际操作指明了方向、提供相应的方法,真正的职业技巧是要我们从以后的实际工作中慢慢汲取的。而针对实际操作中遇到的一些特殊的问题,我们不能拘泥于课本,不可纯粹地“以本为本”。

在这次实训中我得到了许多收获,我第一次体会到Java工程师的工作是什么样子的,也发现了很多不曾注意到的细节,在实训的演示过程中,我对作为一名Java工程师注意的事项应该从小事做起、从基本做起。把职业能力训练与职业素质有机的结合起来。相信这对我接下来学习专业知识会起到很有效的帮助,在接下来的几个月里,我会以作为一名职业人的身份在这几个方面要求自己,严格自我,向Java工程师靠近。

而经过这次实训,让我明白如果是一个完整项目的开发,必须由团队来分工合作,否则,即费力又费时还做不好这个项目。因此不管在工作中还是在生活中要和老师、同学保持良好的关系是很重要的。做事首先要学做人,要明白做人的道理,如何与人相处是现代社会的做人的一个最基本的问题。对于自己这样一个即将步入社会的人来说,需要学习的东西很多,他们就是最好的老师,正所谓“三人行,必有我师”,我们可以向他们学习很多知识、道理。

实训结束了感觉虽然辛苦,但很充实。我想这就是Java工程师的工作。我也体会到Java工程师成功地完成一个任务的那种兴奋,那种小有成就的感觉是只有置身其中的人才能体会的。

总之,这次实训为我提供了与众不同的学习方法和学习体会,从书本中面对现实,为我将来走上社会打下了扎实的基础。作为在校计算机专业的学生,现在我能做的就是吸取知识,提高自身的综合素质,提高自己的职业技能,自己有了能力,到时候才会是“车到山前必有路”。我相信在不久的未来,会有属于我自己的一片天空。

我希望计算机专业的同学在以后的学习或工作中以务实的态度给提供更多的机会锻炼自己,为大家的成才与就业奠定坚实的基础;并希望同学们要做好角色定位,将自己所学的知识,学熟、学精。

多学习和收集与项目有关的资料,来提高自己的业务水平,同时多请教经验丰富的老师,使他们好的经验能够对自己起到借鉴作用,在他们的帮助下,能够很快的培养自己的管理技能及节省时间,避免做无用功,也可以让自己了解很多项目管理上的捷径,从而减少自己会遇到的挫折和错误。

推荐第4篇:socket编程实验心得体会

实验心得体会

在本次实验中,我通过对网络课上所学知识的应用,学到了很多实践中的知识。并且加深了我对课本知识的理解和认识,在实验过程中,更容易记忆和深入理解各种协议的工作以及在网络编程中应该注意的一系列问题。

我们的第一个实验是对ARP、ICMP、FTP和HTTP协议的分析和验证。在利用软件Etherpeek抓取在主机通信中的报文,得到了很多的关于这些协议的具体参数。在课程学习过程中,书本和老师给我的感觉就是太枯燥,通过课本的学习根本没有办法理解各种协议的工作细节。有很多的细微之处是想不通的。但是,在本次实验中,我就通过各种报文的分析,看到了网络中不同层次协议之间的协做过程。对应不同层之间就是通过协议来使用,我对整个网路的大体架构有了一个统筹的了解,虽然对很多的更深入的知识不是很了解,但是比我在课上学的东西要更有趣,而且容易学习,更能够我学习的兴趣。

第二个实验是Socket编程实验。在编写网络程序之前,我对网路通信可以说一无所知,根本不知道那些网路上的程序是怎么通过网路进行通信的。在本次实验中,终于揭开了他们神秘的面纱。当然在实验中出现了很多的插曲,我是在Linux环境下编写的程序,很多技术方面的问题都无法解决。查阅书籍和网上咨询才弄懂了他们的来龙去脉,最终是将我的程序编写完了。开始接触网路编程时,那是一头雾水,根本不知从何下手。在看了辅导教员给我们程序之后才有了很多的起色,才能够自己编写程序。在网络编程中,我最深的体会就是对具体的内部细节不熟悉,导致在调试的过程中感觉到很无力。在很多函数的作用下,经常就是一团乱麻。之后,我每次编写之前就是将用到的函数的用法温习一下,最后还是能够解决很多的问题的。

本次试验是我们学习网路的第一次。以前的课程从来没有接触到网路方面的知识。这次的新知识对我们的挑战还算不是太大,通过我们的努力,所有的困难时被克服掉了。其实,实验应该是我们的重点,在以后的工作中要的就是我们的实际的动手能力,如果我们在学习期间就是只学了书本上的知识,那样对理论的了解是不够深刻的,只有通过实验才能激发我们的学习兴趣。总之,我觉得实验才是检验理论的唯一标准。

推荐第5篇:数控编程实习心得体会

数控编程实习心得体会

数控编程是数控加工准备阶段的主要内容之一,下面是数控编程实习心得体会,希望可以帮到大家。

篇一:数控编程实习心得体会

\"天下英雄皆我辈,一入江湖立马催。\" 从学校到社会的大环境的转变,身边接触的人也完全换了角色,老师变成老板,同学变成同事,相处之道完全不同。在这巨大的转变中,我们可能彷徨,迷茫,无法马上适应新的环境。我们也许看不惯企业之间残酷的竞争,无法忍受同事之间漠不关心的眼神和言语。很多时候觉得自己没有受到领导重用,所干的只是一些无关重要的杂活,自己的提议或工作不能得到老板的肯定。做不出成绩时,会有来自各方面的压力,老板的眼色同事的嘲讽。而在学校,有同学老师的关心和支持,每日只是上上课,很轻松。常言道:工作一两年胜过十多年的读书。两个月的实习时间虽然不长,但是我从中学到了很多知识,关于做人,做事,做学问。

一、关于工作

1.自学能力

\"在大学里学的不是知识,而是一种叫做自学的能力\"。参加工作后才能深刻体会这句话的含义。除了英语和计算机操作外,课本上学的理论知识用到的很少很少。我担任的是文员一职,平时在工作只是打打电话处理文件,几乎没用上自己所学的专业知识。而同公司的网站开发人员就大不一样了。计算机知识日新月异,在一个项目中,他们经常被要求在很短的时间内学会用一种新的计算机语言进行开发设计,他们只能在自己以前的基础上努力自学尽快掌握知识。在这个信息爆炸的时代,知识更新太快,靠原有的一点知识肯定是不行的。我们必须在工作中勤于动手慢慢琢磨,不断学习不断积累。遇到不懂的地方,自己先想方设法解决,实在不行可以虚心请教他人,而没有自学能力的人迟早要被企业和社会所淘汰。

2.工作辛苦

由于现在还住校,所以每天7点不到就得起床去挤公交车,就算再寒冷再差的天气,只要不是周末,都得去上班,有时候公司业务繁忙,晚上或周末得加班,那留给个人支配的时间更少。我们必须克制自己,不能随心所欲地不想上班就不来,而在学校可以睡睡懒觉,实在不想上课的时候可以逃课,自由许多。

每日重复单调繁琐的工作,时间久了容易厌倦。象我就是每天就是坐着对着电脑打打字,显得枯燥乏味。但是工作简单也不能马虎,你一个小小的错误可能会给公司带来巨大的麻烦或损失,还是得认真完成。而象同公司的网络推广员每天得打电话,口干舌燥先不说,还要受气,忍受一些电话接听者不友好的语气有些甚至说要投诉。如果哪家公司有意向的还得到处奔波去商谈。而事实上所有的业务并不是一次就能交易成功的,他们必须具备坚忍不拔的个性,遭遇挫折时绝不能就此放弃,犯错遭领导责骂时不能赌气就辞职。而网站开发人员就经常得喝咖啡熬夜赶项目。一直以来,我们都是依靠父母的收入,而有些人则是大手大脚的花钱。也许工作以后,我们才能体会父母挣钱的来之不易。而且要开始有意识地培养自己的理财能力,我们刚毕业,工资水平普遍不高,除掉房租餐费和日常的开支,有时候寄点钱给父母补贴家用,我们常常所剩无几,一不留神可能就入不敷出成为月光一族,但此时我们再也不好意思伸手向父母要,因此很多时候我们要合理支配我们手中的这笔少的可怜的钱。

3.同事相处

踏上社会,我们与形形色色的人打交道。由于存在着利益关系,又工作繁忙,很多时候同事不会象同学一样对你嘘寒问暖。而有些同事表面笑脸相迎,背地里却勾心斗角不择手段,踩着别人的肩膀不断地往上爬,因此刚出校门的我们很多时候无法适应。比如我们公司做网络推广的同事,他们很注意对自己客户资料的保密,以防被同事抢去自己的业绩,因而关系显得有点淡漠。但是环境往往会影响一个人的工作态度。一个冷漠没有人情味的办公室,大家就会毫无眷恋之情,有更好的机会他们肯定毫不犹豫的跳槽。他们情绪低落导致工作效率 不高,每天只是在等待着下班,早点回去陪家人。而偶尔的为同事搞一个生日party,生病时的轻轻一句慰问,都有助于营造一个齐乐融融的工作环境。心情好,大家工作开心,有利于公司的发展。在电视上不止一次的看到职场的险恶,公司里同事之间的是非,我想我能做的就是\"多工作,少闲话\"。且在离毕业走人仅剩的几个月,更加珍惜与同学之间的相处。

二、总结

我是学管理的,在书本上学过很多套经典管理理论,似乎通俗易懂,但从未付诸实践过,也许等到真正管理一个公司时,才会体会到难度有多大;我们在老师那里或书本上看到过很多精彩的谈判案例,似乎轻而易举,也许亲临其境或亲自上阵才能意识到自己能力的欠缺和知识的匮乏。实习这两个月期间,我拓宽了视野,增长了见识,体验到社会竞争的残酷,而更多的是希望自己在工作中积累各方面的经验,为将来自己走创业之路做准备。

篇二:数控编程实习所用的字与字的功能

1、字符与代码

字符是用来组织、控制或表示数据的一些符号,如数字、字母、标点符号、数学运算符等。国际上广泛采用两种标准代码:

1)ISO国际标准化组织标准代码

2)EIA美国电子工业协会标准代码

⒉字

在数控加工程序中,字是指一系列按规定排列的字符,作为一个信息单元存储、传递和操作。字是由一个英文字母与随后的若干位十进制数字组成,这个英文字母称为地址符。

如:\"X2500\"是一个字,X为地址符,数字\"2500\"为地址中的内容。(FANUC系统中,地址中的值如果带小数点,表示是毫米单位,如果不带小数点,表示是微米单位。如X2500.表示X坐标2500毫米 X2500 表示X坐标2500微米)

⒊字的功能

组成程序段的每一个字都有其特定的功能含义,以下是以FANUC-0M数控系统的规范为主来介绍的。

⑴顺序号字N

顺序号又称程序段号或程序段序号。顺序号位于程序段之首,由顺序号字N和后续数字组成。其作用为校对、条件跳转、固定循环等。使用时应间隔使用,如N10 N20 N30......(程序号只是起标记作用,没有实际的意义)

⑵准备功能字G

准备功能字的地址符是G,又称为G功能或G指令,是用于建立机床或控制系统工作方式的一种指令。G00~G99

⑶尺寸字

尺寸字用于确定机床上刀具运动终点的坐标位置。

其中,第一组 X,Y,Z,U,V,W,P,Q,R 用于确定终点的直线坐标尺寸;第二组 A,B,C,D,E 用于确定终点的角度坐标尺寸;第三组 I,J,K 用于确定圆弧轮廓的圆心坐标尺寸。在一些数控系统中,还可以用P指令暂停时间、用R指令圆弧的半径等。

⑷进给功能字F

进给功能字的地址符是F,又称为F功能或F指令,用于指定切削的进给速度。对于车床,F可分为每分钟进给和主轴每转进给两种,对于其它数控机床,一般只用每分钟进给。F指令在螺纹切削程序段中常用来指令螺纹的导程。

⑸主轴转速功能字S

主轴转速功能字的地址符是S,又称为S功能或S指令,用于指定主轴转速。单位为r/min。

⑹刀具功能字T

刀具功能字的地址符是T,又称为T功能或T指令,用于指定加工时所用刀具的编号,如T01。对于数控车床,其后的数字还兼作指定刀具长度补偿和刀尖半径补偿用,如T0101。

⑺辅助功能字M

辅助功能字的地址符是M,后续数字一般为1~3位正整数,又称为M功能或M指令,用于指定数控机床辅助装置的开关动作,如M00~M99。

推荐第6篇:c语言编程心得体会(全文)

c语言编程心得体会

C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。下面让我们通过以下的心得体会来了解其他人在c语言编程上的学习感悟。

在科技高度发展的今天,计算机在人们之中的作用越来越突出,而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

说到我学习C语言时,真是用千言万语呀!记得刚开始学的时候,我的C语言学的并不是很好,学期都过了快一半了,对C语言还是一知半解的,我是第四小组的组长,组长的职位给我了很大的压力,我一直认为做学问都要做到这一点,要么做到最好,要么就不去做它,本着这样一个心太,我下了一个决心就是要学好C语言,开始我用了最笨的方法,就是一个厚厚的本子,一支笔,一本C语言书,天天有事没事抄程序,不管什么程序,我都不放过,一个一个的抄,抄了有好几个本,回到宿舍就在机子上调程序,一个月过去了,老师让做C语言项目,是一个学生成绩管理系统,在当时这样一个项目对我们来说真是难度不小,可是我本着一个试一试的心太去做了,一个打死我都不敢相信的奇迹出现了,这个程序我写出来了,而且几乎是一气合成,而且只用了一个晚上的时间,写了足足有六页的代码,看着写在本子上的代码我有点不相信,这怎么可能呢,当晚我没有睡着觉,高兴啊,谁能睡的着。 做这个项目让我明白了一些道理,再大的程序也是有不同的小程序组成的,因为我天天抄程序,抄的全是小程序,做这个大点的程序的时候我发现全是一个一个的小程序,抄了一个月的程序,当然能很顺利的就写出来了。

后来我明白了,抄程序是最笨的方法但我认为它是进步最快的方法,抄程序是积累经验的时候,而做项目才是真正把所学为所用的时候,可以说只有你做一个大点的项目出来才能真正是说明你学到了东西,你会用所学的东西,要不然就算你学的再多,不会用也没用啊,我还发现有很多同学,在学飞C语言的时候比我学的要好,可是他们却做不出来项目,就是说学会了但是不会用,那我说还不如不学呢。有点浪费时间。做学问特别是计算机一定要做的精准,比如说一个语句一个关键字,你一定要把它几乎所有的用方法都能清楚明白,比如说print语句,对于它你一定要明白什么时候用“‘,这些你都要非常的清楚明白,要不然说不定那一天你用会碰上麻烦事,一句话要学精了,语法掌握住了,接下来就是写程序了,其实抄程序并不是说一直没有目的去抄,你会发现当你抄一段时间以后就不用再抄了,因为大部分都是一样的你一看就知道怎么写了,当你一看到程序就知道它什么功能,那里有错的时候,那你的成绩可是进步不小啊,这并不需要太多的时间,只要你用心一个月足够了。

跟大家说几点经验:

1.在学习的时候一定要注意这几点,不会的一定要问明白,不管谁能让他教会你知识就是你的了,要学会让知识为我所用。在看书的时候一定要做好标记,特别是不懂的地方一定要标明是什么意思。

2.在学习语言的时候一定要记住动手,不要只说不做,这样会行成眼高手低,不管什么样的程序都要亲手做过才能说会了,不要整天说我不会学不会,其实是你不想学,只是你下决心抄一个月程序,我保证我能有大的进步,其实当你抄到一周到两周的时候你就会特想抄,因为你会发现程序你能看懂了,能帮别人调程序了,有一种成就感呀!它会让你更加努力的去学习。

3.再一点是我建议大家在上课的时候少看课本,课本要在下课的时候看特别是上课前一定要先看看课本,上课的时候呢就不要看了,不要老师讲到那个问题了你马上在书上找,这样不好,会影响你的注意力,其实还真不如注意听老师讲呢?因为你要是一边听一边看课本,你是看到了书上的答案但是老师的思路你没有听到,而要是你不看的话,你听明白了思路,一定是想迫切的看到结果,这个时候看课本才是记的最死的时候,学习要的是就是个效率吗?

4.提醒大家学习要讲效率,我发现有很多同学天天学习,每天最早到教室,走的又最晚,别人玩他在学,别人学他也学,可是别的一天30%的学习时间却比他们一天50%以上的学习时间的效率要高上不仅仅是几倍的问题,所以我要说的是不要对别人说你天天在学习,要说你天天在进步,学习不是要你学习了多久是,是要你学了多少东西的,你学一小时还没有别人学一分钟的效率高,难道自己不是浪费时间吗?不想学的时候就不要学,出去玩一会儿再来学说不定会有更好的效果。希望这些经验能跟大家分享一下,最后还是要跟大家强调一点,抄程序是学好C语言的最好最快的方法。

学习C语言已经一年多,对C也算得上半个入门者,期间也写过一些自娱自乐的代码。其实个人认为无论学习什么语言,最重要的是掌握习编程思想,然而C语言一种学习编程思想的基础语言。所以,C语言的重要性不言而喻。

下面是对C语言中有许多重要知识的总结:

1、一些基本的函数和基本数据类型的应用。其中,基本数据类型分为整型、浮点型、字符型、枚举类型。基本函数包括输入输出函数。

2、把运算符的优先顺序排列清楚,要分清楚哪个先运算,哪个后运算。

3、在编程之前要考虑好程序的算法,写出流程图,这样才能更加快速的、有效的编程。

4、要分清楚各个变量的生存期和作用域,不能发生混淆,以致发生错误。

5、数组和指针是c语言的经典之处,可以通用,并且互相转换,具有非常强大的功能,但是使用不当的话,会造成程序出错,打乱原有程序的规律,使可读性明显变差。

6、结构体也是常用的一种数据类型,它的功能也比较强大,相对于指针而言,结构体掌握起来比较容易理解和使用。

7、对于文件的操作是非常关键的,把输入的数据保存起来,下次还能够使用,这才是关键问题。所以对文件操作是否成功,使程序是否编制成功的重要因素。

我认为c语言是一门很基础的语言,所有的计算机语言都是相通的,只要一门学会了,其他语言就会很容易学会。但是c语言是基础中的基础,掌握好c语言对于今后别的语言的学习是非常有好处的。虽然学会了c语言的大部份基础知识,但是要掌握好c语言并不是一件简单的事情。以为把一点一滴的基础知识掌握牢固是不够的,主要是对程序编制要求的理解,思考如何利用c语言的所有基础知识来实现要编制程序的作用,以及如何更加简便的实现等等。这就需要有很强逻辑思维,和长时间的经验积累,以及自身的不断钻研等诸多因素的有机统一。

而我们软件测试的工作并不要求我们能够编出很复杂的程序,只要能够读懂编程人员的源程序就可以了。所以把c语言的基础知识学好是非常有必要的,也是必不可少的。

在学习c语言期间,每天都要不断的上机练习,这也是学好c语言必不可少的一步。因为不管你理论知识掌握的如何熟练,不上机实际操作的话,是没有任何效果的,许多问题都是在实际上机操作中显现出来的,在书本上是体现不出来的。书本上是永远不会出现你自己的思想成果的,正是应了那句话“实践是检验真理的唯一标准。”

学习完c语言后,我利用书本上的知识完成了软件工程师系统的11个版本。完成后才感觉到编写一个程序是多么不容易。光是这么一个简单的程序,就需要不断钻研和反复的推敲,还要加上大量的上机时间,现在才明白为什么编程是脑力劳动的真正意义了。

总之,通过c语言的学习,使我对计算机语言有了一些初步的认识和理解,使我对计算机语言不再像以前一样一无所知,认为那是高不可攀的、十分难以理解、一般人学不会的东西了。我认为只要学习方法掌握好,再加上刻苦的练习,是完全有可能学好任何一门计算机语言的。最后用一句话表明在学习c语言过程中的感受,那就是“痛苦并快乐着。”

推荐第7篇:C语言高级编程心得体会

高级语言程序设计心得体会

通过这五天的高级语言程序设计学习,我学到了很多东西,同时也更深一层次的体会到C语言知识的奥妙和无穷,激起了我对C语言知识学习的兴趣和激情。

学好C语言,除了一些必须要记忆的关键字、语法和库函数,还要学会使用C语言的有关算术运算符,以及包含这些运算符的表达式,掌握赋值语句的使用方法和各种类型数据(例如熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法,掌握不同类型数值之间赋值的规律等)的输入输出方法,能正确使用各种格式转换符等,并且还需要靠自己的逻辑思维能力。

另外,上机实验是学习程序设计语言必不可少的实践环节,特别是C语言灵活、简洁,更需要通过编程的实践来真正掌握它,然后,通过多次上机练习,就对语法知识慢慢有了感性的认识,时间久了,就会加深对它的理解,在理解的基础上就会自然而然地掌握C语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来理解的偏差,这就又加深了我们对C语言的认识。

还有就是在编程时我们要细心,编完后记得检查语法及符号遗漏或错误等相关的问题。

C语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从

开始的算法思路到运行调试以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程,使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们体会到自身知识和能力能在实际中的应用和发挥。不但可以激发创新意识,还可以开发创造能力、培养沟通能力。这次实习时间虽然仅有五天时间,但确实使我受益非浅。通过实习我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对visual c++的使用技巧。另外,实习中老师对我们进行了细心、耐心的指导,鼓励我们对程序进行合理改进,培养了我们的创新意识和创新能力。原来是我认为可怕的课程设计,就在种种辅助条件下完成了,心里有说不出的高兴。

在以后的三年大学专业学习乃至以后的就业工作中,C语言都起着巨大的作用,从很大程度上来说,我们专业的学生,要想在这个专业取得一定的成就,现在就得好好学好C语言,为未来埋下伏笔。总的来说,我觉得C语言并没想象中的那么晦涩难懂,关键是我们要先认真学会,熟悉它的语法知识,多多上机实践。只有先打好基础,我们才能学好C语言,才会熟练编程,最后才有所突破,有所建树。

推荐第8篇:编程专业实训心得体会

编程就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。下面是小编整理的编程专业实训心得体会,希望对大家有帮助!编程专业实训心得体会1

在软件实验室经过2个星期Jsp程序设计实训,从对软件开发没有太多经验的我掌握了更多的软件开发的方法和技能,收获颇多。

经过这次理论学习,了解到要做好软件开发,要求掌握的知识并不是只有编写代码方面的,网络、数据库、操作系统等的知识对做好项目开发是很有帮助的。这让我明确了以后学习的目标,在不断学习软件开发的同时,也应该继续其他相关知识的深入学习。

实训期间经历的许许多多,给我们带来了很多很多有实无形的东西,知识、友情以及团队开发的热情,快乐无一不包围着我们。在这我很想感谢几个人,王璐老师和班上一同参与这次实训的2位同学。王璐老师对我们备至关心,不论在学习前后,都给予我们关怀不少,并且王璐老师不愧是从事多年软件开发的专业人士,其深厚的专业技能知识和丰富的经验令我等钦佩无比。对于我们未出茅庐的大学生而言,遇到的问题多而复杂,询问有经验的人,他们或许一句话就能解决问题,而自己就得找资料或上网摸索可能要一两天,有时甚至绞尽完脑汁都不得其解。用个词形容,老师的解答如醍醐灌顶,而对我们,则甘之如饴。

实训这段期间真的好累,尽管实验室给我们提供了一个相当不错的上课学习环境,但是整天木木地待在实验室面对毫无生气的荧屏,为code而烦恼,为bug而郁闷,被文档所包围,随程序侵蚀。然而,这就是学习的生活,既选之也则安之。忙碌的生活让我每天似乎没有太多的时间去想一些其他的事,耐心的去调试,专注的去编写更好的算法,沉浸充实和快乐之中。

更重要的是,两个星期的实训使我们明白我们所欠缺的不仅仅是技术知识,更重要的是有一种处理事情的方法、面对问题的心态和动手能力。面对完全陌生的新知识、新技术、新项目以及整个IT行业,我们不能畏惧,要以一种积极的心态去面对,分析并抓住关键所在。因为我们所即将应对的每一个项目都是既需要实际操作,又需要详细规划的。作为组长,协调组员、激励其他组员和积极参与项目开发是我每天必做的工作。我认为每个人都应该在团队中做好自己应尽的职责,再优秀的个人也可能完成一个即庞大又复杂的项目工作,我们必需紧密的联合在一起,以一个团队的角色来面对。

总之,这次实训为我们以后从事软件开发工作打下了良好的专业基础,为我们的进一步学习提高打下了扎实的理论基础。

Jsp程序设计实训在不知不觉中就结束了,我感觉自己还有好多理论知识要学,还有好多的技术不懂呢!这是我大学以来第三次实训,每次实训我都感觉学到了好多东西!因为是一天到晚的不间断训练,所以记的会非常牢固。不像平时上课,每上两次的理论课却只有90分钟的实际操作。在课上,做的练习小项目都不复杂,可轮到做大的项目实训并且要求我们独立完成的时候,,就不那么顺手了,一个个技术问题,一个个bug接踵而至!我很感谢学校有实训这样的安排,把我们这一学期学的东西系统的集中的进行训练,对我们计算机水平的提高发挥着重要作用!还要感谢我们的王璐老师,王老师很温柔,也很有耐心,即使老师讲了很多遍的问题,我们不会,老师还是会走进我们给我们耐心的指导。还有,一起完成这个项目的其他小组成员,大家一起讨论算法,一起攻克Bug,一起协作,分工明确又彼此帮助,彼此传授自己的经验,和谐,积极而又快乐,充实。

经过这次的实训,我真真确确的感受到了团队的重要性,身为团队中的一员,一定要做好团队个成员之间的沟通,要彼此协作。充分发挥团队的力量,对于软件项目开发至关重要。同时,这次实训也暴露了自己在软件开发过程中相关理论、技术方面的不足,在以后的学习过程中要重视理论的学习,开发经验的积累,要多练习,多去尝试开发一些项目,查漏补缺,积累开发经验,并且要不断的去学习一些新技术。

此外,这次实训给我们营造了一个很好的类似于在公司实习的氛围,并且整个项目的流程是按照现实中项目的通常情况来安排的,无论是在项目的设计步骤还是日期安排上,不同于以往我们自己做课堂练习时缺乏这样详细的设计和计划,让我们向更正规的项目实施靠近了一步,并且在真正进入公司工作之前让我们更熟悉业务流程,使更多的时间可以专注于自己的工作而不是适应从学校到工作环境的转变上。

总之,经过这次实训学到了很多,成长了很多,相信在以后的项目开发中这些经验会让我受益匪浅的。

编程专业实训心得体会2

经过五天的Java实训,感触很深,收获也很大,对自己的缺点也有了很多的认识,回首本学期JAVA学习,重点还是在学习概念等一些常识性的东西,关于类型、变量、接口、输入输出流、分析异常、抛出异常,后期主要是小程序运用,Gui界面设计和事件。

在我学习的语言中,我自己认为Java是一门比较强大的面向对象的编程语言,不仅仅是因为它的跨平台型还有它的较强的实用性,强悍的嵌入性。

本次实训主要是针对我们对项目流程不熟悉和对整体项目的把握不清楚,学习数据库的设计和表的建设以及表与表之间的联系,还有一些代码的编写,这些都是我们所不熟悉的也是我们最薄弱的部分。

通过这一周的实训,虽然实训的时间不长,但是总体上收获挺大的,当我们正式准备学习实训java编程技术时,让我感到非常高兴,因为java一直学的是课本知识,所以实训对于我来说是必须要学会熟练操作的。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我遇到了很多以前未曾遇到的难点,有时后也难免会失去耐心,但是,通过老师的指导,自己的努力的练习,我顺利的化解了一道道的障碍。克服了Java学习上的一道道难关,现在自己已经基本掌握了java的基础知识。

有些知识点以前没有学过,但我也没有去研究,实训时突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但要浪费许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。另外一点,也是在实训中必不可少的部分,就是同学之间的互相帮助。所谓”当局者迷,旁观者清”,有些东西感觉自己做的是时候明明没什么错误,偏偏程序运行时就是有错误,让其他同学帮忙看了一下,发现其实是个很小的错误。所以说,相互帮助是很重要的一点,这在以后的工作或生活中也是很关键的。俗话说:“要想为事业多添一把火,自己就得多添一捆材”。

此次实训,我深深体会到了积累知识的重要性。在实训当中我们遇到了不少难题,但是经过我们大家的讨论和老师细心的指导,问题得到了解决。两个月的实训结束了,收获颇丰,同时也更深刻的认识到要做一个合格的程序员并非我以前想像的那么容易,最重要的还是细致严谨。社会是不会要一个一无是处的人的,所以我们要更多更快地从一个学生向工作者转变,总的来说我对这次实习还是比较满意的,它使我学到了很多东西,为我以后的学习做了引导,点明了方向。

这次实训,我们更多学到的是不懂就要问和自己应该尽自己的全力去尝试,哪怕失败,也要尽自己的全力,和身边的同学一起探讨而不是抄袭,团队合作和发挥团队意识,最后在自己的努力下终于运行成功,这种感觉美不可言,心情愉悦至极,有很强的成就感。

最后,我自己感觉这次实训的收获还是很大的,我相信在不久的将来我们会有自己的一片天空。

编程专业实训心得体会3

目前在国内制造业对数控加工高速增长的需求形势下,数控编程技术人才出现了严重短缺,数控编程技术已成为就业市场上的需求热点。以市场为导向的职业教育不断开辟这一领域的新课题,在传统职业的知识和技术上溶入了数字化信息的新技术、新知识、新工艺。国家大力发展职业教育,大力进行职教师资培训。以骨干教师为重点的培养培训活动在全国各个重点建设职教师资基地纷纷开展。我就是2007年第二批次国家级骨干教师培训的学员,培训地在济南数控编程培训学校,专业是数控加工技术。在济南学习期间,对于数控机床编程技术的学习心得写下来跟朋友们一起探讨。

一、学好数控编程技术需要具备以下几个基本条件:

(1)具有基本的学习资质,即学员具备一定的学习能力和预备知识。

(2)有条件选择好的培训机构和培训教材。

(3)在实践中积累经验。

二、学习数控编程技术,要求学员首先掌握一定的预备知识和技能,包括:

(1)基本的机械制图基础。

(2)基本的机械加工常识。

(3)机加工工艺基础。

(4)基本的三维造型技能。

三、选择培训教材应考虑的因素包括:

(1)教材的内容应适合于实际编程应用的要求,以目前广泛采用的基于CAD/CAM软件的交互式图形编程技术为主要内容。在讲授软件操作、编程方法等实用技术的同时也应包含一定的基础知识,使读者知其然更知其所以然。

(2)教材的结构。数控编程技术的学习是一个分阶段不断提高的过程,因此教材的内容应按不同的学习阶段进行合理的分配。同时,从应用角度对内容进行系统的归纳和分类,便于读者从整体上理解和记忆。

四、学习方法与技巧

同其他知识和技能的学习一样,掌握正确的学习方法对提高数控编程技术的学习效率和质量起着十分重要的作用。下面是几点建议:

(1)短期目标规划,在一个较短的时间内集中完成一个学习目标,并及时加以应用,避免进行马拉松式的学习。

(2)系统课题设计,按照课题要求有目的进行实操训练。

(3)注重培养规范的操作习惯,培养严谨、细致的工作作风,这一点往往比单纯学习技术更为重要。

(4)做好实践笔记,将平时所遇到的问题、失误和学习要点记录下来,这种积累的过程就是水平不断提高的过程。

总之,理论指导实践,而实践丰富了理论。理论联系实践才是数控编程技术学习的指导思想。

推荐第9篇:VHDL 编程的一些心得体会

VHDL 编程的一些心得体会(转) http://www.dzjs.net/html/EDAjishu/2007/0131/1504.html

VHDL 是由美国国防部为描述电子电路所开发的一种语言,其全称为(Very High Speed Integrated Circuit) Hardware Description Language。 与另外一门硬件描述语言 Verilog HDL 相比,VHDL 更善于描述高层的一些设计,包括系统级(算法、数据通路、控制)和行为级(寄存器传输级),而且 VHDL 具有设计重用、大型设计能力、可读性强、易于编译等优点逐渐受到硬件设计者的青睐。但是,VHDL 是一门语法相当严格的语言,易学性差,特别是对于刚开始接触 VHDL 的设计者而言,经常会因某些小细节处理不当导致综合无法通过。为此本文就其中一些比较典型的问题展开探讨,希望对初学者有所帮助,提高学习进度。

一. 关于端口

VHDL 共定义了 5 种类型的端口,分别是 In, Out,Inout, Buffer及 Linkage,实际设计时只会用到前四种。In 和 Out 端口的使用相对简单。这里,我们主要讲述关于 buffer和inout 使用时的注意事项。

与 Out 端口比,Buffer 端口具有回读功能,也即内部反馈,但在设计时最好不要使用 buffer,因为 buffer类型的端口不能连接到其他类型的端口上,无法把包含该类型端口的设计作为子模块元件例化,不利于大型设计和程序的可读性。若设计时需要实现某个输出的回读功能,可以通过增加中间信号作为缓冲,由该信号完成回读功能。

双向端口 Inout 是四种端口类型中最为特殊的一种,最难以学习和掌握,为此专门提供一个简单程序进行阐述,部分程序如下: ...„

① DataB’Z’);

③ Dout’1’ ); „ „

程序中 DataB 为双向端口,编程时应注意的是,当 DataB 作为输出且空闲时,必须将其设为高阻态挂起,即有类似第②行的语句,否则实现后会造成端口死锁。而当 DataB 作为有效输入时, DataB 输出必须处于高阻态,对于该例子中即,当 CE=’1’ and Rd=’1’时,

二.信号和变量

常数、信号和变量是 VHDL 中最主要的对象,分别代表一定的物理意义。常数对应于数字电路中的电源或地;信号对应某条硬件连线;变量通常指临时数据的局部存储。信号和变量功能相近,用法上却有很大不同。

表 1 信号与变量主要区别

信号 变量

赋值延迟 至少有△延时 无,立即变化

相关信息 有,可以形成波形 无,只有当前值 进程敏感 是 否 全局性 具有全局性,可存在于多个进程中 只能在某个进程或子程序中有效 相互赋值关系 信号不能给变量赋值 变量可以给信号赋值

对于变量赋值操作无延迟,初学者认为这个特性对 VHDL 设计非常有利,但这只是理论上的。基于以下几点原因,我们建议,编程时还是应以信号为主,尽量减少变量的使用。

(1)变量赋值无延时是针对进程运行而言的,只是一个理想值,对于变量的操作往往被综合成为组合逻辑的形式,而硬件上的组合逻辑必然存在输入到输出延时。当进程内关于变量的操作越多,其组合逻辑就会变得越大越复杂。假设在一个进程内,有关于变量的 3 个 级连操作,其输出延时 分别为 5ns,6ns,7ns,则其最快的时钟只能达到 18ns。相反,采用信号编程,在时钟控制下,往往综合成触发器的形式,特别是对于 FPGA 芯片而言,具有丰富的触发器结构,易形成流水作业,其时钟频率只受控于延时最大的那一级,而不会与变量一样层层累积。假设某个设计为 3 级流水作业,其每一级延时分别为 10ns,11ns,12ns,则其最快时钟可达 12ns。因此,采用信号反而更能提高设计的速度。

(2)由于变量不具备信息的相关性,只有当前值,因此也无法在仿真时观察其波形和状态改变情况,无法对设计的运行情况有效验证,而测试验证工作量往往会占到整个设计 70%~80%的工作量,采用信号则不会存在这类问题。

(3)变量有效范围只能局限在单个进程或子程序中,要想将其值带出与其余进程、子模块之间相互作用,必须借助信号,这在一定程度上会造成代码不够简洁,可读性下降等缺点。

当然,变量也具有其特殊的优点,特别是用来描述一些复杂的算法,如图像处理,多维数组变换等。

三.位(矢量)与逻辑(矢量)

bit 或其矢量形式 bit_vector只有’0’和’1’两种状态,数字电路中也只有’0’和’1’两种逻辑,因此会给初学者一个误区,认为采用位(矢量)则足够设计之用,而不必像std_logic那样出现’X’,’U’,’W’各种状态,增加编程难度。但实际情况却并非如此,以一个最简单 D型触发器设计为例 „ „

① proce(clk) ② begin

③ if clk’event and clk=’1’ then ④ Q

⑥ end proce; „ „

实际中 clk 对数据端 D的输入有一定的时间限制,即在 clk 上升沿附近(建立时间和保持时间之内),D必须保持稳定,否则 Q输出会出现亚稳态,如下图所示。

当 clk 和 D时序关系不满足时,由于 bit 只有’0’或’1’,系统只能随机的从’0’和’1’中给 Q 输出,这样的结果显然是不可信的;而采用 std_logic 类型,则时序仿真时会输出为一个’X’,提醒用户建立保持时间存在问题,应重新安排 D和 clk 之间时序关系。

此外,对于双向总线设计(前面已提及)、FPGA/CPLD上电配置等问题,如果没有’Z’,’X’等状态,根本无法进行设计和有效验证。

四.关于进程

进程(Proce)是 VHDL 中最为重要的部分,大部分设计都会用到 Proce 结构,因此掌握Proce 的使用显得尤为重要。以下是初学和使用 Proce 经常会出错的例子。

1.多余时钟的引入

在设计时往往会遇到这种情况,需要对外部某个输入信号进行判断,当其出现上跳或下跳沿时,执行相应的操作,而该信号不像正常时钟那样具有固定占空比和周期,而是很随机,需要程序设计判断其上跳沿出现与否。这时,很容易写出如下程序:

① proce(Ctl_a) -- Ctl_a即为该输入信号 ② begin

③ if Ctl_a’event and Ctl_a=’1’ then ④ „ „ ; --执行相应操作 ⑤ end if ; ⑥ end proce;

由于出现第③行这类语句,综合工具自动默认 Ctl_a 为时钟,某些 FPGA 更会强行将该输入约束到时钟引脚上。而设计者的初衷只是想将其作为下位机的状态输入以进行判断。上面的程序容易造成多时钟现象,增加设计的难度。解决的办法可以如下,将 Ctl_a 增加一级状态 Ctl_areg 寄存,通过对 Ctl_a 和Ctl_areg 状态判断上跳与否,改正程序如下: ① proce(clk) ② begin

③ if clk’event and clk=’1’ then ④ Ctl_areg

⑤ if Ctl_areg=’0’ and Ctl_a=’1’ then--上跳判断 ⑥ „ „ ; --执行相应操作 ⑦ end if; ⑧ end if;

⑨ end proce;

程序中第④行用以产生两个相邻状态,第⑤行对前后状态进行判断是否有上跳现象发生。其中,需注意的是 clk 的时钟频率应明显快于 Ctl_a信号的变化频率,以保证正确采样。

2.输出多驱动

误用 Proce经常会引起输出多驱动源的发生,即在两个以上的进程内对同一信号赋值操作。

以下程序就出现了这类情况: ⑴ Proc_a: proce(clk) ⑵ begin

⑶ if clk’event and clk=’1’ then ⑷ Dout

⑹ end proce;; ⑺

⑻ Proc_b:proce(sel_en) ⑼ begin

⑽ if sel_en=’1’ then ⑾ Dout

⒀ end proce;

进程 Proc_a 和 Proc_b 中都出现了对 Dout 的赋值语句,设计者原本的想法是,只要合理控制好 clk 和 sel_en 输入,使其不发生冲突,即 clk上升沿时 sel_en 不为’1’;sel_en 为’1’时,不出现 clk 的上升沿,这样 Proc_a,Proc_b 两个进程就不会发生冲突。但综合时,综合工具会将所有可能情况全部罗列进去,包括第⑶行和第⑽行同时成立的情况,此时对于 Dout就有 Din_A和 Din_B 两个输入驱动,Dout 不知接收哪一个,因此该程序无法综合,改正的方法是只要将两个进程合并成一个即可。

由于进程在 VHDL 中的重要性,对此专门做了一个总结如下: (1)一个进程中不允许出现两个时钟沿触发,(Xilinx 公司 CoolRunner 系列 CPLD 支持单个时双钟的双触发沿除外) (2)对同一信号赋值的语句应出现在单个进程内,不要在时钟沿之后加上 else 语句,如 if clk’event and clk=’1’ then - else „ 的结构,现有综合工具支持不了这种特殊的触发器结构

(3)当出现多层 IF语句嵌套时,最好采用 CASE 语句替代,一是减少多层嵌套带来的延时,二来可以增强程序的可读性

(4)顺序语句如 IF语句、CASE 语句、LOOP 语句、变量赋值语句等必须出现在进程、函数或子程序内部,而不能单独出现在进程之外

(5)进程内部是顺序执行的,进程之间是并行运行的;VHDL 中的所有并行语句都可以理解为特殊的进程,只是不以 Proce结构出现,其输入信号和判断信号就是隐含的敏感表

五.关于 VHDL 学习中的几点说明

与软件语言相比,VHDL 最重要的特点就在于它的并行运行特性,当设计好的电路上电后,器件内部所有信号将同时并发工作,而不会以软件方式按照程序顺序执行,即使在进程内部也是趋向并行工作的。例如以下程序: ① proce(clk) ② begin

③ if clk’event and clk=’1’ then ④

⑥ end if;;

⑦ end proce;

综合的结果两个独立的 D 型触发器,虽然进程内部应按顺序执行,但是硬件实现后,只要采样到时钟上升沿, 和 状态会同时翻转,而不会先执行 的变化,然后才会去执行 的转变。因此,VHDL 学习过程中,应加强硬件概念的理解,没有硬件概念或是硬件概念不强,在设计时,往往会将 VHDL 设计以软件编程的方式来处理,而得出一些不可思议的结果。

作为一门硬件描述语言,VHDL 几乎可以用来描述现有的大型系统数字电路、算法以及其它设计。但是,限于目前综合工具的水平,VHDL 中的许多语法还不能支持,例如:

dout

推荐第10篇:某数控编程实习心得体会

XX数控编程实习心得体会

实习结束了,但学习却是永无止境,通过我实习,我学到许多知识与技术。以下是小编收集的《数控编程实习心得体会》,仅供大家阅读参考!

数控编程实习心得体会

以市场为导向的职业教育不断开辟这一领域的新课题,在传统职业的知识和技术上溶入了数字化信息的新技术、新知识、新工艺。国家大力发展职业教育,大力进行职教师资培训。以骨干教师为重点的培养培训活动在全国各个重点建设职教师资基地纷纷开展。我就是20xx年第二批次国家级骨干教师培训的学员,培训地在 济南数控编程培训学校,专业是数控加工技术。在济南学习期间,对于数控机床编程技术的学习心得写下来跟朋友们一起探讨。

一、学好数控编程技术需要具备以下几个基本条件:

(1)具有基本的学习资质,即学员具备一定的学习能力和预备知识。

(2)有条件选择好的培训机构和培训教材。

(3)在实践中积累经验。

二、学习数控编程技术,要求学员首先掌握一定的预备知识和技能,包括:

(1)基本的机械制图基础。

(2)基本的机械加工常识。

(3)机加工工艺基础。

(4)基本的三维造型技能。

三、选择培训教材应考虑的因素包括:

(1)教材的内容应适合于实际编程应用的要求,以目前广泛采用的基于CAD/CAM软件的交互式图形编程技术为主要内容。在讲授软件操作、编程方法等实用技术的同时也应包含一定的基础知识,使读者知其然更知其所以然。

(2)教材的结构。数控编程技术的学习是一个分阶段不断提高的过程,因此教材的内容应按不同的学习阶段进行合理的分配。同时,从应用角度对内容进行系统的归纳和分类,便于读者从整体上理解和记忆。

四、学习方法与技巧

同其他知识和技能的学习一样,掌握正确的学习方法对提高数控编程技术的学习效率和质量起着十分重要的作用。下面是几点建议:

(1)短期目标规划,在一个较短的时间内集中完成一个学习目标,并及时加以应用,避免进行马拉松式的学习。

(2)系统课题设计,按照课题要求有目的进行实操训练。

(3)注重培养规范的操作习惯,培养严谨、细致的工作作风,这一点往往比单纯学习技术更为重要。

(4)做好实践笔记,将平时所遇到的问题、失误和学习要点记录下来,这种积累的过程就是水平不断提高的过程。

总之,理论指导实践,而实践丰富了理论。理论联系实践才是数控编程技术学习的指导思想。

数控编程实习心得体会

这两周在车间里度过,总的来说,这是我大学学习生涯中难忘的一段经历,从大一到现在,可以说,这是我第一次操作数控机床,真真正正由自己动手加工出一个成品零件,真是有一种小小的成就感,在感到喜悦之余,我觉得我们学到了很多,比上课学到的要多得多,要实用。因为在课堂上,吕老师只会给我们将一大堆的理论,像这样枯燥乏味的理论课,我感觉自己对数控这门学科很茫然,有点学不下去的感觉,而实际不同,这东西是要理论与实际相结合的,如果你不去亲自动手操作,那你永远不会明白这里面的奥妙。现在发现数控这东西其实还挺有趣的。

在课堂上的时候,我感觉吕老师给我们讲的那些代码以及格式,和那些编程,我们根本就没有去理解,只是一味的单纯去记,以至于我们什么都不懂。其实实际与理论还是有区别的,比如说加工涉及到的切削用量,对于我们从来没有操作过的人来说,完全失去了他的参考价值,我们还是要从实际加工中进行调试,使加工尺寸既要达到要求,又要操作规范,这对于我们来说可不是一件容易的事。

在实习过程中,陈老师耐心地给我们讲解数控铣床上面每个指令的使用,在陈老师的指导下,我们很快就上手了,踏入了数控这个门槛,我们也积极认真地学习,认真完成老师布置下来的任务。在完成任务之余,我们还发挥自己的想象空间,自己尝试着编程,不断反复的练习

实训期间,我们做的是一个尺寸80*80的塑料件,做这个零件的时候,我们学会了简单的自己对刀和对零件的车削,通过简单的加工,我们开始了解了返参命令,还有程序的编辑输入,以及增量的调节,还有很多很多,接下来的时候我们是在这块塑料件上铣出编辑好程序的形状,刚开始我以为这些全是自动的,可我错了,在接下来做这个零件的时候,我发现对刀是一件很困难的事,花了我一定的时间,我发现,在操作的时候真的要很小心,仔细的去看,不然的话,很可能就会出现问题,如果不小心就会致使工件损坏,甚至撞刀,以及安全事故,所以时刻应该保持一个严谨的态度,我觉得这是很有必要的。

通过这次试训,我们真正做到了理论联系实际,学以致用,使我们的数控知识进一步得到了巩固,增强了我们走进制造业的信心,这次实训虽然做的还不够好,但我觉得从实践中我们多多少少学到了一些知识。

在这次实训中,让我体会最深的是理论联系实际,实践是检验真理的唯一标准。理论知识固然重要,可是无实践的理论就是空谈。真正做到理论与实践的相结合,将理论真正用到实践中去,才能更好的将自己的才华展现出来。我以前总以为看书看的明白,也理解就得了,经过这次的实训,我现在终于明白,没有实践所学的东西就不属于你的。俗话说:“尽信书则不如无书”我们要读好书,而不是读死书。现在的社会需要的是动手能力强的人,而不是理论好的人,对于我们高职生来说这更重要了,我们学校的目标就是培养一流的职业技能的人。

实训期间,我认为我也有很多不足的地方,比如说工作态度不够积极,学习不够认真等等。我相信通过我的努力,我以后一定会改掉这些缺点的.我坚信通过这一段时间的实习,所获得的实践经验对我终身受益,在我毕业后的实际工作中将不断的得到验证,我会不断的理解和体会实习中所学到的知识,在未来的工作中我将把我所学到的理论知识和实践经验不断的应用到实际工作来,充分展示自我的个人价值和人生价值。为实现自我的理想和光明的前程努力。不经一番寒彻骨,那得梅花扑鼻香!”我相信,自己坚定的信心及个人坚定的意志,一定会实现自己美好理想,走上自己的成功之路。

时光总是匆匆而逝,很快两个星期就这样过去了。大二了,我们就要步入社会,面临就业了,就业单位不会像老师那样点点滴滴细致入微地把要做的工作告诉我们,更多的是需要我们自己去观察、学习、总结。如果不具备这项能力的话,就难以胜任未来的挑战。

随着科学的迅猛发展,新技术的广泛应用,会有很多领域是我们未曾接触过的,只有敢于去尝试才能有所突破,有所创新。两周的数控实习带给我们的,不仅仅是我们所接触到的那些操作技能,也不仅仅是通过几项工种所要求我们锻炼的几种能力,更多的则是需要我们每个人在实习结束后根据自己的情况去感悟,去反思,勤时自勉,有所收获,使这次实习达到了他的真正目的。

数控编程实习心得体会

大学两年即将结束, 学院为了使我们更多了解产品、设备,提高对数控制造技术的认识,加深数控在工业各领域应用的感性认识,开阔视野了解相关设备及技术资料,熟悉典型零件的加工工艺,特意安排了我们到拥有较多类型的数控机床设备,生产技术较先进的工厂进行生产操作实习。 为以后的工作打下基础,在最后的几个月里开始了我们的实习。为期一个多月的生产实习,我们来到了xx第一机床厂进行了实习

一、单位介绍

xx第一机床厂始建于1952年,是国家生产金属切削机床的重点企业,是xx省数控产业化基地。企业位于xx市南内环街16号,占地面积万平方米。三面临街,地处城市中心区域,地理位置优越,交通便利。企业在册职工1293人,其中各类专业技术人员320人。资产总额亿元,负债总额亿元。企业拥有立式加工中心、卧式加工中心、高精度导轨磨、大型数控龙门镗铣床、三坐标测量仪、双频激光干涉仪等高精尖加工和检测设备468台,具备完善的工艺保证体系和准确的计量检测手段。

企业主要产品有高、中、低档数控车床、卧式车床及龙门框架类机床,共三大系列、61个品种、182种规格,其中:数控车床16个品种,43个规格,跟踪国内先进水平,市场潜力巨大;卧式车床14个品种,64个规格,性价比高、用户满意度好;龙门框架类机床31个品种,75个规格,呈旺销态势。特别是新产品数控龙门镗铣床不仅市场前景看好,而且拥有知识产权,具有核心竞争优势。以“太一机”为注册商标的产品畅销全国,并远销世界十多个国家和地区。企业技术力量雄厚,产品开发周期短、见效快,企业技术中心以其强势的科技开发能力和现代的设计手段被评为省级技术中心;企业以诚信经营和快捷周到的服务著称,在全国绝大多数省、市、自治区建有销售网点并形成了长效网络体系,企业注重产品质量,曾于XX年通过ISO9001国际质量体系认证。

二、实习目的

毕业实习是我们在完成本专业基础课和专业课的学习之后,综合运用知识的重要的实践性教学环节,是机电专业必修的实践课程,在实践教学体系中占有重要地位。通过毕业实习使自己在实践中验证、巩固和深化已学的专业理论知识,通过知识的运用加深对相关课程理论与方法的理解与掌握。加强对企业及其管理业务的了解,将学到的知识与实际相结合,运用已学的专业理论知识对实习单位的各项业务进行初步分析,善于观察和分析对比,找到其合理和不足之处。灵活运用所学专业知识,在实践中发现并提炼问题,提出解决问题的思路和方法,提高分析问题及解决问题的能力。

三、实习内容

在这短短的几个星期内,大家每天都要学习一项新的技术,并在很短的实习时间里,完成从对各项具体操做的一无所知到制作出一件成品的过程,我们在老师们耐心细致地指导下,很顺利的完成各自的实习内容,并且基本上都达到了老师预期的实习要求,圆满地完成了实习。在实习期间,通过学习车工、钳工的操作,我们做出了自己的工件,虽然这几个星期的实习是对我们的一个很大的考验,但是看到自己平生第一次在车间中做出的工件,我们都喜不自禁,感到很有成就感。

来到工厂,首先工人师父给我们上安全课,告诉我们什么可以弄什么不可以弄,一定要服从厂里还有老师的管理,并且要自己注意安全,不要到处乱跑等,还给我们说了一些活生生的事件,加强我们对安全的认识,并且还给我们说了一些厂子里的优秀业绩等,还给我们介绍了一些分厂的各种不同的地方。

接下来几天实习老师带领我们来到各分厂熟悉一下车工、锻工、磨工,铣工等机械设备的构造、工作原理、基本操作和基本功能,等以后实习的时候再让我们实际操作。通过老师的讲解,我们熟悉了普通车刀的组成、安装与刃磨,了解了车刀的主要角度及作用,刀具切削部分材料的性能和要求以及常用刀具材料,车削时常用的工件装夹方法、特点和应用,常用量具的种类和方法,了解了车外圆、车端面、车内孔、钻孔、车螺纹以及车槽、车断、车圆锥面、车成形面的车削方法和测量方法,了解了常用铣床、刨床、磨床的加工方法和测量方法。

比如在使用磨床机床工作时,头不能太靠近砂轮,以防止切屑飞入眼睛,磨铸铁时要戴上防护眼镜,不要用手摸或测量正在切削的工件,不要用手直接清除切屑,应用刷子或专用工具清除,严禁用手去刹住转动着的砂轮及工件,开机前必须检查砂轮是否正常,有无裂痕,检查工件是否安装牢固,各手柄位置是否正确。开动铣床机床前,要检查铣床传动部件和润滑系统是否正常,各操作手柄是否正确,工件、夹具及刀具是否已夹持牢固等,检查周围有无障碍物,才可正常使用,变速、更换铣刀、装卸工件、变更进给量或测量工件时,都必须停车。更换铣刀时,要仔细检查刀具是否夹持牢固,同时注意不要被铣刀刃口割伤。铣削时,要选择合适的刀具旋转方向和工件进给方向,切削速度、切削深度、进给量选择要适当,要用铁勾或毛刷清理铁屑,不能用手拉或用嘴吹铁屑,工作加工后的毛刺应夹持在虎钳上用锉刀锉削,小心毛刺割手。铣齿轮时,必须等铣刀完全离开工件后,方可转动分度头手柄。

车工要求较高的手工操作能力。通过老师的讲解,我们了解了车刀的种类,常用的刀具材料,刀具材料的基本性能,车刀的组成和主要几何角度,车床的功能和构造,老师最后给我们示范了车床的操作方法,并示范加工了一个木模,然后就让我们开始自己独立实习,虽然操作技术不怎么熟练,经过几天的车工实习,最后还是各自独立的完成了实习。 车床运转时,不能用手去摸工件表面,严禁用棉纱擦抹转动的工件,更不能用手去刹住转动的卡盘。当用顶尖装夹工件时,顶尖与中心孔应完全一致,不能用破损或歪斜的顶尖,使用前应将顶尖和中心孔擦净,后尾座顶尖要顶牢,用砂布打磨工件表面时,应把刀具移动到安全位置,不要让衣服和手接触工件表面。加工内孔时,不可用手指支持砂布,应用木棍代替,同时速度不宜太快。禁止把工具、夹具或工件放直接在车床床身上和主轴变速箱上。工作时,必须集中精力,注意头、手、身体和衣服不能靠近正在旋转的机件,如工件、带轮、皮带、齿轮等。

四、实习收获

通过车工实习,我们熟悉了有关车工及车工工艺方面的基本知识,掌握了一定的基本操作技能,已经会初步正确使用和操作车床,而且还增强我们的实践动手能力,以及分析问题和解决问题的能力。

数控车床的操作,就是通过编程来控制车床进行加工。数控机床是综合应用计算机、自动控制、自动检测及精密机械等高新技术的产物,是技术密集度及自动化程度很高的典型机电一体化加工设备,它与普通机床相比,其优越性是显而易见的,不仅零件加工精度高,产品质量稳定,且自动化程度极高,可减轻工人的体力劳动强度,大大提高了生产效率。只要输入正确的程序,车床就会执行相应的操作,通过数控车床的操作及编程,深深地感受到了数字化控制的方便、准确、快捷。通过数控实习,我们了解了数控机床及数控加工概念,掌握了数控机床程序编制内容,数控实习使我们具备了一定的数控加工基础知识,我们基本上可以能阅读并且编制简单数控操作加工程序,初步掌握了数控机床的操作与维护。

车工、锻工、磨工,铣工实习是切削加工技术的必要途径之一,可以培养我们的观察能力、动手能力,开拓我们的视野,使我们平时学习的理论知识和操作实践得到有效的结合。

在观察的时候,我们在不懂的地方向工人师父请教,明白了很多书本上没有的东西。 在听了工人师傅的讲解后,明白了一般零件的加工过程如下:

胚料---划线---刨床(工艺上留加工余量)--粗车--热处理,调质--车床半精加工--磨--齿轮加工--淬火(齿面)--磨面

齿轮零件加工工艺:

粗车--热处理--精车--磨内孔--磨芯,轴端面--磨另一端面--滚齿--钳齿--剃齿--铡键槽--钳工--完工

最后我们在师父的指导下,亲自加工了一个零件,使我们大家都兴奋不易。

在自己亲手加工的时候,很多问题都出现在我们的面前,使我们更加加深了各种知识的了解,在自己加工十时,使我对对刀,参数的设置,编程的要求,工艺,还有在加工中的各种操做,以及刀补的建立,还有各种参数的修改,以及各种量具的使用有了更加深刻的了解。

在实习的期间,我们还学习了数控车床、铣床等。数控给我们留下了深刻的印象,它们让我看到了这行业的未来。

实习结束了,但学习却是永无止境,通过我实习,我学到许多知识与技术。在这次实习中我也学会了怎样去面对失败。实习的生活使我难以忘怀。

第11篇:VHDL 编程的一些心得体会

VHDL 编程的一些心得体会(转)

VHDL 是由美国国防部为描述电子电路所开发的一种语言,其全称为(Very High Speed Integrated Circuit) Hardware Description Language。 与另外一门硬件描述语言 Verilog HDL 相比,VHDL 更善于描述高层的一些设计,包括系统级(算法、数据通路、控制)和行为级(寄存器传输级),而且 VHDL 具有设计重用、大型设计能力、可读性强、易于编译等优点逐渐受到硬件设计者的青睐。但是,VHDL 是一门语法相当严格的语言,易学性差,特别是对于刚开始接触 VHDL 的设计者而言,经常会因某些小细节处理不当导致综合无法通过。为此本文就其中一些比较典型的问题展开探讨,希望对初学者有所帮助,提高学习进度。

一.关于端口

VHDL 共定义了 5 种类型的端口,分别是 In, Out,Inout, Buffer及 Linkage,实际设计时只会用到前四种。In 和 Out 端口的使用相对简单。这里,我们主要讲述关于 buffer和inout 使用时的注意事项。

与 Out 端口比,Buffer 端口具有回读功能,也即内部反馈,但在设计时最好不要使用 buffer,因为 buffer类型的端口不能连接到其他类型的端口上,无法把包含该类型端口的设计作为子模块元件例化,不利于大型设计和程序的可读性。若设计时需要实现某个输出的回读功能,可以通过增加中间信号作为缓冲,由该信号完成回读功能。

双向端口 Inout 是四种端口类型中最为特殊的一种,最难以学习和掌握,为此专门提供一个简单程序进行阐述,部分程序如下:

...„

①DataB

② (others=>’Z’);

③ Dout

④ ( others=>’1’ );

„ „

程序中 DataB 为双向端口,编程时应注意的是,当 DataB 作为输出且空闲时,必须将其设为高阻态挂起,即有类似第②行的语句,否则实现后会造成端口死锁。而当 DataB 作为有效输入时, DataB 输出必须处于高阻态,对于该例子中即,当 CE=’1’ and Rd=’1’时,

二.信号和变量

常数、信号和变量是 VHDL 中最主要的对象,分别代表一定的物理意义。常数对应于数字电路中的电源或地;信号对应某条硬件连线;变量通常指临时数据的局部存储。信号和变量功能相近,用法上却有很大不同。

表 1信号与变量主要区别

号变量

赋值延迟至少有△延时无,立即变化

相关信息有,可以形成波形无,只有当前值进程敏

感是否全局性具有全局性,可存在于多个进程中只能在某个进程或子程序中有效相互赋值关系信号不能给变量赋值变量可以给信号赋值

对于变量赋值操作无延迟,初学者认为这个特性对 VHDL 设计非常有利,但这只是理论上的。基于以下几点原因,我们建议,编程时还是应以信号为主,尽量减少变量的使用。

(1)变量赋值无延时是针对进程运行而言的,只是一个理想值,对于变量的操作往往被综合成为组合逻辑的形式,而硬件上的组合逻辑必然存在输入到输出延时。当进程内关于变量的操作越多,其组合逻辑就会变得越大越复杂。假设在一个进程内,有关于变量的 3 个级连操作,其输出延时分别为 5ns,6ns,7ns,则其最快的时钟只能达到 18ns。相反,采用信号编程,在时钟控制下,往往综合成触发器的形式,特别是对于 FPGA 芯片而言,具有丰富的触发器结构,易形成流水作业,其时钟频率只受控于延时最大的那一级,而不会与变量一样层层累积。假设某个设计为 3 级流水作业,其每一级延时分别为 10ns,11ns,12ns,则其最快时钟可达 12ns。因此,采用信号反而更能提高设计的速度。

(2)由于变量不具备信息的相关性,只有当前值,因此也无法在仿真时观察其波形和状态改变情况,无法对设计的运行情况有效验证,而测试验证工作量往往会占到整个设计 70%~80%的工作量,采用信号则不会存在这类问题。

(3)变量有效范围只能局限在单个进程或子程序中,要想将其值带出与其余进程、子模块之间相互作用,必须借助信号,这在一定程度上会造成代码不够简洁,可读性下降等缺点。

当然,变量也具有其特殊的优点,特别是用来描述一些复杂的算法,如图像处理,多维数组变换等。

三.位(矢量)与逻辑(矢量)

bit 或其矢量形式 bit_vector只有’0’和’1’两种状态,数字电路中也只有’0’和’1’两种逻辑,因此会给初学者一个误区,认为采用位(矢量)则足够设计之用,而不必像std_logic那样出现’X’,’U’,’W’各种状态,增加编程难度。但实际情况却并非如此,以一个最简单 D型触发器设计为例

„ „

① proce(clk)

② begin

③ if clk’event and clk=’1’ then

④ Q

⑤ end if;

⑥ end proce;

„ „

实际中 clk 对数据端 D的输入有一定的时间限制,即在 clk 上升沿附近(建立时间和保持时间之内),D必须保持稳定,否则 Q输出会出现亚稳态,如下图所示。

当 clk 和 D时序关系不满足时,由于 bit 只有’0’或’1’,系统只能随机的从’0’和’1’中给 Q 输出,这样的结果显然是不可信的;而采用 std_logic 类型,则时序仿真时会输出为一个’X’,提醒用户建立保持时间存在问题,应重新安排 D和 clk 之间时序关系。

此外,对于双向总线设计(前面已提及)、FPGA/CPLD上电配置等问题,如果没有’Z’,’X’等状态,根本无法进行设计和有效验证。

四.关于进程

进程(Proce)是 VHDL 中最为重要的部分,大部分设计都会用到 Proce 结构,因此掌握Proce 的使用显得尤为重要。以下是初学和使用 Proce 经常会出错的例子。

1.多余时钟的引入

在设计时往往会遇到这种情况,需要对外部某个输入信号进行判断,当其出现上跳或下跳沿时,执行相应的操作,而该信号不像正常时钟那样具有固定占空比和周期,而是很随机,需要程序设计判断其上跳沿出现与否。这时,很容易写出如下程序:

①proce(Ctl_a) -- Ctl_a即为该输入信号

② begin

③ if Ctl_a’event and Ctl_a=’1’ then

④„„ ; --执行相应操作

⑤ end if ;

⑥ end proce;

由于出现第③行这类语句,综合工具自动默认 Ctl_a 为时钟,某些 FPGA 更会强行将该输入约束到时钟引脚上。而设计者的初衷只是想将其作为下位机的状态输入以进行判断。上面的程序容易造成多时钟现象,增加设计的难度。解决的办法可以如下,将 Ctl_a 增加一级状态

Ctl_areg 寄存,通过对 Ctl_a 和Ctl_areg 状态判断上跳与否,改正程序如下:① proce(clk)

② begin

③ if clk’event and clk=’1’ then

④ Ctl_areg

⑤ if Ctl_areg=’0’ and Ctl_a=’1’ then--上跳判断

⑥„„ ; --执行相应操作

⑦ end if;

⑧ end if;

⑨ end proce;

程序中第④行用以产生两个相邻状态,第⑤行对前后状态进行判断是否有上跳现

象发生。其中,需注意的是 clk 的时钟频率应明显快于 Ctl_a信号的变化频率,以保证正确采样。

2.输出多驱动

误用 Proce经常会引起输出多驱动源的发生,即在两个以上的进程内对同一信号赋值操作。

以下程序就出现了这类情况:

⑴ Proc_a: proce(clk)

⑵ begin

⑶ if clk’event and clk=’1’ then

⑷ Dout

⑸ end if

⑹ end proce;;

⑻ Proc_b:proce(sel_en)

⑼ begin

⑽ if sel_en=’1’ then

⑾ Dout

⑿ end if;

⒀ end proce;

进程 Proc_a 和 Proc_b 中都出现了对 Dout 的赋值语句,设计者原本的想法是,只要合理控制好 clk 和 sel_en 输入,使其不发生冲突,即 clk上升沿时 sel_en 不为’1’;sel_en 为’1’时,不出现 clk 的上升沿,这样 Proc_a,Proc_b 两个进程就不会发生冲突。但综合时,综合工具会将所有可能情况全部罗列进去,包括第⑶行和第⑽行同时成立的情况,此时对于 Dout就有 Din_A和 Din_B 两个输入驱动,Dout 不知接收哪一个,因此该程序无法综合,改正的方法是只要将两个进程合并成一个即可。

由于进程在 VHDL 中的重要性,对此专门做了一个总结如下:

(1)一个进程中不允许出现两个时钟沿触发,(Xilinx 公司 CoolRunner 系列 CPLD 支持单个时双钟的双触发沿除外)

(2)对同一信号赋值的语句应出现在单个进程内,不要在时钟沿之后加上 else 语句,如 if clk’event and clk=’1’ then - else„的结构,现有综合工具支持不了这种特殊的触发器结构

(3)当出现多层 IF语句嵌套时,最好采用 CASE 语句替代,一是减少多层嵌套带来的延时,二来可以增强程序的可读性

(4)顺序语句如 IF语句、CASE 语句、LOOP 语句、变量赋值语句等必须出现在进程、函数或子程序内部,而不能单独出现在进程之外

(5)进程内部是顺序执行的,进程之间是并行运行的;VHDL 中的所有并行语句都可以理解为特殊的进程,只是不以 Proce结构出现,其输入信号和判断信号就是隐含的敏感表

五.关于 VHDL 学习中的几点说明

与软件语言相比,VHDL 最重要的特点就在于它的并行运行特性,当设计好的电路上电后,器件内部所有信号将同时并发工作,而不会以软件方式按照

程序顺序执行,即使在进程内部也是趋向并行工作的。例如以下程序:① proce(clk)

② begin

③ if clk’event and clk=’1’ then

⑥ end if;;

⑦ end proce;

综合的结果两个独立的 D 型触发器,虽然进程内部应按顺序执行,但是硬件实现后,只要采样到时钟上升沿,和 状态会同时翻转,而不会先执行的变化,然后才会去执行的转变。因此,VHDL 学习过程中,应加强硬件概念的理解,没有硬件概念或是硬件概念不强,在设计时,往往会将 VHDL 设计以软件编程的方式来处理,而得出一些不可思议的结果。

作为一门硬件描述语言,VHDL 几乎可以用来描述现有的大型系统数字电路、算法以及其它设计。但是,限于目前综合工具的水平,VHDL 中的许多语法还不能支持,例如:

dout

综合时就无法达到如此精度,因此这条语句主要用来编写测试激励,而很少出现在设计实体中。类似的情况还有很多,目前 VHDL 设计使用的也只是整个标准中的一部分,这也正是VHDL 的“可综合子集”性质,它一定程度上限制了 VHDL 的广泛应用,但是随着综合技术的发展,这种情况会逐渐得以改善,VHDL 也将在各个领域中发挥出愈来愈重要的作用

第12篇:某年大学生数控编程实习心得体会

XX年大学生数控编程实习心得体会

数控车床是数字程序控制车床的简称,它集通用性好的万能型车床、加工精度高的精密型车床和加工效率高的专用型车床的特点于一身,是国内使用量最大,覆盖面最广的一种数控机床,也是是一种通过数字信息,控制机床按给定的运动轨迹,进行自动加工的机电一体化的加工装备,经过半个世纪的发展,数控机床已是现代制造业的重要标志之一。以下是小编为各位收集整理提供的数控编程实习心得范文,希望对你有所帮助。欢迎大家阅读参考学习!

XX年大学生数控编程实习心得体会

以市场为导向的职业教育不断开辟这一领域的新课题,在传统职业的知识和技术上溶入了数字化信息的新技术、新知识、新工艺。国家大力发展职业教育,大力进行职教师资培训。以骨干教师为重点的培养培训活动在全国各个重点建设职教师资基地纷纷开展。我就是20xx年第二批次国家级骨干教师培训的学员,培训地在 济南数控编程培训学校,专业是数控加工技术。在济南学习期间,对于数控机床编程技术的学习心得写下来跟朋友们一起探讨。

一、学好数控编程技术需要具备以下几个基本条件:

(1)具有基本的学习资质,即学员具备一定的学习能力和预备知识。

(2)有条件选择好的培训机构和培训教材。

(3)在实践中积累经验。

二、学习数控编程技术,要求学员首先掌握一定的预备知识和技能,包括:

(1)基本的机械制图基础。

(2)基本的机械加工常识。

(3)机加工工艺基础。

(4)基本的三维造型技能。

三、选择培训教材应考虑的因素包括:

(1)教材的内容应适合于实际编程应用的要求,以目前广泛采用的基于CAD/CAM软件的交互式图形编程技术为主要内容。在讲授软件操作、编程方法等实用技术的同时也应包含一定的基础知识,使读者知其然更知其所以然。

(2)教材的结构。数控编程技术的学习是一个分阶段不断提高的过程,因此教材的内容应按不同的学习阶段进行合理的分配。同时,从应用角度对内容进行系统的归纳和分类,便于读者从整体上理解和记忆。

四、学习方法与技巧

同其他知识和技能的学习一样,掌握正确的学习方法对提高数控编程技术的学习效率和质量起着十分重要的作用。下面是几点建议:

(1)短期目标规划,在一个较短的时间内集中完成一个学习目标,并及时加以应用,避免进行马拉松式的学习。

(2)系统课题设计,按照课题要求有目的进行实操训练。

(3)注重培养规范的操作习惯,培养严谨、细致的工作作风,这一点往往比单纯学习技术更为重要。

(4)做好实践笔记,将平时所遇到的问题、失误和学习要点记录下来,这种积累的过程就是水平不断提高的过程。

总之,理论指导实践,而实践丰富了理论。理论联系实践才是数控编程技术学习的指导思想。

XX年大学生数控编程实习心得体会

目前在国内制造业对数控加工高速增长的需求形势下,数控编程技术人才出现了严重短缺,数控编程技术已成为就业市场上的需求热点。以市场为导向的职业教育不断开辟这一领域的新课题,在传统职业的知识和技术上溶入了数字化信息的新技术、新知识、新工艺。国家大力发展职业教育,大力进行职教师资培训。以骨干教师为重点的培养培训活动在全国各个重点建设职教师资基地纷纷开展。我就是XX年第二批次国家级骨干教师培训的学员,培训地在 济南数控编程培训学校,专业是数控加工技术。在济南学习期间,对于数控机床编程技术的学习心得写下来跟朋友们一起探讨。

一、学好数控编程技术需要具备以下几个基本条件:

(1)具有基本的学习资质,即学员具备一定的学习能力和预备知识。

(2)有条件选择好的培训机构和培训教材。

(3)在实践中积累经验。

二、学习数控编程技术,要求学员首先掌握一定的预备知识和技能,包括:

(1)基本的机械制图基础。

(2)基本的机械加工常识。

(3)机加工工艺基础。

(4)基本的三维造型技能。

三、选择培训教材应考虑的因素包括:

(1)教材的内容应适合于实际编程应用的要求,以目前广泛采用的基于CAD/CAM软件的交互式图形编程技术为主要内容。在讲授软件操作、编程方法等实用技术的同时也应包含一定的基础知识,使读者知其然更知其所以然。

(2)教材的结构。数控编程技术的学习是一个分阶段不断提高的过程,因此教材的内容应按不同的学习阶段进行合理的分配。同时,从应用角度对内容进行系统的归纳和分类,便于读者从整体上理解和记忆。

四、学习方法与技巧

同其他知识和技能的学习一样,掌握正确的学习方法对提高数控编程技术的学习效率和质量起着十分重要的作用。下面是几点建议:

(1)短期目标规划,在一个较短的时间内集中完成一个学习目标,并及时加以应用,避免进行马拉松式的学习。

(2)系统课题设计,按照课题要求有目的进行实操训练。

(3)注重培养规范的操作习惯,培养严谨、细致的工作作风,这一点往往比单纯学习技术更为重要。

(4)做好实践笔记,将平时所遇到的问题、失误和学习要点记录下来,这种积累的过程就是水平不断提高的过程。

总之,理论指导实践,而实践丰富了理论。理论联系实践才是数控编程技术学习的指导思想。

------

为了提高刀具的使用寿命和降低表面粗糙度,车刀刀尖常磨有半径较小的圆弧。在加工外圆、内孔及端面时,没有影响。但在加工圆锥和圆弧时,会产生过切或欠切现象,对工件形状、尺寸精度影响很大,所以必须对刀具圆弧进行补偿。对具有自动圆弧补偿机能的系统,可用G

41、G42进行自动补偿,此时只要按实际轮廓直接编程即可。对不具有自动圆弧补偿机能的系统,必须进行手工计算补偿。

自动补偿时,应注意一下几点,否则系统报警。

(1)G

41、G42只能在G00、G01程序段里使用,不能在G0

2、G03的程序段里使用。

(2)在返回换刀点前,必须用G40取消补偿。

(3)如果在子程序里调用了刀尖半径补偿,那么也必须在子程序里取消。

(4)G

41、G42指令不能重复使用。即在程序中如果已经调用了G41指令,就不能直接使用G42,若想使用,必须解除原补偿。

手工计算应掌握以下的图和公式

圆弧加工:

凸圆加工时,半径=R+r

凹圆加工时,半径=R-r

(r为刀尖圆弧半径)

倒角也属于圆锥加工,一般情况下,为简化计算可用下式直接补偿:(设图面倒角值为A)

刀尖圆弧:A+

0.8刀尖圆弧:A+

刀尖圆弧:A+1

六、理解加工方法巧编程

在加工中,有一些工件看似不好加工,但只要理解了加工方法,编程则变的很简单。

(1)多头螺纹加工。

有的系统有专用的多头螺纹加工指令,有的没有。多头螺纹的加工方法就是加工完一条螺旋线后,移动一个螺距再加工其他的螺旋线。如图6所示的双头螺纹加工。

图.6

G00 X32 Z3

G71 X34 Z-40 F4 B60 M32 M73

(第一条螺旋线加工,牙型高H按螺距计算)

G00 X32 Z5

(第二条螺旋线的起点,移动一个螺距.安全起见,一般后移.)

G71 X34 Z-40 F4 B60 M32 M73

(第二条螺旋线的加工)

G00 X500 Z500

M02

直进法是加工螺纹最常用的方法,但确是最不提倡采用的一种方法。由于刀具是径向进给的(与工件中心线垂直),因此金属从螺纹齿腹两侧去除,从而产生V形切屑。这种切屑很难断裂,因此切屑流动是一个问题。此外,由于刀片端部两侧要承受较高的热和压力,因此刀具寿命短。尽可能采用斜进法和左右车削法。

(2)油线的加工

油线在轴瓦里应用较多。油线的加工是由几条环型槽和几条螺旋线构成的(右螺旋线和左螺旋线)。如图7所示

图.7

G50 S1000

G00 X500 Z500

T0101 M03 S500 M42 M08

X98 Z3G00 Z-60

G73 X104 Z-60 K0 (第一条环型槽加工)

G00 Z-10

G73 X104 Z-10 K0 (第二条环型槽加工)

G97 S100

G71 X104 Z-60 H5 F50(右螺旋线加工)

G00 Z-60

G71 X104 Z-10 H5 F50 (左螺旋线加工)

G00 Z3

X500 Z500

M02

油槽一般是半圆槽,加工螺旋线时应使用直进刀法。

XX年大学生数控编程实习心得体会

“天下英雄皆我辈,一入江湖立马催。” 从学校到社会的大环境的转变,身边接触的人也完全换了角色,老师变成老板,同学变成同事,相处之道完全不同。在这巨大的转变中,我们可能彷徨,迷茫,无法马上适应新的环境。我们也许看不惯企业之间残酷的竞争,无法忍受同事之间漠不关心的眼神和言语。很多时候觉得自己没有受到领导重用,所干的只是一些无关重要的杂活,自己的提议或工作不能得到老板的肯定。做不出成绩时,会有来自各方面的压力,老板的眼色同事的嘲讽。而在学校,有同学老师的关心和支持,每日只是上上课,很轻松。常言道:工作一两年胜过十多年的读书。两个月的实习时间虽然不长,但是我从中学到了很多知识,关于做人,做事,做学问。

一、关于工作

1.自学能力

“在大学里学的不是知识,而是一种叫做自学的能力”。参加工作后才能深刻体会这句话的含义。除了英语和计算机操作外,课本上学的理论知识用到的很少很少。我担任的是文员一职,平时在工作只是打打电话处理文件,几乎没用上自己所学的专业知识。而同公司的网站开发人员就大不一样了。计算机知识日新月异,在一个项目中,他们经常被要求在很短的时间内学会用一种新的计算机语言进行开发设计,他们只能在自己以前的基础上努力自学尽快掌握知识。在这个信息爆炸的时代,知识更新太快,靠原有的一点知识肯定是不行的。我们必须在工作中勤于动手慢慢琢磨,不断学习不断积累。遇到不懂的地方,自己先想方设法解决,实在不行可以虚心请教他人,而没有自学能力的人迟早要被企业和社会所淘汰。

2.工作辛苦

由于现在还住校,所以每天7点不到就得起床去挤公交车,就算再寒冷再差的天气,只要不是周末,都得去上班,有时候公司业务繁忙,晚上或周末得加班,那留给个人支配的时间更少。我们必须克制自己,不能随心所欲地不想上班就不来,而在学校可以睡睡懒觉,实在不想上课的时候可以逃课,自由许多。

每日重复单调繁琐的工作,时间久了容易厌倦。象我就是每天就是坐着对着电脑打打字,显得枯燥乏味。但是工作简单也不能马虎,你一个小小的错误可能会给公司带来巨大的麻烦或损失,还是得认真完成。而象同公司的网络推广员每天得打电话,口干舌燥先不说,还要受气,忍受一些电话接听者不友好的语气有些甚至说要投诉。如果哪家公司有意向的还得到处奔波去商谈。而事实上所有的业务并不是一次就能交易成功的,他们必须具备坚忍不拔的个性,遭遇挫折时绝不能就此放弃,犯错遭领导责骂时不能赌气就辞职。而网站开发人员就经常得喝咖啡熬夜赶项目。一直以来,我们都是依靠父母的收入,而有些人则是大手大脚的花钱。也许工作以后,我们才能体会父母挣钱的来之不易。而且要开始有意识地培养自己的理财能力,我们刚毕业,工资水平普遍不高,除掉房租餐费和日常的开支,有时候寄点钱给父母补贴家用,我们常常所剩无几,一不留神可能就入不敷出成为月光一族,但此时我们再也不好意思伸手向父母要,因此很多时候我们要合理支配我们手中的这笔少的可怜的钱。

3.同事相处

踏上社会,我们与形形色色的人打交道。由于存在着利益关系,又工作繁忙,很多时候同事不会象同学一样对你嘘寒问暖。而有些同事表面笑脸相迎,背地里却勾心斗角不择手段,踩着别人的肩膀不断地往上爬,因此刚出校门的我们很多时候无法适应。比如我们公司做网络推广的同事,他们很注意对自己客户资料的保密,以防被同事抢去自己的业绩,因而关系显得有点淡漠。但是环境往往会影响一个人的工作态度。一个冷漠没有人情味的办公室,大家就会毫无眷恋之情,有更好的机会他们肯定毫不犹豫的跳槽。他们情绪低落导致工作效率 不高,每天只是在等待着下班,早点回去陪家人。而偶尔的为同事搞一个生日party,生病时的轻轻一句慰问,都有助于营造一个齐乐融融的工作环境。心情好,大家工作开心,有利于公司的发展。在电视上不止一次的看到职场的险恶,公司里同事之间的是非,我想我能做的就是“多工作,少闲话”。且在离毕业走人仅剩的几个月,更加珍惜与同学之间的相处。

二、总结

我是学管理的,在书本上学过很多套经典管理理论,似乎通俗易懂,但从未付诸实践过,也许等到真正管理一个公司时,才会体会到难度有多大;我们在老师那里或书本上看到过很多精彩的谈判案例,似乎轻而易举,也许亲临其境或亲自上阵才能意识到自己能力的欠缺和知识的匮乏。实习这两个月期间,我拓宽了视野,增长了见识,体验到社会竞争的残酷,而更多的是希望自己在工作中积累各方面的经验,为将来自己走创业之路做准备。

第13篇:微机编程

DATA SEGMENT

STRING DB \'A,c,d,B,e,H,f\' LEN EQU $-STRING

BUF DB 7 DUP (?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA

MOV DS,AX

LEA SI,STRING

MOV CX,LEN

LEA DI,BUF

LOOP:

MOV AL,[SI]

CMP SI,60H

JA NEXT

DEC CX

INC SI

CMP CX,0

JNZ LOOP

NEXT:

SUB AL,20H

MOV [DI],AL

INC DI

MOV AH,4CH

INT 21H

CODE ENDS

END START

第14篇:学习编程

当你能自如的运用数据结构和算法、TCP/IP原理、编译原理、操作系统原理、数据库以及Win32 API 调用、构造自己的C++库(网络库、数学库、测试库、图形库)以及各种引擎,出去毕业应该能在短短半年时间里薪水至少有7000以上甚至上万吧(其实毕业生出去95%以上可能没达到这个水平)。

其实也不用说太多,你问你自己几个问题,如果你都能做到或者学习半到2个月就能做到,那肯定是达标了:

1、我能用C++做出2D的RPG游戏吗?(C++与api或框架的结合运用能力)

2、我能用C++通过3种以上的方法写出四则运算表达式分析器吗?(C++与数据结构、算法的结合能力)

3、我能用C++写出类似STL的简化版的库吗?(库与框架设计能力与C++高级语法运用能力的结合)

补充:

①、你能这么问,说明你知道编程能力对IT行业高薪工作的重要性是至关重要的。②、你的目的性已较强(知道要深入下去),但是你也想有更加明确的目标,我可以给你讲一下怎么自己去寻找目标和路线以及怎样学习。

③、计算机专业领域一共有几个大方向,十几个分支方向,而每个分支方向又有几十个小方向,每一个方向的深入学习与熟练到一定火候都不是一朝一夕,互相之间也不是完全没联系的,但是你现在就应该选择一个大方向并在其中的一个小方向内深入(为什么要这么早就选择具体的分支方向?后面说)。

④、这里列出计算机的几个大方向(非编程开发类的我就不说了):

基本方向:

1、单片机、嵌入式方向

2、网络编程:涉及到服务器程序、客户端开发、脚本设计等。

3、系统编程:基础API开发、桌面开发、系统程序开发、服务程序

4、图形学:3D、2D、图像识别、人脸识别

5、音频:语音识别、音频解码、音频软件

6、编译原理:编译器设计、脚本解释器、虚拟机、非自然语言翻译系统

7、应用层开发:利用高层语言去开发表层应用

8、安全:反工程、病毒、反病毒、木马、反木马、软件破解、软件加壳

附加方向:

8、人工智能:遗传算法、神经网络、灰色系统等等

9、游戏设计:各种游戏引擎设计以及业务逻辑设计等

⑤、基本方向是你一定要选的,附加方向只是基于基本方向的一些锦上添花,但是不管你怎么选,最开始某些东西一定要深入而不是只是懂就够(当然你对自己要求似乎不会很低),我把这个列出来:

数据结构:下面其他理论的基础。

操作系统原理:理解操作系统的架构和细节,你才能对以后关于多线程、文件管理、内存管理、指令优先级等有一个正确理解和运用。

编译原理:能够升华你对计算机编程语言的理解,对以后出现的各种编译、解释、兼容、移植、优化、并发与并行算法等有一个深入理解。

数据库系统原理:这个是进入公司都要会的,也是大型软件开发的基础。

软件工程:这个是你能够在经验不足还能保证大项目正常完成的理论基础。

网络技术:这个是必须学的,因为目前几乎没有一款装几率很高的软件或者平台跟网络无关。

数学的话,主要是:离散数学、线性代数、高等数学、计算机图形学、概率论

以上几个基础就是你成为一个融汇各个主要分支牛人必须学的(当然不是指理论,而是理论+实践编码能力)

⑥以上都是大的基础,要一一攻破并深入学习,虽然网络时代计算机专业知识爆炸式的增长,但是以上几个基础掌握后,会发现,以后的什么新的理论和技术都是基于这些大基础,你就很容易理解了。

⑦我为什么开头不讲你要具体学什么怎么顺序学呢?因为那些技术你要掌握的话,根本可以自己解决,但是如果你由于兴趣,沉迷于一些自己可见的小范围技术的话,那么毕业后虽然也能找到不错的工作,薪水也可能高,但是不能成为一个大牛现在才开始讲学习顺序,虽然你说不要推荐书,不过我还是要用书来做顺序。

C语言是可以写很多核心和高级的东西,而不只是小东西,但是从你代码来看,居然用到了 goto,我不是说你那些程序用到GOTO有什么不好,而是一定要避免用GOTO,goto是错误之源,如果你有什么内容非要用到goto才能写到,说明你的编码技巧还有不少提高空间。

你的学习顺序应该是:

C:做一个超级马里奥出来,并能够读取文本脚本来更新关卡。

C++:写一个2D图形引擎,封装掉细节,实现面向对象设计和可复用设计,并且用到《设计模式》中提到的一些设计模式,这样才能算对C++有一个很好的掌握。

MFC:MFC技术虽然近期已经冷下来了,但是你能熟练掌握它,才能证明你的C++OO技术够纯熟,严格证明你掌握了MFC很简单,你只要用MFC做出一个杀毒引擎就差不多了。推荐的书有《深入浅出MFC》。

《Windows程序设计》:和MFC不同的是,用的是windows核心SDK,也就是API,这本书学完后,你才能从操作系统层面上算掌握了win32平台下的机理(其实win64和win32大部分机理类似)。

C#:C#里**了当代和前沿计算机科学里最先进的一些语法(虽然执行效率一直被人质疑),但是你学完C#并深入后,至少能够算是对计算机语言有一个更加深刻的理解了。如何证明你C#学的不错了?也很简单,再次写一个随便什么游戏,比如俄罗斯方块。如果更加证明自己呢?用它写一个P2P网络对战游戏。

(如果你注意的话,会发现我说的学习顺序都是沿着语言和某些技术的,为什么呢?因为这些语言和技术涉及到特定的领域技术和计算机理论思想,比如【真正】学完了C#的话,就不单指学完了C#,而是把多种语言范式都学习了一遍,以及现代的程序开发思维(因为里面用到了很多让你一劳永逸的技术))

以上5个步骤都是基础大步骤,要解决的话要没1-2年应该不够。

与此同时,要尽快选出文中你感兴趣的方向作为3-5年的长期方向,不要担心过早选择分支方向会有什么损失,因为计算机很多分支是相通的,只有你把分支方向深入进去,才能真正理解很多理论的实践意义。并且一旦你在某个分支领域形成了较强的优势(比如,到公司里只有你这方面最强),那么你就是稀缺人才。

关于大方向的步骤就不说了,你主要就是要把我说的这几个基础步骤先解决,同时平时要注重大方向理论结合实际去编码和开发。

如果只是看了一本经典的C++教材,基本上也就只能做一个基于控制台的的“图书管理系统或者类似而的东西”,而真正需要的东西往往总是与一些其它东西结合的。

比如如果要做一个Windows程序员,首先肯定要会开发Windows下的GUI程序,这就涉及了两个常用工具――MFC和.net framework。关于MFC有两本经典的书,候俊杰的《深入浅出MFC》和孙鑫的另外一本,如果要学习.net framework,那么不妨顺便学习一下C#,

经典书籍无疑是《C#入门经典》。顺便说一下,有了C++的基础,C#的语言部分基本上两三天就能熟悉了。

Windows程序员如果要对操作系统更加的熟悉,肯定还要了解Win32 API。无论是MFC还是VB、.net framework其本质都是对API的封装,在对API的了解过程中,可以更深刻的理解Windows的运行机制。这里推荐的无疑是《Windows核心编程》

如果需要开发Windows平台下比较底层的程序,比如RamDisk、杀毒软件、防火墙等,那么就又有两个必学的课题了。一个是Win32汇编,一个是基于C/C++的驱动程序编写。Win32汇编的书无疑就是罗云彬的《琢石成器》,而驱动程序的书实在是太少了,将WDM的书可能还有一两本算是经典,WDF就是开玩笑了。

如果要用C++开发Windows下的游戏,那么DirectX无疑是一个必学项目。

如果要用C++开发嵌入式系统,那么当然要看看单片机和ARM的书籍了(顺便说一下,单片机程序基本上都用汇编或者C语言来写)

如果是编写用于Linux的GUI程序,那么就有必要了解几个流行的GUI库。QT、GTK+、wxWidgets是其中最优秀的几个。顺便说一下,QT还是跨平台的,一次编写,然后就可以编译到Linux、Windows、Mac不同的系统中。关于QT的书这里推荐《C++ GUI Qt4 编程》,官方教材。

如果是编写涉及网络的程序,比如说类似eMule这样涉及应用层协议的东西,那么首先学习一下网络的基本知识是很必要的,这里推荐的是《计算机网络:自顶向下方法》最后再加一些比较根本的东西:算法。算法始终是软件的灵魂,经典教材有《算法导论》和《具体数学》等

C++的高级技巧。一般的C++通用教材不会涉及的,而在实践中又会遇到的某些很别扭的、比较难回答的问题。这类涉及C++高级技巧的书,最经典的无疑是《Effective C++》,另外关于C语言的《C陷阱和缺陷》、《C专家编程》也不错。

______________________网摘

第15篇:shell编程

shell的作用: 是一个软件, 一个cli, 一门解释型的面向过程的程序设计语言

shell如何解析一个完整的命令行? 命令行的处理过程如下:

1.历史命令替换

2.命令行拆分为token(单词)(以空格或tab隔开, 即以空白隔开)

3.历史更新

4.处理引用

5.定义别名替换和函数

6.建立重定向、后台、管道

7.变量替换($USER、$NUM等)

8.命令替换(echo \"abc `date` def\")

9.文件名替换(*.conf ->a.conf b.conf)

10.程序执行(内部命令、外部命令、shell脚本等)

一个命令行在执行之前, shell先将其参数进行替换(解析、扩展)

如将变量替换、命令替换、文件名替换, 最后才执行命令

对二进制程序它解析不了, 它解析的是程序执行之前命令行中的参数

第16篇:编程心得

1. 对于液晶点阵,做任何图形的子函数,一定要注意,必须为整数,即像素必须为整数,

否则将出现错误,比如划三角形,必须让三角形的斜率为直线,不然不能得到预期的结果。

2. 对于变量的定义,如果在条件语句里面必须放在语句最前面,如果在整个函数的里面,

必须放在整个函数的最前面。

3. GDB来调试已经生成的可执行程序hello.命令如下:Gdbhello ,参数-d指示源代码所

在的目录去搜寻。一旦出现GDB的命令提示符(gdb),就表明GDB已经准备好接收来自用户的各种调试命令了。如果想在调试环境下运行这个程序,可以使用GDB提供的“run”命令,而程序在正常运行时所需的各种参数可以作为“run”命令的参数传入,或者使用单独的“set args”命令进行设置。如果在执行“run”命令时没有给出任何参数,GDB将使用上一次“run”或“set args”命令指定的参数。如果想取消上次设置的参数,可以执行不带任何参数的“set args”命令。

GDB是一个源代码级的调试器,使用“list”命令可以查看当前调试对象的源代码。该命令的通用格式为“list [m,n]”,表示显示从m行开始到n行结束的代码段,而不带任何参数的“list”命令将显示最近10行源代码。

要根据行号设置断点,可以使用“ break linenum”命令。要根据函数名设置断点,则应该使用“break funcname”命令。

条件断点允许当一定条件满足时暂时停止程序的执行。它对于调试来讲非常有用。设置条件断点的正确语法如下:

break linenum if expr

break funcname if expr

使用“continue”命令继续执行程序,直到遇到下一个断点。如果在调试时设置了很多断点,可以随时使用“info breakpoints”命令来查看设置的断点。此外,开发人员还可以使用“delete”命令删除断点,或者使用“disable”命令来使设置的断点暂时无效。被设置为无效的断点在需要的时候可以用“enable”命令使其重新生效。

为了单步跟踪代码,可以使用单步跟踪命令“step”,它每次执行源代码中的一行。

4、程序调试过程中,如果出现segment,一般来说是指针没有赋值,找不到原型。比如线程里面如果要调用screen_mm,那么必须传递参数screen_mm,而且需要在线程里面定义参数。

5、如果线程里面用到串口的操作,则最好把串口初始化程序放到线程里面进行。也可以把初始化作成模块,这样不会影响串口的收发数据。如果将串口初始化放到主程序里面,则最后将初始化程序放在线程的属性定义和建立线程之前,否则其他地方可能导致串口收发数据产生问题。还有对于串口操作的定义最好放在所有变量定义的最前面。

6、对于段错误这种问题。可以分析以下原因:

(1):指针非法,比如使用没有初始化的指针(没有为此指针指向的对象分配空间),或着Free掉之后再次使用。

(2):数组访问越界,访问的元素下标超过数组围长

(3):缓存溢出,对于这种while(1) {do}的程序,这个问题最容易发生,多此sprintf或着strcat有可能将某个

buff填满,溢出,所以每次使用前,最好memset一下,不过要是一开始就是段错误,而不是运行了一会儿出现的,(3)的可能性就比较小。

第17篇:编程经验

1.当性能遇到问题时,如果能在应用层进行计算和处理,那就把它从数据库层拿出来。

序和分组就是典型的例子。在应用层做性能提升总是要比在数据库层容易的多。就像对于MySQL,sqlite更容易掌控。

2.关于并行计算,如果能避免就尽量避免。如果无法避免,记住,能力越大,责任越大。

如果有可能,尽量避免直接对线程操作。尽可能在更高的抽象层上操作。例如,在iOS中,GCD,分发和队列操作是你的好朋友。人类的大脑没有被设计成用来分析那些无穷临时状态——这是我的惨痛教训所得。

3.尽可能简化状态,尽可能局部本地化,适用至上。

4.短小可组合的方法是你的好朋友。

5.代码注释是危险的,因为它们很容易更新不及时或给人误导,但这不能成为不写注释的

理由。不要注释鸡毛蒜皮的事情,但如果需要,在某些特殊地方,战略性的长篇注释是需要的。你的记忆会背叛你,也许会在明天早上,也许会在一杯咖啡后。

6.如果你认为一个用例场景也许“不会有问题吧”,它也许就是一个月后让你在发布的产品

中遭受惨痛失败的地方。做一个怀疑主义者,测试,验证。

7.有疑问时,和团队中所有相关人交流。

8.做正确的事情——你通常会知道这指的是什么。

9.你的用户并不傻,他们只是没有耐心理解你的捷径。

10.如果一个开发人员没有被安排长期的维护你们开发的系统,对他保持警惕。80%的血、

汗、泪水都是在软件发布后的时间里流的——那时你会变成一个厌世者,但也是更聪明的“行家”。

11.任务清单是你的好朋友。

12.主动让你的工作更有乐趣,有时这需要你付出努力。

13.悄无声息的崩溃,我仍然会为此从噩梦中惊醒。监控,日志,警报。清楚各种的假警报

和不可避免的感觉钝化。保持你的系统对故障的敏感和及时警报。

14.复杂是大敌。

第18篇:编程小结

编程小结

(一)

一.累加:加数1+加数2+加数3+„„+加数n (n个加数相加) 假设我们用i表示我们的加数数目,例如:当i=9时,就表示加数9 模版:int i,sum=0; (注意:如果是分数或者小数sum就是float类型)

for(i=1;i

可能是i--,或者i+=2等等) {通项a; (通项:用一个通用的式子表示所有的加数) sum+=a; } printf(“%d”,sum); (注意:如果是float类型就是%f)

1、求1+2+3„„+100的和,则通项a就是i。

分析:因为a就是i的值,所以这里不需要通项这一行了,因此整个大括号中间就只有一句话,所以大括号可以省略。整理之后就是: int i,sum=0; for(i=1;i

2、求2+4+6„„+100的和。

分析:因为a就是i的值,所以这里不需要通项这一行了,因此整个大括号中间就只有一句话,所以大括号可以省略,再分析,再分析我们发现每个加数都是偶数,那么i的变化就是i+=2,并且i是从2开始变化,那么在赋值的时候就应该是i=2。整理之后就是: int i,sum=0; for(i=2;i

3、求1+3+5„„+99的和。

分析:因为a就是i的值,所以这里不需要通项这一行了,因此整个大括号中间就只有一句话,所以大括号可以省略,再分析,再分析我们发现每个加数都是奇数,那么i的变化就是i+=2。整理之后就是: int i,sum=0; for(i=1;i

4、求1+5+9+13+17+„„的前100项的和,则通项为j+4,则程序为: int i,sum=0,j=1; for(i=1;i

5、求1+4+9+16+„„的前100项的和

分析可知:每个加数就是对应的加数数目的平方,则通项为i*i,则程序为: int i,sum=0; for(i=1;i

6、求1+(1+2)+(1+2+3)+(1+2+3+4)+„„的前100项的和。

分析可知每一个加数本身又是一个累加的式子,进一步观察可以发现,每个累加的式子都是加到这个加数所在的加数数目,即第35个加数就是1+2+3„„+35,并且是在前面一个加数的基础上加上这个加数所在的加数数目,也就是说第36个加数就是在前一个加数的基础上加上36,即:1+2+3„„+35+36。假设第k个加数是j,那么第k+1个加数就可以表示为j+(k+1),然后第k+2个加数就是j+(k+1)+(k+2)„„那么我们的通项就可以表示为a=a+i,则程序为: int i,sum=0, a=0; for(i=1;i

7、求1+1+2+3+5+8+13+21+„„的前100项的和。

分析可知从第三个加数开始,每一个加数是其前两个加数之和,假设第k个加数是m,第k+1个加数是n,然后第k+2个加数就是m+n,那么我们的通项就可以表示为a=m+n,但是要注意每次加数所对应的m和n不一样,所以我们要在求出每个加数之后,找出其对应的m和n;再分析我们可以发现当前的n是下一次的m,当前的加数a是下一次的n,假设接着上面的推导,那么第k+3个加数就是n+(m+n),对应我们的通项a=m+n,理解前面一句话。则程序为: int i,sum=0, m=1,n=1,a; for(i=3;i

8、求1+1/2+1/3+„„+1/100 分析可知每一个加数就是我们的加数数目的倒数,则通项a就是1/i,我们说循环变量i一般定义为整型,那么1/i的结果就是整型,这样的话小数点后面的就会被省略,所以正确的应该写为a=1.0/i,则程序为:

int i; float sum=0; for(i=1;i

9、求1+1/2+2/3+3/5+5/8+„„的前100项的和。

分析可从第三个加数开始观察,每一个加数的分母是其前一个加数的分子和分母之和,每一个加数的分子是其前一个加数的分母。可以将第一个加数看成1/1,那么第二个加数也符合我们的规律,只有第一个不符合,那么我们可以先将第一个加数加到sum,然后再变下一个加数,但是要注意每次加数所对应的分子和分母不一样,所以我们要在求出每个加数之后,找出下一个加数所对应的分子和分母。设通项表示为a=m/n, 那么下一个加数是n/(m+n),然后下下一个加数就是(m+n)/(m+n+n);再分析我们可以发现当前的分子和分母之和(m+n)是下一次的分母n,当前的分母n是下一次的分子m,注意这里在做数据交换的时候需要中间变量,对应我们的通项a=m/n,理解前面一句话。则程序为: int i; float sum=0, m=1,n=1,t; for(i=1;i

二.累乘:乘数1*乘数2*乘数3*„„*乘数n (n个乘数相乘) 假设我们用i表示我们的乘数数目,例如:当i=9时,就表示乘数9 模版:int i,sum=1; (注意:如果是分数或者小数sum就是float类型)

for(i=1;i

可能是i--,或者i+=2等等) {通项a; (通项:用一个通用的式子表示所有的乘数) sum*=a; } printf(“%d”,sum); (注意:如果是float类型就是%f)

1、求1*2*3„„*100的积,则通项a就是i。

分析:因为a就是i的值,所以这里不需要通项这一行了,因此整个大括号中间就只有一句话,所以大括号可以省略。整理之后就是: int i,sum=1; for(i=1;i

2、求2*4*6„„*100的和。分析:因为a就是i的值,所以这里不需要通项这一行了,因此整个大括号中间就只有一句话,所以大括号可以省略,再分析,再分析我们发现每个乘数都是偶数,那么i的变化就是i+=2,并且i是从2开始变化,那么在赋值的时候就应该是i=2。整理之后就是: int i,sum=1; for(i=2;i

3、求1*3*5„„*99的和。

分析:因为a就是i的值,所以这里不需要通项这一行了,因此整个大括号中间就只有一句话,所以大括号可以省略,再分析,再分析我们发现每个乘数都是奇数,那么i的变化就是i+=2。整理之后就是: int i,sum=1; for(i=1;i

4、求1*5*9*13*17*„„的前100项的积,则通项为j*4,则程序为: 分析:因为乘数的第一项是1,所以赋初值的时候j=1,然后乘数进行变化,变成5乘到sum里面,所以这里要将通项和求积这两句话互换位置。

int i,sum=1,j=1; for(i=1;i

5、求1*4*9*16*„„的前100项的积

分析可知:每个乘数就是对应的乘数数目的平方,则通项为i*i,则程序为: int i,sum=1; for(i=1;i

6、求1*(1*2)*(1*2*3)*(1*2*3*4)*„„的前100项的积。分析可知每一个乘数本身又是一个累乘的式子,进一步观察可以发现,每个累乘的式子都是乘到这个乘数所在的乘数数目,即第35个乘数就是1*2*3„„*35,并且是在前面一个乘数的基础上乘上这个乘数所在的乘数数目,也就是说第36个乘数就是在前一个乘数的基础上乘上36,即:1*2*3„„*35*36。假设第k个乘数是j,那么第k+1个乘数就可以表示为j*(k+1),然后第k+2个乘数就是j*(k+1)*(k+2)„„那么我们的通项就可以表示为a=a*i,则程序为: int i,sum=1, a=0; for(i=1;i

7、求1*1*2*3*5*8*13*21*„„的前100项的积。

分析可知从第三个乘数开始,每一个乘数是其前两个乘数之和,假设第k个乘数是m,第k+1个乘数是n,然后第k+2个乘数就是m+n,那么我们的通项就可以表示为a=m+n,但是要注意每次乘数所对应的m和n不一样,所以我们要在求出每个乘数之后,找出其对应的m和n;再分析我们可以发现当前的n是下一次的m,当前的乘数a是下一次的n,假设接着上面的推导,那么第k+3个乘数就是n*(m+n),对应我们的通项a=m*n,理解前面一句话。则程序为: int i,sum=1, m=1,n=1,a; for(i=3;i

8、求1*1/2*1/3*„„*1/100 分析可知每一个乘数就是我们的乘数数目的倒数,则通项a就是1/i,我们说循环变量i一般定义为整型,那么1/i的结果就是整型,这样的话小数点后面的就会被省略,所以正确的应该写为a=1.0/i,则程序为:

int i; float sum=1; for(i=1;i

9、求1*1/2*2/3*3/5*5/8*„„的前100项的积。

分析可从第三个乘数开始观察,每一个乘数的分母是其前一个乘数的分子和分母之和,每一个乘数的分子是其前一个乘数的分母。可以将第一个乘数看成1/1,那么第二个乘数也符合我们的规律,只有第一个不符合,那么我们可以先将第一个乘数乘到sum,然后再变下一个乘数,但是要注意每次乘数所对应的分子和分母不一样,所以我们要在求出每个乘数之后,找出下一个乘数所对应的分子和分母。设通项表示为a=m/n, 那么下一个乘数是n/(m+n),然后下下一个乘数就是(m+n)/(m+n+n);再分析我们可以发现当前的分子和分母之和(m+n)是下一次的分母n,当前的分母n是下一次的分子m,注意这里在做数据交换的时候需要中间变量,对应我们的通项a=m/n,理解前面一句话。则程序为: int i; float sum=1, m=1,n=1,t; for(i=1;i

10、求1+(1*2)+(1*2*3)+(1*2*3*4)+„„的前100项的和。

分析可知每一个加数本身是一个累乘的式子,进一步观察可以发现,每个累乘的式子都是乘到这个乘数所在的乘数数目,即第35个乘数就是1*2*3„„*35,并且是在前面一个乘数的基础上乘上这个乘数所在的乘数数目,也就是说第36个乘数就是在前一个乘数的基础上乘上36,即:1*2*3„„*35*36。假设第k个乘数是j,那么第k+1个乘数就可以表示为j*(k+1),然后第k+2个乘数就是j*(k+1)*(k+2)„„那么我们的通项就可以表示为a=a*i,再利用累加的模版,则程序为:

int i,sum=0, a=1; for(i=1;i

11、求1*(1+2)*(1+2+3)*(1+2+3+4)*„„的前100项的积。

分析可知每一个乘数本身又是一个累加的式子,进一步观察可以发现,每个累加的式子都是加到这个乘数所在的乘数数目,即第35个乘数就是1+2+3„„+35,并且是在前面一个乘数的基础上加上这个乘数所在的乘数数目,也就是说第36个乘数就是在前一个乘数的基础上加上36,即:1+2+3„„+35+36。假设第k个乘数是j,那么第k+1个乘数就可以表示为j+(k+1),然后第k+2个乘数就是j+(k+1)+(k+2)„„那么我们的通项就可以表示为a=a+i, 再利用累乘的模版,则程序为:

int i,sum=1, a=0; for(i=1;i

三.最大值和最小值:数字0,数字1,数字2,„„数字n-1(一共n个数字) 假设我们用i表示我们的数字所在的位置,并且第一个位置是0,例如:当i=9时,就表示这个数字在第10个位子

模版: int i,max,a[n]; (注意:如果是分数或者小数max和a[n]就是float

类型,注意这里定义的时候根据题目所给的具体数字把n换掉,千万不可以写a[n]o哦~~~~)

for(i=0;i

了数字,就在定义的时候直接赋值,这个循环就不需要了;如果要求产生给数组赋a到b之间的随机数,那么就用a[i]= a + rand()% (b-a);这句话代替这句。注意如果是float类型就是%f) max=a[0]; for(i=0;i”) max=a[i]; } printf(“%d”, max); (注意:如果是float类型就是%f)

1、求20个数字的最大值和最小值,要求赋1到100之间的随机数,并且输出它们及其下标。

分析:因为这里还要输出其下标,所以还有定义一个row来存放,并且要对其赋值为0,因为我们给max赋值为a[0],则程序为:

int i,max,min,a[20],row1=0,row2=0; for(i=0;ia[i]) (这里是找出最小值) { min=a[i]; row2=i; } } printf(“max =%d, row=%d\\n min =%d, row=%d\\n”, max,row1,min,row2);

2、求4*5矩阵的最大值和最小值,要求赋值随机数,并且输出它们及其下标。分析:虽然这是一个二维的数组,但是其思路仍然和一维数组的一样,区别只是这里需要用嵌套循环。要求还要输出其下标,二维数组的下标是两个,所以还要定义一个row和一个col来存放,并且要对它们赋值为0,因为我们给max赋值为a[0] [0],则程序为:

int i,j,max,min,a[4] [5],row1=0,row2=0,col1=0,col2=0; for(i=0;ia[i] [j]) (这里是找出最小值) { min=a[i] [j]; row2=i; col2=j; } } printf(“max =%d, row=%d, col=%d \\n min =%d, row=%d, col=%d \\n”, max,row1, col1, min,row2, col2);

3、求4*5矩阵的每一行最大值和最小值,要求赋值随机数,并且输出它们及其下标。

分析:虽然这是一个二维的数组,但是要求的是每一行的最大最小值,我们知道二维数组的每一行本身就是一个数组,那么我们就还需要一个控制行数的循环。要求还要输出其下标,二维数组的下标是两个,每一行的最大最小值其行号不就是i,所以还要定义一个存放列号的col,并且要对它赋值为0,因为我们给max赋值为每一行的第一个元素,也就是a[i] [0],则程序为: int i,j,max,min,a[4] [5],col1=0,col2=0; for(i=0;i

一维数组的最大最小值的程序)

{max=a[i] [0]; min=a[i] [0]; for(j=0;ja[i] [j]) (这里是找出最小值) { min=a[i] [j]; col2=j; } } printf(“max =%d, row=%d, col=%d \\n min =%d, row=%d, col=%d \\n”,

max,i, col1, min,i, col2); }

4、求4*5矩阵的每一列最大值和最小值,要求赋值随机数,并且输出它们及其下标。

分析:虽然这是一个二维的数组,但是要求的是每一列的最大最小值,二维数组的每一列可以看成一个数组,那么我们就还需要一个控制列数的循环。要求还要输出其下标,二维数组的下标是两个,每一列的最大最小值其列号不就是j,所以还要定义一个存放行号的row,并且要对它赋值为0,因为我们给max赋值为每一列的第一个元素,也就是a[0] [j],则程序为: int i,j,max,min,a[4] [5],row1=0,row2=0; for(i=0;i

一维数组的最大最小值的程序) {max=a[0] [j]; min=a[0] [j]; for(i=0;ia[i] [j]) (这里是找出最小值) { min=a[i] [j]; row2=i; } } printf(“max =%d, row=%d, col=%d \\n min =%d, row=%d, col=%d \\n”,

max, row1,j, min, row2,j); }

5、排序(冒泡法) 比如说 对于5个数字排序,首先要把5个数字放到一个一维的数组里面去 所以编程的前几句为:int a[5]

for(i=0;i

那接下来就是排序了,为了方便理解就将数组实际化:比如 a[5]里面放着{7,9,0,12,3}那画图出来就是

a[5]

a[0]

a[1]

a[2]

a[3]

a[4] 那我们排序的方法是这样的采用这样几步:

1,用a[0]与后面的(a[1]~a[4]里面的每一个成员比较即是说:a[0]~a[1]比较

a[0]~a[2]比较 a[0]~a[3]比较 a[0]~a[4]比较 )当后面的成员只要发现比a[0]小的就与他的位置交换 这部做完之后数组就应 该是这个样子:

a[0]

a[1]

a[2]

a[3]

a[4] 2,用a[1]与后面的(a[2]~a[4]里面的每一个成员比较即是说: a[1]~a[2]比较

a[1]~a[3]比较 a[1]~a[4]比较 )当后面的成员只要发现比a[1]小的就与他的位置交换 这部做完之后数 组该是这个样子:这个时候的a1不是我们赋初值时候的a1老就是我们改变后的数组所以这个时候的a1=9哦。

a[0]

a[1]

a[2]

a[3]

a[4] 3,用a[2]与后面的(a[3]~a[4]里面的每一个成员比较即是说: a[2]~a[3]比较

a[2]~a[4]比较 )当后面的成员只要发现比a[2]小的就与他的位置交换 这部做完之后数组就应 该是这个样子:

a[0]

a[1]

a[2]

a[3]

a[4] 4,用a[3]与后面的(a[4]~a[4]里面的每一个成员比较即是说: a[3]~a[4]比较 )当后面的成员只要发现比a[2]小的就与他的位置交换 这部做完之后数组就应 该是这个样子:

a[0]

a[1]

a[2]

a[3]

a[4] 循环就是 写成这个样子的哦:

for(i=0;i

for(j=i+1;j

{c=a[i];a[i]=a[j];a[j]=c;} (这个复合语句表示交换a[i]与a[j]进行交换)你把这个 循环好好的分析一下,当i=0 j可以取(1 2 3 4) 那if是不是就是a0跟a1—a4之间的所有进行比较并且交换。其他的以此类推。

最后是不是要对排好序的数组进行输出:

for(i=0;i

6、排序(选择法) 比如说 对于5个数字排序,首先要把5个数字放到一个一维的数组里面去 所以编程的前几句为:int a[5]

for(i=0;i

那接下来就是排序了,为了方便理解就将数组实际化:比如 a[5]里面放着{7,9,0,12,3}那画图出来就是

a[5]

a[0]

a[1]

a[2]

a[3]

a[4] 那我们排序的方法是这样的采用这样几步:

1,先把a[0]的下标储存起来,即赋值给k,然后用a[0]与后面的比较

(a[1]~a[4]里面的每一个成员比较即是说:a[0]~a[1]比较 a[0]~a[2]比较 a[0]~a[3]比较 a[0]~a[4]比较)当后面的成员只要发现比a[0]小的就把他的下标赋值给k,最后将a[0]和a[k]的位置交换,这步做完之后数组就应该是这个样子:

a[0]

a[1]

a[2]

a[3]

a[4] 2,先把a[1]的下标储存起来,即赋值给k,然后用a[1]与后面的比较

(a[2]~a[4]里面的每一个成员比较即是说: a[1]~a[2]比较 a[1]~a[3]比较 a[1]~a[4]比较)当后面的成员只要发现比a[1]小的就把他的下标赋值给k,最后将a[1]和a[k]的位置交换 这步做完之后数组就应该是这个样子:

a[0]

a[1]

a[2]

a[3]

a[4] 3,先把a[2]的下标储存起来,即赋值给k,然后用a[2]与后面的比较

(a[3]~a[4]里面的每一个成员比较即是说:a[2]~a[3]比较 a[2]~a[4]比较)当后面的成员只要发现比a[2]小的就把他的下标赋值给k,最后将a[2]和a[k]的位置交换 这步做完之后数组就应该是这个样子:

a[0]

a[1]

a[2]

a[3]

a[4]

4,先把a[3]的下标储存起来,即赋值给k,然后用a[3]与后面的比较 (a[4]里面的每一个成员比较即是说: a[3]~a[4]比较)当后面的成员只要发现比a[3]小的就把他的下标赋值给k,最后将a[3]和a[k]的位置交换 这步做完之后数组就应该是这个样子:

a[0]

a[1]

a[2]

a[3]

a[4]

循环就是 写成这个样子的哦:

for(i=0;i

{k=i; for(j=i+1;j

if(a[i]

k=j; if(k!=i)

{c=a[i];a[i]=a[j];a[j]=c;} }(这个复合语句表示交换a[i]与a[j]进行交换) 把这个循环好好的分析一下,当i=0, j可以取(1 2 3 4) 那if是不是就是a0跟a1—a4之间的所有进行比较并且交换。其他的以此类推。

最后是不是要对排好序的数组进行输出:

for(i=0;i

四.寻找特殊的数字或解应用题:输出a到b之间的所有的具有某个特点的数字 模版: int n,a,b; (注意:如果是分数或者小数a和b就是float类型)

scanf(“%d,%d”,&a,&b); (从键盘输入查找的范围;如果题目已经给

了范围,就在循环的时候直接带值,这句话就不需要了。注意如果是float类型就是%f。注意如果运行程序,在输入数据验证的时候注意格式要匹配) for(n=a;n

据题目把a和b换掉) {if(条件) (注意:这句话是这类题目的核心,有时候也许不是一

句话,这句话放在这的意思是判定是否是特殊数字) printf(“%d”, n); (注意:如果是float类型就是%f) }

1、输出3到1000之间的所有素数

分析:在做本题之前,先要搞明白什么是素数,它又是如何判定的。 补充:

素数 又叫质数,如果一个数只能被1和它本身整除,那么我们就说它是素数。 分析:既然一个素数只可以被1和它本身整除,那么当我们判断一个数n是不是素数的时候,就用这个数去除2到(n-1),一旦我们发现可以整除这个区间的某一个数,那么我们就不再去除别的数了,因为在2到(n-1)这个范围内,n可以整除其中的某一个数,那么就肯定不是素数。这个过程需要一个循环和停止循环的break来实现。继续分析,当我们在2到(n-1)这个范围内找不到n可以整除的数,那么就说明这个数是素数,那么我们就判断上面的循环时候做完了,如果中间就跳出循环,则说明不是素数,反之,如果做完了,那么就是素数。P判断能否整除,就是求余看是否为0,则程序如下:

int n; (n是要判断的数,具体根据题意赋值或从键盘输入) for(i=2;i=n) (也可以填i==n,因为如果上面的循环做完了,那么循环变量i=n) printf(“%d is a primenumber!\\n”,n); else printf(“%d is not a primenumber!\\n”,n); (这个if„else结构是判断

上面的循环有没有做完) 本题分析:只要用上面的程序替换掉模版的那个if就可以了,注意这里不再需要else了,因为题目只要求输出素数,输出语句也只需要一句,则程序如下: int n,i; for(n=3;n=n) printf(“%d is a primenumber!\\n”,n); }

2、输出1到100之间的所有同构数

分析:在做本题之前,先要搞明白什么是同构数,它又是如何判定的。 补充:

同构数 如果一个数出现在自己的平方数的右边,,那么我们就说它是同构数。 分析:既然一个同构数会出现在它自己的平方数的右边,那么当我们判断一个数n是不是同构数的时候,先要做的就是求出这个数的平方,然后该怎么判断是不是出现在右边呢?我们人有眼睛,可以直接看,但是电脑不长眼睛的,它看不到,它只能分析,那么它怎么分析呢?1到100之间的所有数只有一位或者两位,那么我们在取平方数右边的时候,只要取这个平方数的最右边的一位或者两位,与我们的数进行比较,看是否一样,如果一样就是同构数,反之就不是。怎么取一个数的最右边一位或者两位呢?求余!!!一个数对10求余就是取它的最右边一位,也就是个位;如果对100求余就是取它的最右边两位,也就是十位和个位。则程序如下:

int n; (n是要判断的数,具体根据题意赋值或从键盘输入) if(n*n%10==n|| n*n %100==n) printf(“%d is a isomorphic number!\\n”,n); 本题分析:直接带模版,则程序如下: int n; for(n=1;n

3、输出1到1000之间的所有回文数

分析:在做本题之前,先要搞明白什么是回文数,它又是如何判定的。 补充:

回文数 如果一个数字正读和倒读一样,那么这个数字就是回文数。例如:98789, 这个数字正读是98789,倒读也是98789,所以这个数字就是回文数。

分析:既然一个回文数正读和倒读一样,也就是它的最高位和最低位一样,它的次高位和次低位一样,那么当我们判断一个数n是不是回文数的时候,先要确定这个数有几位,才可以确定谁与谁进行比较,然后确定这个数每一位都是谁。1到1000之间的数,除了1000其余最多三位数,显然1000不是回文数,先不考虑,怎么确定这个数是几位呢?如果它的百位是0,那么肯定不是三位数,如果百位和十位都是0,那么肯定是一位数,我们知道一位数肯定都是回文数;对于一个两位数,只要判断它的个位和十位是不是一样就可以了,如果一样,那么肯定是回文数;对于一个三位数只要判断他的个位和百位就可以了,如果一样就是回文数。求一个最多是三位数的每一位,就是将这个数对10求余得到个位;然后这个数除以10,再对10求余得到十位;最后除以100得到百位。则程序如下: int n; (n是要判断的数,具体根据题意赋值或从键盘输入) if(n>0&&n0&&n

4、输出1到1000之间的所有完数

分析:在做本题之前,先要搞明白什么是完数,它又是如何判定的。 补充:

再做完数之前先讲怎么求两个数的最大公约数和最小公倍数。

分析:假设求a和b两个数的最大公约数和最小公倍数,并且a>b,如果a0&&n0&&n

5、输出1到999之间的所有水仙花数

分析:在做本题之前,先要搞明白什么是水仙花数,它又是如何判定的。 补充:

水仙花数 如果一个三位数的各个位数字的立方和等于该数字本身,那么这个数就是水仙花数。例如:153,1*1*1+5*5*5+3*3*3=153,所以这个数字就是回文数。 分析:既然一个水仙花数的各个位数字的立方和等于该数字本身,那么当我们判断一个数n是不是水仙花数的时候,先要求出各个位数字,然后求其立方和,判断是不是和该数本身一样,如果一样就是水仙花数,否则就不是。求一个三位数的每一位,就是将这个数对10求余得到个位;然后这个数除以10,再对10求余得到十位;最后除以100得到百位。则程序如下:

int n,a,b,c; (n是要判断的数,具体根据题意赋值或从键盘输入) a=n/100; b=n/10%10; c=n%10; if(a*a*a+b*b*b+c*c*c==n) printf(“%d is the shuixianhua number!\\n”,n); 本题分析:只要用上面的程序替换掉模版的那个if就可以了,则程序如下: int n; for(n=1;n

6、用一张100的钱换100张零钞,假设面额有5元,3元,1/2元三种,问有多少种方法?

分析:这是一道解方程组的题,根据我们的小学知识可以列出方程组,其中有三个未知数,所以应该是三层嵌套循环,再分析题目我们知道1/2的张数只能是偶数张,则程序为: int i,j,k,n; for(i=0;i

7、爱因斯坦阶梯问题。设有一阶梯,每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨6阶,最后剩5阶;每步跨7阶,正好到阶梯顶。问满足条件的最少阶梯数是多少?

分析:这道题的实质是找满足上述条件的数,而且要最小的,那么我们就写一个循环,循环变量从最小的数开始递增,分析题目我们可知从7开始递增即可(如果不从7,从1开始也是可以的),一旦满足上述条件,循环变量就不需要增加了,输出循环变量即可,所以我们选择while循环结构,当不满足上述条件我们就做循环变量的递增,如果满足就输出,则程序为: int n=7; while( !(n%2==1&&n%3==2&&n%5==4&&n%6==5&&n%7==0)) { n++; } printf(\"%d\\n\",n);

8、求一句英文所含有的单词数。

分析:一句英文里面每个单词之间都用空格隔开,所以我们只要数空格的个数即可,但是注意最后一个单词后面是没有空格的。一句英文肯定要存放在数组中,我们选择简单的一维数组。从字符数组中的第一个元素开始查看,先查看第一个元素,如果不是空格,那就证明是第一个单词,单词个数加一,然后一直做循环,直到遇到空格,就说明这个单词结束了,然后再判断是不是到数组的结尾,如果没有就继续查找,直到数组结束为止,则程序如下: #include #include void main() {char s[100]; int i=0,j,num=0; gets(s); j=strlen(s); while(i

}

五.图案:输出n行的具有规律的字符,组成我们所想要的图案。 模版: int i,j,k; for(i=0;i

具体对待) for(k;;) printf(“%d”,); (注意:如果是char类型就是%c) }

1、输出下列图案

* *** *****

printf(\" There are %d words.\\n\",num); ******* ********* ******* ***** *** * 分析:这种图案一般我们会将其分为两部分,从最多一行隔开,分为上下两个部分,先输出上面的图案,再输出下面的。通过分析我们可以发现每行既要输出空格,又要输出*,所以循环体里面需要两个循环,循环体里面的循环变量的控制最好和外层的控制行数的循环变量相关联。我们用i控制行数,用j控制每行的空格数,用k控制每行的*数,通过观察我们发现如下规律: i j k 0 4 1 1 3 3 2 2 5 3 1 7 4 0 9 那么,i+j=4,k均为奇数,再分析发现k=2i+1,每行输完还要输出换行,则程序如下: int i,j,k; for(i=0;i

2、输出下列图案

A BBB CCCCC DDDDDDD EEEEEEEEE FFFFFFF GGGGG HHH I 分析:这种图案一般我们会将其分为两部分,从最多一行隔开,分为上下两个部分,先输出上面的图案,再输出下面的。通过分析我们可以发现每行既要输出空格,又要输出字母,所以循环体里面需要两个循环,循环体里面的循环变量的控制最好和外层的控制行数的循环变量相关联。我们用i控制行数,用j控制每行的空格数,用k控制每行的字母数,通过观察我们发现如下规律: i j k 0 4 1 1 3 3 2 2 5 3 1 7 4 0 9 那么,i+j=4,k均为奇数,再分析发现k=2i+1。每行的字母相同但是和上下行的不相同,观察发现字母是按照顺序递增的,那么我们就先把字母存放在一个变量里面,然后在输出每行所需的字符之后,改变字母。每行输完还要输出换行,则程序如下: int i,j,k; char c=’A’; for(i=0;i

3、输出下列图案

1 121 12321 1234321 123454321 1234321 12321 121 1 分析:这种图案一般我们会将其分为两部分,从最多一行隔开,分为上下两个部分,先输出上面的图案,再输出下面的。通过分析我们可以发现每行既要输出空格,又要输出数字,所以循环体里面需要两个循环,循环体里面的循环变量的控制最好和外层的控制行数的循环变量相关联。我们用i控制行数,用j控制每行的空格数,用k控制每行的数字数,每行的数字还不相同,观察发现数字是按照顺序递增递减的,那么我们输出数字的循环又要分为两个循环,继续观察我们发现每次输出的数字和循环变量k有关,通过观察我们发现如下规律: i j k 0 4 1 1 3 2 2 2 3 3 1 4 4 0 5 那么,i+j=4,k均为奇数,再分析发现k的递增从1开始到i+1为止,递减是从i开始到1为止。每行输完还要输出换行,则程序如下: int i,j,k; for(i=0;i0;k--) printf(“%d”,k); printf(“\\n”); } for(i=0;i0;k--) printf(“%d”,k); printf(“\\n”); }

4、输出九九乘法表

1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 „„ „„

分析:如果用i表示行,j表示列,那么每行输出i个式子,分析发现每个式子可以用j*i表示。每行输完还要输出换行,则程序如下: int i,j; for(i=1;i

5、输出杨辉三角的前10行

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1 分析:如果用i表示行,j表示列,那么每行输出i个数字,分析发现除了两头的数字为1以外,其余的每个数字每个数字等于上一行的左右两个数字之和,所以用二维数组比较简单。每行输完还要输出换行,则程序如下: int a[10][10],i,j; for(i=0;i

五.字符串操作:

1.函数的原型说明为int chrn(char *s,char c);,其功能是测试c在s中出现的次数,编制该函数并用相应的主调函数对其进行测试。 #include int chrn(char *s,char c) { int n=0,i; for(i=0;s[i];i++) if(s[i]= =c) n++; return n; } void main() { int k=0; char a[100],b; gets(a); getchar(b); k=chrn(a,b); printf(“%d”,k); } 2.编写函数void fun(char *s),实现将字符串s逆序存放,例如:“abcd”改为“dcba”,请完成程序,并在主函数中实现调用 #include #include void fun(char *s) { int k,i; char t; k=strlen(s); for(i=0;i #include void mystrcat(char *str1, char *str2) { int i,j; i=strlen(str1); for(j=0;j #include int mystrcmp(char *str1,char*str2) { int i=0; while(*(str1+i)= =*str(str2+i)) if(*(str1+i++)= =’\\0’) return 0; return *(str1+i)-*(str2+i); } void main() { char a[100],b[100]; int n; gets(a); gets(b); n=mystrcmp(a,b); pirntf(“%d”,n); }

第19篇:编程教案

常用编程指令的应用

车削加工编程一般包含X和Z坐标运动及绕Z轴旋转的转角坐标C 。

(1)快速定位(G00或G0) 刀具以点位控制方式从当前所在位置快速移动到指令给出的目标位置。

指令格式:G00 X(U) Z(W) ; (2)直线插补(G01或G1)

指令格式:G01 X(U) Z(W) F ;

图1 快速定位 图2 直线插补

G00 X40.0 Z56.0; G01 X40.0 Z20.1 F0.2;

/绝对坐标,直径编程; /绝对坐标,直径编程,切削进给率0.2mm/r G00 U-60.0 W-30 G01 U20.0 W-25.9 F0.2;

/增量坐标,直径编程 /增量坐标,直径编程,切削进给率0.2mm/r (3)圆弧插补(G02或G2,G03或G3) 1)指令格式: G02 X(U)_Z(W)_I_K_F_ ; G02 X(U) Z(W) R F ;

G03 X(U)_Z(W)_I_K_F_ ; G03 X(U) Z(W) R F ;

2)指令功能: 3)指令说明: ①G02为顺时针圆弧插补指令,G03为逆时针圆弧插补指令。圆弧的顺、逆方向判断见图3左图,朝着与圆弧所在平面相垂直的坐标轴的负方向看,顺时针为G02,逆时针为G03,图3右图分别表示了车床前置刀架和后置刀架对圆弧顺与逆方向的判断;

图3 圆弧的顺逆方向

②如图4,采用绝对坐标编程,X、Z为圆弧终点坐标值;采用增量坐标编程,U、W为圆弧终点相对圆弧起点的坐标增量,R是圆弧半径,当圆弧所对圆心角为0°~180°时,R取正值;当圆心角为180°~360°时,R取负值。I、K为 圆心在X、Z轴方向上相对圆弧起点的坐标增量(用半径值表示),I、K为零时可以省略。

图4 圆弧绝对坐标,相对坐标

图5 圆弧插补

G02 X50.0 Z30.0 I25.0 F0.3; G03 X87.98 Z50.0 I-30.0 K-40.0 F0.3;

G02 U20.0 W-20.0 I25.0 F0.3; /绝对坐标,直径编程

G02 X50.Z30.0 R25.0 F0.3; G03 U37.98 W-30.0 I-30.0 K-40.0 F0.3; G02 U20.0 W-20.0 R25.0 F0.3; /相对坐标,直径编程

(4)主轴转速设置(S) 车床主轴的转速(r/min)为:

式中υ为圆周切削速度,单位缺省为m/min、D为工件的外径,单位为mm。

例如,工件的外径为200mm,要求的切削速度为300m/min,经计算可得

因此主轴转速应为478r/min,表示为S478。 (5)主轴速度控制指令

数控车削加工时,按需要可以设置恒切削速度(例如,为保证车削后工件的表面粗糙度一致,应设置恒切削速度),车削过程中数控系统根据车削时工件不同位置处的直径计算主轴的转速。

恒切削速度设置方法如下:G96 S ; 其中S后面数字的单位为r/min。

设置恒切削速度后,如果不需要时可以取消,其方式如下:G97 S ; 其中S后面数字的单位为r/min。

在设置恒切削速度后,由于主轴的转速在工件不同截面上是变化的,为防止主轴转速过高而发生危险,在设置恒切削速度前,可以将主轴最高转速设置在某一个最高值。切削过程中当执行恒切削速度时,主轴最高转速将被限制在这个最高值。 设置方法如下:G50 S ; 其中S的单位为r/min。

图6 主轴速度控制

例如:在刀具T01切削外形时用G96设置恒切削速度为200m/min,而在钻头T02钻中心孔时用G97取消恒切削速度,并设置主轴转速为1100r/min。 这两部分的程序头如下:

G50 S2500 T0101 M08; /G50限定最高主轴转速为2500r/min;

G96 S200 M03; / G96设置恒切削速度为200m/min,主轴顺时针转动 G00 X48.0 Z3.0; / 快速走到点(48.0,3.0) G01 Z-27.1 F0.3; /车削外形 G00 Ul.0 Z3.0; /快速退回 T0202; /调02号刀具

G97 Sll00 M03; /G97取消恒切削速度,设置主轴转速为ll00r/min G00 X0.0 Z5.0 M08; /快速走到点(0,5.0),冷却液打开 G01 Z-5.0 F0.12; /钻中心孔 (6)进给率和进给速度设置指令

在数控车削中有两种切削进给模式设置方法,即进给率(每转进给模式)和进给速度(每分钟进给模式)。

1)进给率,单位为mm/r,其指令为: G99; / 进给率转换指令,

G01 X Z F ; / F的单位为mm/r 2)进给速度,单位为mm/min,其指令为: G98; / 进给速度转换指令

G01 X Z F ; / F的单位为mm/min

图7 进给率和进给速度

a:G99 G01 Z-27.1 F0.3; b:G98 G01 Z-10.0 F80; 表示进给率为0.3mm/r 表示进给速度为80mm/min CNC系统缺省进给模式是进给率,即每转进给模式。 (7)工件原点设置

工件坐标系的原点有两种设置方法。

1)用G50指令进行工件原点设置,分以下两种设置情况:

图8 工件原点设置 ①坐标原点设置在卡盘端面

如图8a所示,这种情况下z坐标是正值。 工件原点设置在卡盘端面:

G50 X85.Z210.;/* 将刀尖当前位置的坐标值定为工件坐标系中的一点(85.,210.)。 ②坐标原点设置在零件右端面

如图8b所示,这种情况下Z坐标值是负值。 工件原点设置在工件右端面:G50 X85.0 Z90.0; 则刀尖当前位置即为工件坐标系原点。 (8)端面及外圆车削加工

端面及外圆的车削加工要用到插补指令G01。

为正确地编写数控程序,应在编写程序前根据工件的情况选择工件原点。确定好工件原点后,还必须确定刀具的起始点。

编程时还应考虑车削外圆的始点和端面车削的始点,这两点的确定应结合考虑工件的毛坯情况。如果毛坯余量较大,应进行多次粗车,最后进行一次精车,因而每次的车削始点都不相同。

图9 确定车削原点

a)工件原点在左端面时 b) 工件原点在右端面时 1)工件原点在左端面 o0001 /* 程序编号o0001 N0 G50 X85.0 Z210.0; /* 设置工件原点在左端面 N1 G30 U0 W0; /* 返回第二参考点

N2 G50 S1500 T0101 M08; /* 限制最高主轴转速为1500r/min,调01号刀具,M08为打开冷却液

N3 G96 S200 M03; /* 指定恒切削速度为200m/min N4 G00 X40.4 Z153.0; /* 快速走到外圆粗车始点 N5 G01 Z40.2 F0.3; /* 以进给率0.3mm/r车削外圆 N6 X60.4; /* 台阶车削

N7 Z20.0; /*φ60.4mm处长度为20.0mm的一段外圆 N8 G00 X62.0 Z150.2; /* 刀具快速退到点(62.0,150.2) N9 X41.0; /*刀具快速走到点(41.0,150.2) N10 G01 X-1.6; /* 车削右端面

N1l G00 Zl52.0; /* 刀具快速退到点(-1.6,152.0) N12 G30 U0 W0; /* 直接回第二参考点以进行换刀 N13 (Finishing); /*精车开始,括号为程序说明

N14 G50 S1500 T0202; /*限制最高主轴转速为1500r/min,调02号刀具 N15 G96 S250; /* 指定恒切削速度为250m/min N16 G00 X40.0 Z153.0 ;/*快速走到外圆精车始点(40.0,153) N17 G42 G01 Z151.0 F0.15; /*调刀尖半径补偿,右偏 N18 Z40.0; /*φ40.4mm一段外圆的精车 N19 X60.0; /*台阶精车

N20 Z20.0; /*φ60.0mm处长度为20.0mm外圆的精车 N21 G40 G00 X62.0 Z150.0; /*取消刀补 N22 X41.0; /*刀具快速走到点(41.0,150.0) N23 G41 G01 X40.0; /*调刀尖半径补偿,左偏 N24 G01 X-1.6; /*精车右端面

N25 G40 G00 Zl52.0 M09; /*取消刀补,切削液关

N26 G30 U0 W0 M05; /*返回第二参考点,主轴停止 N27 M30; /*程序结束 2)工件原点在右端面:工件原点设置在右端面与设置在左端面的区别仅在于Z坐标为负值,程序编写过程完全相同。 O0002 ; /* 程序编号

N0 G50 X85.0 Z90.0 /* 设置工件原点在右端面 N2 G30 U0 W0; /* 返回第二参考点

N4 G50 S1500 T0101 M08; /* 限制最高主轴转速 N6 G96 S200 M03; /* 指定恒切削速度为 200m/min,主轴逆时针旋转

N8 G00 X30.4 Z3.0; /*快速走到点(30.4,3.0) N10 G01 W-33.0 F0.3; /*以进给率0.3mm/r粗车φ30.4处外圆 N12 U30.0 W-50.0; /*粗车锥面

N14 W-10.0; /*粗车φ60.4mm处长度为10的一段外圆 N16 G00 Ul.6 W90.2; /*刀具快速走到点(62.0,0.2) N18 U-31.0; /*刀具快速走到点(3l,0.2) N20 G01 U-32.6; /*粗车端面

N22 G00 W2.0; /*刀具快速走到点(-1.6,2) N24 G30 U0 W0; /*返回第二参考点 N26 (Finishing); /*精车开始

N28 G50 S1500 T0202; /*设置主轴最高转速1500r/min,调2号刀具 N30 G96 S250; /* 指定恒切削速度为250m/min N32 G00 X30.0 Z3.0;/*刀具快速走到精车始点(30.0,3.0) N34 G42 G01 W-2.0 F0.15; /*调刀尖半径补偿,右偏 N36 W-31.0; /*精车ф30.4mm处外圆 N38 U30.0 W-50.0; /*精车锥面

N40 W-10.0; /*精车ф60.0mm处外圆

N42 G40 G00 U2.0 W90.0; /*取消刀补,刀具快速走到点(62,0.0) N44 U-31.0; /*刀具快速走到点(31,0.0) N46 G41 G01 U-1.0; /*调刀尖半径补偿,左偏

N48 G01 U-32.6; /*精车端面

N50 G40 G00 W2.0 M09; /*取消刀补,刀具快速走到点(1.6,2.0) N52 G30 U0 W0 M30; /*返回参考点,程序结束 实例:

如图10所示零件

图10 数控车削综合编程实例

N0050 G01 X32 Z0; N0110 G02 X16 Z-15 R2; N0060 G01 X-0.5; N0120 G01 X20;

N0070 G00 Z1; N0130 G01 Z35; N0080 G00 X10; N0140 X26; N0090 G01 X12 Z1; N0150 Z50; N0100 G01 X12 Z1; N0160 X32; 为1500r/min,调1号刀具,M08为打开冷却液在这种情况下,如果设置指令写成: G50 X0 Z0;

G0

2、G03指令表示刀具以F进给速度从圆弧起点向圆弧终点进行圆弧插补。刀具以一定的进给速度从当前所在位置沿直线移动到指令给出的目标位置。

2.循环加工指令

当车削加工余量较大,需要多次进刀切削加工时,可采用循环指令编写加工程序,这样可减少程序段的数量,缩短编程时间和提高数控机床工作效率。根据刀具切削加工的循环路线不同,循环指令可分为单一固定循环指令和多重复合循环指令。 (1)单一固定循环指令

对于加工几何形状简单、刀具走刀路线单一的工件,可采用固定循环指令编程,即只需用一条指令、一个程序段完成刀具的多步动作。固定循环指令中刀具的运动分四步:进刀、切削、退刀与返回。

1)外圆切削循环指令(G90)

指令格式 : G90 X(U)_ Z(W)_ R_ F_ 指令功能: 实现外圆切削循环和锥面切削循环。

刀具从循环起点按图11与图12所示走刀路线,最后返回到循环起点,图中虚线表示按R快速移动,实线表示按F指定的工件进给速度移动。

图11 外圆切削循环

图12 锥面切削循环

指令说明: ① X、Z 表示切削终点坐标值;

② U、W 表示切削终点相对循环起点的坐标分量;

③ R 表示切削始点与切削终点在X轴方向的坐标增量(半径值),外圆切削循环时R为零,可省略;

④F表示进给速度。 例题 如图13所示,运用外圆切削循环指令编程。

G90 X40 Z20 F30

A-B-C-D-A X30

A-E-F-D-A X20

A-G-H-D-A

图13 外圆切削循环例题

例题 如图14所示,运用锥面切削循环指令编程。

G90 X40 Z20 R-5 F30 A-B-C-D-A X30

A-E-F-D-A X20

A-G-H-D-A

图14 锥面切削循环例题

2) 端面切削循环指令(G94)

指令格式: G94 X(U)_ Z(W)_ R_ F_ 指令功能: 实现端面切削循环和带锥度的端面切削循环。

刀具从循环起点,按图15与图16所示走刀路线,最后返回到循环起点,图中虚线表示按R快速移动,实线按F指定的进给速度移动。

图15 端面切削循环 图16 带锥度的端面切削循环

① X、Z表示端平面切削终点坐标值;

② U、W表示端面切削终点相对循环起点的坐标分量;

③ R 表示端面切削始点至切削终点位移在Z轴方向的坐标增量,端面切削循环时R为零,可省略;

④ F表示进给速度。

例题: 如图17所示,运用端面切削循环指令编程。

G94 X20 Z16 F30

A-B-C-D-A Z13

A-E-F-D-A Z10

A-G-H-D-A

图17 端面切削循环例题 图18 带锥度的端面切削循环例题

例题: 如图18所示,运用带锥度端面切削循环指令编程。

G94 X20 Z34 R-4 F30

A-B-C-D-A Z32

A-E-F-D-A Z29

A-G-H-D-A (2)多重复合循环指令(G70——G76) 运用这组G代码,可以加工形状较复杂的零件,编程时只须指定精加工路线、径向轴向精车留量和粗加工背吃刀量,系统会自动计算出粗加工路线和加工次数,因此编程效率更高。

在这组指令中,G71、G7

2、G73是粗车加工指令,G70是G7

1、G7

2、G73粗加工后的精加工指令,G74 是深孔钻削固定循环指令,G75 是切槽固定循环指令,G76是螺纹加工固定循环指令。

1)外圆粗加工复合循环(G71) 指令格式 : G71 UΔd Re G71 Pns Qnf UΔu WΔw Ff Ss Tt

指令功能: 切除棒料毛坯大部分加工余量,切削是沿平行Z轴方向进行,如图19所示。 A为循环起点,A-A\'-B为精加工路线。

图19 外圆粗加工复合循环 图20 端面粗加工复合循环 指令说明:①Δd表示每次切削深度(半径值),无正负号; ② e表示退刀量(半径值),无正负号;

③ ns表示精加工路线第一个程序段的顺序号; ④ nf表示精加工路线最后一个程序段的顺序号;

⑤ Δu表示X方向的精加工余量,直径值;

例题 :如图21所示,运用外圆粗加工循环指令编程。

图21 外圆粗加工复合循环例题 N010 G50 X150 Z100 N020 G00 X41 Z0 N030 G71 U2 R1 N040 G71 P50 Q120 U0.5 W0.2 F100 N050 G01 X0 Z0 N060 G03 X11 W-5.5 R5.5 N070 G01 W-10 N080 X17 W-10 N090 W-15 N100 G02 X29 W-7.348 R7.5 N110 G01 W-12.652 N120 X41 N130 G70 P50 Q120 F30

2)端面粗加工复合循环(G72) 指令格式: G72 WΔd Re

G72 Pns Qnf UΔu WΔw Ff Ss Tt

指令功能: 除切削是沿平行X轴方向进行外,该指令功能与G71相同,如图20所示。 指令说明 :

Δd、e、ns、nf、Δu、Δw的含义与G71相同。 例题:如图22,运用端面粗加工循环指令编程。

图22 端面粗加工复合循环例题 图23 固定形状切削复合循环 N010 G50 X150 Z100 N020 G00 X41 Z1 N030 G72 W1 R1 N040 G72 P50 Q80 U0.1 W0.2 F100 N050 G00 X41 Z-31 N060 G01 X20 Z-20 N070 Z-2 N080 X14 Z1 N090 G70 P50 Q80 F30 3)固定形状切削复合循环(G73) 指令格式: G73 UΔi WΔk Rd G73 Pns Qnf UΔu WΔw Ff Ss Tt

指令功能:适合加工铸造、锻造成形的一类工件,见图23所示。 指令说明: Δi 表示X轴向总退刀量(半径值); ΔK 表示Z轴向总退刀量; d 表示循环次数;

ns 表示精加工路线第一个程序段的顺序号; nf 表示精加工路线最后一个程序段的顺序号; Δu 表示X方向的精加工余量(直径值); Δw 表示Z方向的精加工余量。

①固定形状切削复合循环指令的特点:

a.刀具轨迹平行于工件的轮廓,故适合加工铸造和锻造成形的坯料; b.背吃刀量分别通过X轴方向总退刀量Δi和Z轴方向总退刀量ΔK除以循环次数d求得; c.总退刀量Δi与ΔK值的设定与工件的切削深度有关。

②使用固定形状切削复合循环指令,首先要确定换刀点、循环点A、切削始点A’和切削终点B的坐标位置。分析上图,A点为循环点,A’→B是工件的轮廓线,A→A’→B为刀具的精加工路线,粗加工时刀具从A点后退至C点,后退距离分别为Δi+Δu /2,Δk+Δw,这样粗加工循环之后自动留出精加工余量Δu /

2、Δw。

③顺序号ns至nf之间的程序段描述刀具切削加工的路线。 例题: 如图14所示,运用固定形状切削复合循环指令编程。

图24 固定形状切削复合循环例题 图25 复合固定循环举例

N010 G50 X100 Z100 N020 G00 X50 Z10 N030 G73 U18 W5 R10 N040 G73 P50 Q100 U0.5 W0.5 F100 N050 G01 X0 Z1 N060 G03 X12 W-6 R6 N070 G01 W-10 N080 X20 W-15 N090 W-13 N100 G02 X34 W-7 R7 N110 G70 P50 Q100 F30 4)精车复合循环(G70) 指令格式: G70 Pns Qnf

指令功能:用G7

1、G7

2、G73指令粗加工完毕后,可用精加工循环指令,使刀具进行A-A`-B的精加工,(如图24)

指令说明:

ns表示指定精加工路线第一个程序段的顺序号; nf表示指定精加工路线最后一个程序段的顺序号;

G70~G73循环指令调用N(ns)至N(nf)之间程序段,其中程序段中不能调用子程序。 5)复合固定循环举例 (G71与G70编程)

加工图25所示零件,其毛坯为棒料。工艺设计参数为:粗加工时切深为7mm,进给速度0.3mm/r,主轴转速500r/min; X向(直径上)精加工余量为4 mm,z向精加工余量为2mm,进给速度为0.15mm/r,主轴转速800mm/min。程序设计如下: N01 G50 X200.0 Z220.0; N02 G00 X160.0 Z180.0 M03 S800; N03 G71 P04 Q10 U4.0 W2.0 D7.0 F0.3 S500; N04 G00 X40.0 S800; N05 G01 W-40.0 F0.15; N06 X60.0 W-30.0; N07 W-20.0; N08 X100.0 W-10.0; N09 W-20.0; N10 X140.0 W-20.0; N11 G70 P04 Q10; N12 G00 X200.0 Z220.0; N13 M05; N14 M30; 3.螺纹加工自动循环指令

(1)单行程螺纹切削指令G32(G33,G34) 指令格式 : G32 X(U)_ Z(W)_ F_

指令功能:切削加工圆柱螺纹、圆锥螺纹和平面螺纹。 指令说明:

格式中的X(U)、Z(W)为螺纹中点坐标,F为以螺纹长度L给出的每转进给率。L表示螺纹导程,对于圆锥螺纹(图26),其斜角α在45°以下时,螺纹导程以Z轴方向指定;斜角α在45°~90°时,以X轴方向指定。

①圆柱螺纹切削加工时,X、U值可以省略,格式为: G32 Z(W)_ F _ ; ②端面螺纹切削加工时,Z、W值可以省略,格式为: G32 X(U)_ F_;

③螺纹切削应注意在两端设置足够的升速进刀段δ1和降速退刀段δ2,即在程序设计时,应将车刀的切入、切出、返回均应编入程序中。

图26 螺纹切削 图27 螺纹切削应用 螺纹切削例题: 如图27所示,走刀路线为A-B-C-D-A,切削圆锥螺纹,螺纹导程为4mm , δ1 = 3mm,δ2 = 2mm,每次背吃刀量为1mm,切削深度为2mm。 G00 X16 G32 X44 W-45 F4 G00 X50 W45 X14 G32 X42 W-45 F4 G00 X50 W45 (2)螺纹切削循环指令(G92)

指令格式 : G92 X(U)_ Z(W)_ R_ F_ 指令功能: 切削圆柱螺纹和锥螺纹,刀具从循环起点,按图28与图29所示走刀路线,最后返回到循环起点,图中虚线表示按R快速移动,实线按F指定的进给速度移动。

图28 切削圆柱螺纹 图29 切削锥螺纹 指令说明:

①X、Z表示螺纹终点坐标值; ②U、W表示螺纹终点相对循环起点的坐标分量;

③R表示锥螺纹始点与终点在X轴方向的坐标增量(半径值),圆柱螺纹切削循环时R为零,可省略;

④F表示螺纹导程。

例题: 如图30所示,运用圆柱螺纹切削循环指令编程。

图30 切削圆柱螺纹例题 图31 切削锥螺纹例题 G50 X100 Z50 G97 S300 T0101 M03 G00 X35 Z3 G92 X29.2 Z-21 F1.5 X28.6 X28.2 X28.04 G00 X100 Z50 T0000 M05 M02

例题 : 如图31所示,运用锥螺纹切削循环指令编程。 G50 X100 Z50 G97 S300 T0101 M03 G00 X80 Z2 G92 X49.6 Z-48 R-5 F2 X48.7 X48.1 X47.5 X47.1 X47 G00 X100 Z50 T0000 M05 M02

(3)螺纹切削复合循环(G76)

指令格式 : G76 Pm r a QΔdmin Rd G76 X(U)_ Z(W)_Ri Pk QΔd Ff

指令功能:该螺纹切削循环的工艺性比较合理,编程效率较高,螺纹切削循环路线及进刀方法如图32所示。

图32 螺纹切削复合循环路线及进刀法 指令说明:

②r表示斜向退刀量单位数,或螺纹尾端倒角值,在0.0f—9.9f之间,以0.1f为一单位,(即为0.1的整数倍),用00—99两位数字指定,(其中f为螺纹导程); ③a表示刀尖角度;从80°、60°、55°、30°、29°、0°六个角度选择;

④Δdmin:表示最小切削深度,当计算深度小于Δdmin,则取Δdmin作为切削深度; ⑤d:表示精加工余量,用半径编程指定;Δd :表示第一次粗切深(半径值); ⑥X、Z:表示螺纹终点的坐标值; ⑦U:表示增量坐标值; ⑧W:表示增量坐标值;

⑨I:表示锥螺纹的半径差,若I=0,则为直螺纹; ⑩k:表示螺纹高度(X方向半径值); G76螺纹车削实例

图33所示为零件轴上 的一段直螺纹,螺纹高度为3.68,螺距为6,螺纹尾端倒角为1.1L,刀尖角为60°,第一次车削深度1.8,最小车削深度0.1,精车余量0.2,精车削次数1次,螺纹车削前先精车削外圆柱面,其数控程序如下:

图33 螺纹切削多次循环G76指令编程实例 O0028 /程序编号

N0 G50 X80.0 Z130.0; /设置工件原点在左端面 N2 G30 U0 W0; /返回第二参考点

N4 G96 S200 T0101 M08 M03; /指定切削速度为200m/min,调外圆车刀 N6 G00 X68.0 Z132.0; /快速走到外圆车削起点(68.0,132.0) N7 G42 G01 Z130.0 F0.2; N8 Z29.0 F0.2; /外圆车削 N9 G40 G00 U10.0; N10 G30 U0 W0; N12 G97 S800 T0202 M08 M03; /取消恒切削速度,指定主轴转速800r/min,调螺纹车刀 N14 G00 X80.0 Z130.0; /快速走到螺纹车削循环始点(80.0,130.0) N16 G76 P011160 Q0.1 R0.2; /循环车削螺纹 N18 G76 X60.64 Z25.0 P3.68 Q1.8 F6.0; N20 G30 U0 W0 M09; N22 M30; ①m表示精车重复次数,从1—99;

第20篇:消防车编程

浅谈编组编程在现代灭火救援中的应用

参谋长 王海柱 2004-10-29 9:46:44 沈阳消防支队

消防中队编组编程理论在很早以前就已经有专家提出,并应用于灭火战斗实践。但随着形势、任务以及部队自身的发展,编组编程理论也在不断发展变化。现在谈及编组编程,我个人肤浅地认为:是根据灭火救援工作的实际需要,对部队自身拥有的战斗实力,尤其是支队整体的人员、车辆器材装备预先进行科学整合编组,并编制不同的战斗展开程序,应用编组编程,是计划指挥在形式和内容上的拓展和丰富。熟话说,“凡事预则立,不预则废”。在现代灭火救援现场,尤其是大型灭火救援现场,使用和发挥好这一有效的指挥形式,尤显必要和重要。这也是我们从事灭火救援的指挥人员一直不懈努力研究探讨和解决的课题。就此笔者想结合沈阳支队开展和应用编组编程的情况,谈几点个人的粗浅看法。

一、要正视编组编程的特殊作用

随着社会和经济的不断发展进步,消防部队所承担的灭火救援任务也日益繁重和复杂,如何更好地履行职责,保卫国家和人民群众的生命财产安全,已毫无置疑地摆在我们消防人的面前。诚然,人民消防意识的不断提高,政府对消防投入的不断增加,车辆器材装备数量、质量、功能的不断的增加、拓宽和提高,科技强警步伐的不断加快,科技练兵的不断深入,都为我们更好地完成灭火救援任务奠定了深厚的基础。但是,我们必须清醒地看到,在许多灭火救援现场,尤其是在多个单位联合作战的大型现场,车辆器材装备和人员还没有达到充分的整合利用,还没有发挥最大的效能。组织指挥指挥混乱、作战行动缓慢、前方主阵地不能保证相对不间断供水、贻误战机等现象还偶有发生。为了实现灭火救援工作的有序施行,避免现场杂乱,提高工作效率,实现人与装备的最佳结合,发挥最大的效能,更好地完成职责所赋,我们必须事先研究现有装备,优化资源配置,进行有效的匹配编组,充分进行整合利用,按照施救要求编排科学的战斗展开程序。在现代灭火救援工作中有效应用预先设置好的编组编程,能够使计划指挥更加科学有效,能够简化现场组织指挥程序,能够使到场的参战力量密切协同配合,从而真正达到事半功倍之效。

二、要针对拥有实力合理编组编程

要打赢现代扑火救灾战斗,发挥编组编程的作用至关重要。这就要求我们必须事先对拥有战斗实力进行科学合理有效的编组编程。

首先要合理装备独立作战单元的人员及车辆器材装备。这是形成中队级编组编程的前提和基础,是中队独立作战能力强弱的决定性因素。如在我们沈阳支队为市区普通消防中队装备了中巴抢险救援车、轻型水罐消防车、重型水罐消防车(15吨以上)、泡沫消防车、登高消防车等基本战斗车型,郊县中队装备有轻型水罐消防车、中型水罐消防车、泡沫消防车、登高消防车等基本战斗车型,从而使每个中队都能保证扑救常见火灾的基本战斗编队。同时,根据管区火灾的不同特点,在市区中队分别装备了遥控化学水炮车、移动炮车、二氧化碳车、干粉车、泡沫液供给车、破拆清障车、水带消防车、高压喷雾消防车、高喷消防车、运载移动炮和扇形水幕的翼展车、防爆消防车等特殊战斗车辆。成立了三个特勤消防中队,一个是装备有中巴抢险救援车、照明车、18米高喷消防车、30米高喷消防车、42米高喷消防车、防化车、洗消车,并装备有特种器材,主要负责化工类火灾事故处置的特勤一中队;装备有中巴救援车、照明车、狂牛消防车、18米高喷消防车、42米高喷消防车、32米智能登高消防车、72米登高消防车,并装备有特种器材,主要负责高层、地下类火灾事故处置的特勤二中队;以及装备有40条搜救犬的特勤三中队。大力加强装备投入并进行科学合理的调配,保证了灭火救援工作的物质需要。

其次是立足更好地扑救各类火灾需要,对人员及车辆器材装备进行科学合理的编组编程,使之预先做好充足的战斗准备。一般常用的可分为中队级编组编程和支队级编组编程。 中队级编组编程是独立作战单元依据自身实力,针对不同需要而形成的各类战斗编组和战斗展开程序。科学编制并有效运用编组编程,能够使中队更好地独立完成作战任务,或者在中大型灭火战斗中,作为责任中队更好地完成救人、堵截控制火势等任务,是中队能否打好初战的关键。由于各中队编配实力、管区火灾特点各不相同,所编制的编组编程也不尽相同,因此这项工作主要由各中队来完成。常用的编组编程应根据灭火战斗的不同需要,视现场水源的不同情况,将本中队可在最前方出设阵地的车辆分别设定为主战车,并编配其他车辆与之组合形成战斗编组,并编制不同的战斗展开程序。就目前沈阳支队的情况看,可作为中队级编组编程主战车的车型有普通水罐(泡沫)消防车、中型(重型)水罐(泡沫)消防车、举高消防车等车辆,个别中队还有、高喷消防车、移动炮车(移动炮)、高压喷雾车、二氧化碳消防车车、干粉消防车等车辆。可形成的战斗编组编程一般有普通消防车直接占领水源的一车两枪型,重型大功率消防车(直接占领水源)的一车四枪型,普通(中型)水罐(泡沫)消防车做主战车,重型水罐(泡沫)消防车为之供水的两车两枪型和三车四枪型,高喷车(举高车、移动炮车、移动炮)与中低压泵(高低压泵)消防车(重型大功率消防车)组合使用的两车一炮型、三车一炮型,同型大功率重型水罐(泡沫)消防车编组使用的两车一炮型等。

支队级编组编程是就部队整体装备实力,打破中队界限,对所有力量(排除正在执行任务的力量)进行整合编组,并编制不同的战斗展开程序。科学编制并有效使用支队级编组编程,是更好地完成重特大灭火战斗任务的必要途径和重要手段。它需要根据重特大火灾现场的不同需要,视现场情况的不同,统筹兼顾,统筹安排;力求科学合理,有序高效。使用时必须由支队统一调度,统一指挥。就目前沈阳支队的情况看,支队级编组编程设定的主战车型有大功率消防车、高喷消防车、举高消防车、移动炮车等车型。其按使用车载炮为主阵地,在水源充足地区用两台大功率(吨位)水罐(泡沫)消防车作为主供水车、两台普通水罐(泡沫)消防车作为补充供水车形成战斗编组;在水源不充足地区用三台大功率(吨位)水罐(泡沫)消防车作为主供水车、三台普通水罐(泡沫)消防车作为补充供水车形成战斗编组;无水源地区用五台大功率(吨位)水罐(泡沫)消防车作为主供水车、三台普通水罐(泡沫)消防车作为补充供水车形成战斗编组。并按照不同需要,采取不同的战斗展开程序。目前沈阳支队最多可形成上述战斗编队15个,基本上满足了大型火场的战斗需要。

再次是针对特殊灾害事故,制定处置预案,对人员及车辆器材装备进行特殊编组编程。如建筑倒塌事故处置编组编程,应事先设置使用搜救犬、生命探测器、可燃气体检测仪、漏电检测仪等进行侦察检测的人员搜救编队;现场实施警戒的人员编队;多功能抢险救援车、破拆清障车、出设开花或喷雾枪阵地的消防车、大型铲车、吊车、推土机、120急救车,扩张、切割、起重等排险救生器材,以及供水、供电、供气等单位人员、车辆器材装备组成的救生排险编队。同时,要按照现场询情、侦察检测、设置警戒、救生排险、现场急救、清点人员和装备、移交撤离等处置程序,编制战斗展开程序。除此之外,还有核化事故处置编组编程、交通事故处置编组编程、自然灾害事故处置编组编程等。

三、要结合实际有效应用编组编程

编组编程作为实施现代灭火救援工作必须采取的有效形式和必要内容,在实战中必须得到合理有效的利用,才能彰显功效。

一是要按照建设信息化消防部队的要求,使编组编程实现信息化、网络化。应该说编组编程是随着消防部队和灭火救援工作不断发展而不断发展变化的系统化工程,执行任务的种类不同,参与战斗的车辆不同,所应采取的编组编程就不尽相同,可以说随时随地都会发生变化,尤其是大型灭火救援现场,需要使用多个编队时,指挥人员用人脑和手工现场临机编排显然笨拙混乱,起不到预先计划指挥的功效,可操作性不强。同时,受领任务的单位、人员也很难清晰明了,实际使用时会事倍功半。这就要求我们必须应用现代科学技术,充分发挥目前已经基本成型的计算机接警系统和计算机辅助灭火系统的功能,把编组编程制成软件,输入系统功能之中,使其形成计算机网络化,达到方便、准确、快捷、高效,便于操作使用的目的。如我们沈阳支队开发了《灭火救援战斗力量编组编程子系统》,并输入调度指挥中心接警系统。该软件将主战车、主供水车、补充供水车输入计算机接警系统,当某一地区发生火灾或有救援现场时,计算机按照给定指令,自动排除正在参加战斗的执勤力量,在电子地图上自动测出其它执勤力量距现场的距离,按照由近及远的原则,确定主战车,确定与其合成使用的主供水车辆和补充供水车辆,形成一个个战斗编队调往现场。同时,该软件实现了调度指挥中心与支队指挥车信息的时时传输,使现场指挥员随时掌握参战力量及编组编程情况,根据现场情况,进行合理有效的利用。该软件还输入了接警系统的每一个终端子系统。在原有出动指令包含的火灾或救援地址、行车参考路径、周围水源情况、部分电子地图等内容外,增加了编组编程任务栏,使参战车辆明确自己所在编队及任务分工,使调度指挥更加科学、规范、有效、合理。

二是要贯彻计划指挥与现场临机指挥相结合的原则。编组编程属计划指挥范畴,拟想调集的编队在灭火救援中不可能与实际需要完全相符。这就要求我们在实际作战指挥中,要在已经计划好的编组编程基础上,根据情况变化,根据现场需要,根据各编队以及编队各车辆到场的情况进行现场临机指挥。总指挥员按需部署前方主战车辆,后方供水指挥员要充分利用笔记本电脑、掌上电脑、车辆编组作战图版等工具对各个编队车辆随机进行调整,并随时将调整情况告知各编队及各参战车辆,使之随时掌握编队及任务的变化,使现场的计划指挥和临机指挥达到有机结合。

三是要贯彻灭火战术指导思想和基本原则,严格火场统一指挥的原则。在运用编组编程时,必须严格贯彻救人第一和准确、迅速、集中兵力打歼灭战的灭火战术指导思想。调集力量要力争一次调齐,避免零打碎敲。要首先考虑救人编队力量的应用,各参战编队到场后要按照命令迅速进入战斗状态,在最短的时间内发挥编组编程的战斗作用。要严格贯彻先控制后消灭的灭火战术基本原则。集中先期到场的编队力量于火场的主要方面,堵截火势蔓延。要根据火势发展,待总攻条件成熟,科学合理使用到场其它编队力量实施总攻灭火,以确保总攻灭火时,前方作战的各主阵地在一段时间内保持不间断供水,以期成功扑灭火灾。要严格贯彻集中统一指挥的原则。在调动时,要打破单位界限,按设定原则按编队统一调度。到场后要在火场指挥部的统一指挥下使用,避免因多头指挥出现力量使用上的混乱,来一台车用一台车,破坏编组编程的整体使用效能。

四是要贯彻练为战的原则,加强合成演练。由于不同类火灾使用编组编程各不相同,同类火灾的不同现场使用的编组编程也各不相同,参战力量的不同、发生火灾地点的不同,所形成的战斗编队各不相同,要想真正发挥编组编程在实战中的特殊功效,就必须加强合成演练,提高参战官兵按照编组编程作战的意识,加强不同编队之间的配合,加强不同编组的战斗展开程序的训练,使整个部队形成优良的战斗意识、战斗作风、战术素养,不断提高部队的整体作战能力,更好地完成党和人民赋予我们的灭火救援任务。

浅谈大型灭火救援战斗车辆编程及应用

随着我国经济社会快速发展,消防部队所承担的灭火救援任务也日趋复杂化、多样化,那么如何更好的履行消防部队职责,为构建和谐社会保驾护航,已毫无置疑的摆在当代消防人面前。近年来,各级政府不断加大对消防资金投入,车辆器材装备的数量、质量、功能不断提高,科技强警步伐的不断加快,科技练兵手段的不断深化,都为更好地完成灭火救援任务夯实了基础。但是,我们必须清醒地意识到,在许多灭火救援现场,尤其是在多个单位联合作战的大型现场,车辆器材装备和人员还没有达到充分的整合利用,还没有发挥最大的潜能。组织指挥指挥混乱、作战行动缓慢、前方主阵地不能保证相对不间断供水等现象时有发生。为实现灭火救援作战的有序化、程序化、规范化,避免现场杂乱,提高作战能力,实现人与装备的最佳结合,必须优化资源配置,进行有效的匹配编组。在现代灭火救援工作中有效应用编组编程,能使计划指挥更加科学有效,简化组织指挥程序,提高参战前后方之间协同作战能力,从而真正达到事半功倍之效。

一、科学合理划分灭火救援作战区域

为适应大型灭火救援现场作战的实际需要,基层消防部队应根据本市责任区消防给水管网的特点、供水能力,结合消防队(站)分布的现状及支队车辆装备的实际情况,科学合理的划分作战区域,即将城区(市区)划分为五个作战区域??东部地区、西部地区、南部地区、北部地区、中心地区,同时科学确立作战区域的道路水源情况,如:水源充足区域、水源不充足区域、无水

源区域等。

二、科学编程,充分发挥编队潜能

目前,大多数基层消防部队在大型灭火救援现场仍然采用以消防中队为作战单元的作战模式,这种做法有利也有弊,对此笔者不作过多的赘述。笔者认为在大型灭火救援现场应打破以中队为作战单元的模式,对部队所有战斗装备进行整合编组。科学编制并有效使用大型灭火救援战斗编程,是更好地完成大型灭火救援战斗任务的必要途径和重要手段。它需要根据大型灭火救援现场的不同需要,视现场情况的不同,统筹兼顾,统筹安排,力求科学合理,有序高效,并使战斗编程实现信息化、网络化。由于灭火救援任务的性质不同,参与战斗的车辆不同,所应采取的战斗编程也不尽相同,可以说随时随地都会发生变化,尤其是大型灭火救援现场,需要使用多个战斗编队时,采用人脑和手工现场临机编排显然笨拙混乱,达不到计划指挥的功效,可操作性不强。同时,受领任务的作战单位、人员也很难清晰明了作战任务,这就要求我们必须应用现代科学技术,充分发挥计算机接警系统和计算机灭火救援指挥辅助决策系统的功能,把编组编程制成软件,输入系统功能之中,使其形成计算机网络化,达到方便、准确、快捷、高效,便于操作使

用的目的。

主要是将主战车型、主供水车型以及辅助供水车型利用计算机软件编程(排除正在执行任务的力量),在灭火救援出动时,根据现场实际需要选定主战车型,电子计算机根据作战区域由近至远的调派原则,以灭火救援现场为中心在电子地图上自动扫描,自动形成战斗编队,同时下发给本编队车辆所在中队接警系统终端,并在输出指令上明确各自任务。

(一)主战车型的确立

首先我们应确立大型灭火救援现场主战车型,根据部队实际情况设定大功率水炮消防车、举高喷射消防车、移动炮消防车、大功率泡沫炮消防车、大功率遥控消防车等车型为大型灭火救援现场主战车(主要是指利用水炮射水、泡沫灭火,一般水炮流量为50升/秒-100升/秒)。

(二)主供水车型的确立

按使用车载炮为主阵地,在水源充足地区应采用3台大功率(大吨位)水罐(泡沫)消防车作为主战车的主供水车;在水源不足地区应采用4台大功率(大吨位)水罐(泡沫)消防车作为主战车的主供水车;在无水源地区应采用5-7台大功率(大吨位)水罐(泡沫)消防车作为主战

车的主供水车。

(三)辅助供水车型的确立

水源充足地区应采用2-3台小型或中型水罐(泡沫)消防车占领就近水源(地下消火栓、蓄水池、天然水源)作为主战车辅助供水车;水源不充足地区应采用3-4台小型或中型水罐(泡沫)消防车占领水源(实施长干线供水)作为主战车辅助供水车;无水源地区应采用4-5台小型或中型水罐(泡沫)消防车作为主战车辅助供水车或两个战斗编队进行有机合并。

主战车+主供水车+辅助供水车形成一个相对能独立作战的战斗编队,但在大型灭火救援作战现场,战斗编队的形成必须坚持一个原则:供水能力(水泵流量)相同的战斗车辆作为一个编队。例如:采用水炮流量100升?秒的高喷车作为主战车,那么主供水车的供水能力也必须与其相匹配否则是无法达到预期效果,失去实战能力,也无法保证火场供水不间断。

三、编队的调派与应用

(一)编队的调派

1、在火灾现场有可能使用大功率(大型登高车、高喷车)车载炮和移动炮射水(泡沫)的

情况下,应按战斗编队的形式调派。

2、战斗编队由主管中队指挥员、火场指挥部总(副总)指挥员负责调集,调度指挥中心调

度员负责操作完成。

3、战斗编队调派时必须明确编队主战车名称(例如:高喷车编队、举高车编队、大功率水罐车编队、大功率泡沫车编队等,同时明确高喷车、举高车的高度)。

(二)编队的使用

1、战斗编队主战车指挥员必须由主战车所在中队军、政主官担任,根据支队灭火救援指挥部下达的作战任务??主战车停车位置、出枪(炮)位置、数量,负责组织指挥作战任务的实施。

2、支队灭火救援指挥部没有到达现场前,增援战斗编队主战车指挥员必须在途中与主管中队指挥员联络,请领任务;支队灭火救援指挥部到达现场后,增援战斗编队主战车指挥员与支队

灭火救援指挥部联络,请领任务。

3、战斗编队主战车的第一主供水车指挥员,为本编队供水指挥员;编队供水指挥员负责组织本编队占领消防水源、铺设水带线路、选择供水形式和方法,保证本编队的供水任务完成,并负责汇报本编队供水情况。在途中必须主动与本战斗编队主战车指挥员联络,明确主战车位置及本编

队作战任务。

4、战斗编队供水指挥员组织本编队供水员和司机(班长)完成供水任务,其他战斗人员由

本编队指挥员负责组织任务实施。

5、战斗编队内其它主供水车和补充供水车指挥员,在途中必须与本编队供水指挥员联络,

明确水源使用、供水形式和方法。

6、战斗编队主战车指挥员必须与支队灭火救援指挥部下达作战任务的总(副总)指挥员或作战(水源)参谋联络,调度指挥中心要主动与支队灭火救援指挥部总(副总)指挥员联络,汇报编队力量调派等情况。通过联络使灭火救援现场指挥部成员清楚本编队的主战车和供水车,所

属中队名称及指挥员姓名。

7、战斗编队供水指挥员必须与支队灭火救援指挥部供水参谋保持联络,主动报告战斗编队

水源使用、供水形式和供水量等情况。

8、战斗编队任务变更必须由支队灭火救援指挥部总(副总)指挥员确定;编队供水车辆的调整必须由支队灭火救援指挥部总(副总)指挥员及指挥部供水参谋确定。编队任务变更由指挥部作战参谋负责调整,需要调整供水车辆时,必须通知指挥部供水参谋,由指挥部供水参谋负责调整。被支队灭火救援指挥部总(副总)指挥员调整的供水车辆所在中队指挥员必须及时向指挥

部供水参谋报告调整情况。

9、战斗编队出设水枪(移动炮)时,每个编队可出8?10支水枪(6.5升/秒)或3?4支移动炮(30-50升/秒)。在条件允许的范围内,尽可能使用同一台车辆或二台车作为主战车出阵

地,编队内其他车辆负责为其供水。

10、战斗编队供水指挥员在组织本编队供水中遇有紧急情况,应积极采取措施,并及时向指

挥部供水参谋报告处置情况。

11、指挥部供水参谋负责划分调整消火栓、消防水鹤使用数量、范围;市内增援中队的供水车辆,结合任务依据电子水源地图信息可直接就近占领消火栓,准确位置由主管中队后方供水指挥员负责提供。郊县增援中队的供水车辆,由支队灭火救援指挥部供水参谋负责组织占领水源供

水。

12、战斗编队大吨位和大功率水罐车,作为主供水车辆时,应采取运水方法使用,不应占领

消火栓吸水或接力供水。

13、使用特殊灭火器具(例如:移动遥控炮、消防机器人)时,应由车辆装备所在单位的指

挥员负责组织指挥,战斗员负责操作使用。

四、大力开展编队训练,不断磨合完善

针对大型灭火救援现场战斗编程,我们本着“从实战出发”的原则,达到人与装备有效结合

的目的,应有针对性的开展模拟训练。

一是练调度指挥。大型灭火救援作战现场战斗编队的形成,主要是通过调度指挥中心操作完成的,前方作战指挥员将调集增援力量的信息反馈到指挥中心,指挥中心能否科学合理、快速准确将战斗编队调出,是灭大火救大灾的关键;二是练编队配合。

通过调集不同作战功能的战斗编队进行模拟作战训练,是成功处置各类灾害事故的重要保障。主要是练习主战车、主供水车、辅助供水车在行车途中的通信联系,预先明确各自作战任务、停车位置、水源占领、到场大致时间等,从而使编队车辆到场后能快速有效地展开战斗,并不断检验编队使用规定是否有效,从中找出薄弱环节加以修改完善;三是练战术。所有战斗行动的展开是灭火战术的体现手段,通过模拟实战训练,组织者可不断变更灾情,逐步增加灾情的复杂性,能更好的锻炼各级指挥员的临机处置能力,逐步缩短训练与实战的距离。

一般大型灭火救援现场战斗编队可按分组训练、合成训练进行。分组训练,即按照支队统一编组编程,根据作战区域的划分,司令部门统一组织各单位按不同作战区域(消防教育训练基地)分别进行训练。在训练中逐步磨合、调整、完善,达到灵活掌握、熟练运用的目的;合成训练,即支队司令部门根据常见类型火灾预先选定模拟作战对象(实地),设定灾情,同过模拟报警的方式调派责任区中队到场实施扑救,然后指挥部按战斗编队调集几个编队增援力量到场实施救援。主要是练编队前后方配合、组织指挥、战术运用,从而达到大型灭火救援现场多个单位联合

作战忙而有序的作战目的。

五、战斗编队实际作用

(一)简化大型灭火救援现场组织指挥程序

灭火救援组织指挥具有较强的时效性,且实施过程较为复杂,为提高指挥作战过程的工作效率,必须尽可能的简化指挥活动的程序。我们平时通过建立编队基本模式,战时按编队调派,途中明确任务,到场明确主战车位置即可,从而删减了到场临时组合这一程序,简化了指挥过程,

指挥效率可以得到大大提高。

(二)方便大型灭火救援能力的估算

灭火救援作战能力估算是指挥决策的基本依据。大型灭火救援战斗编程和评估,能使各战斗编队的作战能力清楚直观的表述出来,从而使战斗方案更加趋于科学合理。

(三)有利于提高编队前后方之间协同作战能力

各战斗编队在灭火救援战斗中前后方协同的好坏,主要取决于平时的战术素养与合成训练。平时按编队进行训练,处警时按编队调派,作战时按编队展开,使开始出动时就形成一个相对稳定的作战体系,明确了各自任务,有利于合成作战能力的提高。

编程心得体会
《编程心得体会.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题
点击下载本文文档