2018-2019-2-20175327 蜂凯南 实验三 《敏捷开发与XP实践》实验报告

实验三 Java面向对象程序设计

一.实验内容:

  • 安装alibaba 插件,解决代码中的规范问题。在IDEA中使用工具(Code->Reformate Code)格式化代码,研究一下Code菜单,比较功能。

  • 在码云上把自己的学习搭档加入自己的项目中,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试并上传代码至码云

  • 下载搭档的代码,完成重构内容的练习。

  • 结合重构,git,代码标准,以结对的方式完成Java密码学相关内容的学习。

二.实验步骤:

(一)安装alibaba 插件,解决代码中的规范问题。在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。

  • 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装alibaba 插件,解决代码中的规范问题。
  • 打开preferences ->Plugins在搜索框输入alibaba即可看到Alibaba Java Code Guidelines插件,点击Install进行安装,然后重启IDE生效:

  • 使用比较简单:在项目名称上单击右键,在弹出菜单上选择编码规约扫描:

  • 在IDEA中使用工具(Code->Reformate Code)格式化代码,并学习Code菜单的功能IDEA中的Code菜单如下:
1.Override Methods(Ctrl+O):重载基本类的方法;
2.Implement Methods(Ctrl+I):完成当前类 implements 的(或者抽象基本类的)接口的方法;
3.Generate(Alt+Insert):创建类里面任何字段的 getter 与 setter 方法;
4.Surround With(Ctrl+Alt+T):使用if-else、try-catch、do-while等包装代码段;
5.Insert Live Template(Ctrl-J):执行一些记不起来的 Live Template 缩写;
6.Comment with Line Comment(Ctrl+斜杠)/Comment with Block Comment(Ctrl+Shift+斜杠):用 Ctrl+斜杠 与 Ctrl-Shift-/ 来注释(或反注释)代码行与代码块。 用Ctrl+斜杠单行注释标记(“ //… ”)来注释(或反注释)当前行或者选择地代码块。而 Ctrl+Shift+斜杠则可以用块注释标记(“ /* */”)把所选块包围起来。要反注释一个代码块就在块中任何一个地方按 Ctrl+Shift+斜杠 即可;
7.Reformat Code(Ctrl+Alt+L):将代码按标准格式缩进;
8.show reformat file dialog:按照格式自动对齐
9.Optimize imports:可以优化imports,去除不必要的imports
10.Move Line/statement Down/Up:将某行、表达式向下、向上移动一行

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

  • 将搭档拉入自己码云项目

  • 下载搭档代码
public class Complex {double RealPart=0;double ImagePart=0;public Complex(){}public Complex(double RealPart,double ImagePart){this.RealPart=RealPart;this.ImagePart=ImagePart;}public double getRealPart(){return RealPart;}public double getImagePart(){return ImagePart;}public String toString(){String s = "";double r=RealPart;double i=ImagePart;if(r==0&&i==0){s="0";}else if(r==0&&i!=0){s=i+"i";}else if(r!=0&&i==0){s=r+"";}else if(r!=0&&i<0){s=r+""+i+"i";}else{s=r+"+"+i+"i";}return s;}public boolean equals(Object obj){if(this==obj){return true;}else return false;}public Complex ComplexAdd(Complex a){return new Complex(RealPart+a.getRealPart(),ImagePart+a.getImagePart());}public Complex ComplexSub(Complex a){return new Complex(RealPart-a.getRealPart(),ImagePart-a.getImagePart());}public Complex ComplexMulti(Complex a){double r=RealPart*a.getRealPart()-ImagePart*a.getImagePart();double i =ImagePart*a.getRealPart()+RealPart*a.getImagePart();return new Complex(r,i);}public Complex ComplexDiv(Complex a){double r=(RealPart * a.ImagePart + ImagePart * a.RealPart) / (a.ImagePart * a.ImagePart + a.RealPart * a.RealPart);double i=(ImagePart * a.ImagePart + RealPart * a.RealPart) / (a.RealPart * a.RealPart + a.RealPart * a.RealPart);return new Complex(r,i)}
}
  • 对搭档代码进行测试
mport static org.junit.Assert.*;public class ComplexTest {@org.junit.Testpublic void getRealPart() {}@org.junit.Testpublic void getImagePart() {}@org.junit.Testpublic void complexAdd() {}@org.junit.Testpublic void complexSub() {}
}

测试结果:

  • 测试成功后git add .; git commit -m "自己学号 添加内容";git push;提交搭档项目git log的截图,包含上面git commit的信息

克隆搭档链接:

上传代码:

git log结果:

(三)完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。

  • 添加创建者信息
  • 给覆写方法加上@Override注解
  • 方法名,参数名,成员变量,局部变量都统一使用lowerCamelCase,遵从驼峰形式。

(四)以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。提交学习成果码云链接和代表性成果截图,要有学号水印。

通过学习Java密码学算法,了解了对称及非对称算法,以及如何进行秘钥的共享的知识。
(1)根据凯撒密码特性设计算法
(2)传入需要计算的字符串
(3)处理计算结果

  • 产品代码:
    Caesaar.java
public class Caesar {public static void main(String[] args) throws EadException {String s = args[0];int key = Integer.parseInt(args[1]);String es = "";for (int i = 0; i < (s.length()); i++) {char c = s.charAt(i);//自定义异常类try {boolean exist = ((c > 64) && (c < 91)) || ((c > 96) && (c < 123) || c == 32 || c == 33);if (exist == false) {throw new EadException(s);}} catch (EadException e) {System.out.println(e.warnMess());}//小写字母if (c >= 'a' && c <= 'z') {//移动key%26位c += key % 26;//向左超界if (c < 'a') {c += 26;}//向右超界if (c > 'z') {c -= 26;}}//大写字母else if (c >= 'A' && c <= 'Z') {c += key % 26;if (c < 'A') {c += 26;}if (c > 'Z') {c -= 26;}}es += c;}System.out.println(es);}
}

EadException.java

public class EadException extends Exception{String message;public EadException(String sourceString){message = "The input is not correct";}public String warnMess(){return message;}
}
  • 重构截图

三、遇到问题及解决方案

  • 问题1:在上传代码时出现如下问题:

  • 问题一解决方法:找准好友文件来创建代码之后上传即可

四、实验体会

本次实验主要学会了如何在idea中规范代码,如何邀请搭档加入自己的项目,还明白了如何进行内容的重构。在邀请搭档加入自己项目的过程中,我们在互相加入各自2018java的项目的基础上重新建了一个项目,这样方便共同传送文件,避免误删等偶然性失误。与此同时,通过学习Java密码学算法的博客,了解了对称及非对称密码算法(及DES和RSA算法),以及如何进行秘钥的共享的知识。

转载于:https://www.cnblogs.com/hollfull/p/10801281.html

2018-2019-2-20175327 蜂凯南 实验三 《敏捷开发与XP实践》实验报告相关推荐

  1. 20175212童皓桢 实验三敏捷开发与XP实践实验报告

    20175212童皓桢 实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 一.Code菜单功能的研究 Move Line/statement Down/Up:将某 ...

  2. 20155220 实验三 敏捷开发与XP实践 实验报告

    20155220 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  3. 20155226 实验三 敏捷开发与XP实践 实验报告

    20155226 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...

  4. 20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告

    20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告 码云博客链接 https://gitee.com/dky20175312/dky_20175312_warehouse_ ...

  5. 实验三 敏捷开发与XP实践 实验报告 20135232王玥

    一.实验内容 1. XP基础 2. XP核心实践 3. 相关工具 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2. ...

  6. java for xp_20155328 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    一.编码标准 编程标准包含:具有说明性的名字.清晰的表达式.直截了当的控制流.可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性. 下面是没有最基本的缩进的一个程序: publi ...

  7. 20155328 《Java程序设计》实验三 敏捷开发与XP实践 实验报告

    一.编码标准 编程标准包含:具有说明性的名字.清晰的表达式.直截了当的控制流.可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性. 下面是没有最基本的缩进的一个程序: publi ...

  8. 20155231 实验三 敏捷开发与XP实践

    20155231 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器&g ...

  9. 20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践

    20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实践 20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实 ...

  10. 20155314 2016-2017-2 《Java程序设计》实验三 敏捷开发与XP实践

    20155314 2016-2017-2 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验知识点总结 (一)敏捷开发与XP 软件工程:把系统 ...

最新文章

  1. gitlab使用_如何在正确使用 Docker 搭建 GitLab
  2. 众多新点子推动比特币现金BCH普及
  3. python图片目标检测_图像中的目标检测(HOG)
  4. 《Java8实战》笔记(11):CompletableFuture-组合式异步编程
  5. mysql找不到performance_Mysql安装完毕运行时没有mysql和performance_schema数据库_MySQL
  6. 1 sqlserver修改表结构
  7. 设计模式之GOF23装饰模式
  8. Android 实现全屏、无标题栏
  9. DAY8-打卡第八天-2018-1-18
  10. STM32控制0.96寸OLED(4针/4Pin)汉字以及数字,英文显示
  11. 中文版扩散模型课程:第一单元
  12. day001:数据结构和算法-时间频度和时间复杂度
  13. Qmail系统完整篇
  14. html5 点灯游戏,夜点灯剧情讲了什么 夜点灯游戏剧情背景介绍-游侠网
  15. “但是……”萧雨萱还想说什么,却立刻被季枫给打断了
  16. 最大k乘积问题---动态规划实验1
  17. 雷士照明股权连环局(第一、二、三季完整版)
  18. python之json数据格式化输出方法
  19. Process finished with exit code -1073740940 (0xC0000374)
  20. java程序升级的顺序是什么,关于JavaSE程序的小总结(不分先后顺序 后续继续补充)...

热门文章

  1. 富满电子鸿蒙系统,东吴证券--电子行业周报:HarmonyOS2.0助力AIOT生态体系发展
  2. 三网手机实名制认证接口是怎么验证身份的?如何选择?
  3. MYSQL的操作语句(二)
  4. 通过经纬度坐标在arcgis中定位点的一般方式
  5. 女巫 3D角色 | 国外3D设计师DurontoRakib
  6. IT 界那些朗朗上口的“名言”
  7. 产品经理必备7大文档
  8. Redis面试题(2021最新版)
  9. 验证码识别学习第一天------(验证码的生成)
  10. 爬虫之 ---- 无界面浏览器