实验指导书
结构性测试
1 实验类型
实验类型为综合型,4 个学时。
2 实验目的
掌握结构性测试技术,并能应用结构性测试技术设计测试用例;
3 实验设备
主流 PC 机一套,要求安装windows 操作系统和Office 工具;
4 实验内容
(1) 修改实验一完成的程序,使之只包含结构化程序设计构造;
(2) 画出程序图,并计算圈复杂度;
(3) 采用基路径方法,设计测试用例,要求写出每个测试用例的执行路径(用语句编号表示),根据设计的测试用例对程序进行测试;
(4) 采用定义/使用测试方法,列出程序中每个变量的定义-使用路径,并指明此路径是否是变量的定义清除路径。
5 实验要求
(1) 根据题目要求修改程序,并编写测试用例;
(2) 实验结果要求给出测试用例测试结果以及程序变量的定义-使用路径表;
(3) 撰写实验报告。
实验代码
#include<iostream>
using namespace std;
int main() {
cout << "*****隔一日问题:请输入1900年-2050年间某日期(xxxx年xx月xx日)*****" << endl;
int init_year, init_month, init_day;
int year, month, day;
int flag = 1;
int leap = 0;
while (flag == 1)
{
cout << "\n————————————————————————" << endl;
cout << "输入原始日期,全为0时结束程序!\n" << endl;
cout << "年:"; cin >> year;
cout << "月:"; cin >>month;
cout << "日:"; cin >> day;
init_day = day ; init_month = month; init_year = year;
//闰年
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
leap = 1;
}
else {
leap = 0;
}
//求隔一日
if (day <= 26)
{
day = day + 2;
}
else
{
switch (day) {
case 27:
{
if (month == 2 && leap == 0)
{
day = 1;
month = 3;
}
else {
day = day + 2;
}
break;
}
case 28:
{
if (month == 2)
{
if (leap == 0)
{
day = 2;
month = 3;
}
else {
day = 1;
month = 3;
}
}
else{
day = day + 2;
}
break;
}
case 29:
{
if (month == 2)
{
day = 2;
month = 3;
}
else if (month == 4 || month == 6 || month == 9 || month == 11)
{
day = 1;
month++;
}
else{
day = day + 2;
}
break;
}
case 30: {
if (month == 4 || month == 6 || month == 9 || month == 11)
{
day = 2;
month++;
}
else if (month == 12)
{
day = 1;
month = 1;
year++;
}
else {
day = 1;
month++;
}
break;
}
default:
{
if (month == 12)
{
day = 2;
month = 1;
year++;
}
else {
day = 2;
month++;
}
break;
}
}
}
cout << init_year << "年" << init_month << "月" << init_day << "日的隔一日日期为:"
<< year << "年" << month << "月" << day << "日" << endl;
}
return 0;
}