20175314 实验三 敏捷开发与XP实践
20175314 实验二 Java面向对象程序设计
一、实验报告封面
课程:Java程序设计 班级:1753班 姓名:薛勐 学号:20175314
指导教师:娄嘉鹏 实验日期:2019年5月3日
实验时间:15:35 - 17:15 实验序号:三
实验名称: 敏捷开发与XP实践
实验要求:
1、完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题以及分析。
2、实验报告中统计自己的PSP(Personal Software Process)时间;
3、掌握使用IDEA完成基础编程与程序调试的能力。
二、实验内容
- XP基础
- XP核心实践
- 相关工具
三、实验步骤
(一)代码格式化
创建“175314.exp3”项目,在该项目下创建CodeStandard.java
,并输入代码:
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));
}
}
打开Settings
->Plugins
->Browse repositories
,在搜索框输入alibaba
即可看到Alibaba Java Code Guidelines
插件,点击Install
进行安装
安装后右键点击类名,再点击“编码规约扫描”
- 发现代码中不规范的地方后进行纠正:
打开Code
->Reformate Code
,格式化代码:
我认为最好用的工具是Reformate Code
,可以快速规范代码格式,方便观察及编写,还有就是Override Methods
,提供了Java.lang
包中的一些类的方法重写
(二)邀请搭档加入码云项目,对搭档的代码进行Junit测试
在我的码云中创建Teamwork
项目,邀请自己的搭档20175316盛茂淞成为“开发者”
引入搭档在实验二中的Complex代码,加入多个Junit测试用例并编译:
搭档的 Complex.java:
public class Complex {
double R;
double I;
Complex(double R, double I) {
this.R = R;
this.I = I;
}
public static double getRealPart(double R) {
return R;
}
public static double getImagePart(double I) {
return I;
}
public Complex ComplexAdd(Complex c) {
return new Complex(R + c.R, I + c.I);
}
public Complex ComplexSub(Complex c) {
return new Complex(R - c.R, I - c.I);
}
public Complex ComplexMulti(Complex c) {
return new Complex(R * c.R - I * c.I, R * c.I + I * c.R);
}
public Complex ComplexDiv(Complex c) {
return new Complex((R * c.I + I * c.R) / (c.I * c.I + c.R * c.R), (I * c.I + R * c.R) / (c.I * c.I + c.R * c.R));
}
public String toString() {
String str = "";
if (I > 0)
str = R + "+" + I + "i";
if (I == 0)
str = R+"";
if (I < 0)
str = R + "" + I + "i";
return str;
}
public boolean equals(Object obj){
if (this == obj)
return true;
if(obj==null)
return false;
if(obj instanceof Complex){
Complex p = (Complex) obj;
if(p.R==this.R &&p.I==this.I )
return true;
}
return false;
}
}
ComplexTest:
出现“绿条”,通过测试
在命令行中使用git语句将代码传到我和搭档新建的共同项目Teamwork,然后输入git log并截图:
(三)重构的练习
下载一个搭档的代码,我选择了MyUtil.java:
代码中存在的问题与分析
- 问题:根据截图中的结果分析,没有考虑分数不能低于0分而且分数可以等于100分
根据以上问题,对代码进行了如下重构
else if (grade < 100)
return "优秀";
- 修改为:
else if (grade <= 100)
return "优秀";
- 添加:
if ((grade < 0))
return "错误";
对修改的代码进行Junit测试,出现“绿条”,结果正确
(四)Java密码学算法的学习
编写一个实现MD5加密的程序:
import javax.swing.*;
import java.io.Console;
import java.security.*;
import java.util.Scanner;
public class MD5{
public static void main(String args[ ]) throws Exception{
System.out.println("请输入密码");
Scanner scanner = new Scanner(System.in);
String pass = scanner.nextLine();
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(pass.getBytes());
byte[] hash = md5.digest();
pass = "";
for (int i = 0; i < hash.length; i++) {
pass += Integer.toHexString(hash[i] & 0xff);
}
System.out.print("加密结果为"+pass);
}
}
运行MD5.java,输入abc,得到如下结果:
阅读并运行DES算法程序并且运行,得到如下结果:
阅读并运行RSA算法程序并且运行,得到如下结果:
四、遇到的问题
- (MD5.java)Java(pass方法)中只有按值传递,没有按引用传递:
值传递:传递的是存储单元中的内容,而非地址或者引用。
五、感想与收获
这次实验对于我来说依然不轻松,不过学到的也是很多的,特别是再一次更深入地了解了Java里面强大的关于密码的功能(之前在Example8_8也有接触过),Java可以很容易地实现很多密码算法,十分方便,这与我们的信息安全专业紧密地连接到了一起。
六、码云链接
七、Personal Software Process时间
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 40 | 13.3% |
设计 | 60 | 20% |
代码实现 | 120 | 40% |
测试 | 40 | 13.3% |
分析总结 | 40 | 13.4% |
八、参考资料
20175314 实验三 敏捷开发与XP实践的更多相关文章
- 20145213《Java程序设计》实验三敏捷开发与XP实践
20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...
- 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...
- JAVA课程实验报告 实验三 敏捷开发与XP实践
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:韩玉琪 学号:20135317 成绩: 指导教师:娄嘉 ...
- 20145225《Java程序设计》 实验三 "敏捷开发与XP实践"
20145225<Java程序设计> 实验三 "敏捷开发与XP实践" 实验报告 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上 ...
- 20145215实验三 敏捷开发与XP实践
20145215实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软 ...
- 20145325张梓靖 实验三 "敏捷开发与XP实践"
20145325张梓靖 实验三 "敏捷开发与XP实践" 程序设计过程 实验内容 使用 git 上传代码 git上传中遇到的问题 使用 git 相互更改代码 实现代码的重构 git ...
- 20162311 实验三 敏捷开发与XP实践 实验报告
20162311 实验三 敏捷开发与XP实践 实验报告 实验内容 一.研究学习IDEA中的Code菜单 使用Code ->Reformate Code功能将以下代码格式化 public clas ...
- 2018-2019-20175205 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告
2018-2019-20175205 实验三敏捷开发与XP实践<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...
- #实验三 敏捷开发与XP实践---实验报告
一.实验三 敏捷开发与XP实践-1 1.实验要求 -实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成I ...
随机推荐
- MySql 的SQL执行计划查看,判断是否走索引
在select窗口中,执行以下语句: set profiling =1; -- 打开profile分析工具show variables like '%profil%'; -- 查看是否生效show p ...
- spring声明式事务 同一类内方法调用事务失效(转)
原文 https://blog.csdn.net/jiesa/article/details/53438342 [问题] Spring的声明式事务,我想就不用多介绍了吧,一句话“自从用了Spring ...
- Webpack 学习总结
1.Webpack的特性 webpack 模块打包机,分析你的项目结构,找到JavaScript模块以及其他一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),将其打包为合适的格式以 ...
- Qt之QTreeWidget入门
QTreeWidget的一些基本操作 1.insertTopLevelItems,insertTopLevelItem用来添加顶层的item QTreeWidget *treeWidget = new ...
- 关于mysql文件导入提示“Variable @OLD_CHARACTER_SET_CLIENT can't be set to the value of @@CHARACTER_SET_CLIENT”问题分析
今天用myssqldump导出数据,然后再导入另外mysql数据库时,提示Variable @OLD_CHARACTER_SET_CLIENT can't be set to the value of ...
- java构建工具——ant使用
Ant是跨平台的构建工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.安装与部署 1.1 下载 下载地址:https: ...
- Linux中常用目录作用
Linux一般相应的文件都会会放在相应的目录下.这样更有利于文件的查找. 1.可以在家目录root或home,以及temp目录下随便放东西. 2.根目录下的bin和sbin,usr目录下的bin和sb ...
- C#将unix时间戳转换成.net的DateTime类型的代码
下面的内容是关于C#将unix时间戳转换成.net的DateTime类型的内容. DateTime epoch = new DateTime(1970,1,1,0,0,0,0, DateTimeKin ...
- xshell使用密钥登陆linux
一.环境CentOS 7.4xshell 6 二.介绍远程ssh连接服务器 默认是用的密码验证的方式,而且还是root账号,这样的验证方式会有安全隐患,容易被人暴力破解root密码.如果改成用密钥登陆 ...
- 影响solr性能的一些因素(附使用经验)
Solr本身的性能不错,但是在使用过程中,还是会遇到一些使用错误,或是没考虑到的地方:在出现瓶颈时,可以首先考虑哪些点呢?下面就来看一下Solr官方的总结,个人觉得总结的很好.SOLR+LUCENE的 ...