判断是否为闰年的程序
C++代码
#include <bits/stdc++.h>
int main()
{
std::string ys;
std::cin >> ys;
std::stringstream ss;
ss << ys;
double yd;
ss >> yd;
if (yd != int(yd) || yd <= 0 || yd >= 10000)
{
std::cout << "y非法" << std::endl;
return 0;
}
int y = yd;
if (y % 4 || !(y % 100) && y % 400)
{
std::cout << "y不是闰年" << std::endl;
return 0;
}
std::cout << "y是闰年" << std::endl;
return 0;
}
程序流程图
控制流图
测试用例
语句覆盖
测试用例 | 覆盖语句 |
---|
y=10086 | 1-2-3-4 |
y=4 | 1-2-3-5-6-7 |
y=100 | 1-2-3-5-6-8-9 |
判定覆盖
测试用例 | 覆盖分支 |
---|
y=3.14 | 1(y不是整数) |
y=-1 | 1(y是整数)、2(y<=0) |
y=10086 | 1(y是整数)、2(y>0)、3(y>=10000) |
y=3 | 1(y是整数)、2(y>0)、3(y<10000)、5(4不整除y) |
y=4 | 1(y是整数)、2(y>0)、3(y<10000)、5(4整除y)、6(100不整除y) |
y=400 | 1(y是整数)、2(y>0)、3(y<10000)、5(4整除y)、6(100整除y)、8(400整除y) |
y=100 | 1(y是整数)、2(y>0)、3(y<10000)、5(4整除y)、6(100整除y)、8(400不整除y) |
路径覆盖
测试用例 | 覆盖路径 |
---|
y=3.14 | 1-4 |
y=-1 | 1-2-4 |
y=10086 | 1-2-3-4 |
y=3 | 1-2-3-5-9 |
y=4 | 1-2-3-5-6-7 |
y=400 | 1-2-3-5-6-8-7 |
y=100 | 1-2-3-5-6-8-9 |