zoukankan      html  css  js  c++  java
  • 20172318 2017-2018-2 《程序设计与数据结构》实验3报告

    20172318 2017-2018-2 《程序设计与数据结构》实验3报告

    课程:《程序设计与数据结构》
    班级: 1723
    姓名: 陆大岳
    学号:20172318
    实验教师:王志强
    实验日期:2018年5月10日
    必修/选修: 必修

    1.实验内容

    public class CodeStandard {
    public static void main(String [] args){
    StringBuffer buffer = new StringBuffer();
    buffer.append('S');
    buffer.append("tringBuffer");
    System.out.println(buffer.charAt(1));
    System.out.println(buffer.capacity());
    System.out.println(buffer.indexOf("tring"));
    System.out.println("buffer = " + buffer.toString());
    if(buffer.capacity()<20)
    buffer.append("1234567");
    for(int i=0; i<buffer.length();i++)
    System.out.println(buffer.charAt(i));
    }
    }
    

    2. 实验过程及结果

    实验一

    实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA

    参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装alibaba 插件,解决代码中的规范问题。

    在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。

    public class CodeStandard {
    public static void main(String [] args){
    StringBuffer buffer = new StringBuffer();
    buffer.append('S');
    buffer.append("tringBuffer");
    System.out.println(buffer.charAt(1));
    System.out.println(buffer.capacity());
    System.out.println(buffer.indexOf("tring"));
    System.out.println("buffer = " + buffer.toString());
    if(buffer.capacity()<20)
    buffer.append("1234567");
    for(int i=0; i<buffer.length();i++)
    System.out.println(buffer.charAt(i));
    }
    }
    
    • 按照步骤Settings ->Plugins ->Browse repositories...在idea中下载代码规范工具

    • 使用编码规约扫描对代码进行扫描并找出问题

    • 对问题进行修改之后的代码

    
    /**
     * @author 20172318
     */
    public class CodeStandard {
        public static void main(String [] args){
            final int maxCapacity= 20;
            StringBuffer buffer = new StringBuffer();
            buffer.append('S');
            buffer.append("tringBuffer");
            System.out.println(buffer.charAt(1));
            System.out.println(buffer.capacity());
            System.out.println(buffer.indexOf("tring"));
            System.out.println("buffer = " + buffer.toString());
            if(buffer.capacity()<maxCapacity) {
                buffer.append("1234567");
            }
            for(int i=0; i<buffer.length();i++) {
                System.out.println(buffer.charAt(i));
            }
        }
    }
    
    
    • 使用这个代码在进行一次编码规约扫描,扫描通过

    • 研究下code菜单,发现code菜单的添加注释的功能挺好的,使用快捷键shift+Ctrl+/也很方便

    实验二

    在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;
    提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。

    • fork他的文件后 使用git pull下载文件到idea

    • 加入不少于三个JUnit单元测试用例

    • 测试成功

    • git到码云后请求合并

    • 合并成功

    实验三

    实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA
    完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。

    • 进行三项重构,主要是


    • 提交到码云

    实验四

    参考 http://www.cnblogs.com/rocedu/p/6683948.html,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。
    提交学习成果码云链接和代表性成果截图,要有学号水印。

    • 凯撒密码
      运行:

    java Caesar "Hello World!" 4

    将输出“Lipps Asvph!”。这里“Hello World!”是明文,“Lipps Asvph!”是密文。

    • Java对称加密-DES算法
      Skey_DES:
      (1) 获取密钥生成器
      (2) 初始化密钥生成器
      (3) 生成密钥
      (4) 通过对象序列化方式将密钥保存在文件中
      Skey_kb:
      (1) 获取密钥
      (2) 获取主要编码格式
      (3) 保存密钥编码格式
      SEnc:
      (1) 从文件中获取密钥
      (2) 创建密码器(Cipher对象)
      (3) 初始化密码器
      (4) 获取等待加密的明文
      (5) 执行加密
      (6) 处理加密结果

    • Java非对称加密-RSA算法
      Skey_RSA:
      (1) 创建密钥对生成器
      (2) 初始化密钥生成器
      (3) 生成密钥对
      (4) 获取公钥和私钥
      Enc_RSA:
      (1) 获取公钥
      (2) 获取公钥的参数(e, n)
      (3) 获取明文整数(m)
      (4) 执行计算
      Dec_RSA:
      (1) 读取密文
      (2) 获取私钥
      (3) 获取私钥的参数(d, n)
      (4) 执行计算
      (5) 计算明文整型数对应的字符串

    • 使用密钥协定创建共享密钥

    • Java摘要算法- MD5,输入java DigestCalc abc来运行程序,其中命令行参数abc是原始数据,屏幕输出计算后的消息摘要:900150983cd24fb0d6963f7d28e17f72。

    3. 实验过程中遇到的问题和解决过程

    问题1:如何输入命令行参数
    问题1解决方案:运行时点击图1上的图标,在如图2所示的地方输入

    其他(感悟、思考等)

    Java说难不难,说简单吧写博客又耗时间

    参考资料

  • 相关阅读:
    编程之美:位运算应用集萃
    【总结系列】互联网服务端技术体系:高性能之缓存面面观
    【总结系列】互联网服务端技术体系:高性能之并发(Java)
    【总结系列】互联网服务端技术体系:高性能之数据库索引
    【总结系列】互联网服务端技术体系:可扩展之数据分区
    一道关于二叉树的字节面试题的思考
    python基础之range()函数和random模块
    记录下第一次参加leetcode 周赛
    几种方法实现“反转字符串”
    c# 自动更新程序
  • 原文地址:https://www.cnblogs.com/m1sty/p/9107784.html
Copyright © 2011-2022 走看看