• 闰年测试


    一、程序要求

      对于输入的年份,判断是否是闰年。

      是闰年则输出“该年份为闰年”,不是闰年则输出“该年份不是润年”。

      对于非法的输入,返回错误信息。

    二、测试用例

    序号  测试用例 期望输出 实际输出
    1 0 该年份为闰年 该年份为闰年
    2 1999 该年份不是润年 该年份不是润年
    3 2000 该年份为闰年 该年份为闰年
    4 2008 该年份为闰年 该年份为闰年

    三、关键代码

    #include <cstdio>
    #include <cstdlib>

    int main()
    {
      int year;
      while(~scanf("%d",&year))
      {
        printf(((year % 4 == 0 && year % 100 != 0) ||year%400==0) ? "该年份是闰年 " : "该年份不是闰年 ");
        system("pause");
      }
      return 0;
    }

    四、测试结果

    从结果中可以看出,对于非法字符,程序没有做任何处理,因此造成了输出的错误。因此,下面将使用对程序进行改进。

    五、非法输入检测的改进

      对于字符串转换:

      在C标准库里面,可以使用atoi函数。

      在C++标准库里面,使用stringstream函数。

      在java或者c#中,都可以使用parse函数。

      这里以java中的parse函数为例:

    public static boolean tryParse(String str){
      try{
        Integer.parseInt(str);
        return true;
      }
      catch(NumberFormatException e){
        e.printStackTrice();
        return false;
      ]
    }

      用户输入的数字正确,将会返回true,输入非法字符,将会返回false,并且抛出NumberFormatException异常.

    这将达到判断非法输入的功能。

  • 相关阅读:
    Java设计模式
    一个接口多个实现类的Spring注入方式
    Mybatis 中的<![CDATA[ ]]>浅析
    方法内调另一个方法(事务)的探讨
    insertSql语句中的trim标签的使用
    Mybatis-plus的两种分页插件的配置方式
    Mybatis-plus的使用
    spring的IOC,DI及案例详解
    MySQL多表关联数据同时删除
    @Validated和@Valid区别
  • 原文地址:https://www.cnblogs.com/byzantine/p/4397827.html
Copyright © 2020-2023  润新知