(一)基础操作

实验要求:

1 .建立“自己学号exp1”的目录

2 .在“自己学号exp1”目录下建立src,bin等目录

3 .javac,java的执行在“自己学号exp1”目录

4 .提交 Linux或Window或macOS中命令行下运行Java的全屏截图, 运行结果包含自己学号等证明自己身份的信息

5 .代码提交码云

思路

用'mkdir'建立文件,用'vim'编写文件,'javac'编译,运用一个'System.out.println'即可

代码:

public class ID {
public static void main(String args[]) {
System.out.println("刘雨恒");
System.out.println("20175309");
}
}

结果截图:

码云链接:

https://gitee.com/Lyh20175309/java-besti-is-lyh/tree/master/20175309exp1/src

(二)使用IDEA调试Java程序

调试代码这一块按照了老师所给的参考博客来一步一步的完成的,不知道为何,我在设置完断点后单击鼠标右键无法设置条件断点,现在仍在寻找解决方案;另外,由于我的电脑的原因,F1到F12都被自动设置了快捷键,在IDEA里无法使用,想使用的话还需要取消快捷键,造成了极大的不便。

结果截图

(三)练习实现凯撒密码并进行安全加固,并进行测试(正常情况,异常情况,边界情况)。

代码

/**
* Created by lenovo on 2019/4/2.
*/
import java.sql.SQLOutput;
import java.util.Scanner;
public class kaisa {
public static void main(String[] args) {
System.out.println("1 加密 2 解密");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
if (n == 1) {
System.out.print("请输入明文:");
String str = in.next();//输入明文
String jm = "";//定义字符串jm并初始化
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);//这句话我的理解是把str的第I个值赋值给ch,即把str都装进ch中。
if (ch >= 'a' && ch <= 'z') {
if (ch < 'x') { //如果小于x,加3最多变成z,如果大于x,就必须先-26,再+3,例‘x'=24-26+3=1=’a'
ch += 3;
} else {
ch -= 26;
ch += 3;
}
}
if (ch >= 'A' && ch <= 'Z') {
if (ch < 'X') {
ch += 3;
} else {
ch -= 26;
ch += 3;
}
}
jm += ch;
}
System.out.println("密文是:" + jm);
}
else if (n == 2) {
System.out.print("请输入密文:");
String str = in.next();//输入密文
String jm = "";
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= 'a' && ch <= 'z') {
if (ch > 'c') {
ch -= 3;
} else {
ch += 26;
ch -= 3;
}
} else if (ch >= 'A' && ch <= 'Z') {
if (ch > 'C') {
ch -= 3;
} else {
ch += 26;
ch -= 3;
}
}
jm += ch;
}
System.out.println("明文是:" + jm);
}
else {
System.out.println("输入错误");
}
}
}

1.正常情况

2.异常情况

3.边界情况



后来我发现了我程序的纰漏就是无法加密数字,但一般发密文的时候数字都是用文字表示,所以我就把含有数字的当成边界情况了。

遇到的问题

1运行结果是正确的,但之后又有“输入错误”的输出。

解决办法:还是对条件语句理解的不够透彻;应该在第二个if前加一个else,否则if和if else变成了两个个体,前面if中n等于1之后跳入第二个条件,判断n此时不等于2,于是运行else那一块,所以就输出了正确结果和“输入错误”。

实验心得

1.实验1-1看起来很简单,但打好基础非常重要,涉及到的几个命令都是最基础的命令,但凡学习java都必会的,可以看出老师设计此实验的良苦用心

2.实验1-2用idea调试代码是非常重要的,作为一名程序“猿”,不仅要会开发,还要按照需求调试,学好怎样调试和使用快捷键调试是不可避免的一步,学好这些,才能理直气壮地说自己掌握了编程。

3.练习:凯撒密码看起来好像很简单(其实实际上也不难),就是一个单纯的ch=ch+3,但涉及到了一个分类讨论的思想,即判断字母是否是x,y,z。这三个字母在最后三位必须要先减26再加3;另外加密和解密的字符串jm必须要初始化,否则会输出乱码。

4.通过这次实验帮助自己查缺补漏,之前C语言的学习仍有很多没学明白的地方,自己要加把劲了。

实验一《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. vue路由信息对象

    一个路由信息对象表示当前激活的路由的状态信息,每次成功的导航后都会产生一个新的对象. path字符串,对应当前路由的路径 params对象,包含动态路由参数 query对象,URL查询参数 hash字 ...

  2. java 根据经纬度坐标计算两点的距离算法

    /** * @Desc 根据经纬度坐标计算两点的距离算法<br> * @Author yangzhenlong <br> * @Data 2018/5/9 18:38 */ p ...

  3. P1822 魔法指纹

    一道放在分块训练中的分块打表屑题 看了神NaCly_Fish的题解学了间隔打表(话说这么屑的东西有什么学的必要吗) 内容大多摘自大佬的题解 1,答案可递推,才适合间隔打表 什么叫可递推呢?假设f[n] ...

  4. 428 Setup MySQL + - 改

    初步认识MySQL 安装 练习增减改 1.什么是数据库软件: 数据库,俗称数据的仓库.方便管理数据的软件(或程序) 市面上数据库软件: Oracle:甲骨文公司产品.当前最流行应用最广泛数据库软件.和 ...

  5. apt-get install 出问题怎么办?

    有时候在用apt-get安装包的时候总是会莫名其妙出现各种问题,建议先把如下命令行按顺序敲一遍,基本上都能解决 sudo apt-get clean sudo apt-get update sudo ...

  6. mina statemachine解读(一)

      statemachine(状态机)在维护多状态数据时有非常好的作用,现在github上star排名最前的是squirrel-foundation以及spring-statemachine,而min ...

  7. Linux下定时备份文件

    一. 编写脚本 编写一个脚本文件,使脚本可以执行备份命令. 例如,将文件目录 /home/backups/balalala 备份到/home目录下,并压缩. 1. 创建脚本 命令格式: touch 路 ...

  8. 从koa-session源码解读session本质

    前言 Session,又称为"会话控制",存储特定用户会话所需的属性及配置信息.存于服务器,在整个用户会话中一直存在. 然而: session 到底是什么? session 是存在 ...

  9. Go命令官方指南【原译】

    启动错误报告 编译包和依赖项 删除目标文件和缓存的文件 显示包或符号的文档 打印Go环境信息 更新包以使用新API Gofmt(重新格式化)包源 通过处理源生成Go文件 下载并安装包和依赖项 编译并安 ...

  10. C++示例

    Linux C++ template使用示例: #include <iostream> #include <cstring> using namespace std; temp ...