编写一个程序,做一个简易的停车场使用数据记录仪。
此程序能够监听命令行输入,命令行可以输入三类命令:(下述命令中的参数值均为举例,实际使用中不会限定数值)
1: checkin –t=225959 –n=AT4257
2: checkout –t=233000 –n=AT4257
3: listrecord –all
4: listrecord –n=AT4257
其中第一条命令代表车牌号为AT4257的汽车在22点59分59秒进入停车场
第二条命令代表车牌号为AT4257的汽车在23:30:00驶出停车场
在执行了第1、2条命令的情况下,执行第三条命令,则会输出如下:
Record1: AT4257 22:59:59 in
Record2: AT4257 23:30:30 out
其中第四条命令代表查询车牌号为AT4257的汽车在此停车场的使用记录,输出格式与第三条相同
Hint: 请注意输入时的各种异常输入以及边界条件。
BONUS:
支持另外一种命令:
5: listrecord –st=220000 -et=235959
且令4,5时间复杂度尽可能低
第五条命令代表查询某一个时间段内停车场的使用记录,st代表开始时间et代表结束时间,输出格式与第三条命令相同。
(注意:第四条与第五条命令的参数可以同时使用)
渣渣原本用c++写,反正已挂。。。
借鉴网上的java代码,自己写了一遍,共享。
public class PakingRecord {
//定义一个Record类
private static class Record{
String time;
String carnumber;
boolean in;
Record(){
}
Record(boolean in,String time,String carnumber){
this.in=in;
this.time=time;
this.carnumber=carnumber;
}
@Override
public String toString() {
return carnumber+" "+time+" "+(in?"in":"out");