第一篇:編程實習心得
編程實習心得
來公司實習已一個多月了,在這段時間里,我主要學習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
第五篇:編程心得(最終版)