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

本报告详细记录了《程序设计与数据结构》课程的实验过程,包括代码规范、协同测试、重构及密码学应用等内容。实验涉及IDEA工具的使用、JUnit单元测试、凯撒密码、DES和RSA算法的应用。

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

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

1.实验内容

(1)代码规范。
(2)协同测试。
(3)重构。
(4)密码学应用。

2. 实验过程及结果

前期准备:
  • 1.把结对伙伴拉入自己的项目当中。

  • 2.把结对伙伴的项目克隆在自己的idea中。

过程:
  • 1.代码规范
    • (1)安装alibaba 插件,解决代码中的规范问题。通过在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化。
      由:

1333382-20180528162324356-1164515695.png

变为:

1333382-20180528162351859-1644486223.png

代码规范问题可能包括:注释,作者,括号,命名等问题。
- (2)再研究一下Code菜单,找出一项让自己感觉最好用的功能。
Generate——Alt+Insert:可以直接重构tostring方法还要set、get、构造方法等。

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

1333382-20180528163751278-450022591.png

增加的三个JUnit单元测试用例:

1333382-20180528163813602-1874718196.png

git log的截图:

1333382-20180528163223855-1363717978.png

  • 3.完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。可以重构程序名,也可以重构变量名、方法名等。

    1333382-20180528165207033-1860690516.png
    1333382-20180528165221857-1113491652.png

  • 4.密码学应用。
    • (1)凯撒密码。
    • (2)Java对称加密-DES算法。
    • (3)Java非对称加密-RSA算法。(密钥对:公钥和私钥)
    • (4)使用密钥协定创建共享密钥。
    • (5)Java摘要算法- MD5。
      代码截图太多了,详情见

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

  • 问题1:在idea中git log不知道从哪里看。
  • 问题1解决方案:

    1333382-20180528170422113-1601675455.png
    1333382-20180528170542033-755994576.png

  • 问题2:代码规范时,加入了作者的注释却依旧有这个

    1333382-20180528170811872-251784212.png

  • 问题2解决方案:这个东西改正也并不会消失,所以不是自己没改对,而是它没更新。

其他(感悟、思考等)

  • 这次的前三个实验都蛮简单的,有难度的地方就是克隆结对伙伴项目后,会有一些问题,git push时如果不注意可能会把结对伙伴的项目弄崩。
  • 第四个实验与密码学紧密相关,代码中的许多类都没见过,在学习的时候就在不停的查API文档,慢慢的学习之后,感觉自己摸着了一点门路。不过往后的共享密钥就感觉非常的有难度,还不是很能理解。

参考资料

《Java程序设计与数据结构教程(第八版)》

转载于:https://www.cnblogs.com/yu757503836/p/9100942.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值