博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-2019-2 20175308实验一 《Java开发环境的熟悉》实验报告
阅读量:4676 次
发布时间:2019-06-09

本文共 2682 字,大约阅读时间需要 8 分钟。

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

一、实验内容及步骤

(一)使用JDk编译、运行简单的Java程序

  • 输入cd Code命令进入Code目录
  • 输入mkdir 20175308建立实验目录
  • ls查看当前工作目录
  • cd 20175308进入实验目录,mkdir exp1建立第一个实验目录
  • cd exp1进入第一个实验目录,pwd查看当前工作路径
  • vim Hello.java编辑Hello.java
  • javac -d . Hello.java编译代码
  • java Hello运行代码

    实验截图:

    输入图片说明

    (二)使用IDEA调试Java程序

  • 新建HelloJDB文件,键入如下代码:输入图片说明
  • 单击左侧,在某一行添加断点
  • rundebug调试当前代码
  • 如图所示图标为Step Over向下执行一行
    输入图片说明
  • 如果要判断循环内部是否有问题产生。我们可以添加条件断点:如图所示,在for循环中添加i为50的断点

    输入图片说明

    (三)练习

    题目:判断一个数是不是回文数,数从命令行输入,并进行测试
    代码如下:
import java.util.*;public class Huiwen {    public static void main(String[] args) {        int i = 0;        int l = 0;        int sum = 1;        String str;        int temp[] = new int[100];        int t = 1;        int[] count = new int[100];        int[] chs = new int[100];        Scanner reader = new Scanner(System.in);        System.out.println("请输入你要判断的数字");        str = reader.nextLine();        l = str.length();        for (i = 0; i < str.length(); i++) {            chs[i] = str.charAt(i);        }        for (i = 0; i < l; i++) {            if (chs[i] < 49 || chs[i] > 57) {                temp[i] = 0;            } else temp[i] = 1;            t *= temp[i];        }        if (t == 1) {            for (i = 0; i < l / 2; i++) {                if (chs[i] == chs[l - i - 1]) {                    count[i] = 1;                } else {                    count[i] = 0;                }                sum *= count[i];            }            if (sum == 1)                System.out.println(str + "是回文数");            else                System.out.println(str + "不是回文数");        }        else System.out.println("输入含非法字符");    }}

运行截图:

输入图片说明
思路:
回文数即首尾对称,可以将输入的字符串存储成为一个数组。找到一个轴,比较首尾是否相等,即可判断是否是回文数。

二、实验中遇到的问题及解决

  • 在最初始版本的代码中,我简单的编写了一个比较首尾的代码段
for (i = 0; i < l / 2; i++) {            if (chs[i] == chs[l - i - 1]) {                System.out.println(str + "是回文数");            } else {                System.out.println(str + "不是回文数");

,在运行中出现以下内容:输入图片说明

解决思路:这种内容的错误是,在for循环中,每比较一位,就打印一遍结果。于是我建立了一个count数组和int型的sum,存储每一位的比较结果,如果相等,计作1,不相等计作0,sum为count数组各位相乘的结果,只要有一位不相等(即count[i]为0),都会使乘法结果为0。通过判断sum值来判断是否是回文数。

  • 补充上问题:在设定int型参数sum后。IDEA标注程序错误

    解决思路:通过阅读IDEA的提示,提示中有个关键字initialize,判断出因为没有给sum值初始化,给sum初始化值为1后,程序正确

  • 在第二版本的代码中,我发现自己忽略了一种情况,当输入不全为数字时,只要满足回文形式,程序也判断为回文数。而这显然是不正确的。[图片]

    解决思路:有了上个问题的解决,这个问题就可以如法炮制,建立另一个数组判断每一位是否都是数字,如果有不是数字的字符,就不进行判断回文的步骤。形成最终版本的代码。

    三、实验总结与体会

  1. 在做实验的时候,不但要分析一个程序大的框架思路,即如何实现程序的要求,更要想清可能产生的所有异常情况,将程序不应该存在的边边角角全都?死。头脑一定要走在行动前面。
  2. IDEA一个很好的功能就是在你写程序的同时检测细节上哪里出现了问题,我们预备充足的单词量,就可以通过读IDEA的报错马上找到错误的问题所在。
  3. 通过统计下图,发现需求分析划分时间过短,倒置一些细节问题需要在后面步骤花更多时间去发现并解决。再做实验时一定要在需求分析时分配足够的时间。
步骤 耗时 百分比
需求分析 2min 3%
设计 8min 11%
代码实现 40min 54%
测试 13min 18%
分析总结 10min 14%

转载于:https://www.cnblogs.com/darklord0604/p/10588618.html

你可能感兴趣的文章
linux运维云计算课程学习,Linux云计算面试时遇到的问题
查看>>
Abiword对话框资源
查看>>
跟我一起写 Makefile
查看>>
C# uri
查看>>
GPS定位 测试
查看>>
前端使用AngularJS的$resource,后端ASP.NET Web API,实现增删改查
查看>>
探索从 MVC 到 MVVM + Flux 架构模式的转变
查看>>
tornado的异步效果
查看>>
*2.3.2_加入env
查看>>
JS中SetTimeOut和SetInterval方法的区别?
查看>>
Protocol Buffers proto语言语法说明
查看>>
Hibernate双向一对一对象关系模型映射
查看>>
正则表达式(下)
查看>>
熟悉常用的HDFS操作
查看>>
Linux自动化运维第十八课
查看>>
web 10
查看>>
jquery--动态篇
查看>>
npm 是干什么的
查看>>
Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备
查看>>
查找路径php.ini文件到底在哪里?
查看>>