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. 2017萌新的ACM之旅参考代码

      地址:https://vjudge.net/contest/180794#overview A #include <iostream> using namespace std; int m ...

    2. Python面试题都在这里了

      转自武沛齐博客:http://www.cnblog.com/wupeiqi/ 第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Python? Python和Java ...

    3. ubuntu16.4+nginx+uwsgi+Django 部署上线

      Nginx概述 Nginx是一款轻量级的HTTP服务器,采用事件驱动和异步非阻塞处理方式框架,这让其具有极好的IO性能,市场用于服务端的反向代理和负载均衡 Nginx优点 高并发连接:官方测试Ngin ...

    4. 图像增强算法(直方图均衡化、拉普拉斯、Log、伽马变换)

      一.图像增强算法原理 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则 ...

    5. 特来电CMDB应用实践

      配置管理数据库(Configuration Management Database,以下简称CMDB)是一个老生常谈的话题,不同的人有不同的见解,实际应用时,因为企业成熟度以及软硬件规模不同,别人的成 ...

    6. Expo大作战(二十六)--expo sdk api之Video和WebBrowser

      简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

    7. React Native - TextInput详细解说

      1,TextInput组件介绍 TextInput 组件除了作为输入框实现基本的输入功能外,它还提供了许多其他功能,比如自动校验.占位符以及指定弹出不同的键盘类型等. 2,组件的属性 (1)autoC ...

    8. [Android] 图片裁剪总结——自定义裁剪工具

      上次弄完调用系统裁剪之后,我又试着做一个自定义的裁剪工具. 原文地址请保留http://www.cnblogs.com/rossoneri/p/3988405.html 老习惯,文章开始前还是先把我参 ...

    9. SerialPort类的用法与示例

      转:https://www.cnblogs.com/hwBeta/p/6926363.html Microsoft .Net框架SerialPort类的用法与示例 从Microsoft .Net 2. ...

    10. Can't locate Data/Dumper.pm in perl5的处理

      Can't locate Data/Dumper.pm in perl5的处理 wget http://www.cpan.org/modules/by-module/Data/Data-Dumper- ...