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