测试帖链接:http://www.cnblogs.com/wangkunhuang/p/6591939.html

问题答复:

闰年2月28和平年2月27日的问题,当时只考虑了最后一天的情况,之前都是直接复制黏贴前一部分的代码,在修改时忘了记范围;

把isLeapYear单独分开是为了不让if语句变得太长。

修改后代码:

 1 package com.test;
 2 import java.util.Scanner;
 3 public class TestPractice {
 4     /*闰年判断
 5      * 返回值为true:该年为闰年
 6      * 返回值为false:该年为平年
 7     */
 8     public static boolean isLeapYear(int y)
 9     {
10         if((y % 4 == 0 && y % 100 != 0)||y % 400 == 0)
11             return true;
12         else
13             return false;
14     }
15
16     //下一天判断,返回值为下一天的日期,格式是xxxx年x月x日
17     public static String NextDate(int y, int m, int d)
18     {
19         //判断年份是否超出范围
20         if(1912 <= y && y <= 2050)
21         {
22             //判断月份是否超出范围
23             if(1 <= m && m <= 12)
24             {
25                 //大月判断,每个月只有31天
26                 if(m == 1||m == 3||m == 5||m == 7||m == 8||m ==10||m == 12)
27                 {
28                     if(1 <= d && d < 31)
29                         return y+"年"+m+"月"+(d+1)+"日";
30                     else if(d == 31)
31                     {
32                         if(m == 12)
33                             return (y+1)+"年1月1日";
34                         else
35                             return y+"年"+(m+1)+"月1日";
36                     }
37                     else
38                         return "日期超出范围";
39                 }
40                 //小月判断,每个月只有30天
41                 else if(m == 4||m == 6||m == 9||m == 11)
42                 {
43                     if(1 <= d && d < 30)
44                         return y+"年"+m+"月"+(d+1)+"日";
45                     if(d == 30)
46                         return y+"年"+(m+1)+"月1日";
47                     else
48                         return "日期超出范围";
49                 }
50                 /*二月份在平年和闰年天数不同
51                  * 所以需要分开统计
52                  * */
53                 else
54                 {
55                     if(isLeapYear(y))
56                     {
57                         if(1 <= d && d < 29)
58                             return y+"年"+m+"月"+(d+1)+"日";
59                         if(d == 29)
60                             return y+"年"+(m+1)+"月1日";
61                         else
62                             return "日期超出范围";
63                     }
64                     else
65                     {
66                         if(1 <= d && d < 28)
67                             return y+"年"+m+"月"+(d+1)+"日";
68                         if(d == 28)
69                             return y+"年"+(m+1)+"月1日";
70                         else
71                             return "日期超出范围";
72                     }
73                 }
74
75             }
76             else
77                 return "月份超出范围";
78         }
79         else
80         {
81             return "年份超出范围";
82         }
83
84     }
85
86     public static void main(String[] args) {
87         Scanner scan = new Scanner(System.in);
88         while(true)
89         {
90             System.out.print("请输入日期:");
91             int y = scan.nextInt();
92             if(y == -1) break;
93             int m = scan.nextInt();
94             int d = scan.nextInt();
95             System.out.println(NextDate(y,m,d));
96         }
97     }
98
99 }

修正体会:

修正后让自己明白了在写完代码后应该回头检查一遍,不能过于追求速度,得以及时把那些能直接发现的问题直接找出来,以便减少bug的存在。

代码修改部分  if(1 <= d && d < 29) 、 if(1 <= d && d < 28) 、 if(1 <= d && d < 31) 、  if(1 <= d && d < 30) ,原先没有吧每个月的倒数第二天包括在内,判定时直接使用了'<'号,本应该是使用'<='或者把天数在扩大一天

心得体会:

通过对白盒测试部分的学习,明白了一些基本的覆盖方式,如语句覆盖、条件覆盖等,通过对这部分的学习能使得自己的代码变得更容易测试,更容易今早的发现一些基本的问题。

转载于:https://www.cnblogs.com/ElliotBaird/p/6613215.html

