1. c語言程序設計心得
C語言程序設計課程是高等院校計算機專業基礎課程之一,其教學效果直接影響學生在計算機方面的應用。C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。那麼要如何寫關於c語言程序設計心得呢?本文是c語言程序設計的心得,僅供參考。
c語言程序設計心得一
在這為期半個月的時間內,通過我們小組各成員之間的相互討論和合作,我們完成了學生信息管理系統的程序設計,更值得高興的是我們的程序得到了大家的喜愛,在每次的簡報中都得到了較好的成績。
雖然在上個學期中,我們已經學習了《C 語言程序設計》這門課,但是我所學的知識最多也就是在做作業的時候才會用到,平時沒有什麼練習的機會,這次的課程設計是我第一次通過自己構思,和同學討論並且不斷查閱資料來設計一項程序。這次設計,不僅鞏固了我以前所學的知識,還讓我對c語言有了更深一步的了解,掌握了更多的技巧和技能。
C語言是計算機程序設計的重要理論基礎,在我們以後的學習和工作中都有著十分重要的地位。要學好這種語言,僅僅學習課本上的知識是不夠的,還要經常自己動手,有較強的實踐能力。只有多動手,經常編寫程序,才能發現我們學習上的漏洞和自己的不足,並在實踐中解決這些問題,不斷提高自己轉化知識的能力。
在我們小組有解決不了的問題時,我們會主動查閱相關的資料,或向其他同學詢問,這不僅豐富了我們的知識,還增進了我們同學之間的友誼。為了增大信息的安全性,需要用文件來存儲信息,由於我們在上課時不注重對文件的運用,所以在這方面有較大的困難。我先將書本認認真真地看了一遍,又做了一下課後習題來驗證和增進自己的理解,終於,經過我們的不懈努力,我們小組的程序有了突破,成功地實現了用文件來保存並查看學生的信息。
這次設計中,我的收獲還有就是學會了用流程圖來表達自己的想法,並根據流程圖來逐步實現程序的功能。開始的時候,我畫流程圖很是困難,需要一個多小時才能清楚的根據自己的想法畫出圖來,後來畫多了,就更加了解它的功能,十分得心應手,能夠比較快而准確的畫出來。
在這次課程設計中,我們首先對系統的整體功能進行了構思,然後用結構化分析 方法 進行分析,將整個系統清楚的劃分為幾個模塊,再根據每個模塊的功能編寫代碼。而且盡可能的將模塊細分,最後在進行函數的調用。我們在函數的編寫過程中,我們不僅用到了for循環、while循環和switch語句,還用到了函數之間的調用(包括遞歸調用)。由於我們是分工編寫代碼,最後需要將每個人的代碼放到一起進行調試。因為我們每個人寫的函數的思想不都一樣,所以在調試的過程中也遇到了困難,但經過我們耐心的修改,終於功夫不負有心人,我們成功了!
在參考書上,我們不僅參考了曾經學過的高敬陽主編的《c語言程序設計》,還找到了由譚浩強主編的第三版《c語言》進行參考。
當然,我們的程序還有一些不完善的地方,比如說,當輸入的數據不符合我們定義的數據的格式的時候,程序會出現一些錯誤,有時會出現主菜單的死循環;在一次程序運行中,只能行使一種許可權,要想再行使另一種許可權,就只能退出程序,然後再運行程序。
三周的小學期即將結束,時間雖短,但是我收獲了很多。最後,謝謝老師和同學們的指導,更要感謝我們小組成員之間的合作與交流。
c語言程序設計心得二通過本次教師發展在線的C語程培訓中,我受益匪淺,幾位教授的精彩演講,讓我找到了自己的不足和日後教學中的改革方向和內容。同時,也讓我感覺到了,有今天各位教授的良好教學效果,這其中包含了他們的艱辛、背後的大量付出和無私奉獻。
我是一直從事C類語言的教學工作,對C語言的教學已有5年教齡,在這幾年的教學過程中,我們也一直在尋找好的 教學方法 和新的教學理念。通過本次學習,我 總結 要教好《C語言程序設計》這門課,最基本要把握好以下幾個方面:
(一)要重視實踐環節,上機調試成績非常重要。
學習一門語言,就是要按照它的語法來編程。要編程,當然就要上機操作來驗證你程序的正確性。所以上機非常重要,通過執行你所寫的程序,完成你所寫程序的目標,最終達到你的目的。而且通過執行程序,你會發現程序中的錯誤,從而使你了解你所學知識中的不足,同時,要學會根據編譯時提示的錯誤來改正程序中發生的錯誤,以便下次不會再犯同樣的錯誤。
(二)基本語法學習雖然枯草乏味,但是它相當於高樓大廈的一磚一瓦,一定要下硬功夫讓學生掌握熟練。
C語言的語法部分。這部分內容是學好C語言的基礎,只有學好了這些語法,才會寫程序,看程序。所以對一個初學者來說,這部分內容是非常重要的,所以要扎實地熟悉每一個語法,並能根據這些語法來編程。
(三)學習要抓住重點,難點部分要多講、多學、多練。
通過這次學習使得我對C語言的重點,難點,以及易出錯的地方把握的更精準了。當然,這只是針對我個人而言。在C語言學習過程,重點就是數組,指針,以及結構體了。難點也是它們了,不過數組和結構體還是挺簡單,所以在此主要就指針方面談談自己的看法。
下面談談通過這次學習,結合我們學校的教學情況,打算對該課程的教學進行如下幾個方面的改革:
(一)理論教學內容的組織
C語言的重點知識包括:結構化程序設計方法、流程圖的組織、三種程序設計結構、三種基本數據類型和三種自定義數據類型;難點包括:結構程序設計方法、演算法的分析、流程圖的組織與設計、函數、指針等。
根據知識內容和每年的新學時安排,我們將理論教學內容分為授課內容和自學內容兩 大模塊。
(1)授課內容
C語言的授課內容分為兩階段:①基礎准備階段 這部分內容確保學生「實用、夠用」,主要包括三種基本數據類型(只要求掌握常用的int,float,char);三種常用運算符及其表達式(賦值、算術、邏輯(包括關系));三種程序設計結構(順序、選擇、循環)。②實訓項目驅動階段 這部分內容主要是「實訓實戰」,主要包括數組、函數、指針和結構體。通過第一階段的學習,學生已經具備了一些程序設計的基礎知識,在這一階段將通過一個實訓項目的完成來熟悉主要內容,同時鞏固第一階段的成果。
(2)自學內容
課本中的內容上課沒重點介紹或者說就是沒提到的,劃為自學內容。但這些內容,我們並不是在課堂要求學生回去自學:要求過高,規矩過多,這樣效果不佳。而是讓學生在實驗中發現問題後,帶著問題去學習,去找答案。
例:整型 我們只介紹int基本類型,當學生想計算n!時,學生測試5!=120時,他可能會去測試20!、50!,這時,存放階乘的變數Factorial再定義為int,結果就是0了,這時問題就來了,他就會去尋找正確的處理方法(long int)。
(二)實驗教學的安排與設計
教學改革方案確定後,我們對本課程實驗教學上從多方面進行了教學更新。我們考慮到學生處於了解計算機語言及編程的初級階段,有許多最基礎的內容有待掌握,所以本課程的實驗教學不太適合完全以項目開發的形式進行,注重的是加強模塊化實訓。
(1)上好第一節實驗課
我們常說「上好第一節課」,那麼第一節實驗節的重要性也不言而喻。這節課對培養學生的學習興趣、增強學生的學習信心、鍛煉學生的自主學習等多方面影響很大。
第一次實驗項目是—熟悉Turbo C的運行環境,主要是掌握一些在TC中的一些鍵盤操作方式。一般是教師給學生提供程序代碼(三個),但我們在學生不知情的情況下,給學生兩個有語法錯誤的和一個正確的程序。這樣,當學生運行正確的程序時,知道計算機可以幫我們處理問題,原來程序就是這樣寫的;當學生運行錯誤的程序,首先他會詫異(老師給的程序原來是錯的),於是要求他們自己修改,尤其是有時一個致命錯誤導致的10多個errors,被學生修改後,沒有了errors或所剩無幾,這時學生表現的很興奮、很有成就感,從而加強了本課程的學習興趣和信心。
(2)分兩階段進行
實驗內容與理論教學內容相互應,在基礎准備階段,這方面教學方法上主要是加強操練。通過各種大小程序、多重訓練和一個問題的多種解法來加強語法知識點的掌握和訓練,開闊學生編程的思路,掌握編程基礎。同時,在這過程中我們嚴格把關,讓學生課後認真准備,每次進實驗室時,應有寫好的完整代碼,上機調試,發現問題同時解決問題,要求認真完成實驗內容,並在課後書寫實驗 報告 。鼓勵學生多寫程序,要加強實踐環節,首先要從量上有個劃分。在實訓項目驅動階段。本階段實訓項目的設計非常重要,原則是既要使學生有切入點能夠動手又要使各章的內容之間有聯系點。
(三)案例教學法
C語言的教學,教師一般受傳統應試 教育 的影響,狠抓理論考試,忽略了程序設計能力的培養,把授課重點放在程序設計語言的基本語法的講授和掌握上,所選的編程實例大多用於語法規則的驗證和說明,僅從程序設計語言的使用這個單一的角度進行教學,而使得大多數學生在學完本課程後,「吃不透、用不活」,表現為學生在程序調試時,對程序中出現的邏輯錯誤經常不知所措,在開發較大的應用程序時,不知道如何入手。
採用案例教學法,以程序設計為主線,以編程應用為驅動,通過案例和問題引出教材內容,重點講解程序設計的思想和方法,穿插講解相關的語言知識。使教學效果既有深度又有廣度,學生實際動手能力大為增強。
以上是我個人結合我院C語言程序設計的教學情況,自己總結了幾點看法和一些改革 措施 ,拿出來和大家一起分享,請大家多提寶貴意見。通過這次學習,我將會靈活運用幾位教授的教學 經驗 ,根據我院的教學對象,調整一些上課方法和措施,望能更好的提高教學質量。
通過此次C語言程序設計實踐,本人實在是獲益不淺!C語言是上個學期開的課程,所以這個學期並沒怎麼看過,當要開始設計的時候,還真不知從哪下手!結果,第一次的上機,我傻坐著不知道該做什麼,後來就寫了幾個預處理命令。回去以後,我想,這樣不行,這樣下去還得了!我就重新復習了一遍我們上個學期學習的內容,發覺自已有許多都遺忘了!特別是有文件的操作,幾乎是一遍空白!溫習過後,開始做題!
一開始做題,也是有點模糊,在指導老師的指導下,我們慢慢的進入狀態,我們做的是一個通訊錄,內容包括很多。運用的函數也是非常的復雜,我們一組有七個人,我分工合作,首先我一起完成了結構題,然後我們一人各負責一個函數程序的設計,經過幾星期的努力,我們完成了大半個程序,但是總是有很多錯誤出現,有好多是些小問題,這都是我們粗心大意造成的,所以設計程序一定要仔細,不容一點的馬虎。當然也有大問題,關於文件的操作,是我們最大的問題,不過,我們做好後,經過老師的講解和改錯,我們也懂得設計和運用了。同時,也讓我知道了,合作的力量,如果是孤軍奮戰的話,我也不能在規定時間內完成,當然,也多虧老師的指導。
這次設計,讓我重新掌握了C語言,而且還得到了用C語言解決實際問題的寶貴經驗!
↓↓↓點擊下一頁還有更多精彩的C語言編程 學習心得 ↓↓↓
2. excel vba 程序設計的學習總結
Sub re()
i = 0
'先統計有多少人參與排名
For n = 1 To 10000
If Cells(n, 1) = 1 Then
i = i + 1
Else
Exit For
End If
Next
'再做成一個字元串的區域名
Dim str As String
str = "C$1:C$" & i
For hang = 1 To i
Cells(hang, 4) = "=rank(C" & hang & "," & str & ")"
Next
'以上完成了一班的排名
'先統計二班有多少人參與排名
j=hang
For n = hang To 10000
If Cells(n, 1) = 2 Then '是不是二班的
i = i + 1
Else
Exit For
End If
Next
'再做成一個字卜頃符串的區域名
str = "C$" & hang & ":C$" & i
For hang = j To i
Cells(hang, 4) = "=rank(C" & hang & "桐脊," & str & ")"
Next
End Sub
我的測試:
1 A1 98 4
1 A2 99 3
1 A3 100 2
1 A4 101 1
2 A5 102 7
2 A6 103 6
2 A7 104 5
2 A8 105 4
2 A9 106 3
2 A10 107 2
2 A11 108 1
測試成功!!!!!
========================================
您的問題==我的課題 奉獻知識==輝局弊滲煌生命
黑龍江省 張志晨
========================================
3. vb程序設計實訓總結
在這如火如荼,百花齊放的六月,大二生活即將結束,不知道我們收獲了多少?也許或多或少有所提高吧
!老師,朋友,同學我們一起走過了大學的第一段路程,很感謝你們這學期來對我的幫助,支持,鼓勵和
關懷,在這里我給你們說聲謝謝。在這一學期拼搏的歲月里,如果沒有你們的幫助,我不知道我會怎樣度
過我的大一生活。遇到挫折,有時我很無助,遇到困難,不知道如何去解決,遇到傷心事,有時甚至無法
擺脫......你們的關懷和幫助給我感覺就像家裡一樣親切,謝謝你們。
這學期,我覺得我真收獲挺多的,以前愚昧無知,現在感覺是豁然開朗,VisualC#程序設計、C語言、數
據庫和java都是我們的專業課程,現就VisualC#而言,剛開始不知道是幹啥用的,第一天,李老師上課,
我覺得很新鮮,於是乎很認真的聽講,我發現這門課程很有趣,老師幽默而卻講課生動,很吸引人,就這
樣,喜歡上VisualC#了,感覺挺有用的,剛開始就想著還可以自己編軟體,多好啊!其實拿那麼容易啊,
要學好VisualC#也是一件不容易的事,首先,自己的多看有關的課外書,上課必須跟上老師步驟走,認真
聽講,積極配合老師。其次,下來要自己或者跟同學解決書上的例題和課後上機實訓,不懂就問老師和同
學,接下來,要做的就是自己在網上找一些編程題做做,看看及自己的實力如何,究竟哪些地方有問題,
這樣很快就會發現問題,最後,要幫助同學解決他們的問題,同時自己可以獲得更多的知識,充實自己,
真正掌握VisualC#這門課程,總而言之,最重要的是多做例題多實踐多鍛煉多操作。
4. 程序設計總結
充實自己!其實拿那麼容易啊,喜歡上visualc#了,多好啊,很感謝你們這學期來對我的幫助,剛開始就想著還可以自己編軟體,於是乎很認真的聽講,我發現這門課程很有趣在這如火如荼,遇到困難.、c語言,
要學好visualc#也是一件不容易的事、數
據庫和java都是我們的專業課程,有時甚至無法
擺脫,朋友,認真
聽講,
這樣很快就會發現問題,有時我很無助,李老師上課,自己的多看有關的課外書,不懂就問老師和同
學.你們的關懷和幫助給我感覺就像家裡一樣親切,老師幽默而卻講課生動,我不知道我會怎樣度
過我的大一生活,最重要的是多做例題多實踐多鍛煉多操作,就這
樣.,總而言之,同學我們一起走過了大學的第一段路程,接下來,上課必須跟上老師步驟走,積極配合老師。
這學期,下來要自己或者跟同學解決書上的例題和課後上機實訓,要做的就是自己在網上找一些編程題做做,現在感覺是豁然開朗,大二生活即將結束,以前愚昧無知,要幫助同學解決他們的問題,謝謝你們,
真正掌握visualc#這門課程,百花齊放的六月,現就visualc#而言,究竟哪些地方有問題,剛開始不知道是幹啥用的,支持.?也許或多或少有所提高吧
..,遇到傷心事,很吸引人。遇到挫折,如果沒有你們的幫助。其次,在這里我給你們說聲謝謝,鼓勵和
關懷,不知道如何去解決,不知道我們收獲了多少,我覺得我真收獲挺多的,最後!老師,
我覺得很新鮮,感覺挺有用的,visualc#程序設計,同時自己可以獲得更多的知識,看看及自己的實力如何,第一天,首先。在這一學期拼搏的歲月里
5. 《java程序設計》課程總結怎麼寫(java程序設計總結體會)
1、課程收獲與不足
自己的收獲
經過一個學期的JAVA課程學習,現在雖說算不上什麼專業的JAVA程序員,但我還是很有收獲。了解了這門語言,探索了這門語言,認知了這門語言。我從一個什麼都不懂的菜鳥,到現在能夠自己編一個簡單的程序並使其跑起來,在本學期末還與小組成員成功編譯運行了一個JAVA游戲,感覺十分有成就感呢!回首之前的學習歷程,要想真正有所學,有所得,必須持之以恆,踏踏實實的跟著婁老師的「方針政策」走,不要有排斥心理。剛開始學習JAVA的時候的確不習慣,覺得很累,每周的java學習與博客總結都會佔用周末業余時間。不過心態一定要好,反正要做,還不如把它做好,不要敷衍自己。萬事開頭難,習慣成自然!哈哈哈,雖然已經學了一學期JAVA了,但其實還有好多好多東西是需要自己去探索的。學習JAVA應該是循環漸進,按部就班,腳踏實地的。對了,JAVA課程是我第一次接觸翻轉課堂,翻轉課堂講究的是自己主動學習,主動探索,然後把問題反饋給老師,老師在課堂上解答。不過由於c語言學的不是很好,所以剛開始看到JAVA的時候,看著源代碼,都不知道是什麼意思,看書的時候一看到源代碼就頭疼,因為根本看不懂,那段時間挺挫敗的。不過幸好每周都要考試!所以這也是驅動我學習的一個主要原因,想要拿高分,就得花時間看,把不懂的想盡辦法弄懂。於是最開始最艱難的那段時間,我大部分課下時間都花在JAVA上,不懂的問高其和周正一,再加上翻書,網上查閱資料。三周下來,效果也挺明顯的晌簡,並且我覺得JAVA這門語言雖然很高級但並不復雜,很多功能都是可以直接調用的,不需要自己親手去編。世上無難事,只怕有心人。對於任何新生事物,我們首先不要排斥,如果可以,帶著興趣去探索,必定其樂無窮!受益匪淺!這學期也是我第一次接觸到博客園。我感覺博客園真的是一個集思廣益的地方,大家可以把自己的學習心得體會都通過博客的形式發表出來,然後其他人就可以去閱讀、去參考別人成功的方法,有什麼問題也可以建立一個小帆謹羨組,然後博主會和大家互動,共同探討,解決問題。一學期的博客園生涯讓我逐漸喜歡上了這里。記住,學JAVA,一定要做到課前預習與課後復習,書上的概念要理解透徹,代碼一定要過手;多和同學溝通,互相學習,取長補短。婁老師說過,知識是學不完的,重要的是要找到一種適合自己的高效的學習方法,這將受益終生。
2、自己需要改進的地方
我覺得應該多看別人的博客,多與別人進行交流,但是本學期學習壓力較大,這方面做得不夠好,所以這是我的一大遺憾!其次,對JAVA的不同庫的掌握需要增進,一旦對JAVA各種庫的引用融會貫通,對較大程序的編寫就能事半功倍,效率遠超C語言,這也是JAVA最吸引我的一個地方。還有就是學JAVA千萬不要浮躁,不要趕進度。說到浮躁,這也是一個很值得我深思的問題,我覺得我剛開始還沒完全接受JAVA的時候,就比較浮躁。做事停留在表面,敷衍。經過後來逐漸調整,才慢慢改變。真正學習的時候,浮躁會使你失去很多。
如果有結對,寫一下你提供的幫助或接受了什麼幫助,並對老師提供參考意見
在實驗三和實驗五階段都有結對的部分。通過結對,我深刻地明白了團隊合作的重要性。團隊精神能推動團隊運作和發展。在團隊精神的作用下,團隊成員產生了互相關心、互相幫助的交互行為,顯示出關心團隊的責任感,並努力自覺地維護團隊的集體榮譽。我覺得結對編程這一環節很好,不僅讓大家能夠明確分工,合作的編寫出程序,而且能培養大家的默契,讓我們能夠在實際操作過程中更好的編寫代碼。要想成功編寫程序,這一過程是很復雜的,而團隊方式可以使其簡單許多,遇到問題的時候可以大家一起想,集思廣益,而且團隊操作在很大程度上還可以實現優勢的互補(比如git代碼,然後共享)。
3、給學弟學妹們的意見
如果重新學習這門課,怎麼做才可以學得更好?
如果可以重新學習這門課的話,我想我會做的更好。首先我會找一本好的書本教材,然後輔助看教學視頻。因為翻轉課堂更強調的是自己主動學習,主動探索,主動發現問題。一本好的教材,可以讓你更快更好的進入Java的世界,然後看視頻是一種比較直觀的輔助學習方式。建議先看課本,發現不懂的地方,再結合視頻,這樣效果更好,如果視頻上沒有講到的,就通過其他方式解決。老師之前會發視頻鏈接,那裡面講的內容(畢態拍向東老師主講)都很不錯。書上概念與代碼搞懂了後,自己一定要主動動手敲代碼!因為看懂和學懂完全是兩回事,一定要學好基本語法,弄清Java語言的特點。剛開始學習時,有些知識可能有些難懂,自己也不會敲代碼。不過這沒關系,這很正常。多看多問,多實踐,慢慢的你就入門了。千萬不要投機取巧!主動敲代碼真的是學JAVA的精髓!JAVA和其他的編程語言一樣,在學懂理論後,一定要實踐。只有多動手編程,哪怕是簡單的小程序,重復實現書上簡單的例子,也是在積累和提高。
4、問卷調查
你覺得這門課老師應該繼續做哪一件事情?
老師應該繼續要求扇貝打卡與五筆打字練習,然後期末加分。這種方法很值得提倡,希望能夠繼續做下去。這不僅可以調動大家學習的積極性,而且還讓我們的英語水平提高了很多,對於四六級以及以後在工作中打字速度等其他的方面都有很大的幫助。在博客園里發表博客也是很好的一種總結心得體會的方法,值得提倡。博客園是一個集思廣益的地方,大家把自己的學習心得體會都通過博客的形式發表出來,然後大家可以交流意見,有什麼不懂的也可以直接在問題小組里提出來,共同探討,共同解決問題。這種感覺很棒。對了,每周一考我也覺得這必不可少,可以敦促學生的學習進度。
你覺得這門課老師應該停止做哪一件事情?
感覺每周的學習任務還是偏重了,幾乎要佔據半個周末的時間來搞JAVA。老師應根據每周學習內容的難易程度,合理調配學習任務量。
你覺得這門課老師應該開始做什麼新的事情?
希望老師在課上多講一點關於教材知識的內容(包括實驗),讓我們能夠更高效更有針對性的去學習JAVA。因為教材的內容太多,盲目的去看就會浪費很多時間。如果因為趕進度,只是囫圇吞棗的看一遍教材的話,我們就不能很好的去理解java的相關知識。
6. windows程序設計心得體會
windows程序設計也就是基於微軟的windows操作系統而進行的程序設計。
(這是一句廢話,但不要小看廢話阿!真理往往就在其中)你有沒有想過,為
什麼是基於windows操作系統呢?下面就來解答:windows應用程序需要利用
由windows操作系統開放出來公用用程序使用的應用程序介面「API」(說道
重點了)windows提供了上千種API函數供應用程序使用。
上面說了,windows程序其實就是在非邏輯的使用這些API函數,我這里
提到了「非邏輯」三個字(這是本人的看法),這正是windows程序的精髓,這
是一切windows程序運行的方式(可能嚴重了點)。非邏輯也就是指程序不是
按照事先安排好的順序來進行的,是根據用戶的不同操作或者是其他某些原因
一步一步進行的。這種運行方式就叫做「消息驅動」
簡單一點來解釋一下何謂消息驅動,就是指應用程序始終在等待(等待
一詞也許不他恰當,但可能好理解),它絕對不是在等待誰會給它愛(本人
愛開玩笑請別見怪!)它是在等待用戶或者是系統的消息(也就是命令),
當接到消息後呢,它會把消息通過DispatchMessage(&msg)傳遞給窗口函數
(窗口函數就是一個應用程序的核心)窗口函數就會對照事先由程序編寫好
的消息對照表調用對應的方法來處理消息。這樣就完成一個消息的處理,接
下來准備處理下一個消息。
你也許會問那不是無休止的運行下去了嗎?當然不會,下面我用程序
本身來說明這個問題:
//消息循環,通過此處來不斷的取得消息。
while(GetMessage(&msg,NULL,0,0))
{
//消息進行一些轉換
TranslateMessage(&msg);
//把消息傳向窗口函數
DispatchMessage(&msg);
}
return msg.wParam;
就是這樣了:當我們點擊窗口右上角的小叉或者點擊退出按鈕時,
windows就會自動在我們的消息隊列中加入一條消息「WM_DESTROY」,這
時呢窗口程序有這么一部分:
switch(message)
{
//其它代碼
.........
//
case WM_DESTROY:
PostQuitMessage(0);
return 0;
相信一般的朋友都會明白吧,它的作用的就是在接收到WM_DESTROY時呢,
通過調用PostQuitMessage(0)讓windows在消息列表中呢在加入另一條消
息「WM_QUIT".
當GetMessage函數抓取到WM_QUIT時返回0,其餘返回非0值,懂了吧,
這下可以退出消息循環了。
這就是windows程序設計最基礎的部分了,可以說是核心。
該說一些心得了,我認為學習windows程序設計不要基於某一部分,
而要把握住其大局,要有整體觀,有了整體觀對windows程序設計有了
一定的了解後在對其各部分下功夫(這下可不是照顧全局了,要靜下
心來細心的咀嚼,要不然你會咽到的。)這樣才不會走火入魔(嘿嘿)
就寫到這吧,以後等我水平高些了再寫(還早著呢,嘿嘿),希望
我沒白費功夫,也希望對你有用,88。
7. 要C語言程序設計試驗報告的小結,誰有
通過對這一課題的設計和實現,我對Micosoft Visual C++環境進行了深一步的了解,並逐漸開始熟練Micosoft Visual C++環境的工作界面,以及對每一個快捷鍵的熟悉。並認識到,熟悉這些快捷鍵,極為便捷編寫程序,但是還要更加熟悉。 編程時要養成良好的風格,注意相同內容的縮進和對齊。這樣做,可以使程序代碼出錯的情況下,可以快速並且便捷的查找到錯誤的行,利於很好的修改。 通過這次編程我們深深的感受到對代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同人員之間的協作。 這個程序設計主要涉及到了C語言中的結構體、指針及文件操作等內容,只有充分掌握了C語言中的結構體、指針及文件操作等內容,才有可能組織好這些代碼,使之符合運算邏輯,得到理想的結果。 善於總結,也是學習能力的一種體現,每次完成一個編程任務,完成一段代碼,都應當有目的的跟蹤該程序的應用狀況,隨時總結,找到自己的不足,這樣所編寫的程序才能逐步提高,生活就是這樣,汗水預示著結果也見證著收獲。勞動是人類生存生活永恆不變的話題。通過實際動手做,我們才真正領略到「艱苦奮斗」這一詞的真正含義,我們想說,編程確實有些辛苦,但苦中也有樂,在這個團隊的任務中,一起的工作可以讓我們有說有笑,相互幫助,配合默契。對我們而言,知識上的收獲重要,精神上的豐收是可喜的。挫折是一份財富,經歷是一份擁有。這次實際操作必將成為我們人生旅途上一個非常美好的回憶! 回顧起此次課程設計,至今仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實踐,在整整半個月的日子裡,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對一些前面學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體,指針……通過這次課程設計之後,我把前面所學過的知識又重新溫故了一遍。 同時,在*老師的身上我學得到很多實用的知識,在此表示感謝!同時,對給過我幫助的所有同學和指導老師再次表示忠心的感謝!
8. Qt程序設計中遇到的一些問題總結-dbus篇
這段時間完成了一個Qt程序,並且已經發布,在這里記錄下自己在整個設計中遇到的一些坑。關於qtbbus我這里主要寫一些systembus方面的一些問題。通過AddBus一個簡單的類來描述整個實現過程。在qt中訪問dbus,需要在*.pro文件中添加<code>CONFIG += qdbus</code>
服務端非常簡單,它只有一個函數實現返回兩個參數之和的功能。
<code>#include <QObject>
class AddBus : public QObject
{
Q_OBJECT
public:
explicit AddBus(QObject *parent = 0);
~AddBus();
public Q_SLOTS:
int add(int a, int b);
};</code>
實現完成整個基本功能之後需源差要在qdbuscpp2xml這個軟體的幫助下把介面導出稱為xml文件。
<code>qdbuscpp2xml addbus.h -o addbus.xml</code>
一般來說生成的xml中關於<code><interface name="local.qdbuscpp2xml.AddBus"></code>這一項的定義都不是非常符合我們的吵裂模要求,需要重新填寫。這里我修改為<code><interface name="com.example.addbus.manager"></code>
然後通過qdbusxml2cpp命令生成適配器類
<code>qdbusxml2cpp addbus.xml -a addbus_adaptor</code>
把生成的addbus_adaptor類導入pro中。編輯main.cpp文件
<code>#include "addbus.h"
#include "addbus_adaptor.h"
#include <QApplication>
#include <QCoreApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
AddBus *add = new AddBus();
new ManagerAdaptor(add);
QDBusConnection conn = QDBusConnection::systemBus();
if (!conn.registerService("com.example.addbus"))
{
qDebug() << conn.lastError().message();
}
conn.registerObject("/", add);
return app.exec();
}</code>
完成main文件之後,我們就可以編譯運行整個程序了,但是我們第一次運行這個程序時,會有一些問題
<code>
sudo ./bus-daemon
"Connection ":1.181" is not allowed to own the service "com.example.addbus" e to security policies in the configuration file" </code>這是說我們剛才注冊的com.example.addbus沒有在dbus的配置文件中,所以運行不了。這就要涉及到/etc/dbus-1/system.d/目錄了,這個目錄下面存放了所有systembus的配置文件,我們可以使用其中的文件作為參考來配升緩置我們的配置文件。
<code>
vim com.example.addbus.conf
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"" http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd ">
<busconfig>
<policy user="root">
<allow own="com.example.addbus"/>
</policy>
<policy context="default">
<allow send_destination="com.example.addbus"
send_interface="com.example.addbus.manager"/>
<allow send_destination="com.example.addbus"
send_interface="org.freedesktop.DBus.Introspectable"/>
</policy>
</busconfig>
</code>
拷貝com.example.addbus.conf文件至/etc/dbus-1/system.d/目錄下面。通過上面的命令就可以運行dbus-damon程序了,然後使用d-feet工具嘗試訪問com.example.add匯流排,並嘗試執行add操作。
客戶端簡單描述如何初始化一個systembus和調用server端提供的介面
<code>
m_interface = new ("com.example.addbus", "/",
QDBusConnection::systemBus(), this);
if (!m_interface->isValid())
{
qDebug() << m_interface->lastError().message();
}
m_sum = m_interface->add(m_a, m_b);
</code>
一般來說dbus提供了自動拉起server的功能,這時候需要我們配置一個service服務。這個配置文件需要放在/usr/share/dbus-1/system-services/目錄下面。<code>
vim com.example.addbus.service
[D-BUS Service]
Name=com.example.addbus
Exec=/home/crystal/workspace/build-systembus-Desktop-Debug/bus-daemon/bus-daemon
User=root</code>
這時候我們還是拉不起服務,如果我們手動啟動後台服務,則整個程序還是可以正常運轉的。
這是因為我們的後台服務採用了QApplication啟動的,如果我們換成QCoreApplication則可以正常拉啟後台服務。
9. 如何編寫程序
編寫程序是一項系統而繁瑣的工作,它不僅需要程序設計人員具有一定的功底,更需要有良好的編程習慣和風格。良好的編程習慣和風格不僅可以使程序代碼更易於讀懂和修改,更重要的是,它可以使程序的結構更加合理,有助於提高程序的執行效率。下面是我在程序設計中總結的一些經驗,供大家參考。
設計順序
在我們剛開始學習程序設計的時候,要編寫一個程序,總是先進行一番構思,然後就一邊寫代碼一邊調試。這種方法一般只適用於非常小的程序,根據軟體工程的特點,如果對所有程序都還按這種方法進行設計,是不合理的。
其實,設計程序就像我們蓋高樓大廈,首先要設計圖紙,然後動工。所以,對於個人編寫程序來說,應遵循以下步驟:
1、問題分析:對我們要使用程序設計手段去解決的問題進行系統地分析,了解程序是做什麼的,要達到一種什麼樣的效果等。
2、結構設計:也就是對程序的整體框架進行設計,設計出我們需要使用的模塊等等,並畫出流程圖。
3、用戶界面設計:在此,我們要設計出用於與用戶交互的輸入輸出界面。
4、代碼設計:在這個步驟中,我們要進行代碼的編寫。
5、調試:對程序中正在發生或可能發生的各種錯誤進行處理。
6、維護:通俗地說,維護就是對程序進行升級,對原有錯誤進行修改。
對於以上幾個步驟,我想大多數人會認為代碼設計最為重要,但如果程序的結構尚未清楚,我們在編寫代碼的時候就會發生混亂,一個程序性能的好壞,主要還是取決於它的結構是否合理。因此,在程序設計中,我們要盡可能注意這一點,這樣才能使我們的程序更加完善。
設計環境
一個良好的編程環境可以使我們在編寫程序時,不至於造成各種資源的紊亂,還可以避免資源的丟失。建議大家要在放源程序的目錄下建立「programs」文件夾;然後再以你要編寫的程序名和版本為名建立一個文件夾,用於存放整個源程序以及各種資源;最後,分別建立幾個文件夾,「documents」:用於存放程序文檔,包括流程圖等;「resource」:用於存放圖片,聲音,影片等資源;「debug」:用於存放調試的程序。「release」:用於存放最終釋放的程序。
例如:我們要製作一個英語學習軟體,名為「english」,版本為1.0,那麼我們的編程環境中應存在以下文件夾:
[drive]:\\…\\programs\\english1\\debug\\
[drive]:\\…\\programs\\english1\\documents\\
[drive]:\\…\\programs\\english1\\resource\\
[drive]:\\…\\programs\\english1\\release\\
另外,最好再建立一個專門的文件夾,用於存放各種模塊,以便能實現代碼的重用,這樣,我們就不用在每次寫程序時,都重寫所有的模塊,編程速度會有很大的提高。
設計技巧
代碼如果寫得很亂,程序便不易被閱讀與修改,所以,在編寫代碼時要注意以下幾點:
(1)注釋:寫注釋雖然要佔用一定的時間,但在閱讀和修改代碼時卻會節省很多的時間。所以,建議大家在定義一個函數時,在函數的第一行寫出函數的作用,再用一行解釋函數的參數,並在每個變數的定義語句後注釋出其作用。
(2)變數和函數的命名:每個程序都會使用很多的變數和函數,如果隨意命名變數與函數,每次使用時還得在變數或函數的定義語句處查出它的數據類型及名稱,而且隨意命名還會造成變數與函數重復定義。
建議大家使用匈牙利命名法,方法是:每個變數或函數的開頭都以其數據類型的縮寫命名,然後再加上代表這個變數或函數的作用的英文單詞簡寫共同組成變數或函數的名稱。例如:要定義用於計數的整型變數count,其定義語句為c\\c++:int icount; basic:dim icount as integer。以這種方法定義,不僅可以有效地避免變數與函數的混亂與重復定義,還可以保證數據類型的匹配。
(3)控制項命名:如果在windows下編程,你有可能會大量地使用控制項,如果不對控制項名嚴加管理,會造成很大程度的混亂,因此,建議在給控制項命名時,以控制項類型縮寫再加上代表這個控制項作用的英文單詞的簡寫共同組成此控制項的名稱。例如:你要命名一個按鈕控制項,作用是進行刪除操作,那麼控制項名可以命名為cmddel。
並不是每個人都能成為頂級程序員,但我們都在程序員之路上不斷進步,追求更完美、更專業化的程序。不妨好好改造一下你的程序,你會從中感受到很多好處。