zoukankan      html  css  js  c++  java
  • 实验二《Java面向对象》实验报告

    一、程序设计中临时变量的使用

    import java.util.Arrays;
    public class Array {
        public static void main(String[] args) {
            //定义一个数组
            int arr[] = {1,2,3,4,5,6,7,8};
            //打印原始数组的值
           for(int i:arr){
                System.out.print(i + " ");
            }
            System.out.println();
            // 删除上面数组中的5
            for(int i:arr){
                if(arr[i-1]==5)
                    while (i < arr.length) {
                        arr[i - 1] = arr[i];
                       i++;
                    }
            }
            arr[arr.length - 1]=0;
            //数组缩容
            // arr = Arrays.copyOf(arr, arr.length-1);
            //打印出 1 2 3 4 6 7 8 0
    
    
            for(int i:arr){
    
                System.out.print(i + " ");
    
            }
    
            System.out.println();
            // 添加代码再在4后面5
            for(int i:arr) {
                if (arr[i - 1] == 4) {
                    int j = arr.length - 1;
                    while (j > i ) {
                        arr[j] = arr[j - 1];
                        j--;
                    }
                    arr[i] = 5;
                }
            }
            //打印出 1 2 3 4 5 6 7 8
            for(int i:arr){
                System.out.print(i + " ");
            }
            System.out.println();
        }
    
    }
    

    二、参考单元测试提交最后三个测试用例都通过的截图,截图上要有画图加水印,输入自己的学号。

    1.三种代码
    伪代码:以简洁的自然语言表明设计步骤
    产品代码:用以实现特定功能的程序或机器语言
    测试代码:用以对产品代码进行测试的代码
    21)伪代码

    百分制转五分制:
    如果成绩小于60,转成“不及格”
    如果成绩在60与70之间,转成“及格”
    如果成绩在70与80之间,转成“中等”
    如果成绩在80与90之间,转成“良好”
    如果成绩在90与100之间,转成“优秀”
    其他,转成“错误”

    2)产品代码

    public class MyUtil{
       public static String percentage2fivegrade(int grade){
           //如果成绩小于0,转成“错误”
           if ((grade < 0))
               return "错误";
           //如果成绩小于60,转成“不及格”
           else if (grade < 60)
               return "不及格";
           //如果成绩在60与70之间,转成“及格”
           else if (grade < 70)
               return "及格";
           //如果成绩在70与80之间,转成“中等”
           else if (grade < 80)
               return "中等";
           //如果成绩在80与90之间,转成“良好”
           else if (grade < 90)
               return "良好";
           //如果成绩在90与100之间,转成“优秀”
           else if (grade < 100)
               return "优秀";
           //如果成绩大于100,转成“错误”
           else
               return "错误";
       }
    }
    

    3)测试代码

    public class MyUtilTest {
        public static void main(String[] args) {
            //测试边界情况
            if(MyUtil.percentage2fivegrade(0) != "不及格")
                System.out.println("test failed 1!");
            else if(MyUtil.percentage2fivegrade(60) != "及格")
                System.out.println("test failed 2!");
            else if(MyUtil.percentage2fivegrade(70) != "中等")
                System.out.println("test failed 3!");
            else if(MyUtil.percentage2fivegrade(80) != "良好")
                System.out.println("test failed 4!");
            else if(MyUtil.percentage2fivegrade(90) != "优秀")
                System.out.println("test failed 5!");
            else if(MyUtil.percentage2fivegrade(100) != "优秀")
                System.out.println("test failed 6!");
            else 
                System.out.println("test passed!"); 
        }
    }
    

    三、参考积极主动敲代码使用JUnit学习Java

    以 TDD的方式研究学习StringBuffer,提交你的单元测试用例和测试通过的截图,截图要加上学号水印。
    1.TDD的基本思路就是通过测试来推动整个开发的进行。而测试驱动开发技术并不只是单纯的测试工作。
    需求向来就是软件开发过程中感觉最不好明确描述、易变的东西。这里说的需求不只是指用户的需求,还包括对代码的使用需求。很多开发人员最害怕的就是后期还要修改某个类或者函数的接口进行修改或者扩展,为什么会发生这样的事情就是因为这部分代码的使用需求没有很好的描述。测试驱动开发就是通过编写测试用例,先考虑代码的使用需求(包括功能、过程、接口等),而且这个描述是无二义的,可执行验证的。
    通过编写这部分代码的测试用例,对其功能的分解、使用过程、接口都进行了设计。而且这种从使用角度对代码的设计通常更符合后期开发的需求。可测试的要求,对代码的内聚性的提高和复用都非常有益。因此测试驱动开发也是一种代码设计的过程。

    /** 测试代码 测试驱动开发
    import junit.framework.TestCase;
    import org.junit.Before;
    import org.junit.Test;
    public class StringBufferDemo01Test extends TestCase {
        StringBuffer a = new StringBuffer("StringBuffer01");//测试14个字符串
        StringBuffer b = new StringBuffer("StringBuffer01StringBuffer01");//测试28个字符串
        StringBuffer c = new StringBuffer("StringBuffer01StringBuffer01StringBuffer01");//测试42个字符串
        @Test
        public void tsetcharAt() throws Exception{
            assertEquals('S',a.charAt(0));
            assertEquals('B',a.charAt(6));
            assertEquals('1',b.charAt(11));
        }
        @Test
        public void testcapacity() throws Exception{
            assertEquals(30,a.capacity());
            assertEquals(44,b.capacity());
            assertEquals(58,c.capacity());
        }
        @Test
        public void testlength() throws Exception{
            assertEquals(14,a.length());
            assertEquals(28,b.length());
            assertEquals(42,c.length());
        }
        @Test
        public void testindexOf() throws Exception{
            assertEquals(0,a.indexOf("Str"));
            assertEquals(12,b.indexOf("01"));
            assertEquals(8,c.indexOf("ff"));
        }
    }
    

    五、任务:以TDD的方式开发一个复数类Complex,要求如下:

    // 定义属性并生成getter,setter
    double RealPart;
    double ImagePart;
    // 定义构造函数
    public Complex()
    public Complex(double R,double I)

    //Override Object
    public boolean equals(Object obj)
    public String toString()

    // 定义公有方法:加减乘除
    Complex ComplexAdd(Complex a)
    Complex ComplexSub(Complex a)
    Complex ComplexMulti(Complex a)
    Complex ComplexDiv(Complex a)

    六、使用StarUML对实验二中的代码进行建模,发类图的截图,加上学号水印。

  • 相关阅读:
    【sqli-labs】 less26 GET- Error based -All you SPACES and COMMENTS belong to us(GET型基于错误的去除了空格和注释的注入)
    【sqli-labs】 less25a GET- Blind based -All you OR&AND belong to us -Intiger based(GET型基于盲注的去除了or和and的整型注入)
    【sqli-labs】 less25 GET- Error based -All you OR&AND belong to us -string single quote(GET型基于错误的去除了or和and的单引号注入)
    Apache rewrite地址重写
    PHP安装-phpMyAdmin+Discuz
    SElinux解决web网站无法访问
    Squid代理服务部署
    Apache动态加载模块
    Apache虚拟主机+AD压力测试
    nginx php-fpm conf文件编写
  • 原文地址:https://www.cnblogs.com/sunxing/p/6754518.html
Copyright © 2011-2022 走看看