#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 вечера.)