OO第三次部落格作業

彭嘉良發表於2024-06-27

OO第三次部落格作業

pjl240428

目錄
  • OO第三次部落格作業
    • 前言
    • 設計與分析
      • 第七次作業:
      • 第八次作業:
    • 踩坑心得
    • 改進建議
    • 總結
      • 學習心得:
      • xiao~意見:
    • 對本學期這門課程的想法與建議
      • 想法:
      • 建議:

前言

第七次作業:

知識點:

這次的題目集是在上一次題目集的基礎上增加了多個並聯串聯在一起的情況,並且也考慮了一條串聯電路中包含其它串聯電路的 情況,同時在這次題目集中新增了裝置:窗簾(它的狀態與亮度有關,這就需要我們考慮接入電路中的燈泡狀態),互斥開關 (

包含三個引腳,同時這三個引腳的接入電路的順序也有多種情況),這就需要我們在判斷電路的情況時,將這些考慮進去!

題量:

因為是第在前一次作業的基礎上增加功能和電器,所以題量相對而言跟第六次大作業差不多。

難度:

難度也就不用多說,肯定時比較難的

測試點:

就是有三個測試點比較細節,他是互斥開關的測試點,就是你的互斥開關接入電路中可以是引腳反著來,同時,也可以在一條電 路中可有可能出現多個互斥開關

第八次作業:

知識點:

這一次的大作業是這個學期的最後一次大作業,這次作業它又是在上一次的基礎上增加一些功能和裝置,增加的功能:可以是並聯裡面包含並聯,同時這次的作業還需要輸入每個裝置的兩個引腳的電壓,增加了裝置的額定電流,短路的判斷,增加的裝置這次又有二極體的增加,它的接入電路中的狀態又給電路增加了新的判斷情況。

題量:

由於是本學期最後一次大作業,在題目要求上肯定加大了難度,判斷的情況多,細節多,程式碼量大,同時要求的功能也更全面電路也複雜多變,所以題量要求大。

難度:

家居強電電路模擬程式的最後一次大作業,難度相對而言是真的大,尤其是這次引入了新要求和新裝置,對電路的分析和考慮更加 需要我們認真思考,所以難度我覺得很大,而且我看很多同學這次的得分都是0分

測試點:

這次的測試點,我很多都不知道,沒考慮到的情況較多,所以我的得分也只是剛好及格,而且我有的測試點還是請教同學才知道的,但我現在回想起來,我感覺就是我的一些精確度不夠,導致一些點過不去,反正這次的真的很難。

設計與分析

第七次作業:

因為有了上一次的基礎所以我的類設計沒有變,只是新增了新裝置的類構造,同時也是在完善功能上只是新增方法,也就是利用上了上一次大作業的程式碼,這應該就是體現了程式碼的複用性!

類圖:

image-20240627150029748

度量:

方法:

image-20240627150323889

image-20240627150337886

類:

image-20240627150359948

涉及到了12個類:

電器類(為抽象類);開關類;互斥開關類;分檔調速器類;連續調速器類;白熾燈類;日光燈類;風扇類;落地扇類;窗簾類;串聯電路類;並聯電路類;其中電器類中有兩個抽象方法:分別是check():用於檢查裝置狀態(包括串聯電路和並聯電路);theStatus():用於給裝置設定狀態。

第八次作業:

這次我以為我能在上一次程式碼的基礎上新增一些功能就好了,雖然確實能實現,但實現很繁瑣,尤其是給每個裝置的引腳設定電壓時,很難去設定,導致寫的不夠清晰,這也是我後面寫不下去的原因吧。

類圖:

image-20240627151205455

度量:

方法:

image-20240627151335617

image-20240627151402934

類:

這裡可以看出,本次作業的設計不好,很多都是不優的(紅色部分)

image-20240627151423925

及到了13個類:

電器類(為抽象類);開關類;互斥開關類;分檔調速器類;連續調速器類;白熾燈類;日光燈類;風扇類;落地扇類;窗簾類;二極體類;串聯電路類;並聯電路類;其中電器類中有兩個抽象方法:分別是check():用於檢查裝置狀態(包括串聯電路和並聯電路);theStatus():用於給裝置設定狀態。

踩坑心得

1:程式碼儘量簡化,提高複用性

