• 20165218 实验一 Java开发环境的熟悉


    实验一 Java开发环境的熟悉

    课程:java程序设计

    姓名:赵冰雨

    学号:20165218

    指导教师:娄嘉鹏

    实验日期:2018.4.2

    实验密级:Java开发环境的熟悉

    实验内容、步骤与体会:

    (一)Linux命令行下Java程序开发

    1. 打开虚拟机,Ctrl+Alt+T打开终端(也可以在需要打开终端的文件夹下直接右键打开终端)
    2. cd 20165218,mkdir exp1,cd exp1,建立并进入实验一的文件夹
    3. mkdir bin,mkdir src
    4. touch src/Hello.java并在IDEA内编辑保存好
    5. javac -d bin src/Hello.java编译到bin内
    6. java -cp bin Hello 运行


    (二)IDEA下Java程序开发、调试

    1. 创建项目,新建HelloJDB类,输入代码,Shift+Alt+F10运行

    1. 在行前左击,设置断点Shift+Alt+F9程序运行到断点处

    2. 单步执行

    1. 条件断点:在断点处输入条件,Shift+Alt+F9进行Debug


    (三)练习(通过命令行和IDEA两种方式实现,自己的学号后两位与题目总数取余的结果再加上1就是自己要完成的题号,在IDEA下练习调试程序)

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

    代码实现:

    凯撒密码主类

     /**
     * Created by zby on 2018/4/2.
     */
    
    import java.util.*;
    import java.lang.*;
    
    public class CaeserCipher {//凯撒密码
        public static void main(String[] args) {
            System.out.println("输入一串字符串作为明文(回车结束):");
            Scanner input = new Scanner(System.in);
            String m = input.next();//读入一行字符串,以回车为标志
            Arithmetic output = new Arithmetic();
            String c = output.encrpty(m);
            System.out.println("加密后的密文为:" + c);
            System.out.println("解密后的明文为:" + output.decrypt(c));
        }
    }
    
    

    算法方法所在类

    /**
     * Created by zby on 2018/4/2.
     */
    
    import java.lang.*;
    
    public class Arithmetic {//加密和解密算法
        public String encrpty(String m) {
            StringBuilder result = new StringBuilder();
            char[] mi = m.toCharArray();
            int n = mi.length;
            for (int c : mi) {
                if (c >= 'a' && c <= 'z') {
                    c += 3; // 移动key%26位
                    if (c < 'a')
                        c += 26; // 向左超界
                    if (c > 'z')
                        c -= 26; // 向右超界
                }
                // 如果字符串中的某个字符是大写字母
                else if (c >= 'A' && c <= 'Z') {
                    c += 3; // 移动key%26位
                    if (c < 'A')
                        c += 26;// 同上
                    if (c > 'Z')
                        c -= 26;// 同上
                }
                result.append((char) c);
            }
            return result.toString();
        }
    
        public String decrypt(String m) {
            StringBuilder result = new StringBuilder();
            char[] mi = m.toCharArray();
            int n = mi.length;
            for (int c : mi) {
                if (c >= 'a' && c <= 'z') {
                    c -= 3; // 向前移动3位
                    if (c < 'a')
                        c += 26; // 向左超界
                    if (c > 'z')
                        c -= 26; // 向右超界
                }
                // 如果字符串中的某个字符是大写字母
                else if (c >= 'A' && c <= 'Z') {
                    c -= 3; // 向前移动3位
                    if (c < 'A')
                        c += 26;// 同上
                    if (c > 'Z')
                        c -= 26;// 同上
                }
                result.append((char) c);
            }
            return result.toString();
        }
    
    }
    

    实现:


    参考资料

    1. java中如何输入char类型 - CSDN博客
    2. string的append函数用法 - CSDN博客
    3. 大神们啊。。。。请问java怎么输入String型数据。。。。。? - 百度知道
  • 相关阅读:
    开课 博客
    给定数组求数组中和最大子数组的和
    课堂测验
    读梦断代码有感(3)2019.2.20
    读梦断代码有感(2)2019.2.10
    读梦断代码有感(1)2019.2.05
    进度七
    进度 六
    sjz地铁作业
    进度四
  • 原文地址:https://www.cnblogs.com/zicerain/p/8693755.html
Copyright © 2020-2023  润新知