万年历软件测试实训报告
(35页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
29.9 积分
软件测试实训报告学 院 计算机学院 专 业 软件工程 班 级 2009级3班 学 号 姓 名 王敬哲 指导教师 刘敬勇 (2013年 1月6日) 题目:已知公元1年1月1日是星期一,编程实现一个程序,使得只要输入年月日,程序就能自动回答当天是星期几。编程语言不限,要求分别采用黑盒测试(等价类划分、边界值分析)方法和白盒测试(条件组合覆盖)方法对程序进行测试,给出测试用例。 编程实现:#include #include int k;//全局变量char data[15];void disp(FILE *fq,int t,char *data);/* 检验该年是否为闰年 */int Leap(int year){ if(((year%4==0)&&(year%100!=0))||(year%400==0)) return 1; else return 0;}int Day(int y,int m,int d)//-1年份不合理,-2月份不合理,-3日期不合理{ int day_tab[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int k = Leap(y); if(y<=0||y>9999) return -1;//添加每年日期上限判定------------测试测试添加 else if(m>12||m<=0) return -2;//添加每月日期上限判定------------测试测试添加 else if(m==2&&d>day_tab[m-1]+k) return -3; else if((d>day_tab[m-1]&&m!=2)||d<=0) return -3; int i = 0,n=1; /* 计算该年份(如2010年)1月1日是星期几 */ for(i=1;i'9')&&i<=14&&ch!='/')//出现非数字数据 { while((ch!='\n')&&(ch!='\r')&&(ch!=EOF)) { data[i++] = ch; ch = fgetc(fp); } t = -5; break; }//if else if(ch=='/'&&t<2)//提取年月 { //提取年月 if(t==0) while(j4-t)?j:count; t++; data[i] = ch; ch = fgetc(fp); }//if_elseif_else else//其余情况直接存放 { data[i] = ch;//正常读取数据 ch=fgetc(fp); if(((ch =='\n')||(ch=='\r')||(ch==EOF)||(i==14))&&(t==2))//提取日份 { for(j = 1,day = data[i]-48;data[i-j]!='/';j++) { day = day+(data[i-j]-48)*10; } count = (j>2)?j:count; t=0; } } }//for读取一项数据 data[i] = '\0';//字符串数组结束符 if(t==-5) disp(fq,t,data);// else if(count>0) { t = -4; disp(fq,t,data); } else { t = Day(year,month,day);//计算日期为一个星期第几天 disp(fq,t,data); } }//while}//data_r_wvoid disp(FILE *fq,int t,char data[]){ switch(t) { 关 键 词: 万年历 软件 测试 报告
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。