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.RealPart*a.RealPart-this.ImagePart*a.ImagePart; New.ImagePart=this.ImagePart*a.RealPart+this.RealPart*a.ImagePart; return New; } Complex ComplexDiv(Complex a){ double sum=a.ImagePart*a.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); } } ()

即将明文中的所有字母都在字母表上向后按照密钥的值进行偏移后替换成密文

最新文章

  1. 【Hibernate框架】对象的三种持久化状态
  2. 2014年百度之星程序设计大赛 - 初赛(第二轮)JZP Set
  3. maven - Eclipse构建maven项目
  4. 抛弃NVelocity,来玩玩Razor
  5. js-设置焦点
  6. JAVA学习博客---2015.5
  7. 每天一个linux命令(50):telnet命令
  8. metronic后台模板学习 -- 所用外部插件列表
  9. android 通知
  10. DOM对象和JQuery对象的区别
  11. Qt 学习之路:模型-视图高级技术
  12. python Unable to find vcvarsall.bat 错误
  13. Dylans loves numbers
  14. @Data注解使用后在eclipse中get/set报错解决方法
  15. layui 将后台传过来的值等价替换
  16. php.ini文件修改完重启
  17. 安装.Net Standard 2.0, Impressive
  18. Spring钩子方法和钩子接口的使用详解
  19. Django的auto_now=True没有自动更新
  20. KMP 算法详解

热门文章

  1. SqlServer 字段类型详解
  2. 史上最全 ——LINQ to SQL语句
  3. 机器学习实战笔记-11-Apriori与FP-Growth算法
  4. Git005--工作区和暂存区
  5. EasyUI日期控件获值和赋值
  6. HTML设置&lt;table&gt;的&lt;td&gt;横跨3列
  7. mysql 5.7 创建函数报错,This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creat
  8. org.apache.hadoop.hive.ql.exec.DDLTask. MetaException错误问题
  9. Android应用程序开发之图片操作(二)——工程图片资源的加载及OOM的处理
  10. .net 异步