问题如下:
编写程序以实现面试调度程序。
这些是面试时间表的要求:
提示要求执行秘书输入第一次面试的时间,然后循环继续提示输入后续面试,然后循环继续提示输入后续面试时间。当秘书在下午5点或之后输入时,输入终止。循环执行pop()操作,直到队列为空。每次迭代都会输出约会开始的时间,以及导演进行面试的可用时间。当队列变空时,最后一次采访的时间是办公室关闭时间下午5: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软件中运行?那个答案是否符合这个问题?谢谢你的帮助。
答案 0 :(得分:1)
好吧,我复制了你的代码然后运行它 - 马上蝙蝠
Date limit = df.parse("17:00");
行生成错误,直到我注释掉
df = DateFormat.getDateInstance(DateFormat.LONG);
线。
接下来我注意到你的循环结构很差,你扫描数据然后开始你的循环,但从不再扫描数据 - 经典的无限循环。
了解您可以采取哪些措施来解决这些问题。第一个错误是显而易见的,应该很容易找到 - 如果我要做你的工作,我应该得到报酬。
修改
其他一些评论。你必须使用LinkedList吗?时间可以不按顺序进行,即上午11点然后上午10点然后下午2点进入?我怀疑你想要的是一个简单的可排序列表 - 一个简单的ArrayList就可以了。是否有持续时间参数 - 我可以在上午11点到晚上11点进入吗?很简短的面试; - )
答案 1 :(得分:0)
这样编译运行是否正常?我唯一能看到你缺少的是主任在当前面试中所花费的时间。我相信你的指示说明这只是当前面试的开始时间和下一次面试之间的差异(除非这是当天的最后一次面试,在这种情况下使用下午5:00。)