第一次做業:java
1.分析:正則表達式
第一次做業是簡單的多項式相加,主要是想讓咱們體會面向對象式編程,和嚴密的考慮各類輸入狀況。整個程序主要的難點就在於正則表達式,搞定了這個其它便迎刃而解了。然而做爲第一次寫java的小白,然而個人程序依舊沒能擺脫面向過程式的思考方式,只寫了一個類,而且雖然看了很長時間的指導書,但仍是沒能考慮到全部狀況。算法
2.自身Bug:編程
沒有考慮到前加號的狀況,正則表達式錯誤,另外正則表達式過長,致使邊界正常輸入crash。測試
3.分析別人bug策略:spa
第一次我便分到了一個全a的程序,首先將一些本身以爲易錯的數據測試,而後根據錯誤分支樹依次編數據並測試。雖然最後也沒找到錯誤,但這個過程仍是頗有意義的。調試
度量分析:對象
類圖:blog
只有一個類,便不放了。bug
第二次做業:
1.分析:
第二次做業是傻瓜電梯調度,此次做業難點主要在於類的建立,搞清楚幾個類的關係以及起做用就ok了。
2.自身bug:
雖然公測時沒有bug,可是個人正則表達式時間只能匹配10位,這就致使時間爲10位有效數時不能有前零。
3.分析別人bug策略:
此次我分到的程序公測錯了至關多,經過分析我發現他沒有考慮開關門時間,因而正常功能測試基本全掛,實在惋惜。
度量分析:
類圖:
第三次做業:
1.分析:
第三次做業相比第二次做業在難度上跨越了一個等級,此次做業主要難點在於調度算法上,由於要考慮捎帶,這就致使不能按順序讀入並執行指令,最開始我想先選得主指令,後判斷其下有哪些指令能夠被捎帶,然而這種方法至關複雜,由於前面的指令會影響後面的指令是否能在捎帶範圍內,然後面的指令又有可能影響前面的指令。而後我就思考現實中的電梯,現實中的電梯是一層一層走的,因此可以動態接受命令,因而我就按照這個思路,也是先選取主指令,而後在去往目的地的途中一層一層上升,並考慮當前層的全部指令。這樣算法便簡單明白了許多。
2.自身bug:
此次我寫完時,用了大量的數據來測本身的程序,因此最後沒有發現bug
3.分析別人bug策略:
此次分到的程序也是公測沒有所有經過,因而我首先分析他的錯誤緣由,而後測試與其相近的數據,最後按照錯誤分支樹來進行數據測試,最後找到兩個bug。
度量分析:
類圖:
心得體會:
1.java的思考方式與c語言幾乎徹底不一樣了,c是面向過程,而java則是面向對象,通過這三次做業,我深深的體會到了它們的不一樣。
2.java做業成功的治好了個人拖延症,第一次做業我是在ddl前1天才開始寫,因此理所應當的就修仙了,第二次做業我學聰明瞭,ddl前2天開始寫,而後發現時間仍是很緊張,而後這第三次做業我終於在週末就開始準備了,因此程序的調試就作的十分充足,這樣就能儘可能的減小bug了。
3.之前寫c時,輸入格式通常都是固定好的,基本不會考慮無效輸入,然而這幾回做業在格式輸入上下了很大功夫,我開始以爲很繁瑣,須要考慮不少種狀況,然而如今我發現個人程序健壯性提升了許多,不會再動不動就報錯或者直接crash掉,我想這在我未來的工做中也是頗有必要的吧。