实验一《Java开发环境的熟悉》实验报告

(一)基础操作

实验要求:

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语言的学习仍有很多没学明白的地方,自己要加把劲了。

猜你喜欢

转载自www.cnblogs.com/20175309lyh/p/10646701.html