20145331 实验一 "Java开发环境的熟悉"

实验内容

使用JDK和IDE编译、运行简单的Java程序。
题目: 实现四则运算,并进行测试。

编写代码

1、首先第一步就是要输入数据,我参考书上P86的知识建立了Scanner实例来实现,代码如下:

import java.util.Scanner;
......
Scanner scanner =new Scanner(System.in);
System.out.println("请输入两个数");
Double x=scanner.nextDouble();
Double y=scanner.nextDouble()

2、接着就是进行四则运算了,依题意,需要分四种情况,所以选择swicth-case语句来实现,同时定义一个整形变量来划分这四种情况,同时也要考虑在除法中分母不能为0的特殊条件,用if语句实现,代码如下:

int p=scanner.nextInt();
.......
switch (p) {
case 1:
System.out.print("结果为");
System.out.println(a);
break;
case 2:
System.out.print("结果为");
System.out.println(b);
break;
case 3:
System.out.print("结果为");
System.out.println(c);
break;
case 4:
if(y==0)System.out.println("输入数据有误");//分母不可以为0
System.out.print("结果为");
System.out.println(d);
break;
default:System.out.println("错误");

3、将代码补充完整,整体代码如下所示(此处为修改后运行成功的代码,“运行失败”的部分会在后面提到):

import java.util.Scanner; 
public class Main{
    public static void main(String[] args){
        Scanner scanner =new Scanner(System.in);//建立Scanner实例。
        System.out.println("请输入两个数");
        Double x=scanner.nextDouble();
        Double y=scanner.nextDouble();//接受输入数据。
        System.out.println("请选择:1、加法 2、减法 3、乘法 4、除法");
        int p=scanner.nextInt();//接受选择并定义变量,用于下面的switch分支。
   
  int a,b,c,d;
     a=x+y;
     b=x-y;
     c=x*y;
     d=x/y;
    
  
        switch (p) {//建立switch-case结构来实现用户选择的不同运算方法。
        case 1:
        System.out.print("结果为");
        System.out.println(a);
        break;
        case 2:
        System.out.print("结果为");
        System.out.println(b);
        break;
        case 3:
        System.out.print("结果为");
        System.out.println(c);
        break;
        case 4:
        if(y==0)
        System.out.println("输入数据有误");//分母不可为0。
        System.out.print("结果为");
        System.out.println(d);
        break;
        default:System.out.println("错误");
        }
    }
}

调试代码

一开始编译通过,但是运行后没有结果,出现的是空白,代码如下:

    Scanner scanner =new Scanner(System.in);
Double x=scanner.nextDouble();
Double y=scanner.nextDouble();
System.out.println("请输入两个数");
  ......

因为我的代码这一部分是参考教材P86代码的流程,没有注意到逻辑上的先后顺序,即先提示输入两个数,再进行数据的输入,否则运行后就是空白。由于这一部分也没有语法问题(所以我开始也没有检查代码)我在寻找这个简单的问题耗费了我大量时间,以为是我的运行环境出了问题,在不同同学的机子上都出现此问题后,最终一名学霸帮我检查代码后将此问题纠正,给出纠正后的代码:

    Scanner scanner =new Scanner(System.in);
System.out.println("请输入两个数");
Double x=scanner.nextDouble();
Double y=scanner.nextDouble();
  ......
此外,在进行除法运算时,除式的分母不可为0,这属于现实的逻辑问题,因此,在除法运算模块要加入以下代码:
  
   if(y==0)
     System.out.println("输入数据有误");
     System.out.print("结果为");
     System.out.println(d);  
   ......

运行截图

实验心得体会

通过这次实验,我明白代码的编写绝对不是简单的照猫画虎,要联系自己的实际条件和需求;同时代码编译通过也不意味着你大功告成,编译成功只是说明你语法没有问题,而代码的逻辑很有可能存在漏洞,要做出真正好的程序就需要运行代码后再不断完善,我想这也就是实验的目的和实验的必要性吧;除此之外,代码需要切合实际,才算是真正的好代码。

PSP(Personal Software Process)

步骤 耗时 百分比
需求分析  5min 5.5
设计 15min   17
代码实现 20min   22
测试 40min    44
分析总结 10min   11

20145331 实验一 "Java开发环境的熟悉"的更多相关文章

  1. 20145205 实验一 Java开发环境的熟悉

    实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ...

  2. 实验一 Java开发环境的熟悉

    实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...

  3. 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...

  4. 实验一Java开发环境的熟悉

    实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...

  5. 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)

    20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...

  6. 20145208实验一 Java开发环境的熟悉

    20145208实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立实验目录,然后创建并进入该目录后的子目录. 编译并运行一个代码 使用IDEA 编 ...

  7. 实验一 Java开发环境的熟悉(Linux + Eclipse)

    学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...

  8. 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然

    https://gitee.com/ShengHuoZaiDaXue/20175301.git 实验一 Java开发环境的熟悉(Linux + Idea) 实验内容 1.使用JDK编译.运行简单的Ja ...

  9. 2018-2019-2 实验一 Java开发环境的熟悉

    实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA编辑.编译.运行.调试Java程序 实验知识点 1. JVM.JRE.JDK的安装位置与区别: 2. 命令行运行javac:ja ...

随机推荐

  1. Android APK反编译详解

    这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的软件, ...

  2. jfinal如何调用存储过程?

    存储过程用一下 Db.execute(ICallback) 这个方法,在其中用一下:connection.prepareCall(sql).execute();就可以调用存储过程了,并且还可以自由控制 ...

  3. java的list集合如何根据对象中的某个字段排序?

    转自:http://blog.csdn.net/wangjuan_01/article/details/51351633 List集合按某个字段排序 package wjtest_01; import ...

  4. Java关键字final、static总结

    对Java关键字Final和Static进行总结. 一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方 ...

  5. Python全栈day18(迭代器协议和for循环工作机制)

    一,什么是迭代和递归 递归和迭代都是循环的一种. 简单地说,递归是重复调用函数自身实现循环.迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保 ...

  6. INFORMATION_SCHEMA.STATISTICS 统计 表 库 大小

    INFORMATION_SCHEMA MySQL :: MySQL 5.5 Reference Manual :: 21 INFORMATION_SCHEMA Tables https://dev.m ...

  7. mysql json

    SELECT name, profile->"$.twitter" AS `twitter` FROM `user` WHERE profile->"$.tw ...

  8. PXE,ipmi,bare metal

    IPMI(Intelligent Platform Management Interface)是一个智能平台管理接口. 用户可以利用IPMI 监视服务器等设备的物理特征,如各部件的温度.电压.风扇工作 ...

  9. Storm-源码分析-Topology Submit-Nimbus-mk-assignments

    什么是"mk-assignment", 主要就是产生executor->node+port关系, 将executor分配到哪个node的哪个slot上(port代表slot, ...

  10. 为什么在Java中不使用finalize()方法

    我们都知道finalize()方法是回收分配给对象的内存之前调用垃圾收集器线程的基本语句.在这篇文章中,我们将会深入这个方法. 这篇文章中的章节: 1.finalize()方法不能保证执行(这个将要用 ...