• java第三次实验


    20145336第三周JAVA实验报告

    20145336 《Java程序设计》第三次实验实验报告

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

    课程:Java程序设计

    班级:1453

    姓名:张子扬

    指导教师:娄嘉鹏

    实验日期:2016.04.22

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

    实验内容:

    1. XP基础

    2. XP核心实践

    3. 相关工具

    实验目的与要求:

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

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

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

    实验步骤

    敏捷开发与XP

    两个公式:软件=程序+软件工程和软件企业=软件+商业模式

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

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

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

    XP准则:沟通、简单、反馈、勇气

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

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

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

    编码标准

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

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

    结对编程

    结对编程中有两个角色:

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

    git的配置

    首先需要安装git

    设置账号和邮箱

    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);
    }
    }

    实验伙伴

    20144303石宇森  http://www.cnblogs.com/20144303sys

  • 相关阅读:
    最小生成树算法
    并查集
    背包问题
    木桶排序
    STL之vector
    STL中的queue用法与stack用法对比
    快速幂求模
    归并排序+典型例题(逆序对)
    负进制转换
    冒泡排序
  • 原文地址:https://www.cnblogs.com/20145336yang/p/5428898.html
Copyright © 2020-2023  润新知