前言

以下内容是本周Bag代码的课后作业,要求是完成伪代码、产品代码和测试代码,为了书写方便我将伪代码以注释的形式写在了产品代码的后面

测试步骤

1.首先对Bag类引用BagInterface的代码进行复写

2.查阅读Baginterface中需要实现方法的要求,并查找ArrayList中方法的说明,写出如下代码

public class Bag<T> implements BagInterface<T> { //公共接口
ArrayList<T> lxr=new ArrayList<T>();//新声明一个变量 @Override
public int getCurrentSize() {//返回lxr的容量
return lxr.size();
} @Override
public boolean isEmpty() {//检查Bag是否为空 return lxr.isEmpty();
} @Override
public boolean add(T newEntry) {//增加一个可进行添加任何东西T的方法add
lxr.add(newEntry);
return false;
} @Override
public T remove() { return null;
} @Override
public boolean remove(T anEntry) {//移除anEntry
lxr.remove(anEntry);
return false;
} @Override
public void clear() {//移除列表的所有元素
lxr.clear();
} @Override
public int getFrequencyOf(T anEntry) {//返回一个元素在Bag中出现的次数
int a=0;
for(int i=0;i<lxr.size();i++)
{
if (anEntry==lxr.get(i)){
a++;
} }
return a;
} @Override
public boolean contains(T anEntry) {//如果此列表中包含指定的元素,则返回 true。
lxr.contains(anEntry);
return false;
}
}

3.编写JUNIT3测试代码

首先在Bag中放入6个元素,为了方便测试,删去最后一个元素

 Bag mybags = new Bag();
mybags.add("book1");
mybags.add("book2");
mybags.add("book3");
mybags.add("book4");
mybags.add("book1");
mybags.add("SB");
mybags.remove("SB");

然后测试getCurrentSize(),assertEquals(5,mybags.getCurrentSize());测试是否为5个元素。

测试bag中的内容是否为空,assertEquals(mybags.isEmpty(),false);

测试add方法,检查Bag中是否含有book1,assertEquals(true,mybags.contains("book1"));

测试remove方法,检查Bag中是否含有“SB”,assertEquals(true,mybags.contains("SB"));

测试GetFrequencyOf,检查book1出现的次数是否为2,assertEquals(2,mybags.getFrequencyOf("book1"));

最后测试clear方法

    mybags.clear();
assertEquals(true,mybags.isEmpty());



测试完成

我的码云Bag

测试代码

20162320刘先润第三周Bag类测试的更多相关文章

  1. MOOC C++笔记(三):类和对象提高

    第三周:类和对象提高 this指针 作用 this指针作用就是指向成员函数所作用的对象. 非静态成员函数中可以直接使用this来代表指向该函数作用的指针. 成员函数中默认有一个this指针指向当前对象 ...

  2. 20162330 第三周 蓝墨云班课 泛型类-Bag 练习

    目录 题目及要求 思路分析 遇到的问题和解决过程 代码实现及托管链接 感想 参考资料 题目及要求 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息: 参见Bag的UML图, ...

  3. 2017-2018-1 Java演绎法 第三周 作业

    团队任务:团队展示与选题 团队展示 队员学号及姓名 学号 姓名 主要负责工作 20162315 马军 日常统计,项目部分代码 20162316 刘诚昊 项目部分代码,代码质量测试 20162317 袁 ...

  4. 20145213《Java程序设计》第三周学习总结

    20145213<Java程序设计>第三周学习总结 教材学习内容总结 正所谓距离产生美,上周我还倾心于Java表面的基础语法.其简单的流程结构,屈指可数的基本类型分类,早已烂熟于心的运算符 ...

  5. 20145304 Java第三周学习报告

    20145304 <Java程序设计>第三周学习总结 教材学习内容总结 1.定义类: 类定义时使用class关键词,建立实例要使用new关键词. 代码如下: /*定义类 书上例子 衣服的型 ...

  6. 20145330《Java程序设计》第三周学习总结

    20145330 <Java程序设计>第三周学习总结 第三周知识的难度已经逐步上升,并且一周学习两章学习压力也逐渐加大,需要更高效率的来完成学习内容,合理安排时间. 类与对象 对象(Obj ...

  7. 20145337《Java程序设计》第三周学习总结

    20145337 <Java程序设计>第三周学习总结 教材学习内容总结 类与对象 类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例.我觉得在视频中对类与对象关系的描 ...

  8. 20145218 《Java程序设计》第三周学习总结

    20145218 <Java程序设计>第三周学习总结 教材学习内容总结 定义类 编写程序要产生对象就要先定义类.类是对象的设计图,对象是类的实例.类定义时使用class关键词,建立实例时, ...

  9. 《Java程序设计》第三周学习总结

    20145224-陈颢文 <Java程序设计>第三周学习总结 教材学习内容总结 一.定义类: ·类定义时使用class关键字,要对类中变量(值域成员/对象数据成员)行类型声明. class ...

随机推荐

  1. 解决无法同步 OneNote 的问题

    在本地创建的笔记本,无法共享到云端,显示无法连接onedrive. 关闭改笔记本,重新连接共享. 参考: https://support.office.com/zh-cn/article/%E8%A7 ...

  2. jQuery UI Autocomplete Combobox 配 ASP.NET DropDownList

    0.引言   1.起因                  一开始使用Autocomplete做了一个自动补全的文本框,如上图.后来因业务需要希望能在这个文本框的边上做个下拉列表按钮,一按就展开所有支持 ...

  3. PHP二维数组搜索返回数组

    $ar = array( 2 => array( 'catid' => 2, 'catdir' => 'notice', ), 5 => array( 'catid' => ...

  4. javascript右键菜单分析

    右键菜单 思路 1.遮蔽原来的默认右键菜单 2.新建右键菜单跟随鼠标移动 3.注意边界处的位置变化 4.自定义右键内容的具体效果 具体 这样的事件涉及到有关contextmenu事件,阻止默认事件,获 ...

  5. sass学习笔记--摘录

    //$a: Helvetica, sans-serif //$b: #333 // //body //font: 100% $a //color: $b //$a: red //body //colo ...

  6. 【BZOJ4652】【NOI2016】循环之美(莫比乌斯反演,杜教筛)

    [BZOJ4652]循环之美(莫比乌斯反演,杜教筛) 题解 到底在求什么呢... 首先不管他\(K\)进制的问题啦,真是烦死啦 所以,相当于有一个分数\(\frac{i}{j}\) 因为值要不相等 所 ...

  7. [ZOJ3435]Ideal Puzzle Bobble

    题面戳我 题意:你现在处于\((1,1,1)\),问可以看见多少个第一卦限的整点. 第一卦限:就是\((x,y,z)\)中\(x,y,z\)均为正 sol 首先L--,W--,H--,然后答案就变成了 ...

  8. [BZOJ3207] 花神的嘲讽计划Ⅰ (主席树)

    Description 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天D ...

  9. IE浏览器右键菜单插件开发(上篇)——自定义一个IE右键菜单项

    要做一个IE右键浏览器插件,得3步走. 第一,在IE右键菜单上添加自定义菜单名称,是通过注册表实现的,如下: string regkey = @"Software\Microsoft\Int ...

  10. linux同步与通信

    这几天读完了UNP v2,对进程间通信与同步的方式有所了解,现对主要的知识点总结如下: 根据出现的历史,先有的管道,FIFO,信号,然后是systemV IPC,再是后来的Poxis IPC,syst ...