Java实验报告一

一、   实验内容

1. 使用JDK编译、运行简单的Java程序

2.使用Eclipse 编辑、编译、运行、调试Java程序

二、   实验步骤

【实验一】命令行下java程序的开发

  1. 首先双击桌面上的Xface终端图标。
  2. 打开终端(类似Windows下的cmd),之后会自动运行shell程序。
  3. 输入cd Code命令进入Code目录。
  4. 输入mkdir 20135308 命令建立实验目录,可以使用ls命令或dir命令查看建立的目录情况。
  5. 输入cd 20135308命令进入实验目录,再输入mkdir exp1建立第一个实验目录,然后输入cd exp1进入实验一目录,可以输入pwd命令查看当前工作路径。
  6. 输入gedit Hello.java,编辑Hello.java,并输入以下代码:

1. 1 package ljp;

2. 2 import java.util.Scanner;

3. 3 public class Hello{

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

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

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

7. 7       String name = s.next();

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

9. 9    }

10       

     7.注意代码的第一行,这会影响到我们使用javac编译代码的方式。

注意代码第二行,我们使用到Java类库中的类时,要用import导入相关的类(可以暂时理解为C语言中include的功能)

 

     8.输入javac -d . Hello.java命令编译代码,输入java ljp.Hello命令运行程序。结果如下图所示:

 

【实验二】Eclipse下Java程序开发、调试

  1. 在命令行中输入eclipse命令并回车或单击桌面上的Eclipse EE图标打开Eclipse。
  2. 在Eclipse中单击File->New-> Java Project新建Java项目。
  3. 输入项目名称HelloLC,并单击Finish按钮完成新建项目。
  4. 在Eclipse中单击File->New->Class新建Java类。
  5. 根据Java代码规范输入包名lc,类名HelloLC,并勾选上自动产生main函数选项,最后单击Finish按钮。
  6. 输入如下代码:


1 package ljp;
2 public class HelloJDB {
3 public static void main(String[] args) {
4 int i = 5;
5 int j = 6;
6 int sum = add(i, j);
7 System.out.println(sum);
8
9 sum = 0;
10 for(i=0; i< 100; i++)
11 sum += i;
12
13 System.out.println(sum);
14 }
15
16 public static int add(int augend, int addend){
17 int sum = augend + addend;
18 return sum;
19 }
20}

 

     7.单击运行按钮(或使用Ctrl+F11快捷键),就可以在控制台(Console)中看到运行结果。

 

8.下面练习调试程序,首先通过单击Window->Open Perspective->Debug打开调试视图。

9.调试程序首先要会设置断点和单步运行。设置断点比较简单。然后单击调试按钮(或使用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. 步执行效率比较慢,如果我们感觉到第6行到第10行的代码没有问题了,想让程序直接运行到第11行,怎么办?首先我们要在第11行设置断点,然后单击Resume图标(快捷键F8),程序就运行到了第11行。

11. 单步执行效率比较慢还导致另外一个问题,比如一个大循环中间出了问题怎么办?这时可以通过条件断点解决问题。调试循环代码时,会有一个值我们特别关注,这时在Variable标签中查看变量的值,比如我们此时比较关注sum,每次单步执行都可以看到sum的变化情况了。

设置条件断点,我们在第11行左边单击鼠标右键,选择Breakpoint Properties...。

12. 我们设置条件“i==50”, 按一下F8,我们可以查看i的是50了。

 

【实验三】练习

import java.util.Scanner;

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();

    

     int sum = 0;

     for(int i = 1; i <= n; i++){

         sum += fibonacci(i);

     }

     System.out.println("The sum is:"+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;

         System.out.println(fibonacci())

     }

     return sn;

}

}

 

三、   总结

这是我第一次在网络上完成实验,感觉很新鲜,看见娄老师花费两天时间为我们精心编写的实验指导非常感动,也备受鼓舞,老师为我们如此尽心负责,我也一定会好好学习java。

这次实验还是没有太大难度,我一直跟着老师的指导操作,看见标出的重点难点,我都会记在心里,感觉学习了很多新知识。但是我也在实验中遇到了一些问题。

  1. 在实验一中1,我输入完程序后在终端中无法找到文件地址,也就无法运行hello world程序,后来我关掉所有页面,重新打开终端,在不打开编辑软件的情况下,输入刚才文件保存的路径才可以运行程序,这一点我至今也未搞懂是什么原因。
  2. 在实验二中,我第一次在指导下使用Eclipse编写程序,我之前一直不太知道如何使用这个软件,感觉这个软件的确使用很方便。在大循环中设置条件断点输入i=50时是成功的,后来刷新界面截图时右侧黄框中的i=50就不见了。
  3. 实验三是按照学号选题,我按照之前的学号模5原则选了第三个实验。在这个程序中,它需要用户输入一个整型变量,于是我用到了前几节课中练习过得应用scanner来实现键盘的输入。这个程序,我仿照以前运用C语言编写Fibonacci数列的思想,在实现求前两个之和并赋值给下一个数中查询了下书上相关的代码。

这次实验由于网速问题,我几乎每分钟都因为断开连接要重新刷新,浪费了很多实验时间,但是感觉在这次试验中收获良多,即使这次大多是些操作上基础的内容,但老师温馨提醒的重点真的是我之前不曾注意到的地方,打好基础,熟练操作才是以后编写java程序的一块基石。

原文地址:https://www.cnblogs.com/bonjourvivi/p/4430235.html