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

    课程:《程序设计与数据结构》
    班级: 1723
    姓名: 方艺雯
    学号:20172314
    实验教师:王志强
    实验日期:2018年5月16日
    必修/选修: 必修

    1、实验内容

    (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菜单,找出一项让自己感觉最好用的功能。
    (2)协同测试
    在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例。
    (3)重构
    http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA。

    (4)密码学应用
    参考 http://www.cnblogs.com/rocedu/p/6683948.html,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准

    2、实验要求

    1、提交截图,加上自己学号水印。
    2、测试成功后git add .; git commit -m "自己学号 添加内容";git push;提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。
    3、完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。
    4、提交学习成果码云链接和代表性成果截图,要有学号水印。

    3、实验过程及结果

    准备:下载安装alibaba 插件。

    实验一

    • 过程:
      1、打开 Settings ->Plugins ->Browse repositories...
      2、在搜索框输入alibaba即可看到Alibaba Java Code Guidelines插件,点击Install进行安装
      3、输入原始代码
      4、右键点击类名,再点击编码规约扫描
      5、发现问题
      6、点击Code下的Reformate Code格式化代码
    • 一般命名规则
      • 要体现各自的含义
      • 包、类、变量用名词
      • 方法名用动宾
      • 包名全部小写,如:io,awt
      • 类名第一个字母要大写,如:HelloWorldApp
      • 变量名第一个字母要小写,如:userName
      • 方法名第一个字母要小写:setName
    • 结果截图:

    实验二

    • 过程:伙伴的代码是直接复制粘贴的,没有使用克隆,编写Junit单元测试,几个测试用例是类似的,git log是第一次使用。
    • 需要测试的方法 有:ComplexAdd(),ComplexSub(),ComplexMulti(),ComplexDiv()
    • 结果截图:

    实验三

    • 过程:我使用了 toString、 Rename、Generate getter,由于没有找到组员的有问题的代码,所以没有什么错误改正。

    • 重构的目的:

      • 增加新功能;
      • 原有功能有BUG;
      • 改善原有程序的结构;
      • 优化原有系统的性能 。
    • 需要重构的地方:代码重复、方法过长、参数列过长、条件逻辑过度复杂、分支语句

    • 结果截图:


    实验四

    • 过程:学习密码算法,参考博客
    • Java安全体系结构总共分为4个部分:
      • JCA( Java Cryptography Architecture, Java加密体系结构):JCA提供基本的加密框架, 如证书、 数字签名、消息摘要和密钥对产生器。
      • JCE( Java Cryptography Extension, Java加密扩展包):JCE在JCA的基础上作了扩展, 提供了各种加密算法、 消息摘要算法和密钥管理等功能。JCE的实现主要在javax.crypto包( 及其子包) 中
      • JSSE( Java Secure Sockets Extension, Java安全套接字扩展包):JSSE提供了基于SSL( Secure Sockets Layer,安全套接字层) 的加密功能。 在网络的传输过程中, 信息会经过多个主机(很有可能其中一台就被窃听) , 最终传送给接收者, 这是不安全的。这种确保网络通信安全的服务就是由JSSE来提供的。
      • JAAS( Java Authentication and Authentication Service, Java鉴别与安全服务):JAAS提供了在Java平台上进行用户身份鉴别的功能。
    • 凯撒密码算法:将字母表中的字母移动一定位置而实现加密。
      • 具体步骤:
        (1)根据凯撒密码特性设计算法
        (2)传入需要计算的字符串
        (3)处理计算结果
    • 结果截图:







    4、实验中遇到的问题和解决过程

    • 问题一:在做实验二的时候,测试类总是出错。
    • 问题一解决:原因是在比较的时候没有加toString,必须是两个字符串型的才可以比较,改为如下就正确了。
    assertEquals(new Complex(0,4).toString(),num1.ComplexAdd(num2).toString()
    

    5、其他

    这次的实验学到了很多关于代码的规范,一些方便的用法,感觉还是很实用的。

    6、参考资料

  • 相关阅读:
    3.7日复习
    作业
    小米官网需要的数据
    EL&JSTL
    变量和运算符
    jsp
    session的应用----验证码
    restframework-总结
    Django-Rest-Framework部分源码流程分析
    Django-Rest-Framework
  • 原文地址:https://www.cnblogs.com/YiYiYi/p/9102130.html
Copyright © 2011-2022 走看看