第二次作业+105032014119

Posted 景诺晨曦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二次作业+105032014119相关的知识,希望对你有一定的参考价值。

  1测试帖链接

  • 测试帖链接:http://www.cnblogs.com/chenxxiaol/p/6603076.html
  • 第一次开发源代码:http://www.cnblogs.com/chenyp1996/p/6530651.html

 

 2. 测试人员提出的问题、发现的缺陷

 缺陷:无

   建议:

  1. 输入界面不友好;
  2. 对于没有输入点enter就结束这个功能可以适当修改一下,如果不小心点到了,程序就结束运行了。
  3. 输入三个数后才判断,如果第一个数就不符合规则的话会浪费时间,希望能够从输入年份就开始进行判断,避免时间的浪费。

  3. 修正后的代码清单

 1 import java.text.ParseException;
 2 import java.text.SimpleDateFormat;
 3 import java.util.Calendar;
 4 import java.util.Scanner;
 5 
 6 /*NextDate函数问题
 7 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性
 8 NextDate函数包含三个变量month、day和year,函数的输出为输入日期后一
 9 天的日期。 要求输入变量month、day和year均为整数值,并且满足下列条件:
10 条件1 1≤ month ≤12 否则输出,月份超出范围
11 条件2 1≤ day ≤31 否则输出,日期超出范围
12 条件3 1912≤ year ≤2050 否则输出:年份超出范围
13 String nextdate(int m,int d,int y)
14 注意返回值是字符串。
15 程序要求:
16 1)先显示“请输入日期”
17 2)不满足条件1,返回:“月份超出范围”;不满足条件2,返回:“日期超出范围”;
18 不满足条件3,返回:“年份超出范围”;如果出现多个不满足,以最先出现不满足的
19 错误返回信息。3)条件均满足,则输出第二天的日期:格式“****年**月**日”(如果
20 输入2050年12月31日,则正常显示2051年1月1日*/
21 public class MyDate {
22     public static String nextdate(int month, int day, int year) {
23         if (month < 1 || month > 12)
24             return "月份超出范围";
25         if (day < 1 || day > 31)
26             return "日期超出范围";
27         if (year < 1912 || year > 2050)
28             return "年份超出范围";
29         SimpleDateFormat sFormat = new SimpleDateFormat("yyyyMMdd");
30         sFormat.setLenient(false);
31         try {
32             Calendar c = Calendar.getInstance();
33             c.setTime(sFormat.parse("" + year + String.format("%02d", month) + String.format("%02d", day)));
34             c.add(Calendar.DATE, 1);
35             return c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH) + 1) + "月" + c.get(Calendar.DATE) + "日";
36         } catch (ParseException e) {
37             return "日期不存在";
38         }
39     }
40 
41     public static void main(String[] args) {
42         String input = "";
43         int month, date, year;//优化效率
44         Scanner scan = new Scanner(System.in);
45         while (true) {
46             System.out.print("请输入日期");
47             input = scan.nextLine().trim();
48             String[] buf = input.split("[\\\\s+::,,/]");// 支持多种分割方式
49             if (input.equals(""))//无输入
50                 continue;
51             else if (input.equalsIgnoreCase("return"))// 改进退出方式
52                 break;
53             else if (buf.length == 3) {
54                 try {
55                     month = Integer.valueOf(buf[1]);
56                     date = Integer.valueOf(buf[2]);
57                     year = Integer.valueOf(buf[0]);
58                     System.out.println(nextdate(month, date, year));
59                 } catch (NumberFormatException e) {
60                     System.out.println("日期格式错误");
61                 }
62             } else//长度不对
63                 System.out.println("日期格式错误");
64         }
65         System.out.println("谢谢使用,再见~");
66         scan.close();
67     }
68 }

  4. 修正后心得体会

  1. 一个优秀的程序必须要让客户用着舒服,而不仅仅在于通过测试。
  2. 测试人员应该具备一定的开发知识,开发人员也要有一定的测试知识,两者并不互相矛盾。
  3. 适当的增加注释和优化代码可以让程序执行的更加顺畅。
  4. 测试人员和开发人员应该做好沟通协调的工作。

以上是关于第二次作业+105032014119的主要内容,如果未能解决你的问题,请参考以下文章

软件工程(2018)第二次结对作业

第二次作业

第二次在对话框中膨胀片段时出错

第二次作业电梯编程题测试结果

第二次作业

第二次作业