20155229实验三 《Java面向对象程序设计实验三 敏捷开发与XP实践 》实验报告
实验题目
1.在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。
2.下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例
3.完成重构内容的练习,下载搭档的代码,至少进行三项重构
4.以结对的方式完成Java密码学相关内容的学习
实验步骤
(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));
}
}
在IDEA中使用工具Code->Reformate Code
将上面的代码格式化后,得到的结果为:
然后再IDEA中,我还学到Code->Move Line Up
和Code -> Move Line Down
能够将代码往上/下移动。
(2)添加单元测试用例
- 搭档的Complex代码为:
/*** Created by Administrator on 2017/4/21.*/
public class Complex {// 定义属性并生成getter,setterprivate double RealPart;private double ImagePart;public void setterRealPart(double realPart) {this.RealPart = realPart;}public void setterImagePart(double imagePart){this.ImagePart = imagePart;}public double getterRealPart(){return RealPart;}public double getterImagePart(){return ImagePart;}// 定义构造函数public Complex(){}public Complex(double R,double I){this.RealPart = R;this.ImagePart = I;}//Override Objectpublic boolean equals(Object obj){if(this == obj){return true;}if(!(obj instanceof Complex)){return false;}Complex complex = (Complex) obj;if(getterRealPart()!=complex.getterRealPart()){return false;}if(getterImagePart()!=(complex.getterImagePart())){return false;}return true;}public String toString(){String s = new String(Double.toString(getterRealPart()));// s.concat(Double.toString(getterRealPart()));if(getterImagePart()>0)s = s + '+';s = s + Double.toString(getterImagePart());// s.concat(Double.toString(getterImagePart()));s = s + 'i';return s;}// 定义公有方法:加减乘除Complex ComplexAdd(Complex a){Complex b = new Complex();b.ImagePart = this.ImagePart + a.ImagePart;b.RealPart = this.RealPart + a.RealPart;return b;}Complex ComplexSub(Complex a){Complex b = new Complex();b.ImagePart = this.ImagePart - a.ImagePart;b.RealPart = this.RealPart - a.RealPart;return b;}Complex ComplexMulti(Complex a){Complex b = new Complex();b.RealPart = this.RealPart * a.RealPart - this.ImagePart * a.ImagePart;b.ImagePart = this.RealPart * a.ImagePart + this.ImagePart * a.RealPart;return b;}Complex ComplexDiv(Complex a) {Complex b = new Complex();b.RealPart = (this.RealPart * a.RealPart + this.ImagePart * a.ImagePart)/(a.RealPart*a.RealPart+a.ImagePart*a.ImagePart);b.ImagePart = (this.ImagePart * a.RealPart - this.RealPart * a.ImagePart)/(a.RealPart*a.RealPart+a.ImagePart*a.ImagePart);return b;}
}
- ComplexTest代码为:
- 添加单元测试用例后为:
- git log的截图:
(3)重构
重构就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。
重构目标
- 改进软件设计使软件更容易被理解
- 帮你找到bug
- 提高软件的开发速度
重构时机
- 在添加新功能时进行重构。
- 在修改bug时进行重构。
- 在代码复审时进行重构。
- 到了最后的交付期限,不进行重构
下载的搭档的代码为:
重构后的代码为:
(4)结对学习java密码学内容
上周学习了java关于密码学的内容,在此基础上本周和搭档结对继续学习
首先我们学习了娄老师给的凯撒密码的代码:
public static void main(String args[]) throws Exception{
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);if(c>='a' && c<='z') // 是小写字母{ c+=key%26; //移动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);}
在此基础上,我们对该代码进行了改编,最后得到的代码为:
实验心得与体会
在本次实验中,首先了解了IDEA对代码特别方便的运用,这与虚拟机中的vim的命令是相似的;其次git colne了搭档的代码,在这过程中,最难完成的是,git后IDEA会出现各种错,且不太好解决,但实验二添加单元测试用例这是对上周学习的内容的复习。实验三让我了解了重构,重构在编写代码时能够使我们的代码更清晰,更简便。最后结对学习java密码学,这让我学到了结对学习的重要性,因为两个人会有不同的思路,这样能够筛选出好的思路进行编写代码。
我的PSP时间
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 30分钟 | 18.75 % |
设计 | 30分钟 | 18.75% |
代码实现 | 60分钟 | 37.5% |
测试 | 30分钟 | 18.75% |
分析总结 | 10分钟 | 6.25% |
参考资料
- java密码学
- 实验三 敏捷开发与XP实践
转载于:https://www.cnblogs.com/fyhtvxq/p/6822219.html
20155229实验三 《Java面向对象程序设计实验三 敏捷开发与XP实践 》实验报告相关推荐
- 20155220 实验三 敏捷开发与XP实践 实验报告
20155220 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- 20155226 实验三 敏捷开发与XP实践 实验报告
20155226 实验三 敏捷开发与XP实践 实验报告 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim ...
- 20175212童皓桢 实验三敏捷开发与XP实践实验报告
20175212童皓桢 实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 一.Code菜单功能的研究 Move Line/statement Down/Up:将某 ...
- 20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告
20175312 2018-2019-2 实验三 敏捷开发与XP实践 实验报告 码云博客链接 https://gitee.com/dky20175312/dky_20175312_warehouse_ ...
- 实验三 敏捷开发与XP实践 实验报告 20135232王玥
一.实验内容 1. XP基础 2. XP核心实践 3. 相关工具 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2. ...
- java for xp_20155328 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
一.编码标准 编程标准包含:具有说明性的名字.清晰的表达式.直截了当的控制流.可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性. 下面是没有最基本的缩进的一个程序: publi ...
- 20155328 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
一.编码标准 编程标准包含:具有说明性的名字.清晰的表达式.直截了当的控制流.可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性. 下面是没有最基本的缩进的一个程序: publi ...
- 20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践
20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实践 20165205 2017-2018-2 <Java程序设计>实验三 敏捷开发与XP实 ...
- 2018-2019-2 20175227张雪莹《Java程序设计》实验三 《敏捷开发与XP实践》
2018-2019-2 20175227张雪莹<Java程序设计> 实验三 <敏捷开发与XP实践> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号: ...
- 20155314 2016-2017-2 《Java程序设计》实验三 敏捷开发与XP实践
20155314 2016-2017-2 <Java程序设计>实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验知识点总结 (一)敏捷开发与XP 软件工程:把系统 ...
最新文章
- 算法导论——lec 10 图的基本算法及应用
- 洛谷P1073最优贸易——双向取值
- d+java.ext.dirs_Java-JDK9-Djava.ext.dirs is not supported
- java 日期的工具类_java 日期时间工具类
- POJ 1469 匈牙利算法
- ios中的视频采集及参数设置和相机操作
- mysql as不能用吗,MySQL SUM不能与AS一起工作
- JS获取屏幕宽度高度
- bat脚本 - 通过bat脚本一键启动[开机启动]日常应用
- 【Vue插件】一款很好用的vue日历插件——vue-sweet-calendar
- win7如何调整计算机c盘,win7系统让c盘和d盘合并的两种方法
- 殿影酒店即将开业,推出电影和酒店的跨界创新模式
- DataFrame中实现int、float存储形式列之间的除法运算
- git命令出现fatal: Unable to create ‘xxx/.git/index:File exists
- 帝国竞争算法(ICA)详解与python 实现
- 世界女性科技群落(四):技术与流行文化顶格发展,日韩女性的科技暗面
- AI 人工智能之概率论基础(1)
- 023 《计量经济学》学习笔记
- autojs-webview上传文件
- spire doc for java 设置word中图片大小
热门文章
- Operating System-进程/线程内部通信-信号量和PV操作
- 关于Window的快捷方式,图标缓存的清理
- MapReduce TopK统计加排序
- node-OSDomainNetPath
- hdu4829 带权并查集(题目不错)
- POJ2186 强联通
- system , DOS 命令
- 【Windows 逆向】CE 地址遍历工具 ( CE 结构剖析工具 | 遍历查找后坐力数据 | 尝试修改后坐力数据 )
- 【MATLAB】矩阵操作 ( 矩阵下标 | 矩阵下标排列规则 )
- 【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 最简单用法 | 一行代码搞定权限申请 | 推荐用法 )