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、参考资料

猜你喜欢

转载自www.cnblogs.com/YiYiYi/p/9102130.html