Java - 航班时刻表[大学的作业]

时间:2013-04-28 00:00:06

标签: java time int final

我应该编制一个航班时刻表并遇到一个小问题。

用户必须插入: 出发日(1 - 7,1表示一周的第一天,7表示一周的最后一天)。 出发时间(0 - 24)。 出发分钟(0 - 60)。

然后: 飞行的长度以小时为单位。 飞行的长度以分钟为单位。

然后: 用户根据他/她在上面插入的数据获取到达时间。

出于某种原因,如果我输入:

出发时间:第1天,第10小时,00分钟。

飞行时间为72小时。 飞行的长度以分钟为单位00分钟。

我应该得到的是:第4天,第10小时,00分。 我得到的是:第1天,第49小时,第10分钟。

- 编辑 - 这是新代码:

import java.util.Scanner;
public class Flight
{
    public static void main (String [] args)
    {
        Scanner scan = new Scanner(System.in);

        System.out.println("Enter flight day: ");
        int FLYDAY = scan.nextInt();

        System.out.println("Enter flight hour: ");
        int FLYHOUR = scan.nextInt();

        System.out.println("Enter flight minute: ");
        int FLYMINUTE = scan.nextInt();

        int departureDay = scan.nextInt();
        int departureHour = scan.nextInt();
        int departureMin = scan.nextInt();

        departureMin += FLYMINUTE;
        while(departureMin >= 60) {
            departureHour++;
            departureMin-=60;
        }

        departureHour += FLYHOUR;
        while(departureHour >= 24)
        {
            departureDay++;
            departureHour-=24;
        }

        while(departureDay >=8)
        departureDay-=7;

        System.out.println("the supposed arrival time is: day- " + departureDay + ", hour- " + departureHour + ", minute- " + departureMin);
    }
}

2 个答案:

答案 0 :(得分:1)

既然你好好把它作为家庭作业,我不会告诉你答案(虽然我注意到两种一般类型的错误加上一些风格问题),而是我会给你一些工具来自己找出问题。

首先,对于这么简单的事情,尝试假装成计算机。要做到这一点

  1. 在一张纸上的行中写下变量名称。
  2. 浏览每一行,看看你是否能弄清楚变量是如何变化的。
  3. 如果这不起作用(有时问题是你对计算机做什么的理解是错误的),那么你可以在它们全部被读取之后打印变量(a)和(b)在每组条件之间打印。为此,在读取变量之后和每个条件之后复制System.println命令(可能需要修改)。

    希望这会帮助您找到答案。

答案 1 :(得分:0)

您应该将if语句更改为while语句。例如,写

while(departureMin >= 60) {
    departureHour++;
    departureMin-=60;
}

此外,您的用户输入部分非常不稳定。更好的方法是:

Scanner scan = new Scanner (System.in);

System.out.println("Enter flight day: ");
int FLYDAY = scan.nextInt();

System.out.println("Enter flight hour: ");
int FLYHOUR = scan.nextInt();

System.out.println("Enter flight minute: ");
int FLYMINUTE = scan.nextInt();

按照相同的格式询问航班应该持续多长时间。