《Java 语言》课程作业 (第一次) 题 目 第 2 题 学 院 计算机学院 专 业 网络工程 班 别 学 号 姓 名 2012 年 4 月 6 日 许树炯——《Jav a 语言》课程作业(第一次) 2 一、课程题目 输入某年某月某日,判断这一天是这一年的第几天? 二、题目分析与设计 1. 论述题目的需求。 题目需要输入一个日期(年、月、日),判断日期是否正确,然后判断这一天是这一年的第几天,输出结果 2. 制定对应程序的功能,对各个功能及其分解成的子功能作出相应阐述,。 输入功能:输入年月日数值并赋给相应的整型变量 y ear,month,day ; 日期正误功能:判断 y ear 是否大于 0,是否为闰年; 判断 month 是否大于 0 且小于等于 12; 判断 day 是否大于 0 且小于该月份的最大天数; 重新输入功能:如果日期有误,返回上层重新输入日期; 日期计算功能:根据 y ear,month,day 判断该日期使这一年的第几天; 输出功能:输出结果; 3. 绘制程序功能层次图和程序结构流程图。 功能层次图 结构流程图 4. 注明所使用的开发环境(Eclipse、NetBeans,JBu ilder),解析关键代码部分的实现。 开发环境:my eclipse 8.5 关键代码: if(year<1)a=true;//判断年份是否出错 输入 判断天数 判断正误 输出 许树炯——《Java 语言》课程作业(第一次) 3 if(month>12 || month<1)b=true;//判断月份是否出错 int dayOfMonth[] = {31,28,31,30,31,30,31,31,30,31,30,31}; //将每个月的日期写在数组里 if(IsLeapYear(year))dayOfMonth[1]=29;//如果是闰年的话2月天数变为29 if(month>11 || month<1)i=true; else{ temporaryDay = dayOfMonth[month-1]; if(day<1 || day>temporaryDay) i = true;//判断日期是否正确 } return i; if(year%4==0 && year%100!=0 || year%400==0)i=true;//判断闰年与否 for(i=0;i<=month-2;i++){ //计算这个月之前的总天数 dayCount = dayCount + dayOfMonth[i]; } 三、测试分析 1. 典型测试数据的构建,并且给出测试数据的预计结果 测试数据 预计结果 2013 4 6 第 96 天 2013 4 33 出错重新输入 2013 13 6 出错重新输入 0 4 6 出错重新输入 2013 0 6 出错重新输入 2013 4 0 出错重新输入 2012 2 29 第 60 天 2013 2 29 出错重新输入 2400 2 29 第 60 天 2300 2 29 出错重新输...