1.测试帖连接:http://www.cnblogs.com/wxcclub/p/6581040.html

2.测试人员发现的缺陷:

该代码只通过判断月份和天数是否为最后一月的一天的情况,没有考虑年份为闰年2月份只有29天以及4,6,9,11月只有30天的情况,

并且年份月份日期超出范围依然输出了错误日期,综上,该程序并未通过测试。

3.修正后的java代码:

  1 import java.util.*;
  2 public class ruance_1 {
  3
  4     public static String Msg(int year, int month, int day)
  5     {
  6         String msg;
  7         if((year<1912||year>2050))  //判断年份是否超出
  8         {
  9             msg = "年份超出范围!";
 10             return msg;
 11         }
 12         if((month<1||month>12))  // 判断月份是否超出
 13         {
 14             msg = "月份超出范围!";
 15             return msg;
 16         }
 17         //判断日期是否超出
 18         if(month==4||month==6||month==9||month==11)
 19         {
 20             if((day<1||day>30))
 21             {
 22                 msg = "日期超出范围!";
 23                 return msg;
 24             }
 25         }
 26         else if(month==2)
 27         {
 28             if((year%4==0&&year%100!=0)||year%400==0)//闰年
 29             {
 30                 if((day<1||day>29))
 31                 {
 32                     msg = "日期超出范围!";
 33                     return msg;
 34                 }
 35             }
 36             else      //非闰年
 37             {
 38                 if((day<1||day>28))
 39                 {
 40                     msg = "日期超出范围!";
 41                     return msg;
 42                 }
 43             }
 44         }
 45         else
 46         {
 47             if((day<1||day>31))
 48             {
 49                 msg = "日期超出范围!";
 50                 return msg;
 51             }
 52         }
 53         msg=NextDate(year,month,day);
 54         return msg;
 55     }
 56     //实现下一日的方法
 57     public static String NextDate(int year, int month, int day)
 58     {
 59         String nextdate;
 60         if(month==2)  //2月
 61         {
 62             if(((year%4==0&&year%100!=0)||year%400==0)) //闰年时的2月
 63             {
 64                     if(day==29)
 65                     {
 66                         day=1;
 67                         month++;
 68                     }
 69                     else
 70                     {
 71                         day++;
 72                     }
 73             }
 74             else
 75             {
 76                 if(day==28)
 77                 {
 78                     day=1;
 79                     month++;
 80                 }
 81                 else
 82                 {
 83                     day++;
 84                 }
 85             }
 86         }
 87         else if(month==12)  //12月份
 88         {
 89             if(day==31)
 90             {
 91                 year++;
 92                 day=1;
 93                 month=1;
 94             }
 95             else
 96             {
 97                 day++;
 98             }
 99         }
100         //一般月份
101         else
102         {
103             if(month==4||month==6||month==9||month==11)
104             {
105                 if(day==30)
106                 {
107                     month++;
108                     day=1;
109                 }
110                 else
111                 {
112                     day++;
113                 }
114             }
115             else
116             {
117                 if(day==31)
118                 {
119                     month++;
120                     day=1;
121                 }
122                 else
123                 {
124                     day++;
125                 }
126             }
127
128         }
129         nextdate =  "" + year + "年" + "" + month + "" + "月" + day + "日"  ;
130         return nextdate;
131     }
132
133     public static void main(String[] args) {
134         // TODO Auto-generated method stub
135         int a=1;
136         while(a==1)
137         {
138             int year, month, day;
139             System.out.println("请依次输入年份,月份,日期!");
140             Scanner input = new Scanner(System.in);
141             year = input.nextInt();
142             month = input.nextInt();
143             day = input.nextInt();
144             System.out.println("输入的日期为:");
145             System.out.println(year + "年" + month + "月" + day + "日");
146             System.out.println("输出为:");
147             System.out.println(Msg(year, month, day));
148             System.out.println("是否继续?1/0");
149             a = input.nextInt();
150         }
151     }
152 }

4.缺陷原因:

没有考虑实际的需求,只是按照题目表面的意思执行任务,导致没有实用性,并且画蛇添足,没有简洁明了表现出输入的错误。

4.变更:

本次修改,主要是将对日期的判断单独写成一个函数,其次对于题目的要求再加上一点日常应有的限制,比如闰年与非闰年的差异。较之前的代码,还改进了原本日期超出范围还会输出错误日期的行为。

