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. 在做实验的时候,不但要分析一个程序大的框架思路,即如何实现程序的要求,更要想清可能产生的所有异常情况,将程序不应该存在的边边角角全都

    2018-2019-2 20175308实验一 《Java开发环境的熟悉》实验报告的更多相关文章

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

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

    2. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

      20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...

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

      20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...

    4. 20165205 实验一 java开发环境的熟悉 实验报告

      20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...

    5. 20162327实验一Java开发环境的熟悉实验报告

      20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...

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

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

    7. 20175316 盛茂淞 实验一 Java开发环境的熟悉

      20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...

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

      20155327实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序 2.使用IDEA编辑.编译.运行.调试java程序 实验步骤 1.使用JDK编译.运行简单的jav ...

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

      20165233 实验一 Java开发环境的熟悉 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验 ...

    10. 20155231 java实验一 Java开发环境的熟悉

      20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...

    随机推荐

    1. HDU3359(SummerTrainingDay05-I 高斯消元)

      Kind of a Blur Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

    2. Python 并发编程(管道,事件,信号量,进程池)

      管道 Conn1,conn2 = Pipe() Conn1.recv() Conn1.send() 数据接收一次就没有了 from multiprocessing import Process,Pip ...

    3. 记一次MySQL安装出现的坑爹问题。。。

      关键词:mysql安装 msvcr100.dll缺失  vc++2010 : win10系统首次安装mysql,图方便下载了图形界面的安装包(5.6.4),本以为小事一桩:装一半失败.卸载清注册表.重 ...

    4. js-权威指南学习笔记20

      第二十章 客户端存储 1.客户端存储有一下几种形式:Web存储.cookie.IE userData.离线Web应用.Web数据库.文件系统API. 2.Web存储标准所描述的API包含localSt ...

    5. JS 数组对象根据下标拆分成新的数组

      真为难啊! var arr = [ {guigeArr:['蓝色','XL','3','S']}, {guigeArr:['蓝色','L','6','S']}, {guigeArr:['蓝色','L' ...

    6. gis cad导出弧段在arcmap下 不准问题

      我发现cad 的图形导出到arcmap下会出现各种各样的丢失问题,特别是cad的弧段在arcmap下会弯曲(弧度指向另外一边). 那么应该怎么解决这个问题呢?后来想到FME可以高效的还原cad的图形, ...

    7. 语义SLAM的数据关联和语义定位(三)

      与现有方法的异同 特征点SLAM中的数据关联 先回忆一下特征点SLAM中,我们是如何处理数据关联的.下面以ORBSLAM为例. 在初始化部分,我们通过特征描述子的相似性,建立两帧之间的特征点关联,然后 ...

    8. linux查看某IP尝试连接成功和失败次数

      查看连接失败次数 cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2" ...

    9. cmd 命令总结

      1.windows 系统定时关机  定时关机:shutdown -s -t 300                 at 18:30 shutdown -s 取消定时:shutdown -a 注意:3 ...

    10. Percona Xtradb Cluster的设计与实现

      Percona Xtradb Cluster的设计与实现   Percona Xtradb Cluster的实现是在原mysql代码上通过Galera包将不同的mysql实例连接起来,实现了multi ...