• 软件工程 Homework3


     1 /******************************************************* 
     2      * Finds and prints n prime integers 
     3      * Jeff Offutt, Spring 2003 
     4      ******************************************************/ 
     5     public static void printPrimes (int n) 
     6     { 
     7         int curPrime; // Value currently considered for primeness 
     8         int numPrimes; // Number of primes found so far. 
     9         boolean isPrime; // Is curPrime prime? 
    10         int [] primes = new int [MAXPRIMES]; // The list of prime numbers. 
    11         
    12         // Initialize 2 into the list of primes. 
    13         primes [0] = 2; 
    14         numPrimes = 1; 
    15         curPrime = 2; 
    16         while (numPrimes < n) 
    17         { 
    18             curPrime++; // next number to consider ... 
    19             isPrime = true; 
    20             for (int i = 0; i <= numPrimes-1; i++) 
    21             { // for each previous prime. 
    22                 if (isDivisible(primes[i], curPrime)) 
    23                 { // Found a divisor, curPrime is not prime. 
    24                     isPrime = false; 
    25                     break; // out of loop through primes. 
    26                 } 
    27             } 
    28             if (isPrime) 
    29             { // save it! 
    30                 primes[numPrimes] = curPrime; 
    31                 numPrimes++; 
    32             } 
    33         } // End while 
    34         
    35         // Print all the primes out. 
    36         for (int i = 0; i <= numPrimes-1; i++) 
    37         { 
    38             System.out.println ("Prime: " + primes[i]); 
    39         } 
    40     } // end printPrimes

    a. 画出函数的控制流图

    b. 设计一个t2=(n=5)能发现但t1=(n=3)不能发现的错误

    如果这个函数的第22行 if (isDivisible(primes[i], curPrime))误写成了if (isDivisible(primes[0], curPrime)),即对以后的每个数是否是素数的检测,只检查它是否能被2整除。当n = 3时,找出的素数为2,3,5 没有出现错误;但是当n = 5时,找出的素数为2,3,5,7,9 出现错误

     

    c. 寻找一组不经过while循环的测试用例

    n = 1

    d. 找出点覆盖、边覆盖和主路径覆盖的所有TR(测试需求)

    1. 节点覆盖:[1,2,3,5,6,9,5,6,8,10,11,2,4,12,13,14]

    边覆盖:[1,2,3,5,6,9,5,6,8,10,11,2,4,12,13,14] 

    [1,2,3,5,10,2,4,12,14]

    主路径:[1,2,3,5,6,8,10,11]

    [1,2,3,5,10,11]

    [1,2,3,5,6,9]

    [5,6,9,5]

    [2,3,5,6,8,10,2]

    [2,3,5,6,8,10,11,2]

    [2,3,5,10,2]

    [2,3,5,10,11,2]

    [1,2,4,12,13,14]

    [1,2,4,12,14]

    [3,5,6,8,10,11,2,4,12,13,14]

    [3,5,6,8,10,2,4,12,13,14]

    [3,5,10,11,2,4,12,13,14]

    [3,5,10,2,4,12,13,14]

    [3,5,6,8,10,11,2,4,12,14]

    [3,5,6,8,10,2,4,12,14]

    [3,5,10,11,2,4,12,14]

    [3,5,10,2,4,12,14]

    [9,5,6,8,10,11,2,4,12,13,14]

    [9,5,6,8,10,2,4,12,13,14]

    [9,5,6,8,10,11,2,4,12,14]

    [9,5,6,8,10,2,4,12,14]

    主路径覆盖:

    [0,1,2,3,5,6,8,10,11,2,4,12,13,14]

    [0,1,2,3,5,6,8,10,11,2,4,12,14]

    [0,1,2,3,5,6,8,10,2,4,12,13,14]

    [0,1,2,3,5,6,8,10,2,4,12,14]

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

    [0,1,2,3,5,6,9,5,6,8,10,2,4,12,13,14]

    [0,1,2,3,5,6,9,5,6,8,10,11,2,4,12,14]

    [0,1,2,3,5,6,9,5,6,8,10,2,4,12,14]

    [0,1,2,3,5,10,11,2,4,12,13,14]

    [0,1,2,3,5,10,2,4,12,13,14]

    [0,1,2,3,5,10,11,2,4,12,14]

    [0,1,2,3,5,10,2,4,12,14]

  • 相关阅读:
    第90章、广播之一收听系统广播(从零开始学Android)
    第105章、蓝牙(从零开始学Android)
    实现自定义view(2):仿Android QQ多屏幕显示ListView的效果
    实现自定义view(1):可在全屏幕自由拖动的view
    Android异步处理四:AsyncTask的实现原理
    Android异步处理三:Handler+Looper+MessageQueue深入详解
    Android异步处理二:使用AsyncTask异步更新UI界面
    实体之间的关系主要有以下两种
    hibernate实体对象的三种状态?
    Session提供了两种方法加载数据,区别是什么?
  • 原文地址:https://www.cnblogs.com/zany/p/5339348.html
Copyright © 2020-2023  润新知