(一)基础操作

实验要求:

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. 如何安装 PhoneGap / Cordova (for Win10)

    最近需要配置 PhoneGap / Cordova 环境,折腾了一阵子,写篇博客 Mark 一下整个过程. 具体参照了:http://www.assortedgarbage.com/apigee/ 以 ...

  2. Window7 定制 Explore中的右键菜单

    win+R 命令  运行 regedit ,打开注册表 在  HKEY_CLASSES_ROOT\*\shell\VisualCode下创建针对文件的新增命令 command 在HKEY_CLASSE ...

  3. golang _下划线占位符代替需要释放的资源的问题

    golang中_有两种作用,一种用在import中,比如这样 import _ "github.com/go-sql-driver/mysql" 表示并不需要导入整个包,只是执行这 ...

  4. Thrax-构建基于语法的语言模型工具

    安装 http://www.openfst.org/twiki/bin/view/GRM/ThraxQuickTour http://cslu.ogi.edu/~sproatr/Courses/Tex ...

  5. 关闭QQ右下角弹窗小程序

    关闭QQ右下角弹出的广告或新闻等. 程序没有界面,后台运行. #if defined(UNICODE) && !defined(_UNICODE) #define _UNICODE # ...

  6. node的应用场景

    I/O密集型 I/O密集的优势主要在于Node利用事件循环的处理能力,而不是启动每一个线程为每一个请求服务,资源占用极少. 是否不擅长CPU密集型业务 换一个角度,在CPU密集的应用场景中,Node是 ...

  7. APK改之理 手游修改改编安卓程序工具安装使用教程

    APK改之理 手游修改改编安卓程序工具安装使用教程 --APK破解付费程序 apk改之理是pc平台上一款非常好用的apk反编译工具,他将反编译以及签名等功能集中在一起,并且拥有非常人性化的操作界面,如 ...

  8. MyBatis入门2

    一.实现单一查询 1)核心配置文件:Configuration.xml 1 <?xml version="1.0" encoding="UTF-8"?&g ...

  9. Redis 简介与命令操作

    redis 是 key-value 的数据,所以每个数据都是一个键值对,键的类型是字符串: 值的类型分为五种:string.hash.list.set(集合).zset(有序集合). 数据操作的全部命 ...

  10. BlockChain 的跨链技术的重要性和必要性

    本期我们将从跨链技术的重要性和必要性.畅想区块链未来世界.什么是跨链.目前四种跨链技术的对比.构建EOS同构跨链体系群.EOCS跨链技术介绍.跨链通道.中继等几个层面带大家走进EOS跨链和EOCS的世 ...