• 2018-2019-20175302实验三《敏捷开发与XP实践》实验报告


    2018-2019-20175302学号实验三《敏捷开发与XP实践》实验报告

    一、实验步骤及内容

    敏捷开发与XP实践-1

    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));
    }
    }
    

    实验步骤:

    在IDEA中打开Settings->Plugins->Marketplace,在其搜索框中输入alibaba并回车,第一个搜索选项是Alibaba Java Code Guidelines插件,点击Install进行安装,然后重启IDE生效

    重启后在项目名称上单击右键,在弹出菜单上选择编码规约扫描

    有如下提示:(中间调了个背景色)

    按照提示修改代码即可。

    经实践,Code菜单中我认为最实用的功能为Surround With(生成外结构)与Unwarp/Remove(删除外结构),方便调整代码结构。

    敏捷开发与XP实践-2

    在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容"git push;

    提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。

    实验步骤:

    首先添加仓库成员。

    然后下载搭档实验二代码,加入JUnit单元测试。

    然后git push就可以用git log看到自己的和搭档的操作了。

    敏捷开发与XP实践-3

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

    完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。

    实验步骤:

    首先下载搭档的代码,然后选择编码规约扫描,查看应当修改的部分

    根据提示进行代码修改,需要重命名的变量或类名可以用右击->Refactor->Rename进行重命名

    敏捷开发与XP实践-4

    实验目的与要求:

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

    实验步骤:

    获取密钥生成器KeyGenerator kg=KeyGenerator.getInstance("DESede");
    Java中KeyGenerator类中提供了创建对称密钥的方法。KeyGenerator类预定义了一个静态方法getInstance( ),方法getInstance( )的参数为字符串类型,指定加密算法的名称。
    初始化密钥生成器kg.init(168);该步骤一般指定密钥的长度。我们写的是“DESede”,则可以是112或168位,其中112位有效。
    生成密钥SecretKey k=kg.generateKey( );密钥可用于以后的加密和解密。
    通过对象序列化方式将密钥保存在文件中

    FileOutputStream f=new FileOutputStream("key1.dat");
    ObjectOutputStream b=new ObjectOutputStream(f);
    b.writeObject(k);
    

    ObjectOutputStream类中提供的writeObject方法可以将对象序列化,以流的方式进行处理。这里将文件输出流作为参数传递给ObjectOutputStream类的构造器,这样创建好的密钥将保存在文件key1.data中。
    从文件中获取密钥

    FileInputStream f=new FileInputStream("key1.dat");
    ObjectInputStream b=new ObjectInputStream(f);
    Key k=(Key)b.readObject( );
    

    创建密码器

    Cipher cp=Cipher.getInstance("DESede");
    

    KeyGenerCipher类是一个工厂类,它不是通过new方法创建对象,而是通过其中预定义的一个静态方法getInstance( )获取Cipher对象。getInstance( )方法的参数是一个字符串,该字符串给出Cipher对象应该执行哪些操作。
    初始化密码器
    cp.init(Cipher.ENCRYPT_MODE, k);该方法包括两个参数,第一个参数指定密码器准备进行加密还是解密,若传入Cipher.ENCRYPT_MODE则进入加密模式。第二个参数则传入加密或解密所使用的密钥,即第1步从文件中读取的密钥对象k。
    获取等待加密的明文

    String s="Hello World!";
    byte ptext[]=s.getBytes("UTF8");
    执行加密
    byte ctext[]=cp.doFinal(ptext);
    处理加密结果
    FileOutputStream f2=new FileOutputStream("SEnc.dat");
    f2.write(ctext);
    

    这里将加密结果保存在文件Senc.dat中。

  • 相关阅读:
    数据库流行度9月排行榜:Oracle 的老骥伏枥和 MongoDB 逆风飞扬
    ssh 执行单引号和双引号问题
    【Netapp】在模拟器中使用disk removeowner报错
    ES6的let和const命令(一)
    ES6的let和const命令(一)
    ES6的let和const命令(一)
    ES6的let和const命令(一)
    Android开发之《异常处理》
    Android开发之《异常处理》
    Android开发之《异常处理》
  • 原文地址:https://www.cnblogs.com/Jerrold-Y/p/10816282.html
Copyright © 2020-2023  润新知