第二次作业+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.在实验过程中,意识到一个完整的程序,不仅只是开发人员的功劳,需要开发人员与测试人员的不断沟通和相互促进。

 

posted @ 2017-03-27 19:15  Trotteur  阅读(127)  评论(0编辑  收藏  举报