20172316 2017-2018-2 《程序设计与数据结构》 实验三报告
Posted zhaoqianchen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20172316 2017-2018-2 《程序设计与数据结构》 实验三报告相关的知识,希望对你有一定的参考价值。
课程:《程序设计与数据结构》
班级: 1723
姓名: 赵乾宸
学号:20172316
实验教师:王志强
必修/选修:必修
1.实验内容
敏捷开发与XP实践
- (1)代码规范
- (2)协同测试
- (3)重构
- (4)密码学应用
2. 实验过程及结果
(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));
}
}
首先安装alibaba 插件,实现代码重新格式化
得到
/**
* CodeStandard class
*
* @author 赵乾宸
* @date 2018/05/16
*/
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
菜单,找出感觉最好的功能,我最喜爱的是Move Statement Down
,Move Statement Up
这两个可以将光标所在的statement
(语句块?)向上或向下挪动。
-->蓝墨云地址<--
(2)协同测试
取用20172329王文彬同学的代码Mycomplex.java
进行测试,测试完毕后git log如下:
import org.junit.Test;
import static org.junit.Assert.*;
public class MyComplexTest {
static MyComplex com1 = new MyComplex(1, 1);
static MyComplex com2 = new MyComplex(1, 1);
static MyComplex com3 = new MyComplex(2, 2);
static MyComplex com4 = new MyComplex(0 ,0);
static MyComplex com5 = new MyComplex(1, 0);
static MyComplex com6 = new MyComplex(0, 2);
@Test
public void equals() throws Exception{
assertEquals(com1.equals(com2), true);
}
@Test
public void complexAdd() throws Exception{
assertEquals(com1.ComplexAdd(com2).toString(), com3.toString());
}
@Test
public void complexSub() throws Exception{
assertEquals(com1.ComplexSub(com2).toString(), com4.toString());
}
@Test
public void complexMulti() throws Exception{
assertEquals(com1.ComplexMulti(com2).toString(), com6.toString());
}
@Test
public void complexDiv() throws Exception{
assertEquals(com1.ComplexDiv(com2).toString(), com5.toString());
}
}
码云地址为https://gitee.com/CS-IMIS-23/20172327wwb/blob/master/Test/exp/MyComplexTest.java
-->蓝墨云地址<--
(3)重构
对同学代码进行三项重构,
第一个:pp23.java,对其求商的变量名进行重构。
第二个:homework2.java, 对其文件名进行重构。
第三个:Cow.java,将其中几个父类封装过的变量引用重构为getter。
防止出现意外错误,结果没有上传至王文彬码云,但蓝墨云有重构后详细截图
-->蓝墨云地址<--
(4)密码学应用
参考http://www.cnblogs.com/rocedu/p/6683948.html以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。
凯撒密码
成果:
Java对称加密-DES算法
成果:
Java非对称加密-RSA算法
成果:
使用密钥协定创建共享密钥
成果:
Java摘要算法- MD5
成果:
-->蓝墨云地址<--
3. 实验过程中遇到的问题和解决过程
- 问题1:代码不符合格式(alibaba的),特别是创建者信息部分,改了几次不行
- 问题1解决方案:一直改动,其中还尝试了教科书上的格式
//*******************************************************************
// CodeStandard.java Author: ZhaoQianchen
//
// A standard of code.
//*******************************************************************
没有效果,查看了Inspection Result
信息之后,发现alibaba代码规范的这一部分的格式十分严格必须一模一样,像这样:
/**
* CodeStandard class
*
* @author 赵乾宸
* @date 2018/05/16
*/
- 问题2:从同学码云上
clone
下来的程序修改后push
不上 - 问题2解决方案:根据IDEA的提示,进行
merge
(合并),虽然不太懂,之前一直以为合并会发生文件还原的现象,导致自己的测试类被删除,一直不敢点击。不过点完之后还是没什么问题,成功上传。
------
其他(感悟、思考等)
参考资料
《Java程序设计与数据结构教程(第二版)》
《Java程序设计与数据结构教程(第二版)》学习指导
《Intellj IDEA 简易教程》
《实验三 敏捷开发与XP实践》
以上是关于20172316 2017-2018-2 《程序设计与数据结构》 实验三报告的主要内容,如果未能解决你的问题,请参考以下文章
2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段
2018-2019-1 20172316 《程序设计与数据结构》第三周学习总结
2018-2019-1 20172316《程序设计与数据结构》第八周学习总结