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

本文记录了使用JDK编译运行Java程序的过程,包括基本操作、IDEA调试技巧等,并通过实例展示了如何计算两个数的最大公约数和最小公倍数。

一、实验内容及步骤

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

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

实验截图如下
1268846-20190323200955121-1455155693.jpg
1268846-20190323200959398-957442572.jpg

2.使用IDEA调试Java程序

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

实验截图如下
1268846-20190323203740062-1397625542.png
1268846-20190323203630393-890094585.png
1268846-20190323203704764-271633784.jpg
1268846-20190323203707890-1018624886.jpg
1268846-20190323203827962-1884145407.png

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;
    }
}

实验截图:
正常情况:
1268846-20190324111356439-1103080094.png
异常情况(加入负数之后最小公倍数无法正确计算):
1268846-20190324112759494-903946028.png
边界情况:
1268846-20190324112713458-2079054374.png

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

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

实验过程中,在断点调试的时候设置值一次运行的时候总是会碰到问题,发现是Remove once hit没选中
1268846-20190323204147067-17270563.png
选中红圈部分内容就可以了

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

问题:出现如图所示的/ by zero的问题
1268846-20190324111848344-1822211554.png
解决方案:算法错误,修改代码后纠正。

(3)命令行输入中碰到的问题以及解决方案
  • 问题:用教材P47中的案例,想用数组来实现输入,发现不可行,导致无法继续后续的程序
    1268846-20190324111645615-1933617764.png
  • 解决方案:直接使用变量来接受命令行输入
    1268846-20190324112011357-2000984219.png

二、实验体会与总结

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

参考资料
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

转载于:https://www.cnblogs.com/jxxydwt1999/p/10585112.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值