一·作業過程總結
①總結三次作業之間的知識疊代關系:
第一次PTA作業主要是讓我們回顧一下C語言的基本知識,作業就是一些計算判斷統計轉換問題。第二次PTA作業就是在第一次作業上加上了限制在主方法裡面你需要按照要求寫一些指定的方法。第三次PTA作業就是在第二次的作業上加上類的限制,你需要自己建立一個類,然後寫自己的方法屬性,主函數已經給定了如何調用,你就需要根據主函數來寫好一個個子類。從第一次到第二次最後到第三次,
代碼逐漸一步步走向面向對象程式設計,題目雖然一樣,但所學到的知識不一樣。
②如何通過作業逐漸從面向過程過渡到面向對象:
第一次作業我寫的完全是面向過程,就比如計算稅務就在Main方法裡面用了switch語句和if-else語句。第二次作業題目就有了提示告訴我們要在Main方法裡面寫一些指定方法,感覺就像C裡面的函數然後函數調用。第三次作業我們就學了一個UML類圖就明白了屬性這一概念,類裡面包含屬性和方法,方法都是對于屬性來寫的,題目也提示了你要建立什麼類或者給你一張UML類圖,第二次第三次題目基本一樣,這樣就可以更好的讓我們從面向過程過度到面向對象。
③作業過程中遇到的問題及解決方法:
作業中遇到的問題主要誰一些小問題,不會是自己的架構錯誤,因為題目裡面有很多限制與提示,一步步推動着你的代碼走向。比較容易出錯的還是第一次PTA作業,因為那時候代碼面向程式,就一個計算稅務的算數表達式有這麼長sum=8350*0.1+(33950-8350)*0.15+(82250-33950)*0.25+(171550-82250)*0.28+(372950-171550)*0.33+(j-372950)*0.35;
而且裡面24條這樣的表達式,哪個表達式出錯後面四個表達式就需要改,我記得當時改這些表達式就用了2個小時,一步步通過自己計算然後慢慢調試哪裡出錯了,就在每個語句後用System.out輸出語句一步步調試。這樣就非常困難。後面倆次就用的是老師教我們的org.junit.Assert寫一個調試代碼進行調試這樣就感覺簡單多了隻要哪裡算錯了,程式自動告訴你是哪裡出現了錯誤,這樣就更好的改動。
④每次作業花費的時間比例:
第一次主要算法簡單但是資料太難調試是以寫的時間較久大概8個小時吧,第二次就資料沒那麼大,題目也有很多提示,是以花了大概花了四個小時,第三次就主要是對UML類圖的了解,我了解比較慢也花了8個小時。最後比例應該是2:1:1.
⑤對程式設計過程的嚴謹性的認識及教訓:
這個問題主要出現在日期類的問題,計算n天前是多少号的問題,你要一步步判斷每年的天數與每月的天數,如果你不嚴謹的判斷你所求出的日期就不同,我就是一步步的改變自己的算法,由于自己的算法還是不正确,改了倆個下午,最後隻好去網上看他們的算法,發現他們的算法都是幾行,相比我的就短太多,這可能就是老師要我們代碼簡短的原因吧,這樣就可以讓我們的代碼更嚴謹,而且更好的DEBUG。
二.OO設計心得
①面向過程與面向對象的比較:
面向過程就是你需要什麼功能就全在main函數裡從頭寫到尾,這方法就是更簡單,思路更清晰,需要什麼功能就寫就好了,這樣的代碼更難以後繼續調用。而面向對象你就需要思考需要建構什麼類,類裡面需要什麼屬性什麼方法,如果不是作業裡面用提示,我可能都無法明白需要什麼類。這樣可以讓程式更好的調用,程式更簡單明了。這樣以後我們需要用到這個功能我們就可以直接調用這個類就行了,讓我們的程式設計速度更快。面向對象就是隻要UML類圖清晰,就更好的編寫埂好的改錯。
②面向對象設計的基本原則了解:
首先自己畫一張UML類圖更好,然後就按照UML類圖去寫,Main方法越簡單越好,說明你的程式更好,以後相同的功能就隻有調用那個類就行了。
③OO程式設計思維的了解:
00程式設計我感覺重要的還是UML圖設計好,你設計好各各類的屬性關系,各各類圖之間的關系,你就能更好的設計代碼。
三.測試的實踐與了解
①測試對于編碼品質的重要性:
測試代碼是非常重要的,可以找出你看不出的錯誤,就比如你編譯器沒報錯,但答案就是不對,你不測試的話,就會出大問題,1+1=2你的代碼就可能算出1+1=3了,如果不測試你就無法發現問題。還有一些細節問題,越界問題我感覺最容易碰到,代碼經常會出現越界問題,其他調試沒錯,越界了就直接奔潰或者逾時。
②假如讓你設計測試用例,你會如何做:
我會用課堂教學的JUNIT4寫一個測試代碼,測試每一個參數是否跟預期一樣。
四.課程收獲
現在對于程式設計有了一點點轉變,慢慢的從面向過程轉向為面向對象,
但自己對于一道題目如果沒有提示可能好是會面向過程解答,還是沒有那種面向對象的思考過程,給了UML圖就很好了解,要自己思考我就感覺到了難度,需要自己設計屬性與方法。但對面向對象寫出來的代碼,看起來就很欣慰,覺得非常的簡明,簡短。
五.對課程的建議
我希望老師課後或者作業後能給我們一些上課代碼和作業的代碼,
這樣讓我這種基礎差的人更好學懂,多看幾遍總會學會的。然後感覺這種上課模式很好,我可以邊學邊練,及時鞏固,更好了解,不用課後花太多時間去了解課上的内容。