20155308 2016-2017-2《Java程序设计》课堂实践项目 5/17

本次因为git出现了问题,所以没有按时提交我的代码

问题一

  • 在IDEA中对P145 MathTool.java 使用JUnit进行单元测试,测试用例不少于三个,要包含正常情况,边界情况。

  • 提交测试代码和运行结果截图,加上学号水印,提交码云代码链接。

    -MathTool代码:

  1. public class MathTool {
  2. public static int sum(int... numbers) {
  3. int sum = 0;
  4. for(int number : numbers){
  5. sum += number;
  6. }
  7. return sum;
  8. }
  9. }

测试代码:

  1. import junit.framework.TestCase;
  2. import org.junit.Test;
  3. import static org.junit.Assert.*;
  4. public class MathToolTest extends TestCase {
  5. int[] numbers1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  6. int[] numbers2 = {0};
  7. int[] numbers3 = {1,2,3,4,55};
  8. @Test
  9. public void testSum() {
  10. assertEquals(55, MathTool.sum(numbers1));
  11. assertEquals(0, MathTool.sum(numbers2));
  12. assertEquals(65, MathTool.sum(numbers3));
  13. }
  14. }

代码编程中的问题

本次考察主要是注意边界值的测试,我进行了三组测试用例,分别对范围内的值和范围外的值进行了测试。

问题二

  • 设计并实现一个Book类,定义义成Book.java,Book 包含书名,作者,出版社和出版日期,这些数据都要定义getter和setter。定义至少三个构造方法,接收并初始化这些数据。覆盖(Override)toString方法,返回良好的含有多行的书的描述信息。覆盖equals方法,书名,作者,出版社和出版日期完全一致才说明两本书是一样的。

  • 创建一个测试类Bookshelf, 其中的main方法创建并更新几个Book对象。Book至少包含三本本学期教材内容。

  • Book.java

  1. public class Book {
  2. private String name;
  3. private String author;
  4. private String printer;
  5. private int date;
  6. public Book(String name, String author, String printer, int date) {
  7. this.name = name;
  8. this.author = author;
  9. this.printer = printer;
  10. this.date = date;
  11. }
  12. public Book() {
  13. this("book","author","printer",20170517);
  14. }
  15. public Book(int date) {
  16. this("book","author","printer",date);
  17. }
  18. public String getName() {
  19. return name;
  20. }
  21. public String getAuthor() {
  22. return author;
  23. }
  24. public String getPrinter() {
  25. return printer;
  26. }
  27. public int getDate() {
  28. return date;
  29. }
  30. public void setName(String name) {
  31. this.name = name;
  32. }
  33. public void setAuthor(String author) {
  34. this.author = author;
  35. }
  36. public void setPrinter(String printer) {
  37. this.printer = printer;
  38. }
  39. public void setDate(int date) {
  40. this.date = date;
  41. }
  42. @Override
  43. public String toString() {
  44. return "Book{" +
  45. "name='" + name + '\'' +
  46. ", author='" + author + '\'' +
  47. ", printer='" + printer + '\'' +
  48. ", date=" + date +
  49. '}';
  50. }
  51. @Override
  52. public boolean equals(Object o) {
  53. if (this == o) return true;
  54. if (o == null || getClass() != o.getClass()) return false;
  55. Book book = (Book) o;
  56. if (date != book.date) return false;
  57. if (name != null ? !name.equals(book.name) : book.name != null) return false;
  58. if (author != null ? !author.equals(book.author) : book.author != null) return false;
  59. return printer != null ? printer.equals(book.printer) : book.printer == null;
  60. }
  61. }
  • Bookshelf
  1. public class Book {
  2. private String name;
  3. private String author;
  4. private String printer;
  5. private int date;
  6. public Book(String name, String author, String printer, int date) {
  7. this.name = name;
  8. this.author = author;
  9. this.printer = printer;
  10. this.date = date;
  11. }
  12. public Book() {
  13. this("book","author","printer",20170517);
  14. }
  15. public Book(int date) {
  16. this("book","author","printer",date);
  17. }
  18. public String getName() {
  19. return name;
  20. }
  21. public String getAuthor() {
  22. return author;
  23. }
  24. public String getPrinter() {
  25. return printer;
  26. }
  27. public int getDate() {
  28. return date;
  29. }
  30. public void setName(String name) {
  31. this.name = name;
  32. }
  33. public void setAuthor(String author) {
  34. this.author = author;
  35. }
  36. public void setPrinter(String printer) {
  37. this.printer = printer;
  38. }
  39. public void setDate(int date) {
  40. this.date = date;
  41. }
  42. @Override
  43. public String toString() {
  44. return "Book{" +
  45. "name='" + name + '\'' +
  46. ", author='" + author + '\'' +
  47. ", printer='" + printer + '\'' +
  48. ", date=" + date +
  49. '}';
  50. }
  51. @Override
  52. public boolean equals(Object o) {
  53. if (this == o) return true;
  54. if (o == null || getClass() != o.getClass()) return false;
  55. Book book = (Book) o;
  56. if (date != book.date) return false;
  57. if (name != null ? !name.equals(book.name) : book.name != null) return false;
  58. if (author != null ? !author.equals(book.author) : book.author != null) return false;
  59. return printer != null ? printer.equals(book.printer) : book.printer == null;
  60. }
  61. }

