服務(wù)計(jì)算概論作業(yè)報(bào)告_第1頁(yè)
服務(wù)計(jì)算概論作業(yè)報(bào)告_第2頁(yè)
服務(wù)計(jì)算概論作業(yè)報(bào)告_第3頁(yè)
服務(wù)計(jì)算概論作業(yè)報(bào)告_第4頁(yè)
服務(wù)計(jì)算概論作業(yè)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上慕測(cè)平臺(tái)測(cè)試報(bào)告(二) 學(xué) 院:計(jì)算機(jī)學(xué)院 姓 名:趙紅娜 專 業(yè):軟件工程 學(xué) 號(hào): 班 級(jí):1301 完成日期:2016-10-22 2016年10月22日1.題目針對(duì)以下4個(gè)項(xiàng)目編寫(xiě)測(cè)試用例進(jìn)行測(cè)試。代碼如下:題目(1)專心-專注-專業(yè)/ BinaryHeap class/ CONSTRUCTION: with optional capacity (that defaults to 100)/ *PUBLIC OPERATIONS*/ void insert( x ) -> Insert x/ int deleteMin( )-> Return an

2、d remove smallest item/ int findMin( ) -> Return smallest item/ boolean isEmpty( ) -> Return true if empty; else false/ boolean isFull( ) -> Return true if full; else false/ void makeEmpty( ) -> Remove all items/ *ERRORS*/ Throws Overflow if capacity exceeded/* * Implements a binary heap

3、. * Note that all "matching" is based on the compareTo method. * author Mark Allen Weiss */public class BinaryHeap / invariant wellFormed(); /* * Construct the binary heap. */ public BinaryHeap( ) this( DEFAULT_CAPACITY ); /* * Construct the binary heap. * param capacity the capacity of th

4、e binary heap. */ / requires capacity > 0; / ensures isEmpty(); public BinaryHeap( int capacity ) currentSize = 0; array = new int capacity + 1 ; /* * Insert into the priority queue, maintaining heap order. * Duplicates are allowed. * param x the item to insert. * exception Overflow if container

5、is full. */ public void insert( int x ) throws Overflow if( isFull( ) ) throw new Overflow( ); / Percolate up int hole = +currentSize; for( ; hole > 1 && x< array hole / 2 ; hole /= 2 ) array hole = array hole / 2 ; array hole = x; /* * Find the smallest item in the priority queue. * r

6、eturn the smallest item, or null, if empty. */ public int findMin( ) if( isEmpty( ) ) return -1; return array 1 ; boolean wellFormed() if(array=null) /array!=null return false; if(currentSize<0 | currentSize>=array.length) /currentSize>=0; currentSize<array.length; return false; for(int

7、i=1; i<currentSize; i+) if(i*2 <= currentSize && arrayi>array2*i) return false; if(i*2 + 1<= currentSize && arrayi>array2*i+1) return false; return true; /* * Remove the smallest item from the priority queue. * return the smallest item, or null, if empty. */ public int

8、 deleteMin( ) if( isEmpty( ) ) return -1; int minItem = findMin( ); array 1 = array currentSize- ; percolateDown( 1 ); return minItem; /* * Establish heap order property from an arbitrary * arrangement of items. Runs in linear time. */ public void buildHeap( ) for( int i = currentSize / 2; i > 0;

9、 i- ) percolateDown( i ); /* * Test if the priority queue is logically empty. * return true if empty, false otherwise. */ public boolean isEmpty( ) return currentSize = 0; /* * Test if the priority queue is logically full. * return true if full, false otherwise. */ public boolean isFull( ) return cu

10、rrentSize = array.length - 1; /* * Make the priority queue logically empty. */ / ensures isEmpty(); public void makeEmpty( ) currentSize = 0; private static final int DEFAULT_CAPACITY = 100; private int currentSize; / Number of elements in heap private int array; / The heap array /* * Internal metho

11、d to percolate down in the heap. * param hole the index at which the percolate begins. */ private void percolateDown( int hole ) int child; int tmp = array hole ; for( ; hole * 2 <= currentSize; hole = child ) child = hole * 2; if( child != currentSize && array child + 1 < array child

12、) child+; if( array child < tmp ) array hole = array child ; else break; array hole = tmp; /* * Exception class for access in full containers * such as stacks, queues, and priority queues. * author Mark Allen Weiss */public class Overflow extends Exception題目(2)import java.util.Comparator;import j

13、ava.util.Random;/* * A class that contains several sorting routines, * implemented as static methods. * Arrays are rearranged with smallest item first, * using compareTo. * author Mark Allen Weiss */public final class Sorting /* * Simple insertion sort. * param a an array of Comparable items. */ pub

14、lic void insertionSort( int a ) int j; for( int p = 1; p < a.length; p+ ) int tmp = a p ; for( j = p; j > 0 && tmp<a j - 1 ; j- ) a j = a j - 1 ; a j = tmp; public boolean isSorted(int a) for(int i=0; i<a.length-1; i+) if(ai>ai+1) return false; return true; public static void

15、quicksort( int a ) quicksort( a, 0, a.length - 1 ); private static final int CUTOFF = 10; public static final void swapReferences( Object a, int index1, int index2 ) Object tmp = a index1 ; a index1 = a index2 ; a index2 = tmp; public static final void swap(int a,int index1,int index2) int tmp = a i

