Кто-нибудь может помочь мне проверить, в чем моя проблема?

#java

#java

Вопрос:

Вопрос, приведенный ниже:

Напишите программу для реализации планировщика собеседований.

Это требования к планировщику собеседований:

Запрос просит исполнительного секретаря ввести время для первого собеседования, а затем цикл продолжает запрашивать ввод последующего собеседования, а затем цикл продолжает запрашивать ввод последующего времени собеседования. Ввод завершается, когда секретарь вводит время в 17:00 или после. Цикл выполняет операции pop() до тех пор, пока очередь не опустеет. Каждая итерация выводит время начала встречи, а также количество времени, доступное директору для проведения собеседования. Когда очередь становится пустой, время для последнего собеседования равно разнице между временем закрытия офиса в 17:00 вечера. и предыдущим временем начала последнего собеседования.

 import java.text.DateFormat;
import java.text.SimpleDateFormat;    
import java.util.Date;    
import java.util.LinkedList;    
import java.util.Queue;    
import java.util.Scanner;

public class TimeSchedule {

    public static void main(String args[]) {

        Queue TimeList = new LinkedList();

        DateFormat df = new SimpleDateFormat("HH:mm");
        df = DateFormat.getDateInstance(DateFormat.LONG);
        boolean loopstoper = false;
        try {
            Date limit = df.parse("17:00");

            Scanner scan = new Scanner(System.in);
            String time = scan.nextLine();
            Date date = df.parse(time);
            while (loopstoper == false) {
                if (date.before(limit)) {
                    TimeList.offer(date);
                } else {
                    loopstoper = true;
                    while (TimeList.size() > 0) {
                        System.out.println("Time Schedule = "   TimeList.poll());
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  

пожалуйста, помогите мне проверить правильность моей работы, потому что она не может запускаться в программном обеспечении Netbean? Соответствует ли этот ответ этому вопросу? Спасибо за вашу помощь.

Комментарии:

1. Совет профессионала: выберите свой код и нажмите кнопку «Пример кода».

2. я уже пытаюсь, но не получаю эту кнопку.

3. Когда вы задаете подобные вопросы, полезно, если вы можете рассказать нам, как происходит сбой, а не просто «это не работает». Вы видите сообщение об ошибке? если да, то в чем это? Или приложение запускается, но не выполняет то, что вы намеревались? Как же так? (Например: «Приложение компилируется и запускается. Он принимает пользовательские данные, как и предполагалось, но затем просто снова и снова выводит одну и ту же дату, пока я не заставлю его завершить работу. «).

4. Почему у вас есть df = DateFormat.getDateInstance(DateFormat.LONG); ?

Ответ №1:

Ну, я скопировал ваш код и запустил его — сразу

 Date limit = df.parse("17:00");
  

строка генерировала ошибку, пока я не прокомментировал

 df = DateFormat.getDateInstance(DateFormat.LONG);
  

строка.

Далее я отмечаю, что у вас плохо сформированный цикл, вы сканируете данные, затем запускаете свой цикл, но больше никогда не сканируете данные — классический бесконечный цикл.

Сначала посмотрите, что вы можете сделать для устранения этих проблем. Эта первая ошибка была очевидна и должна была быть легко найдена вами — если я собираюсь выполнять вашу работу, мне должны за это платить.

Редактировать

Пара дополнительных комментариев. Обязательно ли использовать LinkedList? Может ли время выходить из последовательности, то есть вводиться в 11 утра, затем в 10 утра, затем в 2 часа дня? Я подозреваю, что вам нужен простой сортируемый список — подойдет простой ArrayList. Есть ли параметр продолжительности — могу ли я ввести 11 утра, а затем 11: 01 утра? Довольно короткое интервью 😉

Комментарии:

1. Извините за грубый комментарий — я только что заметил тег homework. Тем не менее, я указал вам, почему это не работает — сначала попробуйте сами — если у вас все еще возникают проблемы, сообщите подробности, и мы постараемся помочь.

Ответ №2:

Нормально ли это компилируется и запускается как есть? Единственное, что, как я вижу, вы упускаете, — это количество времени, отведенное директору на текущее собеседование. Я полагаю, что в ваших инструкциях указано, что это просто разница между временем начала текущего собеседования и следующего (если только это не последнее собеседование за день, в этом случае используйте 17: 00 вечера.)