# 20155308 2016-2017-2《Java程序设计》课堂实践项目 5月17日的更多相关文章

  1. java课堂实践(5月17日)20155317 王新玮

    对P145 MathTool.java 代码托管 在IDEA中,使用JUnit进行单元测试,测试用例不少于三个,要包含正常情况,边界情况.提交测试代码和运行结果截图,加上学号水印,提交码云代码链接. ...

  2. MyOD课堂实践(5月31日)20155318

    MyOD课堂实践(5月31日)20155318 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 (码云链接) 代码 import java.io ...

  3. 20155308 2016-2017-2《Java程序设计》课堂实践项目

    20155308 2016-2017-2<Java程序设计>课堂实践项目 在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅 ...

  4. 《Java 程序设计》课堂实践项目-Arrays和String单元测试

    <Java 程序设计>课堂实践项目-Arrays和String单元测试 课后学习总结 目录 改变 Arrays和String单元测试实验要求 课堂实践成果 课后思考 改变 修改了博客整体布 ...

  5. 20155322 《Java程序设计》课堂实践项目 数据库-3-4

    20155322 <Java程序设计>课堂实践项目 数据库-3-4 数据库-3 实践要求 参考教材代码完成下面的要求,提交能连接到world的截图(有学号水印),并提交代码的码云链接.查询 ...

  6. 20155322 《Java程序设计》课堂实践项目MyOD

    20155322 <Java程序设计>课堂实践项目MyOD 实践要求 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 提交测试代码和 ...

  7. 《Java 程序设计》课堂实践项目-命令行参数

    <Java 程序设计>课堂实践项目 课后学习总结 目录 改变 命令行参数实验要求 课堂实践成果 课后思考 改变 修改了博客整体布局,过去就贴个代码贴个图很草率,这次布局和内容都有修改.加了 ...

  8. 《Java 程序设计》课堂实践项目 课后学习总结

    <Java 程序设计>课堂实践项目 课后学习总结 String类的使用(sort) 目录 Linux命令(sort) 课堂实践 课后思考 学习老师的代码之后的思考:int与Integer ...

  9. 《Java 程序设计》课堂实践项目汇总链接

    1.<Java 程序设计>课堂实践项目-命令行参数 2.<Java 程序设计>课堂实践项目-mini dc 3.<Java 程序设计>课堂实践项目-Arrays和S ...

随机推荐

  1. HttpClient简述

    HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率 ...

  2. ZooKeeper教程(一)----Centos7下安装ZooKeeper(单机版)

    1.下载源码 官网下载地址: http://mirrors.hust.edu.cn/apache/zookeeper/ 选择最新的版本进行下载 这里选择3.4.10进行下载: wget http:// ...

  3. codeforces A. Supercentral Point 题解

    版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/,未经本作者同意不得转载. https://blog.csdn.net/kenden23/article ...

  4. z-index终结者

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/30280627         z-in ...

  5. 程序人生:02我来告诉你,一个草根程序员如何进入BAT

    本文摘自左潇龙博客,原文出处:http://www.cnblogs.com/zuoxiaolong/p/life54.html 引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字 ...

  6. 【转】Faster RCNN 原理

    看过好几篇讲Faster RCNN的文章,有一些基础以后,看这个文章是最好的. https://www.cnblogs.com/wangyong/p/8513563.html

  7. 反向ajax实现

    在过去的几年中,web开发已经发生了很大的变化.现如今,我们期望的是能够通过web快速.动态地访问应用.在这一新的文章系列中,我们学习如何使用反 向Ajax(Reverse Ajax)技术来开发事件驱 ...

  8. [Python 网络编程] TCP Client (四)

    TCP Client 客户端编程步骤: 创建socket对象 连接到服务端的ip和port,connect()方法 传输数据 使用send.recv方法发送.接收数据 关闭连接,释放资源 最简单的客户 ...

  9. TCP连接三次握手协议,释放连接四次挥手,以及使用 awl伪造mac地址进行多线程syn洪泛攻击。

    这个TCP连接就是一次追女生-谈恋爱-分手,追求比分手简单,但是分手比追求复杂.哥,谈了半年的女朋友,在就快要成功了的时候分了,原因是因为有人在后面该老子背后搞SYN洪泛攻击,最后女朋友丢失了.学会T ...

  10. CSU 1598 最长公共前缀 (简单KMP或者暴力)

    Submit Page    Summary    Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 226     Solved: ...