实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告
一、实验要求
1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程
2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决 办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导
3.严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。
二、实验内容
1.编码标准
在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。
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));
}
}
2.Git的使用
在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push。
3.重构
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。
三、实验步骤
1.编码标准
规范之后的代码:
/**
* Complex
*
* @author lyh5309
* @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));
}
}
}
单击IDEA菜单中的Code->Reformat 或用快捷键Ctrl+Alt+L就可以按IDEA规定的规范缩进。
效果如下:
其他的idea中code的快捷键参考这篇博客
2.git的使用
1.把同伴加入自己的项目中:
管理->仓库->仓库成员管理->添加仓库成员->邀请用户
2.搭档的Complex的代码:
/**
* Complex
*
* @author lyh5309
* @date 2019/4/29
*/
public class Complex {
double realPart;
double imagePart;
Complex(double realPart, double imagePart) {
this .realPart = realPart;
this.imagePart = imagePart;
}
Complex complexAdd(Complex a) {
return new Complex(realPart + a.realPart, imagePart + a.imagePart);
}
Complex complexSub(Complex a) {
return new Complex(realPart - a.realPart, imagePart - a.imagePart);
}
Complex complexMulti(Complex a) {
return new Complex(realPart * a.realPart - imagePart * a.imagePart, realPart * a.imagePart + a.realPart * imagePart);
}
Complex complexDiv(Complex a) {
return new Complex((realPart * a.realPart + imagePart * a.imagePart) / (a.realPart * a.realPart + a.imagePart * a.imagePart), (-realPart * a.imagePart + a.realPart * imagePart) / (a.realPart * a.realPart + a.imagePart * a.imagePart));
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
} else {
Complex m = (Complex) obj;
if (m.realPart == realPart && m.imagePart == imagePart) {
return true;
} else {
return false;
}
}
}
@Override
public String toString() {
String output;
if (imagePart == 0) {
return output = realPart + "";
} else if (realPart == 0 && imagePart != 0) {
return output = imagePart + "i";
} else if (imagePart > 0) {
return output = realPart + "+" + imagePart + "i";
} else {
return output = realPart + "" + imagePart + "i";
}
}
}
ComplexTest的代码:
import junit.framework.TestCase;
import org.junit.Test;
public class ComplexTest extends TestCase {
Complex a = new Complex(2,6);
Complex b = new Complex(1,-3);
@Test
public void testEquals() {
assertEquals(false,a.equals(b));
assertEquals(true,a.equals(a));
}
@Test
public void testComplexAdd() throws Exception {
assertEquals("3.0+3.0i",a.complexAdd(b).toString());
}
@Test
public void testComplexSub() {
assertEquals("1.0+9.0i",a.complexSub(b).toString());
}
@Test
public void testComplexMulti() {
assertEquals("20.0",a.complexMulti(b).toString());
}
@Test
public void testComplexDiv() {
assertEquals("-1.6+1.2i",a.complexDiv(b).toString());
}
}
3.提交
先git clone+同伴的码云
之后正常的git add .
,git commit-m"x"
,git push -u origin master
输入自己的用户名和密码,就会发现代码已经传到了同伴的仓库里了,编辑人是自己。
3.重构
1:所有类都必须添加创建者信息
2:所有的覆写方法,必须加@Override注解
3:方法名,参数名,成员变量,局部变量都统一使用lowerCamelCase
4:在if/else/for/while/do语句中必须使用大括号,即使只有一行代码
4.密码
凯撒密码代码(与例子不太一样)
package mg;
/**
* Created by lenovo on 2019/4/30.
*/
import java.sql.SQLOutput;
import java.util.Scanner;
public class Caesar{
public static void main(String[] args) {
System.out.println("1 加密 2 解密");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
if (n == 1) {
System.out.print("请输入明文:");
String str = in.next();
String jm = "";
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= 'a' && ch <= 'z') {
if (ch < 'x') {
ch += 3;
} else {
ch -= 26;
ch += 3;
}
}
if (ch >= 'A' && ch <= 'Z') {
if (ch < 'X') {
ch += 3;
} else {
ch -= 26;
ch += 3;
}
}
jm += ch;
}
System.out.println("密文是:" + jm);
}
else if (n == 2) {
System.out.print("请输入密文:");
String str = in.next();
String jm = "";
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= 'a' && ch <= 'z') {
if (ch > 'c') {
ch -= 3;
} else {
ch += 26;
ch -= 3;
}
} else if (ch >= 'A' && ch <= 'Z') {
if (ch > 'C') {
ch -= 3;
} else {
ch += 26;
ch -= 3;
}
}
jm += ch;
}
System.out.println("明文是:" + jm);
}
else {
System.out.println("输入错误");
}
}
}
结果截图:
四、码云链接
五、总结
本次实验的主要内容其实是在教我们如何规范的写代码,虽然难度不是很大,但是不引人重视,也容易犯错,代码是给别人看的,不是自己能看懂、正确了就够用了。这是作为一个码农的基本素质。
实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告的更多相关文章
- 20165230 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20165230 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导教 ...
- 2016-2017-2 20155339 《Java面向对象程序设计》实验三敏捷开发与XP实践实验报告
2016-2017-2 20155339 <Java面向对象程序设计>实验三敏捷开发与XP实践实验报告 实验内容 XP基础 XP核心实践 相关工具 实验内容 一.在IDEA中使用工具(Co ...
- 20175314 实验三 敏捷开发与XP实践
20175314 实验二 Java面向对象程序设计 一.实验内容 XP基础 XP核心实践 相关工具 二.实验步骤 (一)代码格式化 创建"175314.exp3"项目,在该项目下创 ...
- 2017-2018-2 20165228 实验三《敏捷开发与XP实践》实验报告
2017-2018-2 20165228 实验三<敏捷开发与XP实践>实验报告 相关知识点 (一)敏捷开发与XP 通过 XP准则来表达: 沟通 :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 上 ...
- 20145211 《Java程序设计》实验报告三:敏捷开发与XP实践
实验内容 使用 git上传代码 使用 git相互更改代码 实现代码的重载 XP基础 XP核心实践 相关工具 一.git上传代码 这一部分是与我的partner合作的,详见他的博客- 20145326蔡 ...
- 2018-2019-20175205 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告
2018-2019-20175205 实验三敏捷开发与XP实践<Java开发环境的熟悉>实验报告 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)>&l ...
随机推荐
- RTX二次开发::检索 COM 类工厂中 CLSID 为 {79210E58-99EB-45D0-8890-763EFEAA143F} 的组件失败,
解决方法: 1.Interop.RTXSAPILib.dll这个是32位的 将IIS 应用程序池 启用32位应用程序 设置为true就可以了, 2.把编译好的程序选择X86平台运行,就好了 程序员的基 ...
- linux系统如何安装vmware Tools(下面以CentOS为例)
VMwareTools是VMware虚拟机中很重要的一个工具包,有些时候在虚拟机中安装完操作系统会缺少网卡驱动,不能上网,这时只要安装VMwareTools就可以解决问题,下面以CentOS为例,来说 ...
- 面向对象的JavaScript-007-Function.prototype.bind() 的4种作用
1. // Function.prototype.bind() 的作用 // 1.Creating a bound function this.x = 9; var module = { x: 81, ...
- 深入理解yield-乾颐堂
yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法. 只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: 1 2 3 def ad ...
- .NET开源MSSQL、Redis监控产品Opserver之Exception配置
异常日志的记录和监控主要依赖于StackExchange.Exceptional组件,默认已经被引进来了. 先看下config文件夹下的ExceptionsSettings.json.example文 ...
- 【转载】Redis Sentinel服务配置
转载地址:http://blog.csdn.net/vtopqx/article/details/49247285 redis官网文档:http://www.redis.cn/topics/senti ...
- vs2015 debugger,unable to attach to application iisexpress.exe
vs2015 unable to attach to application iisexpress.exe,没有可用的数据了 搞了一天也没解决...
- javafx 继承Application打开
前段时间需要用到javafx的Application来写一些图形界面之类的东西,但是run了之后eclipese不会去运行它,很纳闷,然后看了一下run as发现是没有main入口 其实加上一个mai ...
- XJOI3363 树3/Codeforces 682C Alyona and the Tree(dfs)
Alyona decided to go on a diet and went to the forest to get some apples. There she unexpectedly fou ...
- Freemark与spring整合
SpringMVC环境的搭建在这里就不多说了,我们这节主要是FreeMarker与SpringMVC整合 首先,在springmvc的配置文件普通视图之前,加入freemarker的视图 fre-se ...