第二次作业+105032014116
1.测试帖链接
http://www.cnblogs.com/Minhe/p/6597730.html
2.测试人员提出的问题、发现的缺陷
第一点:将代码输出中“第二题日期:”去掉
第二点:取消“-1”循环判定
以上两点均不在题目要求当中,超出开发要求。
3.修正后的代码清单
1 import java.text.SimpleDateFormat; 2 import java.util.Calendar; 3 import java.util.Scanner; 4 5 public class Test { 6 public static int year; 7 public static int month; 8 public static int day; 9 public static void main(String[] args) throws Exception { 10 String[] input = { "输入年 :", "输入月 :", "输入日 :" }; 11 System.out.println("请输入日期:"); 12 Scanner sc = new Scanner(System.in); 13 year = input(input[0], sc, 0); 14 month = input(input[1], sc, 1); 15 day = input(input[2], sc, 2); 16 Calendar calendar = Calendar.getInstance(); 17 calendar.set(Calendar.YEAR, year); 18 calendar.set(Calendar.MONTH, month - 1); 19 calendar.set(Calendar.DATE, day + 1); 20 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); 21 22 System.out.println(sdf.format(calendar.getTime())); 23 24 } 25 public static int input(String message, Scanner sc, int index) { 26 while (true) { 27 System.out.print(message); 28 String str = sc.nextLine(); 29 try { 30 int result = Integer.parseInt(str); 31 if (index == 0 && !(result >= 1920 && result <= 2050)) { 32 System.out.println("年份超出范围"); 33 continue; 34 } 35 if (index == 1 && !(result >= 1 && result <= 12)) { 36 System.out.println("月份超出范围"); 37 continue; 38 } 39 if (index == 2) { 40 int end = endDay(year,month); 41 if (!(result >= 1 && result <= end)) { 42 System.out.println("日期超出范围"); 43 continue; 44 } 45 } 46 return result; 47 } catch (Exception e) { 48 System.out.println("input error!"); 49 } 50 } 51 } 52 public static int endDay(int year, int month) { 53 Calendar c = Calendar.getInstance(); 54 c.set(Calendar.YEAR, year); 55 c.set(Calendar.MONTH, month); 56 c.set(Calendar.DATE, 0); 57 return c.get(Calendar.DATE); 58 } 59 }
4.修正后心得体会
1针对测试人员的优化建议进行了修改,去掉了题目中没有要求的代码。
2.没有仔细看清楚要求,添加了一些没有必要的功能及代码。
3.在实验过程中,意识到一个完整的程序,不仅只是开发人员的功劳,需要开发人员与测试人员的不断沟通和相互促进。