#include
struct days
{
int year;
int month;
int date;
}day;
void main()
{
struct days *p;
int num=0,i;
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
p=&day;
printf("please input the day: ");
scanf("%d%d%d",&(p->year),&(p->month),&(p->date));
for(i=0;i<(p->month);i++)
num+=m[i];
num+=(p->date);
if((p->year)%4==0&&(p->year)%100!=0||(p->year)%400==0)
if((p->month)>2)
num++;
printf("This day is %d day in the year. ",num);
}
(1)画出此程序主函数的控制流程图。
答:
(2)设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该程序的语句或分支覆盖率无法达到100%,需说明为什么。
答:为了达到100%的语句覆盖率,要设计测试用例,使其为闰年且月份大于2,另外不满足此条件。由于此程序不包含输入出错处理,所以我们特意定义一个month小于0的情况。