Using the following method printPrimes() for question a-f below.

目录

1.    printPrimes代码... 1

2.    测试代码... 2

3.    junit测试结果... 4

4.    Elemma测试结果... 4

5.    习题答案... 5

 

1.       printPrimes代码

 

package tju.primes;

 

import javax.print.attribute.standard.RequestingUserName;

 

public class Method {

    private static final int MAXPRIMES = 100;

 

    /*******************************************************

     * Finds and prints n prime integers

     * Jeff Offutt, Spring 2003

     ******************************************************/

    public static String printPrimes (int n)

    {

        String prime = new String();

        int curPrime; // Value currently considered for primeness

        int numPrimes; // Number of primes found so far.

        boolean isPrime; // Is curPrime prime?

        int [] primes = new int [MAXPRIMES]; // The list of prime numbers.

       

        // Initialize 2 into the list of primes.

        primes [0] = 2;

        numPrimes = 1;

        curPrime = 2;

        while (numPrimes < n)

        {

            curPrime++; // next number to consider ...

            isPrime = true;

            for (int i = 0; i <= numPrimes-1; i++)

            { // for each previous prime.

                if (curPrime%primes[i]==0)

                { // Found a divisor, curPrime is not prime.

                    isPrime = false;

                    break; // out of loop through primes.

                }

            }

            if (isPrime)

            { // save it!

                primes[numPrimes] = curPrime;

                numPrimes++;

            }

        } // End while

       

        // Print all the primes out.

        for (int i = 0; i <= numPrimes-1; i++)

        { 

            prime += primes[i] + " ";

        }

        return prime;

    } // end printPrimes

   

}

2.       测试代码

package tju.primes;

import static org.junit.Assert.*;

 

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

 

public class TestMethod {

   

    Method met;

 

    @Before

    public void setUp() throws Exception {

        met = new Method();

    }

 

    @After

    public void tearDown() throws Exception {

    }

 

    @Test

    public void test1() {

        assertEquals("2 3 5 ", met.printPrimes(3));

    }

   

 

    @Test

    public void test2() {

        assertEquals("2 3 5 7 11 ", met.printPrimes(5));

    }

 

}

3.       junit测试结果

 

 

 

4.       Elemma测试结果

 

5.       习题答案

a.控制流图

 

 

b.将MAXPRIMES设置为4时,t2会发生数组越界错误,但t1不会发生错误。

c.令numPrimes=1.

d.

点覆盖:{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}

边覆盖:{(1,2),(2,3),(3,4),(4,5),(5,6),(6,8),(8,5),(6,7),(7,9),(5,9),(9,10),(9,11),(10,11),(11,2),(2,12),(12,13),(13,14),(14,15),(15,13),(13,16)}

主路径覆盖:{(1,2,3,4,5,6,8),(1,2,3,4,5,6,7,9,10,11),(1,2,3,4,5,6,7,9,11),(1,2,3,4,5,9,11),(1,2,3,4,5,9,10,11),(5,6,8,5),(6,8,5,6),(8,5,6,8),(8,5,6,7,9,11),(8,5,6,7,9,10,11),(1,2,12,13,16),(1,2,12,13,14,15),(13,14,15,13),(14,15,13,14),(15,13,14,15),(14,15,13,16),(15,13,16)}

e. [0, 1, 2, 3, 4, 6, 3, 4, 5, 7, 8, 9, 1, 10, 11, 12, 13, 11, 14]/

f. [0 1 2 3 4 6 3 7 8 9 1 2 3 4 5 7 9 1 2 3 4 6 3 4 6 3 7 8 9 1 10 11 12 13 11 12

13 11 12 13 11 14]

 

转载于:https://www.cnblogs.com/DiligentToHappy/p/6550407.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值