2014年2月16日 星期日

102-2 PDSA HW1

執行NetBeans:

先開一個新的專案:

選Java Application,按Next:

取名字(e.g. HW1),設定專案目錄,不要自動產生Main Class:

新增一個java source檔:

取Class名字:

開始編輯WeightedQuickUF.java:
  1. 先到課程網頁去 (http://algs4.cs.princeton.edu/code/)
  2. 找到WeightedQuickUnionUF.java
  3. 可直接將程式碼copy and paste到你自己的WeightedQuickUF.java
複製完之後,你會發現大部分的程式碼都沒問題,只有main function中出現一些錯誤警告

這些錯誤的原因是因為作者使用了一些自己寫的libraries,因此,你會需要兩個作者寫好的library檔:
  1. stdlib.jar 
  2. algs4.jar
先將它們下載到你的電腦上,再從NetBeans中將它們放進你的HW1 project中:

增加library路徑:

過程中要選擇你剛剛存好的*.jar檔:

弄好之後,基本上程式就可以執行了。

但我們要稍微修改一下程式,讓它可以從檔案讀入資料,而不是等待你在執行視窗中一一敲入:

此外,你還需要解決另一個問題,才能順利地使用NetBeans IDE進行執行和除錯。因為剛剛加進來的libraries當中也剛好有WeightedQuickUnionUF,以至於debuging的時候,事先compiled好的WeightedQuickUnionUF反而被優先使用。因此請大家在class的命名時,加上My來區隔。

class更名的方法:請先將檔案中的WeightedQuickUnionUF反白,然後點選Refactor -> Rename,修改成MyWeightedQuickUnionUF,再按下Refactor,就能將檔案中該修改的地方修改掉:

除了修改class名稱之外,還有另一個解決方法,就是告訴NetBeans要優先使用我們自己寫的class,如:

大家可以試試看。

最後,為了能從指令列將檔名傳進去,請到Properties去設定專案的執行環境,提供程式所需的參數,也就是輸入檔的檔名,這裡也可以設定工作目錄,也就是放輸入檔的地方:

測試資料可從ceiba的作業區HW1中下載。

最後,請依規定繳交*.java檔到批改系統。

如果,未來有機會要與別人分享你編譯好的檔案的話(如*.jar檔),可考慮build project的時候,把*.java檔也一併包進來:

編譯好之後,*.jar檔(e.g. HW1.jar)會在你的專案中(e.g. HW1)的dist目錄中。拿到*.jar的人,不僅可以執行你的程式,也可以看到source code。

2 則留言:

  1. thank you teacher, learn a lot !

    回覆刪除
  2. 老師,我在檔案上傳時,出現亂碼,不知有什麼解決的辦法(mac+chrome)

    回覆刪除