Tang David 2022-09-14 14:47 采纳率: 57.1%
浏览 27

关于#java#的问题,如何解决?

一.java源代码:题目是求当前日期(年月日)的下一天(年月日),源代码已编好。

package javaexperiment1;

//导包
import java.util.Scanner;

public class NextDate {


    public static void main(String[] args) {
        int year,month,day;

    //创建对象
    Scanner sc = new Scanner(System.in);
    //分别输入年月日
    System.out.println("请输入年月日");
    //接收数据
    /*先定年月日输入值的界限*/
    boolean error;
    do{
        System.out.println("请输入年份(1~5000):");
        year = sc.nextInt();
        error = year<1 || year>5000;
    }while(error);//若error为true则重新输入年份

        do{
            System.out.println("请输入月份(1~12):");
            month = sc.nextInt();
            error = month<1 || month>12;
        }while (error);

        /*判断月份,特殊为2月*/
    int num;
    switch (month){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12: num = 31; break;
        case 2:  num = (year%4==0&&year%100!=0 || year%400==0)? 29:28; break;
        default: num = 30;
    }

    do{
        System.out.println("请输入日(1~"+ num +"):");
        day = sc.nextInt();
        error = day<1 || day>num;
    }while (error);

    /*当输入的年月日都合法之后*/
    /*特殊为年末和月末*/
    System.out.println("请输入当前日期:"+ year +"-"+ month +"-"+ day);


    if (month == 12 && day==num){
        year++;
        month = 1;
        day = 1;
    }
    else if (day==num && month!=12){
        month++;
        day = 1;
    }
    else if (day!=num && month!=12){
        day++;
    }

    System.out.println("下一天日期:"+ year +"-"+ month +"-"+ day);








}

}

img

二.题目要求如下(修改已编好的“求下一天年月日的程序”):
实验内容 :

(1)把实验一的项目文件夹JavaExperiment1复制一份,把新复制的文件夹修改为JavaExperiment3,在IDEA中打开项目文件夹JavaExperiment3,鼠标右键单击项目名称,在弹出的菜单中选择“重构”->"重命名",把项目名称修改为JavaExperiment3,在JavaExperiment3项目中完成本次实验。

(2) 通过IDEA的重构功能把项目的顶层包重命名为javaexperiment3,把NextDate类重命名为MyDate类。

(3) 把原来main方法中完成的功能分解到MyDate类的属性和普通方法中:把变量year、month和day定义成私有的成员变量并定义每个属性的getter方法,定义获取日期的getDate方法,把判断是否是闰年的功能提取到isLeapYear方法中,把获取一个月包含的天数的功能提取到getLengthOfMonth方法中,把输入年月日并对输入的数据进行校验的功能提取到inputData方法中,把计算输入日期的下一个日期的方法提取到nextDate方法中,重构后的MyDate类的UML类图如下图所示:

(4)在MyDate类中添加getDayOfYear方法,该方法判断输入的日期是一年中的第几天并返回判断结果。重构的MyDate类的UML类图如下图所示:

(5)在项目包中创建名为Test的测试类,在Test类的main方法中创建MyDate类的对象,通过创建的对象分别调用inputData、nextDate、getDayOfYear、getDate方法完成测试并输出结果。

img

  • 写回答

1条回答 默认 最新

  • 名字被猫咬么了 2022-09-14 17:36
    关注

    需要解决的问题是什么

    评论

报告相同问题?

问题事件

  • 创建了问题 9月14日

悬赏问题

  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?
  • ¥100 需要跳转番茄畅听app的adb命令