天天看點

JAVA第一次實驗 ——凱撒密碼

課程:Java程式設計  班級:1352  姓名:黃偉業  學号:20135215

成績:     指導教師:婁嘉鵬    實驗日期:2015.4.15

實驗密級:      預習程度:       實驗時間:19:30~22:30

儀器組次:      必修/選修:選修     實驗序号:1

實驗名稱: JAVA開發環境的熟悉

成績:               指導教師:婁嘉鵬     實驗日期:2015.4.15

實驗密級:      預習程度:        實驗時間:19:30~22:30

儀器組次:      必修/選修:選修     實驗序号:1

實驗名稱:             JAVA開發環境的熟悉                                               

一、   實驗内容

1. 使用JDK編譯、運作簡單的Java程式

2.使用Eclipse 編輯、編譯、運作、調試Java程式

二、實驗内容

(一)   指令行下Java程式開發

(二)Eclipse下Java程式開發、調試

(三)練習(通過指令行和Eclipse兩種方式實作,在Eclipse下練習調試程式)

5. 實作求正整數1-N之間所有質數的功能,并進行測試。

三、實驗過程

實驗一、

     指令行下java程式的開發

  1. 首先輕按兩下桌面上的Xface終端圖示。
  2. 打開終端(類似Windows下的cmd),之後會自動運作shell程式。
  3. 輸入cd Code指令進入Code目錄。
  4. 輸入mkdir 20135215 指令建立實驗目錄,可以使用ls指令或dir指令檢視建立的目錄情況。
  5. 輸入cd 20135218指令進入實驗目錄,再輸入mkdir exp1建立第一個實驗目錄,然後輸入cd exp1進入實驗一目錄,可以輸入pwd指令檢視目前工作路徑。
  6. 輸入gedit Hello.java,編輯Hello.java,并輸入以下代碼:

 1 package ljp;

 2 import java.util.Scanner;

 3 public class Hello{

 4     public static void main(String[] args){

 5       System.out.println("Input your first name, please:");

 6       Scanner s = new Scanner(System.in);

 7       String name = s.next();

 8       System.out.println("Hello " + name + " !");

 9    }

實驗二、

 利用eclipse程式設計。注意要将建立的類儲存到封包件夾中。編寫制定程式。重點在調試程式,單擊

Window->Open Perspective->Debug

打開調試視圖。

設定斷點,在要設定斷點的位置前面,輕按兩下标有行數前面的部分,可快捷設定斷點。

調試的快捷鍵是F11,單步調試,進入函數快捷鍵為F5,不進入函數快捷鍵F6,一般調試都不進入函數,當函數出現問題時,再進入函數。

在指定位置進行調試,使用快捷鍵為F8的Resume功能。

通過将滑鼠移到變量處,可以檢視此時變量的值。

條件斷點,一般用于循環語句中。在要調試的語句行左邊單擊滑鼠右鍵,選擇“

Breakpoint Properties...”,

輸入需要的循環條件。

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;  

}

JAVA第一次實驗 ——凱撒密碼

實驗三、

凱撒密碼

package lala;

 import java.util.Scanner;

 public class Lala

 {

 void mj()

  Scanner in = new Scanner(System.in);

          System.out.print("請選擇操作(1.加密 2.解密):");

          int n=in.nextInt();

          if(n == 1)

  {

              System.out.print("請輸入待加密的字元串:");

              String str = in.next();

              String jm="";

              int key = 3;//凱撒密碼加密,向後移位3位

              for(int i = 0;i < str.length();i++)

                  char c = str.charAt(i);

                  if(c >= 'a'&&c <= 'z')

                   if(c>='x'&&c<='z')

                   c-=26;

                   c+=key;

                       }

                   else

                  }

                  else if(c >= 'A'&&c <= 'Z')

                   if(c>='X'&&c<='Z')

                  jm += c;

              }

              System.out.print("加密後的字元串是:"+jm);

              System.out.print("\n輸入任意建繼續,0結束程式:");

              n=in.nextInt();

              if(n==0)

               System.out.print("  謝謝使用本程式,歡迎再次使用!");

              else

                 this.mj();

          }

          else if(n == 2)

              System.out.print("請輸入待解密的字元串:");

              int key = -3;//凱撒密碼解密,向前移位3位

                   if(c>='a'&&c<='c')

                   c+=26;

                   }

                   if(c>='A'&&c<='C')

            System.out.println("解密後的字元串:"+jm);

            System.out.print("\n輸入任意建繼續,0結束程式:");

            n=in.nextInt();

            if(n==0)

    {

             System.out.print("  謝謝使用本程式,歡迎再次使用!");

                }

                else

             this.mj();

            }

            else

            System.out.print("請輸入1或2,其他字元無效!\n輸入任意建繼續,0結束程式:");

        }

 }

     public static void main(String[] args)

     {

        Lala mj=new Lala();

          System.out.println("******歡迎使用凱撒密碼******");

         mj.mj();

     }

  1. 單擊運作按鈕(或使用Ctrl+F11快捷鍵),就可以在控制台(Console)中看到運作結果
  2. 下面我們練習調試程式,首先我們通過單擊Window->Open Perspective->Debug打開調試視圖
  3. 調試程式首先要會設定斷點和單步運作。設定斷點比較簡單,然後單擊調試按鈕(或使用F11快捷鍵)開始調試Java程式,我們可以看到程式停留在了第4行注意,此時第4行代碼并沒有執行,我們可以把滑鼠放到變量名上來檢視變量的值,此時i的值并不是5,我們通過單步運作讓程式運作到第5行,單步運作有兩種:Step Into(快捷捷F5)和Step Over(快捷捷F5),這兩種單步運作功能在運作語句時沒有差別,在執行函數調用語句時,Step Into會跳入函數實作,Step Over會直接執行完函數,實際使用中我們優先使用Step Over,隻有函數執行出錯了,說明程式問題在被調用函數中,這時再回來通過Step Into進入函數進行調試。我們單擊一下Step Over圖示(或F6),程式停在了第5行,這時檢視變量i的值,會看到i等于5。

10. 1單步執行效率比較慢,如果我們感覺到第6行到第10行的代碼沒有問題了,想讓程式直接運作到第11行,怎麼辦?首先我們要在第11行設定斷點,然後單擊Resume圖示(快捷鍵F8),程式就運作到了第11行

11. 單步執行效率比較慢還導緻另外一個問題,比如一個大循環中間出了問題怎麼辦?這時可以通過條件斷點解決問題。調試循環代碼時,會有一個值我們特别關注,這時在Variable标簽中檢視變量的值,比如我們此時比較關注sum,每次單步執行都可以看到sum的變化情況了,設定條件斷點,我們在第11行左邊單擊滑鼠右鍵,選擇Breakpoint Properties...

JAVA第一次實驗 ——凱撒密碼
JAVA第一次實驗 ——凱撒密碼
步驟 耗時 百分比
需求分析 20%
設計 30%
代碼實作
測試 10%
分析總結                    10%
JAVA第一次實驗 ——凱撒密碼