• 软件测试——闰年


    一、软件要求

      关于闰年(leap year)的判定,是非常简单的。给定一个年份,若该年能被4整除,但却不能被100整除,或者可以被400整除,则我们认定该年为闰年,否则便为平年。

      对于正常的用户,若按要求输入任意年份,我们都能给予判定是否为闰年。但是,对于一些非法用户,他们可能并不会按要求进行输入。比如,可能有点用户并不是输入的年份,而是一些字符串或非正整数,例如2012abc,-1868,2015.5等等。对于这些非法的输入,如果我们不做相应的处理,可能将会导致程序崩溃甚至造成更大的危害。

    二、测试分析

      对于可能出现的情况,我做了如下分析:

    编号 输入 期望输出
    1 2012 2012 is leap year
    2 1900 1900 is nonleap year
    3 2000 2000 is nonleap year
    4 2015 2015 is nonleap year
    5 2015abc Input Invalid
    6 2015.5 Input Invalid
    7 -2015 Input Invalid

    三、测试代码

    #include <iostream>
    #include <sstream>
    
    using namespace std;
    
    void CheckLeapYear(string year){
        for(int i = 0; i < year.size();i++){
            if(year.at(i)>'9' || year.at(i) < '0'){
                cout << "Input Invalid!"<< endl;
                return;
            }
        }
    
        stringstream ss;
        int num;
        ss << year;
    
        if(!ss.good()){
            cout << "stringstream error!" << endl;
        }
        ss >> num;
        if((num % 4 == 0 && num % 100 != 0)|| num % 400 == 0)
            cout << num << " is leap year!"<< endl;
        else
            cout << num << " is nonleap year!"<< endl;
    }
    
    int main()
    {
        string year;
        cout << "Please input a year: ";
        while(cin >> year){
            CheckLeapYear(year);
            cout << "
    Please input a year: ";
        }
    
        return 0;
    }
    

      

    四、测试结果

  • 相关阅读:
    MySQL开发规范与使用技巧总结
    Anaconda3(在D盘)安装jieba库具体步骤
    Python的reshape的用法
    oom和cpu负载的定位
    接口安全设计
    恍然间
    java原子类
    设计模式
    微服务
    常见的代码优化
  • 原文地址:https://www.cnblogs.com/zf-1573/p/4398496.html
Copyright © 2020-2023  润新知