题目:
已知公元1年1月1日是星期一。请编写一个程序,只要输入年月日,就能自动回答当天是星期几。
要求:
为测试该程序的方便,请将计算星期的算法尽量放入一个函数中,输入和输出检查可用其它函数来处理。
为简单起见,不考虑公元前的日期。
提示:
(a) 解答思路:计算输入日期与公元1年1月1日所相差的天数,具体如下:
总天数=公元1年到输入日期上一年年底天数+输入年份的1月到上月月底天数+输入日期的天数
(b) 闰年满足条件:(year%4==0)&&(year%100!=0)||(year%400==0)
(1)分析各种输入情况,结合程序输出结果,进行等价类划分,并给出详细测试用例
(2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例
(3)决策表测试法
①列出输入变量month、 day、 year的有效等价类;(条件桩)
②分析程序的规格说明,给出问题规定的可能采取操作;(动作桩)
③画出决策表(简化)
④根据决策表,给出详细测试用例
我给出的软件设计程序如下所示:
# include <iostream>
using namespace std;
const int start_year=1;
int main()
{
while(true)
{
cout<<"/t ****Welcome to the Date Management system****"<<std::endl;
cout<<"/t The start day is 0001-01-01 Monday!"<<std::endl;
cout<<"/t Please type the date like this : /n"
<<"/t (year month day)"
<<"/t"
<<std::endl; //开头