20175203 2018-2019 实验三 《敏捷开发与XP实践》
实验要求
- 没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程
- 完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导
- 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。
实验步骤
(一)
- 安装alibaba插件
点击file
>settings
>Plugins
然后直接搜索alibaba
并下载即可(记得下载那个写着java的)
*alibaba的使用
右键左侧项目名,并点击编码规约扫描即可
Code菜单
我觉得比较好用的是规范缩进,即ctrl alt L
可以将代码按层次缩进
对例子代码进行规范
(```)
/
- CodeStandard
- @author myd20175203
- @date 2019/4/29
*/
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());
int n = 20 ;
if(buffer.capacity()<n) {
buffer.append("1234567");
}
for(int i=0; i<buffer.length();i++) {
System.out.println(buffer.charAt(i));
}
}
}
(```)
就是按照扫描后的提示进行修改即可,有的格式错误可以通过直接点击进行更改(如大括号等)
(二)
*将自己的学习搭档加入到自己的项目中
打开码云后,点击仓库成员管理
并分享链接即可。
*添加搭档的测试代码并进行重构
重构后如下
(```)
/**
- Complex
- @author myd20175203
- @date 2019/4/29
/
public class Complex {
private double RealPart;
private double ImagePart;
public Complex() {}
public Complex(double R,double I){
setRealPart(R);
setImagePart(I);
}
public void setRealPart(double R){
RealPart=R;
}
public void setImagePart(double I){
ImagePart=I;
}
public double getRealPart(){
return RealPart;
}
public double getImagePart(){
return ImagePart;
}
Complex ComplexAdd(Complex a) {
Complex New =new Complex();
New.RealPart=this.RealPart+a.RealPart;
New.ImagePart=this.ImagePart+a.ImagePart;
return New;
}
Complex ComplexSub(Complex a){
Complex New =new Complex();
New.RealPart=this.RealPart-a.RealPart;
New.ImagePart=this.ImagePart-a.ImagePart;
return New;
}
Complex ComplexMulti(Complex a){
Complex New =new Complex();
New.RealPart=this.RealParta.RealPart-this.ImageParta.ImagePart;
New.ImagePart=this.ImageParta.RealPart+this.RealParta.ImagePart;
return New;
}
Complex ComplexDiv(Complex a){
double sum=a.ImageParta.ImagePart+a.RealPart*a.RealPart;
Complex b = new Complex(a.getRealPart()/sum, -a.getImagePart()/sum);
return ComplexMulti(b);
}
@Override
public String toString() {
if(ImagePart>0.0) {
return RealPart+"+"+ImagePart+"i";
} else if(ImagePart==0.0) {
return RealPart+" ";
} else {
return RealPart+""+ImagePart+"i";
}
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Complex complex = (Complex) o;
return Double.compare(complex.getRealPart(), getRealPart()) == 0 && Double.compare(complex.getImagePart(), getImagePart()) == 0;
}
}
(```)
密码学应用
本次实验我选取的是凯撒密码的加密算法,代码如下
() import java.util.Scanner; public class Kaisa { public static void main(String[] args) { System.out.print("请输入明文:"); Scanner a=new Scanner(System.in); String b=a.nextLine(); System.out.print("请输入密钥:"); Scanner c=new Scanner(System.in); int key=c.nextInt(); Encrypt(b, key); } public static void Encrypt(String str,int k){ String s=""; for (int i = 0; i < str.length(); i++) { char c=str.charAt(i); if(c>='a'&&c<='z'){ c+=k%26; if(c<'a') c+=26; if(c>'z') c-=26; } else if(c>='A'&&c<='Z'){ c+=k%26; if(c<'A') c+=26; if(c>'Z') c-=26; } s+=c; } System.out.println(str+" 加密为: "+s); } } (
)
即将明文中的所有字母都在字母表上向后按照密钥的值进行偏移后替换成密文