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. 前端SEO

      一.搜索引擎工作原理 当我们在输入框中输入关键词,点击搜索或查询时,然后得到结果.深究其背后的故事,搜索引擎做了很多事情. 在搜索引擎网站,比如百度,在其后台有一个非常庞大的数据库,里面存储了海量的关 ...

    2. java工具包一:日期处理

      作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7846812.html 邮箱:moyi@moyib ...

    3. python学习之老男孩python全栈第九期_day004作业

      看代码写结果:1. a=[1,2,3,6,"dfs",100]s=a[-1:]print (s) 结果:[100] 2. s=a[-1:0:-1]print(s) 结果:[100, ...

    4. 设计模式(14)--Command(命令模式)--行为型

      作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.模式定义:   命令模式属于对象的行为模式.命令模式又称为行动(Action)模式或交易(Transactio ...

    5. ajax请求json数据跨域问题(转)

      一.后台代理技术 由服务器端向跨域下的网站发出请求,再将请求结果返回给前端,成功避免同源策略的限制. 具体操作如下: 1.在localhost:81/a.html中,向同源下的某个代理程序发出请求 $ ...

    6. MySql 正则表达式简介及使用

      MySql正则表达式简介及使用 by:授客 QQ:1033553122 简介 正则表达式描述了一组字符串,该字符放置于REGEXP工具后面.作用是将一个正则表达式与一个文本串进行比较. 最简单的正则表 ...

    7. Nodejs搭建wss服务器

      首先使用OpenSSL创建自签名证书: #生成私钥key文件 openssl genrsa > /path/to/private.pem // #通过私钥文件生成CSR证书签名 openssl ...

    8. 安卓基础之Activity的四种启动模式

      Activity的四种启动模式   Activity的启动模式在清单文件中配置: <activity ... activity:lauchMode:"..."; //有四种模 ...

    9. react native中Unable to load script from assets 'index.android.bundle'解决方案

      刚刚朋友问我,说是创建好一个项目,运行后报错:Unable to load script from assets 'index.android.bundle',以前好好的没出现这种现象,于是我找到一个 ...

    10. LeetCode题解之 3Sum

      1.题目描述 2.问题分析 使用hashtable 的方法做,解法不是最优的,思路简单直观. 3.代码 vector<vector<int>> threeSum(vector& ...