20144303 第三次实验

北京电子科技学院(BESTI)实验报告

课程:Java程序设计

班级:1453

姓名:石宇森

指导教师:娄嘉鹏

实验日期:2016.04.22

实验名称:Java开发环境的熟悉(Linux + Eclipse)

实验内容:

XP基础

XP核心实践

相关工具

实验目的与要求:

没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程

完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导

严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。

实验步骤:

敏捷开发与XP
两个公式:软件=程序+软件工程和软件企业=软件+商业模式

敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。

XP团队使用现场客户、特殊计划方法和持续测试来提供快速的反馈和全面的交流:

XP是以开发符合客户需要的软件为目标而产生的一种方法论
XP是一种以实践为基础的软件工程过程和思想
XP认为代码质量的重要程度超出人们一般所认为的程度
XP特别适合于小型的有责任心的、自觉自励的团队开发需求不确定或者迅速变化的软件
XP准则:沟通、简单、反馈、勇气

XP法则:快速反馈、假设简单性、递增更改、提倡更改、优质工作

XP活动:编码、测试、倾听、设计

XP实践:编码标准、结对编程、代码集体所有、测试、重构等实践

编码标准:
编写代码一个重要的认识是“程序大多时候是给人看的”,编程标准使代码更容易阅读和理解,甚至可以保证其中的错误更少。编程标准包含:具有说明性的名字、清晰的表达式、直截了当的控制流、可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性。

程序的缩进方法:我们单击Eclipse菜单中的source->Format 或用快捷键Ctrl+Shift+F就可以按Eclipse规定的规范缩进。

结对编程:
结对编程中有两个角色:

驾驶员(Driver)是控制键盘输入的人。写设计文档,进行编码和单元测试等XP开发流程。
领航员(Navigator)起到领航、提醒的作用。审阅驾驶员的文档、驾驶员对编码等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体的技术问题。

一、git的使用:
要先下载同组成员的java文件,然后修改之后再上传。

我们先打开同组成员的项目,复制其网址:

在桌面右键,点git bash here ,输入git clone +项目组地址:

此时,桌面会出现项目组文件夹:

打开文件夹,把要修改的java文件修改之后,放入该项目组文件夹:

在该文件夹中右键,点击git bash here,开始将修改后的java文件传上去:

这时,git@osc中对应的项目组中也就多了一个文件,上传成功:

二、eclipse的重构过程:

源代码:
import java.util.Scanner;
public class MyUtil {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String write="";
char[] mid=new char[100];
int[] code=new int[100];
int time=0;
int i=0;
System.out.println("请输入明文");
write=scanner.nextLine();
time=write.length();
for( i=0;i<time;i++){
mid[i]=write.charAt(i);
code[i]=((int)mid[i]-'a'+3)%26+'a';
}
System.out.println("密文为:");
for( i=0;i<time;i++){
System.out.printf("%c",(char)code[i]);
}
}
}

重构后的代码:

 class Caesar{
public static char[] mid=new char[100];
public static int[] code=new int[100];
public static int time=0;
public static int i=0;
public static void EncryptWrite(String write){
time=write.length();
for( i=0;i<time;i++){
mid[i]=write.charAt(i);
code[i]=((int)mid[i]-'a'+3)%26+'a';
}
System.out.println("密文为:");
for( i=0;i<time;i++){
System.out.printf("%c",(char)code[i]);
}
}
}
public class MyUtil {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String write="";
System.out.println("请输入明文");
write=scanner.nextLine();
Caesar.EncryptWrite(write);
}
}

同组成员 张子扬:http://home.cnblogs.com/u/20145336yang/

posted @ 2016-04-24 23:14  20144303石宇森  阅读(140)  评论(1编辑  收藏  举报