5.体会:

要尽量结合实际完成任务。

转载于:https://www.cnblogs.com/5257yu/p/6617202.html

第2次作业+105032014158相关推荐

  1. LeetCode简单题之在既定时间做作业的学生人数

    题目 给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间. 已知,第 i 名学生在 startTime[i] 时开始写作业 ...

  2. 作业函数的定义与调用

    作业函数的定义与调用 在 OneFlow 中,将训练.预测任务封装在一个函数中,统称为作业函数(job function),作业函数联系用户的业务逻辑与 OneFlow 管理的计算资源. 在 OneF ...

  3. 华东理工大学计算机应用基础,最新华东理工大学计算机应用基础网上作业及全部答案...

    精品文档 华东理工大学计算机应用基础网上作业及全部答案 2012计算机应用基础答案: 一.选择题 1.文件夹是用来对应用程序.文件进行分组的,以下说法中()正确.答:一个文件夹内可以包含文件.应用程序 ...

  4. 《小团团团队》第五次作业:项目需求分析改进与系统设计

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验九 团队作业5-团队项目需求改进与系统设计 团队名称 小团团团队 作业学习目标 (1)掌握面向对象需求分析方法:(2) ...

  5. 2017级面向对象程序设计 作业三

    Deadline:2018-05-13 22:00pm 题目升级 一栋10层的大楼(楼层编号1-10),设3台无限载重的电梯,初始时电梯停在1层.其中:1号电梯只能停留在奇数层,2号电梯可以各层都停留 ...

  6. 201621123068 作业08-集合

    1. 本周学习总结 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的<contains>源代码 答:源代码 public boolean contains ...

  7. 代码管理和版本管理的作业流程以及规范是怎样的?

    代码管理和版本管理的作业流程以及规范是怎样的? 代码管理和版本管理的作业流程以及规范是怎样的?下面以文档的形式进行详细分析,希望能够给予测试人员一些帮助和指导. 本文目的 本文试图提供一套有效进行代码 ...

  8. 结队项目——第一次作业

    By: 031502220 计算机二班 李自强031502344 计算机三班 郑世强 Table of Contents 一 需求分析:二 具体设计:三 系统功能说明:四 产品优劣势分析:五 PSP: ...

  9. 第三次作业+105032014085

    对修正后第2次作业+105032014141的单元测试 1.修正后的流程图 2.测试用例设计 3.单元测试框架 1 import static org.junit.Assert.*; 2 3 impo ...

最新文章

  1. CryEngine最新版发布,支持Vulkan API
  2. Python进阶10-标准库介绍01
  3. 这届清华学生太难了!C++作业难到上热搜!
  4. 消除桌面虚拟化应用的存储瓶颈
  5. python之字典方法
  6. Java实现Redis的消息订阅和发布
  7. 贵大计算机考研情侣,贵大计算机研究生怎么样?
  8. Android 热修复的相关总结(主要是阿里百川的)
  9. 提取Flash源文件中的素材
  10. MongoDB 后台创建索引、查看创建进度等
  11. 物联网挑战赛【从零到一】
  12. Fips模式下应用连接Oracle SSL
  13. 与Lucene 4.10配合的中文分词比较
  14. 天龙八部 - 其它 - 属性伤害的计算方法
  15. NeuroImage:慢性疼痛病人功能脑社区变化的网络结构
  16. android环信群聊显名称,Android环信群聊插入头像和昵称
  17. 腾讯云服务器部署TomCat出现404
  18. 计算机配置高低怎么看,电脑配置高低怎么判断_教你查看电脑配置高低的方法...
  19. VB对象及其属性、事件和方法
  20. Java对接HJ212协议设备

热门文章

  1. 89页PPT揭秘:人工智能产业爆发的拐点
  2. 2018微信年度数据报告:00后最爱表情捂脸哭 80后呲牙笑
  3. 智能交通大数据及云应用平台解决方案
  4. 176页报告辟谣自动化时代的就业危机(附下载)
  5. 一文详解脑科学研究与产业发展方向
  6. 技术负责人要停止写代码吗?
  7. 拼多多“砍价免费拿”始终差“0.09%”遭起诉,官方回应:活动真实
  8. PHPCMS V9数据库表结构分析
  9. [译] Swift 中的惰性序列及其原理
  10. WPF入门:数据绑定