16、ndex1 ; a index1 = a index2 ; a index2 = tmp; private static int median3( int a, int left, int right ) int center = ( left + right ) / 2; if( a center <a left ) swap( a, left, center ); if( a right < a left ) swap( a, left, right ); if( a right < a center ) swap( a, center, right ); / Place

17、 pivot at position right - 1 swap( a, center, right - 1 ); return a right - 1 ; private static void quicksort( int a, int left, int right) if( left + CUTOFF <= right ) int pivot = median3( a, left, right ); int i = left, j = right - 1; for( ; ; ) while( a +i < pivot ) while( a -j > pivot )

18、if( i < j ) swap( a, i, j ); else break; swap( a, i, right - 1 ); / Restore pivot quicksort( a, left, i - 1 ); / Sort small elements quicksort( a, i + 1, right ); / Sort large elements else / Do an insertion sort on the subarray insertionSort( a, left, right ); private static void insertionSort(

19、int a, int left, int right ) for( int p = left + 1; p <= right; p+ ) int tmp = a p ; int j; for( j = p; j > left && tmp < a j - 1 ; j- ) a j = a j - 1 ; a j = tmp; private static final int NUM_ITEMS = 1000; private static int theSeed = 1;題目(3)public class Statistics /* * * param num

20、bers * return the length of the array */public int calLength(int numbers) int length = numbers.length;return length;/* * * param numbers * return the mean value of the array */public double calMean(int numbers) int length = calLength(numbers);double sum;sum = 0.0;for (int i = 0; i < length; i+) s

21、um += numbersi;double mean = sum / (double) length;return mean;/* * * param numbers * return the var value of the array */public double calVar(int numbers) int length = calLength(numbers);double mean = calMean(numbers);double varsum = 0.0;for (int i = 0; i < length; i+) varsum = varsum + (numbers

22、i - mean) * (numbersi - mean);double var = varsum / (length - 1.0);return var;題目(4)public class Triangle protected long lborderA = 0;protected long lborderB = 0;protected long lborderC = 0;/ Constructorpublic Triangle(long lborderA, long lborderB, long lborderC) this.lborderA = lborderA;this.lborder

23、B = lborderB;this.lborderC = lborderC;/* * check if it is a triangle * * return true for triangle and false not */public boolean isTriangle(Triangle triangle) boolean isTriangle = false;/ check boundaryif (triangle.lborderA > 0 && triangle.lborderA <= Long.MAX_VALUE)&& (triangl

24、e.lborderB > 0 && triangle.lborderB <= Long.MAX_VALUE)&& (triangle.lborderC > 0 && triangle.lborderC <= Long.MAX_VALUE) / check if subtraction of two border larger than the thirdif (diffOfBorders(triangle.lborderA, triangle.lborderB) < triangle.lborderC&&am

25、p; diffOfBorders(triangle.lborderB, triangle.lborderC) < triangle.lborderA&& diffOfBorders(triangle.lborderC, triangle.lborderA) < triangle.lborderB) isTriangle = true;return isTriangle;/* * Check the type of triangle * * Consists of "Illegal", "Regular", "Scal

26、ene", "Isosceles" */public String getType(Triangle triangle) String strType = "Illegal"if (isTriangle(triangle) / Is Regularif (triangle.lborderA = triangle.lborderB&& triangle.lborderB = triangle.lborderC) strType = "Regular"/ If scaleneelse if (triangle.l

27、borderA != triangle.lborderB)&& (triangle.lborderB != triangle.lborderC)&& (triangle.lborderA != triangle.lborderC) strType = "Scalene"/ if isosceleselse strType = "Isosceles"return strType;/* * calculate the diff between borders * * */public long diffOfBorders(lo

28、ng a, long b) return (a > b) ? (a - b) : (b - a);/* * get length of borders */public long getBorders() long borders = new long3;borders0 = this.lborderA;borders1 = this.lborderB;borders2 = this.lborderC;return borders;2.軟件工具Eclipse3. 測(cè)試代碼題目(1)import org.junit.After;import org.junit.Before;import

29、org.junit.Test;import org.junit.Assert;public class BinaryHeapTest Beforepublic void setUp() throws Exception Afterpublic void tearDown() throws Exception Testpublic void test() BinaryHeap heap1 = new BinaryHeap(1024);for (int i = 1024; i > 0; i-) try heap1.insert(i); catch (Overflow e) Assert.fa

30、il(e.getMessage();if (heap1.wellFormed() heap1.buildHeap();heap1.deleteMin();heap1.makeEmpty();heap1.findMin();heap1.deleteMin();題目(2)import org.junit.Before;import org.junit.After;import org.junit.Test;public class SortingTest private int num;private int num1 = new int50;private int num2 = new int5

31、0;private Object ref = new Object 3, 4, 5, 6, 9 ;private Sorting sorting;Beforepublic void setUp() throws Exception sorting = new Sorting();for (int i = 0; i < 50; i+) num = (int) (Math.random() * 50);num1i = num;for (int i = 0; i < 50; i+) num = (int) (Math.random() * 50);num2i = num;Afterpublic void tearDown() throws Exception Testpublic void test() sorting.quicksort(num1);sorting.isSorted(num1);sorting.insertionSort(num2);sorting.isSorted(num2);sorting.swapReferences(ref, 1, 5);題目(3)import org.junit.After;import org.junit.Before;import org.junit.Test;public class StatisticsTes

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論