20175234 实验一 Java开发环境的熟悉(Linux + IDEA)

第一部分

代码及运行结果截图

第二部分

要求

在学习娄老师博客后,操作IDEA中调试条件断点

代码及截图

示例程序

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

设置断点

Step Over单步运行

单击Resume直接运行到指定行

在大循环中设置断点

直接运行完整个for循环

第三部分

题目

产生一个随机数,让用户猜测,猜错了告诉用户是大了还是小了,并进行测试(正常情况,异常情况,边界情况)

需求分析

产生[1-100]的随机数,让用户猜大小

设计

① 产生随机数

② 输入猜测值

③ 比较

程序及运行结果

单次猜数

为更好检测可以选择输出随机数,在测试时可以选择增加一条输出语句,查看a的值

import java.util.Random;
import java.util.Scanner;
public class Guess {
public static void main(String[] args) {
Random rand = new Random();
int a = rand.nextInt(99) + 1;
Scanner t = new Scanner(System.in);
int b =0 ;
do {
System.out.println("请输入1-100 之间的数!!!");
b = t.nextInt();
}while(b<1||b>100); if(b>a)
System.out.println("猜大了哦…");
else if(b<a)
System.out.println("猜小了哦…");
else
System.out.println("猜对了呢,你真棒!");
}
}

同一个随机数

直到猜对为之,只需要做部分修改

        while(a!=b) {
do {
System.out.println("请输入1-100 之间的整数!!!");
b = t.nextInt();
} while (b < 1 || b > 100); ……
}

产生不同随机数

直到猜对为之,需要对a赋初值,然后改变部分语句顺序

       int a=1;
int b = 0;
while(a!=b) {
Random rand = new Random();
a = rand.nextInt(99) + 1;
Scanner t = new Scanner(System.in);
System.out.println(a);
do {
System.out.println("请输入1-100 之间的整数!!!");
b = t.nextInt();
} while (b < 1 || b > 100);
……
}

问题和解决过程

  • 问题:Java中如何产生随机数
  • 解决方案:博文所述大致如下

    1、通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。

    2、通过Math.random()方法返回一个0到1之间的double值。

    3、通过Random类来产生一个随机数。

    在使用的时候,我选择了Random类的方法,因为操作方便,使用了 int a = rand.nextInt(99) + 1来产生一个1-100的随机整数

在Idea中调试程序(示例程序Guess)

首先可以打开run查看快捷键

首先在第五行设置了断点,在这里可以看见a的值

然后我选择了快捷键F7,来进入程序,然后在Conscle中输入猜测的数值,然后继续按F7查看程序

因为代码为if-else语句可以清晰地看到,a,b从第一个if语句开始移动到b<a的位置,然后结束程序。

当然也可以选择在程序中增加一条输出语句,查看a的值,方便检测咯……

分析总结

这次的Java实验的难点是产生随机数,剩下的循环主要看设计思路。实验是一个很好的完整的带有目的性的个人程序开发,能够整合学到的知识。

PSP

步骤 耗时(分钟) 百分比
需求分析 5 2.5
设计 15 7.5
代码实现 60 30
测试 60 30
分析总结 60 30

参考资料

最新文章

  1. 精华 对express中next函数的一些理解
  2. 图解直方图均衡化及其Python实现
  3. 快速入门系列--MVC--01概述
  4. C#设计模式——观察者模式(Observer Pattern)
  5. [实践] ubuntu下编译安装ambari
  6. DTD Tutorial
  7. JSON对象和string的相互转换
  8. 关于平移的 scrollTo和scrollBy的区别
  9. Java的跨平台原理
  10. nmon在线安装及使用
  11. 安装Vmware 以及 Vmware 中安装Ubuntu 以及其中问题?
  12. Charles抓取https请求详解
  13. Spring官方文档翻译(转)
  14. 错误: 找不到或无法加载主类 hello.class
  15. hihoCoder编程练习赛69
  16. 我发起了一个 操作系统 GUI 和 Tcp / IP 包 的 开源项目 DeviceOS
  17. Redis 5.0 安装
  18. 利用css和javascript实现简单的计算器
  19. JSP 脚本中的 9 个内置对象
  20. [洛谷P2447][SDOI2010]外星千足虫

热门文章

  1. c 链表和动态内存分配
  2. 使用setup.py安装python包和卸载python包的方法
  3. Flask--(项目准备)--添加日志
  4. centos7如何查找文件?
  5. Python【每日一问】04
  6. aspose.cells 插入图片
  7. JS高级-虚拟DOM
  8. TCP‘三次握手’和‘四次挥手’(通俗易懂)
  9. 【学习】通用函数:快速的元素级数组函数【Numpy】
  10. 《算法导论》——顺序统计RandomizedSelect