第一篇:编程实习心得
编程实习心得
来公司实习已一个多月了,在这段时间里,我主要学习EVC下的MFC编程,下面主要谈谈学习的经验以及心得体会。
在编程过程中遇到了较多的问题,解决问题的过程是漫长而艰苦的,然而在问题得到解决的一刹那是很快乐的。在此举出数个例子与大家分享:
1.音乐播放—>滚动条的绘制
在开始绘制滚动条的时候,为了简便以及缩短开发时间,我打算直接从VC默认的标准滚动条CScrollBar派生,然后对其进行所有者自绘(Owrner Draw),将图片贴上去,然而CScrollBar并不如CButton般好绘制,在经过近一天的尝试后始终无果,很是烦躁,后来在听从陈曦老师的建议后,决定还是从CStatic派生自绘,然后再加上一些鼠标、键盘的相应消息响应处理函数以实现滚动条的功能。
在确定这一思路后,我便开始着手代码的实现:首先实现了一个图片绘制函数LoadBitmapToScroll(),用于将滚动条的滑块、上下箭头以及滚动条底色画到确定的区域。由于滑块的位置会不断的发生变化,因此将不能简单地将滚动条底色先画好,然后将滑块放到某一固定位置,因此我定义了一个类成员变量nThumbTop用于确定滑块顶部到滚动条顶部的距离并截取了一小块滚动条底色将其填充到滑块到两侧箭头的所有区域以实现滚动条的变化。然后捕获WM_pAINT消息调用LoadBitmapToScroll()使对窗口进行重绘时将滚动条显示出来。这样当创建一个滚动条对象的时候,便能够将其简单地显示出来了。
要响应用户的外部输入,则只需要捕获消息即可,比如WM_LBUTTONDOWN便可以判断是否有鼠标左键按下并可通过鼠标位置判断点击的是向上的箭头、向下的箭头还是滑块。另外由于滚动条是不独立存在的,它一般会与一个窗口做伴,比如列表以控制其显示内容或区域。因此,我在滚动条类中定义了一个pList指针变量指向滚动条要控制的窗口对象,在鼠标点击滚动条的上下箭头时,通过向pList指向的对象发送WM_VSCROLL消息以控制窗口区域的上翻或下翻。
如此,一个具有美观界面及基本功能的滚动条大体上已经实现了。整个滚动条的绘制耗费了将近两天时间,尽管时间较长,但还是受益匪浅,整个绘制过程让我明白了:“一切皆有可能”,没有什么是不能实现的,只要它在现实生活中存在,很多东西表面上看起来很复杂,就象这个自定义的滚动条,只要将其功能进行分解然后一步步实现便可以了。
2.透明文字的实现
由于嵌入式系统的特殊性,EVC并不具备VC的所有功能,透明文字的输出就是其中一例。VC下只要简单地通过SetBkmode(TRANSpARENT),然后在控件窗口区域内获取设备上下文DC,通过该DC调用DrawText()即可将想要显示的文字在给定位置显示,然而EVC在CStatic、CListBox等一般控件下设置背景为透明色是不可行的,在纠缠了数个小时后,发现EVC虽然不能简单地设置背景模式为透明,却可以设置背景颜色为一给定的颜色,最后还是采用“先截取背景颜色,然后绘制文字,最后以原背景色设置为背景色”的方式解决。即:
dc.SetBkColor(COLORREF);//设置背景颜色
dc.SetTextColor(COLORREF);//设置字体颜色
dc.DrawText(…);// 绘制文字
3.模块功能的设计
在软件设计的过程中,我深刻地体会到:一个模块对扩展是开放的,对修改是关闭的。在刚开始编程的时候,只是简单地将一些应该实现的功能予以实现,以致于后来在得知UI有所变化时又得重新编写代码浪费了较多时间,因此在进行软件设计的时候必须考虑到软件需求是一直在变更的。同时应当优先使用聚合,而不是继承,否则就会出现类层次很深的问题,从而造成所谓的类爆炸。比如:在我进行各类自定义控件的设计过程中,将一些类剥离开来,在使用的时候直接定义各个类对象便可,从而避免了类层次过深的现象。
总而言之,来公司的这个月,是我最充实的一个月,在这里学会的不仅仅是EVC的MFC编程技能,更重要的是我学会了如何学习,体会到了一个产品应有的严谨(界面美观、功能强大以及差错率较小等)以及产品开发过程中问题考虑的周到充分。
在这里我要感谢大家一个月对我无微不至的关怀与帮助!再次感谢!
第二篇:编程实习心得
计算机辅助制造
实训报告
专 业 数控技术班 级 数控1002 学 号 09姓 名___耿 策 指导教师路大勇 起止日期 2012.12.10—12.14 目录
计算机辅助制造实训任务书………………………………1 实训任务一…………………………………………………
实训任务二…………………………………………………
实训任务三…………………………………………………
实训任务四(配合件凸件)………………………………
实训任务五(配合件凹件)………………………………
心得体会…………………………………………………… 3 6 7 10 13 16 mastercam实训任务书
一、目的与要求
mastercam实训为该课程学习的重要组成部分。用于巩固所学知识,强化二维和三维造型技能,熟练进行二维加工和三维曲面粗、精加工刀具路径的生成、检验、后处理等的操作。实训时间为一周,要求完成规定的造型与编程任务(电子稿)和《实训报告》。
二、任务说明
1.完成图1的二维造型,不标注尺寸。完成外形铣削及挖槽铣削加工程序的编制(零件厚度10),书写相应的文字说明。编程原点位于底边中点,材料为45钢,刀具及切削参数自定。
实训任务一
实训任务二
2.采用实体建模方法,完成图2形体的三维造型。
3.综合运用所学造型及编程技能,完成下列零件的工艺设计、程序编制及加工校验,书写相应的文字说明。刀具及切削参数自定。
实训任务三
实训任务四 实训任务五
实训任务一:
实训任务一 1图样分析:
通过看图纸,了解工件的外形。由图可知,该工件是一个二维造型。2.工艺路线分析: 根据图纸可知,该工件在加工过程中,首先选用φ20立铣刀铣出外形轮廓,接着选用φ12立铣刀用外形铣削的方式分三层铣出内槽轮廓。3刀具的选择:
φ12立铣刀、φ20立铣刀
表1 工件1 工艺过程卡篇二:计算机编程实习报告
土木工程2007级 计算机实习任务书
指导教师 班 级土木(xx)班 姓 名mr.su 学 号
西南交通大学土木工程学院 2008年11月
(一)实习时间:2008 年11月30日—12月14日
(二)实习地点:x7103
(三)实习目的:
计算机实习是本科计算机基础教学的一个重要环节。它对于巩固学生的计算机基础知识,增强学生的计算机应用水平,改善学生的知识结构,具有重要意义。
本课程的教学目的是:通过系统的上机实习,使学生的计算机基础知识与基本操作技能得到进一步的巩固,提高学生的编程能力和用机水平,培养学生用计算机分析与解决问题的意识,为后续课程打下基础。
(四)实习内容:
本实习要求完成如下三项任务:
1. 巩固所学的计算机基本知识和基本操作技能,包括:
(1)熟练掌握正确的键盘指法和英文盲打技术;(2)能熟练使用windows操作系统;
(3)熟练掌握word、excel、powerpoint等办公自动化软件;(4)能使用网络获取、发送信息;
(5)用powerpoint制作一组幻灯片(幻灯片所表述的主题自定),或用excel 绘制出图1所示的sin(x)、cos(x)函数曲线。2. 计算机语言及编程
用本学期已学过的vc++语言编程。编程题目及要求由指导教师指定(可参考附录中提供的题目)。
3. 提交一份实习报告(要求打印)
实习报告不得少于1000字:主要总结实习心得和实习成果(全部程序及计算
(五)实习成果:
【1】程序1:
按以下形式打印出杨辉三角形中的各值 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 · · ·
· · ·· ··· ····· ***691 算法原理:
数据结构:用一个二维数组存放杨辉三角形的数据。
分析杨辉三角形的数据特点,该三角形每一行的行初和行末的数据都是1,从第三行起,每行数据的第2—i-2列数据都满足以下关系:a[i][j]=a[i-1][j-i]+a[i-1][j];根据上述关系得出杨辉三角的每个数据存放在已定义的二维数组中,然后按照图形格式输出已经存放的数据,得出杨辉三角。
程序流程图: 数组a[i][j],i表示行,j表示每一行的第几个数。使用方法:输入程序,直接显示。源程序:
#include 【2】程序2: 从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。算法原理:没有具体详细的数学算法原理。 变量说明:p表示的是要输入的字符,char p[100]表示的是一个字符型一维数组,t表示的 是输出文件的名称,doc表示的是文件的输出格式,i表示的是循环变量。 使用方法:输入需要的字符,用#键结束,#键之后的不能输出。 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)的可能性就比较小。 通讯录系统设计心得体会 计算机学院 数字媒体1102 李权201107120218 在这一次课程设计中,我们所选择的是设计一个校友通讯录,这对我们来说是一次尝试与创新的过程,也可以说是一个挑战的过程,毕竟以前没有作过,缺少经验。现在利用自己学到的知识设计并制作一个校友通讯录的系统,这本身就是一个知识转化为生产力的过程,所以大家都很兴奋,不同程度的投入了很高的热情与努力。虽然有的同学没能帮上忙,但也在默默的给我们加油。 在具体的设计与实施中,很确实的说,我刚开始的时候真是有点不知所措,不知该从何处下手,但接下来的几天,我通过查询资料和查看别人的程序,对这个设计渐渐的有了一点感觉,慢慢的投入其中,思考并感受到了一个管理系统从无到有的过程,对具体的设计步骤、思路、方法、技巧都有了进一步的了解,并使自己对编程有了新一步的认识,而且使自己感受深刻。 在设计中我们基本能按照规范的方法和步骤进行,首先对现有的系统进行调查,并查阅有关资料,最后确定设计方案,然后设计并制作,实施过程中我们深刻的认识到认真执行管理系统软件标准的重要性,我们由于对管理系统软件相关的标准和规范不太了解,缺少行为操作准则,所以在设计中手法比较生硬,主与次也没能很好把握住,这些方面通过这次我们都要加强了解。 在这次课程设计中,我们被分配以小组为单位去完成校友通讯录系统的设计与制作,所以小组内的分工和相互协调很重要,大家可以在分工中扬长避短,个及所长,这样可以很好的提高大家的积极性,和合作意识,并有效的缩短开发时间,但我们在这方面做的还不够,缺乏人员管理与沟通,导致人力资源浪费,可以说是不足之处,且迫切的需要思考和改进,这一点必须指明。这在以后的工作与学习中将会非常重要。 在设计的过程中我先对程序进行了简单的分析,该程序主要实现的功能有输入校友通讯信息,实现信息的浏览,查询,修改功能,并将数据保存至文本文件。 首先经过分析后我将该程序分为六个小部分进行实施,对于多数人信息的储 存与浏览系统,我们先建立一个结构体数组对这些信息进行储存,其他的分为五个子函数和一个main函数,使用主函数对其他函数进行调用,在输入的设计中我们使用的是for进行循环,在for内部进行信息的输入,并在语句中插入if判断语句,加入break,进行循环跳出。浏览功能中我们只是简单的运用了for语句对储存信息进行整体输出,结束为判断年龄是否为0,查询的设计中,我们运用了字符串的比较函数strcmp(),进行信息的匹配与查询,再修改设计的过程中,我的设计是先调用上面的查讯函数,进行判断,是否为真,再进行对个人信息的编辑修改,再保存的设计过程中先定义文件指针,使用fopen 打开文件,再使用fprintf将输入的信息保存到磁盘中存储到.txt文档中,最后使用fclose关闭文件。最后是用main函数进行对子函数的调用,并进行了界面的设计使界面美观和舒适。 通过这次的设计,我学到了很多,同时也学会了细心与耐心的培养。我想这在将来的工作或者社会“旅程”中都将起到很大的帮助。更多的是团队的合作不仅是一个能够更好的完成任务的前提,同时也使我明白了如何与他人配合,如何与他人相处。本人在多方面都有所提高。综合运用C语言课程的理论和生产实际知识进行一次通讯录设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了程序设计等课程所学的内容,掌握程序设计的方法和步骤,掌握程序设计的基本的编程技能懂得了怎样分析程序的工艺性,怎样确定工艺方案,了解了程序的基本结构,提高了编程能力,熟悉了规范和标准,独立思考的能力也有了提高. 农业决策支持系统交流演示心得体会 通过学习VB和农业信息技术的有关知识,我们在老师的要求下编写了有关农业决策支持系统的程序。VB是一门计算机编程语言,知识含量较高。VB中有基本控件、对话框、图形、菜单、文件、程序设计综合应用等设计方法,多文档界面、工具栏、状态栏的程序设计方法,数据库、对象的链接和嵌入、多媒体控件以及常用的ActiveX控件的应用。因为以前并没有接触VB这方面的知识,所以在整个操作过程中还是出现了不少的麻烦。有很多东西都需要翻阅书籍和询问在行的人来完成,很庆幸最后的结果在我自己看来还是比较满意的。 老师花了三四节的时间让我们一个个演示,每个人都有自己的特色。虽然有的人做的比较简单,但是大体框架还是挺不错的,窗体达到个数,决策系统也符合标准,用户界面也各有特色,既有可爱路线,又有深沉风格,逻辑性强。因为技术有限,所以大部分人的作品还是比较类似的。当然,也有技术含量比较高的作品,数据库链接,视频音乐,地图放大镜等等都包含其中。我心中的敬佩之情油然而生。我也深切感受到同学之间的差距,其中的少数几个作品一展示出来,下面就惊叹声四起,很多功能都是我们力所不能及,整个界面的繁杂性,条理性和层次性都需要很大的耐心。也存在一两个作品,即使在我面前展示出来,我的理解能力还是有所欠缺。而在设计的背后,可能有些人只花了一两天甚至还没有这么长时间就能做出比较有价值的高技术产品,而有些花了比别人多一倍甚至更长的时间都没有达到这样的效果,总结来说,砍柴需要磨刀工。当我还处于茫然阶段的时期,我就开始操作,没过多久我就止步不前。于是,我停下脚步,借阅了VB精彩编程百例。这对我编程的进一步扩展起到了比较重要的作用。于是,我的决策支持系统中也出现了播放器、打字效果、标题间隔出现等内容。可能我的设计离班级中比较牛的人来说还差一大截,但是对于我自己来讲已经是一个比较大的突破。做程序一定要规范。我做的时候就想如果别人看,能不能懂。看懂了就算成功的。所以好的编程习惯和约定一定要学好。 通过这次的学习操作,武装了我的脑袋,编程经验及技巧也掌握了一些。整个过程让我感觉到编程可不是一项轻松的活,尤其是一个人开发制作软件时,工作量就多了。没有一定的坐功、细心程度及耐性那是绝对做不到的。有时,把程序做完了需要调试运行,但是就是不能达到自己设计的效果和目的,也许因为一个程序,你就得花上个十几分钟或者几个小时。但是,越是这样越不要灰心,应该放松心态,一点一滴的去查找,往好的方面想十分锻炼我们的意志。相信以后回到社会这个大熔炉里后也会派上用场的,说不定还能作为我们的收入呢!第三篇:编程心得
第四篇:编程心得liquan
第五篇:编程心得(最终版)