第二次作业+105032014149相关推荐

  1. 丁贵才130702010042第二次作业

    第二次作业 2.9 设有如下语句,请用相应的谓词公式分别把它们表示出来: (1)有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花有喜欢梅花. 解:定义谓词 P(x):x是人 L(x,y):x喜欢y y ...

  2. 20189317 《网络攻防技术》 第二周作业

    一.黑客信息 (1)国外黑客 1971年,卡普尔从耶鲁大学毕业.在校期间,他专修心理学.语言学以及计算机学科.也就是在这时他开始对计算机萌生兴趣.他继续到研究生院深造.20世纪60年代,退学是许多人的 ...

  3. mysql 三阶多项式拟合_2014年9月份考试机械CAD_CAM第二次作业

    2014年9月份考试机械CAD/CAM第二次作业 一.单项选择题(本大题共40分,共 20 小题,每小题 2 分) 1. 在CAD作业中,采用数据文件形式来处理工程数表.线图数据,其目的是() A. ...

  4. 2021年春季学期-信号与系统-第二次作业参考答案-第十小题

    本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第十题 10 从网络学堂下载代表两个信号的音频文件: 音频文件: f1(t)f_1 \left( t \right)f1​( ...

  5. 2021年春季学期-信号与系统-第二次作业参考答案-第九小题

    本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第九题 9. 已知三个系统的输入输出关系分别为: 把上述三个子系统进行如下的级联,求系统的输入输出关系,它是线性.时不变系统 ...

  6. 2021年春季学期-信号与系统-第二次作业参考答案-第八小题

    本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第八题 8. 判断下列系统是否为线性.时不变.因果? (1)第一小题 r(t)=ddte(t)r\left( t \righ ...

  7. 2021年春季学期-信号与系统-第二次作业参考答案-第七小题

    本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第七题 7. 判断下列系统是否可逆.若可逆,给出它的逆系统:若不可逆,指出使该系统产生相同输出的两个输入信号. 判断系统是否 ...

  8. 2021年春季学期-信号与系统-第二次作业参考答案-第六小题

    本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第六题 6. 有一线性时不变系统, 当激励e1(t)=u(t)e_1 \left( t \right) = u\left( ...

  9. 2021年春季学期-信号与系统-第二次作业参考答案-第五小题

    本文是 2021年春季学期-信号与系统-第二次作业参考答案 的参考答案. ▌第五题 5. Consider a LTI systems whose response to the singal x1( ...

最新文章

  1. 深入理解XGBoost,优缺点分析,原理推导及工程实现
  2. Jconsole远程监控Tomcat
  3. C#打印控件的使用实例
  4. JAVA中int、String的类型转换
  5. Java web后端5 JSP技术
  6. 和push的区别_还没有理解let 和 const的用法和区别吗,几百字让你立马搞懂
  7. 361766103.jpg
  8. x86从实模式到保护模式 pdf_【自制操作系统04】从实模式到保护模式
  9. Docker学习总结(43)——Docker Compose 搭建Mysql主从复制集群
  10. python读取us7ascii字符集Oracle数据库中文乱码问题的解决方案
  11. js实现几种依次打印1的方法
  12. window 7 计算机配置,Windows7操作系统要求电脑配置
  13. 服务器异常宕机引发的mysql故障
  14. python数据分析:Pandas
  15. 设有如下定义:char *aa[ ]={abcd,ABCD };则以下说法正确的是 A aa 数组成元素的值分别是abcd和ABCD B aa是指针变量,它指向含有两个数组元
  16. 英语模板作文,词组,句子,句型,开头
  17. (转)Sublime Text 2 设置文件详解
  18. 基于STM32的AD9854模块调试总结
  19. 2K和XP的CMD命令教程(命令篇)
  20. Java · 认识 String 类(上)· 创建字符串 · 字符串比较相等 · 字符串常量池 · 字符串不可变 · 字符字节与字符串

热门文章

  1. 介绍ML.NET——面向.NET开发人员的机器学习库
  2. springboot+vue+element+mybatisplus项目(前端)
  3. ssm框架数据查询一直为null
  4. 模拟轮盘抽奖游戏 python_“吃鸡”4位美女在现实中,穿上游戏的“新军需”,这身材绝了...
  5. PHP 5.6 中 Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future
  6. linux查询匹配个数,查找与linux中目录中的模式匹配的文件数
  7. matlab创建nc文件怎么打开,MATLAB打开nc文件并读取nc文件数据
  8. css 入场动画_React系列十四 React过渡动画
  9. 管理系统页面脚手架(一)
  10. css定位能用android,绝对的CSS定位显示android html上的空白区域