標籤:
實驗一 Java開發環境的熟悉
一、實驗內容
1. 使用JDK編譯、運行簡單的Java程式
2.使用Eclipse 編輯、編譯、運行、調試Java程式
二、實驗要求
1.沒有Linux基礎的同學建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程
2.完成實驗、撰寫實驗報告,實驗報告模板見QQ群,注意實驗報告重點是運行結果,遇到的問題(工具尋找,安裝,使用,程式的編輯,調試,運行等)、解決辦法(空洞的方法如“查網路”、“問同學”、“看書”等一律得0分)以及分析(從中可以得到什麼啟示,有什麼收穫,教訓等)。
3.實驗報告中統計自己的PSP(Personal Software Process)時間
步驟 |
耗時 |
百分比 |
需求分析 |
40min |
20% |
設計 |
40min |
20% |
代碼實現 |
60min |
30% |
測試 |
30min |
15% |
分析總結 |
30min |
15% |
4. 嚴禁抄襲。
三、實驗步驟
(一)命令列下Java程式開發
1.首先雙擊案頭上的Xface終端表徵圖。
2.開啟終端(類似Windows下的cmd),之後會自動運行shell程式。
3.輸入cd Code命令進入Code(注意C要大寫)目錄。
4.輸入mkdir 20135100 命令建立實驗目錄,注意目錄名一定是自己的學號(學號要體現在實驗報告中),可以使用ls命令或dir命令查看建立的目錄情況。
5.輸入cd 20135100命令進入實驗目錄,再輸入類似mkdir exp1建立第一個實驗目錄,然後輸入cd exp1進入實驗一目錄,可以輸入pwd命令查看當前工作路徑。
6.輸入gedit Hello.java(注意把代碼儲存到exp1目錄中)或vim Hello.java 編輯Hello.java。
7.輸入javac -d . Hello.java命令編譯代碼,輸入java ljp.Hello命令運行 程式。
(二)Eclipse下Java程式開發、調試
1.在命令列中輸入eclipse命令並斷行符號或單擊案頭上的Eclipse EE表徵圖開啟Eclipse。
2.在Eclipse中單擊File->New-> Java Project建立Java項目。
3.輸入項目名稱HelloJDB(你可以自己起名),並單擊Finish按鈕完成建立項目。
4.在Eclipse中單擊File->New->Class建立Java類。
5.根據Java代碼規範輸入包名ljp(小寫,可以自訂),類名HelloJDB(單字首大寫),並勾選上自動產生main函數選項,最後單擊Finish按鈕。
6.輸入如下代碼:package ljp;
public class HelloJDB
{
public static void main(String[] args)
{
int i = 5;
int j = 6;
int sum = add(i, j);
System.out.println(sum);
sum = 0;
for(i=0; i< 100; i++)
sum += i
System.out.println(sum);
}
public static int add(int augend, int addend)
{
int sum = augend + addend;
return sum;
}
}
7.單擊運行按鈕(或使用Ctrl+F11快速鍵),就可以在控制台(Console)中看到運行結果。
8.練習偵錯工具,首先我們通過單擊Window->Open Perspective->Debug開啟調試視圖。
9.偵錯工具首先要會設定斷點和單步運行。
10.逐步執行效率比較慢,如果我們感覺到第6行到第10行的代碼沒有問題了,想讓程式直接運行到第11行,怎麼辦?首先我們要在第11行設定斷點,然後單擊Resume表徵圖(快速鍵F8)。
11.逐步執行效率比較慢還導致另外一個問題,比如一個大迴圈中間出了問題怎麼辦?這時可以通過條件斷點解決問題。調試迴圈代碼時,會有一個值我們特別關注,這時在Variable標籤中查看變數的值,比如我們此時比較關注sum,每次逐步執行都可以看到sum的變化情況了,
設定條件斷點,我們在第11行左邊單擊滑鼠右鍵,選擇Breakpoint Properties...
(三)練習(通過命令列和Eclipse兩種方式實現,在Eclipse下練習偵錯工具)
題目:實現Fibonacci數列功能,並進行測試。
四、練習題代碼和:
import java.util.Scanner;
/*
Fibonacci
*/
public class Fibonacci {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Please input this fibonacci n:");
int n = scanner.nextInt();
System.out.println(fibonacci(6) + ":" + fibonacciNormal(6));
int sum = 0;
for(int i = 1; i <= n; i++){
sum += fibonacci(i);
}
System.out.println(sum);
}
public static int fibonacci(int n){
if(n <= 2){
return 1;
}else{
return fibonacci(n-1) + fibonacci(n-2);
}
}
public static int fibonacciNormal(int n){
if(n <= 2){
return 1;
}
int n1 = 1, n2 = 1, sn = 0;
for(int i = 0; i < n - 2; i ++){
sn = n1 + n2;
n1 = n2;
n2 = sn;
}
return sn;
}
}
實驗內容1:
實驗內容2:
五、遇到的問題與解決方案
遇到問題:
一開始想使用遞推的方法來編寫代碼,實現Fibonacci數列的功能,但是由於程式編寫方面思路不清,因此編譯失敗了,經多次修改無果。
解決方案:
後來想到能否使用遞迴的方法來編寫代碼,改為了用遞迴的方法編寫代碼,最後多次修改後成功。
六、實驗收穫
通過這次實驗我學會了使用Eclipse來運行java程式的方法以及如何偵錯工具,但是偵錯工具的流程大致明白但是不懂具體怎麼操作,具體從哪裡可以設定斷點還是有些不明白。總體上說這次實驗還是比較成功的,運用了C語言的Fibonacci的知識點來編寫了java程式的代碼,比較簡單。就是有些遺忘了Fibonacci的定義,後經查閱資料瞭解了。在編寫代碼方面還是有些問題,比如程式的設計較為混亂,沒有一個比較清晰的思路。今後還需改正。
java實驗1實驗報告(20135232王玥)