第五、六周课堂测试补充
2017-11-07 21:20
507 查看
第五周课堂测试补充
测试一:用数组实现栈
实验要求:参考教材内容,实现ArrayStack,完成peek,isEmpty,size及toString方法,并用Junit进行单元测试(正常,异常,边界情况)
实验过程:
1、peek方法:查看栈顶元素
代码如下:
@Override public T peek() { if (count == 0) return null; else return stack[count]; } }
2、isEmpty方法:判断栈中是否为空
public boolean isEmpty() { return (count == 0); }
3、size方法:判定栈中元素的个数。
public int size() { return count; }
4、toString方法:toString方法是将栈中的各个元素转换成String类型,然后便于打印出来。
public String toString() { String result = "<top of stack>\n"; for (int index = count-1; index>=0; index++) result += stack[index]+ "\n"; return result + "<bottom of stack>"; }
实验截图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/9df64ce9d3ca839fa65954f113792b71.png)
代码链接
ArrayStackTest
测试二:用链表实现栈
实验要求:1 给出size,isEmpty及toString方法的定义,完成LinkedStack类并用Junit进行单元测试(正常,异常,边界情况)
2 提交测试代码运行截图,要全屏,包含自己的学号信息
3课下把代码推送到代码托管平台
实验过程(方法实现与数组实现栈大致相同):
1、isEmpty方法:判断栈中是否为空
public boolean isEmpty() { return (count == 0); }
2、size方法:判定栈中元素的个数。
public int size() { return count; }
3、toString方法:toString方法是将栈中的各个元素转换成String类型,利用while循环将栈中的元素遍历返回,赋给result,返回result。
public String toString() { String result = "<top of stack>\n"; LinearNode current = top; while (current != null) { result += current.getElement() + "\n"; current = current.getNext(); } return result + "<bottom of stack>"; }
实验截图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/3cb80ed5bc628c90fdb98a9abbef0523.png)
代码链接
LinkedStackTest
LinkedStack
测试三:查找课堂测试
实验要求:1 用JDB或IDEA单步跟踪在下列数据中(3 8 12 34 54 84 91 110)查找45和54的过程,对比使用顺序查找和二分查找的执行过程
2提交测试找到或找不到那一步的截图,要全屏,包含自己的学号信息
3课下把代码推送到代码托管平台
实验过程:
分别调用Searching中的binarySearch和linearSearch方法,进行强制类型转换转为Integer类型后查找45和54,运用一个if-else循环来将找到和找不到的不同结果打印出来
实验截图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/153aced90de9741558f0c128630c0226.png)
[](http://images2017.cnblogs.com/blog/1063500/201711/1063500-20171107185159106-97937646
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/8643ba603c6294645fa9dd2c5ff99241.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/fe65a8386a0b3149de1ab9e7cbd55688.png)
代码链接
Searching
SearchingTest
测试四:排序课堂测试
实验要求:1 用JDB或IDEA单步跟踪对3 8 12 34 54 84 91 110进行快速排序的过程
2 提交第一趟完成时数据情况的截图,要全屏,包含自己的学号信息
3 课下把代码推送到代码托管平台
实验过程:
调用Sorting中的quickSort的方法,用for循环将所有元素排序,按照从小到大的顺序打印。
实验截图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/3e2025af234a4f74391b546c8a0221f0.png)
9.png)
测试代码
public class SortingTest1 { public static void main(String[] args) { Comparable []arr = {54, 110, 8, 34 ,84 ,91 ,3,12 ,2306}; System.out.println("未排序:"); for(Comparable num1:arr) System.out.print(num1 +" "); Sorting.quickSort(arr,0,8); System.out.println(""); System.out.println("排序结果:"); for(Comparable num2:arr) System.out.print(num2+ " "); } }
测试五:排序课下作业(上课没有完成实践内容的同学必做)
实验要求:1 给定下列数据:90 8 7 56 123 235 9 1 653
用JDB或IDEA单步跟踪下列算法的执行过程:选择排序,插入排序,希尔排序,冒泡排序,快速排序,归并排序
2 提交每一趟的截图,要全屏,包含自己的学号信息
3 课下把代码推送到代码托管平台
实验过程:
分别调用Sorting中的排序方法,用for循环将所有元素排序,按照从小到大的顺序打印。
实验截图
1、总体测试
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/75af2021cc2155c94f5528d8d5a05c3f.png)
2、快速排序
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/b572396854f15f1ac026f34fc2d47e0c.png)
3、冒泡排序
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/67131e4683ee53e9f76b9d24cab4e1b2.png)
4、归并排序
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/0de2eaea21967a2a74b3f5af36901c7f.png)
5、插入排序
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/d24a8ceabd1eaa48d5238081f02f4059.png)
代码链接
SortingTest1
第六周课堂测试补充
测试一:用链表实现队列
实验要求:1 参考程序15.5给出方法deque,first,isEmpty,size,toString的定义,完成LinkedeQueue类并用Junit进行单元测试(正常,异常,边界情况)
2 提交测试代码运行截图,要全屏,包含自己的学号信息
3课下把代码推送到代码托管平台
实验过程:
1、dequeue方法:从队头删除元素,利用if-else循环判断队列是否为空,为空则返回The queue is empty;不为空则遍历队列中元素,删除队头元素
代码如下:
public T dequeue() throws EmptyCollectionException { if (count == 0) { System.out.println("The queue is empty"); return null; } else { T result = front.getElement(); front = front.getNext(); count--; return result; } }
2、isEmpty方法:判断队列中是否为空
public boolean isEmpty() { return (count == 0); }
3、size方法:判定队列中元素的个数。
public int size() { return count; }
4、toString方法:toString方法是将队列中的各个元素转换成String类型,然后便于打印出来。
public String toString(){ String result = ""; LinearNode<T> current = front; while (current != null) { result = result + (current.getElement()).toString() + "\n"; current = current.getNext(); } return result; } }
5、first方法:检测队列中队头元素:判断队列是否为空,为空则返回The queue is empty;不为空则遍历队列中元素,返回队头元素
public T first() throws EmptyCollectionException { if (count == 0) { throw new EmptyCollectionException("The queue is empty."); } return front.getElement(); }
实验截图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/22/9653e67c5108916e580a9602a8e65000.png)
测试代码
public class LinkedQueueTest extends TestCase{ public void test() { LinkedQueue queue = new LinkedQueue(); queue.enqueue("2016"); queue.enqueue("2306"); queue.enqueue("20162306"); System.out.println(queue.first()); queue.dequeue(); System.out.println(queue.isEmpty()); System.out.println(queue.size()); String num1 = queue.toString(); System.out.println(num1); assertEquals("2306", queue.dequeue()); System.out.println(queue.isEmpty()); System.out.println(queue.size()); String num2 = queue.toString(); System.out.println(num2); } }
代码链接
LinkedQueueTest
测试二:用数组实现循环队列
实验要求:1 参考程序15.6给出方法deque,first,isEmpty,size,toString的定义,完成CireclularArrayQueue类并用Junit进行单元测试(正常,异常,边界情况)
2 提交测试代码运行截图,要全屏,包含自己的学号信息
3课下把代码推送到代码托管平台
实验过程:
1、dequeue方法:从队头删除元素,利用if-else循环判断队列是否为空,为空则返回The queue is empty;不为空则删除队头元素
代码如下:
public T dequeue() throws Stack.EmptyCollectionException { if (isEmpty()) { throw new Stack.EmptyCollectionException("The queue is empty"); } else { T num = queue[front]; queue[front] = null; front = (front + 1) % queue.length; count--; return num; }
2、isEmpty方法:判断队列中是否为空
public boolean isEmpty() { return (count == 0); }
3、size方法:判定队列中元素的个数。
public int size() { return count; }
4、toString方法:toString方法是将队列中的各个元素转换成String类型,然后便于打印出来。
public String toString(){ String result = ""; LinearNode<T> current = front; while (current != null) { result = result + (current.getElement()).toString() + "\n"; current = current.getNext(); } return result; } }
5、first方法:检测队列中队头元素:判断队列是否为空,为空则返回The queue is empty;不为空则遍历队列中元素,返回队头元素
public T first() throws EmptyCollectionException { if (count == 0) { throw new EmptyCollectionException("The queue is empty."); } return front.getElement(); }
测试代码
public class CircularArrayQueueTest extends TestCase { public void test() throws Stack.EmptyCollectionException { CircularArrayQueue Queue = new CircularArrayQueue(); Queue.enqueue("2016"); Queue.enqueue("2306"); Queue.enqueue("20162306"); assertEquals(3,Queue.size()); assertEquals(false,Queue.isEmpty()); assertEquals("2016",Queue.first()); assertEquals("2016",Queue.dequeue()); assertEquals(2,Queue.size()); } }
相关文章推荐
- 2017-2018-1 20155318 《信息安全系统设计基础》第六周课堂测试补充
- 第五周课堂测试补充
- 20155319 课堂测试题补充提交
- 第十六周课堂测试补充
- 20162313苑洪铭 查找练习课堂测试
- 2013-11-11 Oracle 课堂测试 练习题 例:BULK COLLECT及return table
- 课堂测试 二
- 1478 Problem A 总成绩排序(结构体专题)——软四课堂小测试2——2017-12-22
- Contest1100 - 软四课堂小测试4-1203-问题 A: 百鸡问题
- 课堂测试-求子数组和最大值
- 2017年10月9日 课堂查找测试补写博客
- 2017-2018-1 20155315 《信息安全系统设计基础》第八周课堂测试
- 2017-2018-1 20155232 《信息安全系统设计基础》第十周课堂测试(ch06)补交
- # 2017-2018-1 20155319 课堂实践及补充
- 补充轻量级持久层V2版本的测试页面模板与实体类模板
- 软件工程概论课堂测试02
- 通用测试用例补充
- 2017-2018-1 20155305 《信息安全系统设计基础》第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客)
- SQL经典语句__所有语句都经SQL查询分析器测试过(补充中)_AX
- 20155339 2017-2018-1《信息安全系统设计》第四周课堂测试、Makefile以及myod