2018-2019-2 20175215 实验一《Java开发环境的熟悉》实验报告

一、实验内容及步骤

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

  • cd code进入code文件夹
  • mkdir 20175215exp1创建20175215exp1文件夹
  • ls查看当前目录
  • cd 20175215exp1,用pwd查看当前工作路径
  • vim Hello.java编译Hello.java 文件
  • javac -d . Hello.java编译代码
  • java Hello运行代码

实验截图如下

2.使用IDEA调试Java程序

  • 设置断点
  • 单步运行
    • step into (快捷键F7)
    • step over (快捷键F8)
  • 两个断点之间的跳跃Resume(快捷键F9)
  • 设置条件断点

实验截图如下




3.实验练习

7, 实现求两个数的最大公约数和最小公倍数的功能,数从命令行输入,并进行测试(正常情况,异常情况,边界情况)。
代码为:

import java.util.*;
public class Experiment {
    public static void main(String[] args) {
        Calculate  cal = new Calculate();
        Scanner reader = new Scanner(System.in);
        int tmp,x,y,i,j;
        i=reader.nextInt();
        j=reader.nextInt();
        if(i>j){
            tmp=i;
            i=j;
            j=tmp;
        }
        x=cal.gcd(i,j);
        y=i*j/x;
        System.out.println(i+"和"+j+"的最大公约数为"+x+",最小公倍数为"+y);
    }
}
public class Calculate{
    int gcd(int a, int b){
        int k=1;
        while(k!=0){
            k=b%a;
            b=a;
            a=k;
        }
        return b;
    }
}

实验截图:
正常情况:

异常情况(加入负数之后最小公倍数无法正确计算):

边界情况:

4.实验过程中遇到的问题以及解决方案

(1)断点调试中碰到的问题以及解决方案

实验过程中,在断点调试的时候设置值一次运行的时候总是会碰到问题,发现是Remove once hit没选中

选中红圈部分内容就可以了

(2)程序调试中碰到的问题以及解决方案

问题:出现如图所示的/ by zero的问题

解决方案:算法错误,修改代码后纠正。

(3)命令行输入中碰到的问题以及解决方案

  • 问题:用教材P47中的案例,想用数组来实现输入,发现不可行,导致无法继续后续的程序
  • 解决方案:直接使用变量来接受命令行输入

二、实验体会与总结

  • 实验过程本身比较简单,但还需要细心,实验中碰到的两个问题都是细节问题,第一遍做的时候没有细心就没发现问题,导致没有第一时间调试成功。
  • 使用调用其他类的方法可以让主类中的功能更为直白,但我这次的实验中的代码还是没做到最简化,希望下次能使用面向对象的思维将主类中的作用更加直白。

参考资料
1.最大公约数_百度百科
2.最小公倍数_百度百科
3.2018-2019-2 20175313 实验一《Java开发环境的熟悉》实验报告
4.编程实现输入两个整数,输出其最大公约数和最小公倍数。
5.Java编程,输入两个数,输出两个数的和。
6.java.lang.ArrayIndexOutOfBoundsException异常分析及解决
7.Exception in thread "main" java.lang.ArithmeticException: / by zero

posted @ 2019-03-23 21:19  20175215丁文韬  阅读(217)  评论(0编辑  收藏  举报