博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20165324 Java实验三 敏捷开发与XP实验
阅读量:7025 次
发布时间:2019-06-28

本文共 3828 字,大约阅读时间需要 12 分钟。

20165324 Java实验三 敏捷开发与XP实验

一、实验报告封面

课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324

指导教师:娄嘉鹏 实验日期:2018年4月16日

实验时间:13:45 - 15:25 实验序号:24

实验名称:面向对象程序设计

二、实验内容

任务一:在IDEA中使用工具(Code->Reformate Code)格式化代码,并学习Code菜单的功能

知识点总结

  • Code菜单

1290756-20180424201647665-259587815.png

  • 代码整理得:
public class CodeStandard {    public static void main(String[] args) {        final int m = 20;        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() < m) {            buffer.append("1234567");        }        for (int i = 0; i < buffer.length(); i++) {            System.out.println(buffer.charAt(i));        }    }}
  • Code菜单使用截图

1290756-20180427190216709-1756861274.jpg

任务二:下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例

  • 实验截图:
    1290756-20180424210453216-1421464672.png
  • 提交上传截图:
    1290756-20180425221159026-2121422153.png

1290756-20180425221205666-1335217546.png

  • git log
    1290756-20180427090348803-904075744.png

任务三:下载搭档的代码,至少进行三项重构

  • 重构内容
  1. Rename可以给类、包、方法变量改名字。
  2. 封装类,还可以封装成员变量。
  3. 避免代码重复,打印信息System.out.println();可通过toString方法重构。
  • 重构动机:
  1. 增加新功能;
  2. 原有功能有BUG;
  3. 改善原有程序的结构;
  4. 优化原有系统的性能 。
  • 重构手法:

1290756-20180427174436324-53092701.png

本次重构内容

  • 将Student类中各定义的变量进行重构
  • 包名,类名的重构
  • 方法的重构
  • 对于输出的重构,因为其输出中存在其他参数,未能成功使用toString()进行重构。
package hcj;import java.util.Scanner;public class Test {    public static void main(String args[]) {        System.out.println("输入两个班的人数:");        Scanner sc=new Scanner(System.in);        int n=sc.nextInt();        int m=sc.nextInt();        Student []stu1=new Student[n];//创建对象数组        Student []stu2=new Student[m];//创建对象数组        Fen(stu1,n);        Fen(stu2,m);        System.out.println("现在输入一班学生信息:");        Input(stu1,n);        System.out.println("现在输入二班学生信息:");        Input(stu2,m);        paixu(stu1,n);        paixu(stu2,m);        System.out.println("一班信息为:");        Output(stu1,n);        System.out.println("二班信息为:");        Output(stu2,m);    }    private static void Fen(Student[] stu, int n) {//分配空间        for (int i=0;i
stu[j].getNumber()) { Student s=stu[i]; stu[i]=stu[j]; stu[j]=s; } } } } private static void Output(Student stu[],int n) { for (int i=0;i

任务四:以结对的方式完成Java密码学相关内容的学习,结合重构、git、代码标准等

  • 结对编程之实现线性移位寄存器和对偶移位寄存器
  • 初步完整代码如下:
import java.util.Scanner;public class Test {    public static void main(String[] args) {        System.out.println("请输入移位寄存器的级数n:");        Scanner sc = new Scanner(System.in);        int n = sc.nextInt();        System.out.println("请设置初态:");        int[] a = new int[n];//状态数        int  sum=1;        for (int i = 0; i < n; i++) {            a[i] = sc.nextInt();            sum=2*sum;        }        System.out.println("请输入结构常数:");//形如[c1,c2,c3,c4,c5]        int[] c = new int[n];//存储的为反馈函数,与反馈函数的对应规律为:若结构常数为[0,1,0,1],则反馈函数为1 0 1 0        for (int i = n-1; i >= 0; i--) {            c[i] = sc.nextInt();        }        System.out.println("线性移位寄存器输出序列为:");        for (int i = 0; i 
  • 重构之后代码如下:
import java.util.*;public class Lfsr {    public static void main(String[] args) {        System.out.println("请输入移位寄存器的级数n:");        Scanner sc = new Scanner(System.in);        int n = sc.nextInt();        System.out.println("请设置初态:");        int[] a = new int[n];//状态数        int  sum=1;        for (int i = 0; i < n; i++) {            a[i] = sc.nextInt();            sum=2*sum;        }        System.out.println("请输入结构常数:");//形如[c1,c2,c3,c4,c5]        int[] c = new int[n];//存储的为反馈函数,与反馈函数的对应规律为:若结构常数为[0,1,0,1],则反馈函数为        for (int i = n-1; i >= 0; i--) {            c[i] = sc.nextInt();        }        System.out.println("线性移位寄存器输出序列为:");        for (int i = 0; i 
  • 重构实现截图

1290756-20180427203111352-1566055555.jpg

1290756-20180427203130876-2123701609.jpg

  • 实验截图为:

1290756-20180427171507161-1566051053.png

步骤 耗时 百分比
需求分析 10min 15%
设计 15min 21%
代码实现 20min 28%
测试 15min 21%
分析总结 10min 15%

三、实验体会与总结

结对编程,一起学习了线性移位寄存器和对偶移位寄存器的相关内容,轮换担任了领航员,一起实现了Java与密码学的小结合。

四、参考资料

转载于:https://www.cnblogs.com/20165324hcj/p/8933335.html

你可能感兴趣的文章
Hadoop新特性
查看>>
必会的next.js自定义App和Document
查看>>
深入总结Javascript原型及原型链
查看>>
Spring Cloud的介绍以及环境搭建
查看>>
求数组中第K大的数
查看>>
前端开发中使用mac自带apache服务
查看>>
#情人节专题#利用Three.js实现一个记录两个人走过岁月的点点滴滴的idea
查看>>
Vue中,利用JSX语法生成不同html模板
查看>>
部分vue webpack打包配置问题简介
查看>>
入门笔记 --- Golang 语法注意事项(一)
查看>>
A的女儿是B的女儿的妈妈,A是B的谁?
查看>>
axios封装以及前端接口处理策略
查看>>
魅族PRO 5详细开启Usb调试模式的流程
查看>>
需要上级处理的双亲委派模型
查看>>
Basic Of Concurrency(九: 线程通讯)
查看>>
flutter 自定义带水波纹和点击态的cell
查看>>
小程序 | 注释级微信小程序demo,助你快速切入开发
查看>>
VS Code markdown格式化的插件编写(3)[解难反思]
查看>>
webpack
查看>>
Django框架环境搭建
查看>>