​ 在一些相同的功能時,你就可以使用多型去解決問題,這將減少很大的程式碼量。

image-20240627152039219

2:在第八次作業中還是出現了在主類中程式碼量太多的情況,這就時自己寫的程式碼太不美觀了。

​ 所以我認為這一點真的非常重要,因為這是你寫程式碼的習慣,如果不從剛開始就養成好的程式碼編寫習慣,後面想改很難,因為你已經

形成那種思維了

image-20240627152600130

3.注意空指標異常:

​ 如果你想用一個new的新類去先儲存一個資料,但你不知道這個資料時何種構造方法生成的,那麼那就先將其設定成null.

image-20240602110625720

image-20240602110417659

4:程式碼冗雜導致看起來很費力問題:

​ 當年在寫一個方法時,你不應該突然發現問題了再進這個方法去改進,那你後面每次發現一個新的問題就又得進這個方法去改進,新增程式碼,那麼你這就將導致你的這個方法的程式碼量非常多,冗雜,看不懂。你需要的是方法簡潔且效率高,這就需要你在設計的時候要先考慮全面,再動手敲程式碼。

image-20240627153223847

改進建議

一:對於這兩次作業:我認為第一個就是我在給裝置輸出資訊時,我可以把相同型別輸出格式的設計一個介面,這樣就減少了程式碼量同時複用性也提高了,還有就是要減少主類中的程式碼量,要儘量減少在主類中進行判段。我們需要的時程式碼的簡潔性和標準性。

二: 對於第七次的作業:我覺得對於互斥開關類,由於其中包含三個引腳,那麼我覺得他的構造方法中就可以有三個引腳的加入,這對於後面對其的判斷更方便。

三:對於第八次的作業:我覺得要改進的地方就是要額外去設計一個構造方法去計算各個裝置引腳的電壓,同時對於電流的計算也可以在前工作就做好,這就不需要我們後面邊判斷邊計算電流了

總結

學習心得:

透過這兩次的作業,我又加深了程式碼複用性對一個程式的重要性,當你的程式碼中類設計的好功能設計的全面,他能簡化你很多工作,提高的的效率,再有就是深刻認識到思維邏輯的嚴謹性和全面性的重要,想這兩次的作業沒給測試點提示,這就需要你自己去考慮一些細節問題,然後去解決。還有就是介面,抽象方法的實踐學習.......等等知識。總之,我學習到了很多,也存在很多不足,也希望後續的學習能夠越來越好!

xiao~意見:

就是希望老師在佈置題目集的時候可以多給一些測試樣例。還有就是:能不能講一下這些題目集啊 ,沒講就感覺如果自己寫的不好也不知道哪個地方能夠最佳化!而且感覺不講都不知道這些問題怎麼去解決。

對本學期這門課程的想法與建議

想法:

其實一開始就聽說了這門課比較難,相對於上個學期學的c語言,java的學習更讓我知道了自主學習的重要性,學習java這門課程急不來,需要我們一步一個腳印,慢慢積累知識,學習新知識,就是一次次迴圈,一次次付出時間,課程怎麼說呢,說他很有趣嘛 ,我不敢這麼說,因為確實我有的時候會覺得這個非常枯燥乏味,就會讓你產生寫不下去的感覺,尤其是當年花了很長時間去寫一個題目,但結果卻不盡你所想你真的可能會奔潰!所以我覺得越是這種時候,你越得堅持下來,因為你要想這麼多人都是這中想法,但還是有很多人堅持學下去,為什麼?因為你選了這門專業,你不學它,不把它學好,你來這個大學,學這個專業幹嘛?這門課程也是在我們這個專業中起非常重要的作用,所以我要去學他,並且要把它學習好,你對這門課程付出了時間和精力,那就一定會有所獲!

建議:

這門課程非常注重實踐操作,這就意味著,需要我們不斷去練習,在實踐中發現問題,然後去解決問題。我的建議就是希望這門課程的老師能夠與學生之間的關係更好一些,因為我想問老師問題,加個好友都加不上,苦澀!還有就是在課堂上的實踐環節要有,要增加,聽完老師講的,但沒去寫程式碼實現老師講的知識點,我感覺不怎麼有效率。就是這麼多了!最後希望這門課程教學更好!

相關文章