고속도로를 통행하는 차량을 관리하고 통행료를 계산하는 고속도로 차량관리 시스템입니다. 이 시스템은 차량 데이터를 vehicles.txt
에 미리 정의하고, 차량 종류별 기본요금 및 거리요율을 rates.txt
에 정의합니다.
- 현재 시간을 설정합니다. 시간은 연/월/일/시/분으로 표현됩니다.
- 새로운 시간이 설정되면 시간이 진행된 만큼 고속도로상의 모든 차량의 위치를 다시 계산합니다. 새로운 시간 설정으로 현재 시간이 차량이 고속도로를 진출해야 하는 시간을 지나는 경우 그 차량의 통행료를 계산합니다.
- 차량을 고속도로로 진입시킵니다. 설정된 현재 시간이 진입 시간이 됩니다.
- 이 명령의 부가 정보로 차량 번호, 진입 장소, 진출 장소, 속도가 주어집니다.
- 현재 시간에 고속도로 상에 위치하는 모든 차량의 정보를 출력합니다.
- 출력 정보에는 차량 종류, 차량 번호, 속성 정보 (예, 배기량), 진입 시간, 진입 장소, 진출 장소, 속도, 위치가 포함됩니다.
- 현재 시간에 고속도로 통행을 종료한 모든 차량의 정보를 출력합니다.
- 출력 정보에는 차량 종류, 차량 번호, 속성 정보, 진입 시간, 진입 장소, 진출 장소, 진출 시간, 통행료가 포함됩니다.
- 현재 시간 값을 표시합니다.
- 명령 형식
> 명령(t) 시간정보
// 설정한 현재시간을 출력한다.
// 현재시간 보다 이전 시간을 입력한 경우 Exception으로 처리한다.
- 입력예시
> t 2023 5 10 14 30 // 2023년 5월 10일 14시 30분
- 출력예시
현재시간: 2023/05/10, 14:30
- 명령 형식
> 명령(n) 차량번호 진입장소 진출장소 속도
// 차량이 정상적으로 진입했다면 차량 진입 정보를 출력한다.
// 존재하지 않는 차량의 경우 - Exception으로 처리한다.
// 차량이 이미 고속도로 상에 존재하는 경우 - Exception으로 처리한다.
- 입력예시
> n 1234 서울 대전 100 // 1234 차량, 서울->대전, 시속 100km로 주행
- 출력예시
승용차 1234 진입
진입시간: 2023/05/10:14:30 // 진입시간은 현재시간과 동일함
진입장소: 서울
진출장소: 대전
시속: 100km
- 명령 형식
> 명령(o)
// 고속도로 상에 있는 모든 차량의 정보를 출력한다.
// 차량 종류, 진입시간 순서로 정렬하여 출력한다. 차량 순서는 승용차, 하이브리드 승용차, 버스, 트럭 순이다.
// 고속도로 상에 차량이 없다면 “통행 차량이 없습니다!”라고 출력한다.
- 입력예시
> o
- 출력예시 // 현재시간을 15:30이라고 가정
1. car 1234 2000cc 2023/05/10:14:30 서울->대전 시속:100km 위치:100km
2. hybrid car 2345 1500cc 2023/05/10:15:00 수원-> 부산 시속:120km 위치:100km
3. bus 3456 45인승 2023/05/10:15:00 부산->서울 시속:120km 위치:330km
- 명령 형식
> 명령(x)
// 진출한 차량이 있다면 차량 정보와 차량 위치를 출력한다.
// 차량 종류, 진입시간 순서로 정렬하여 출력한다. 차량 순서는 승용차, 하이브리드 승용차, 버스, 트럭 순이다.
// 진출한 차량이 없다면 “진출한 차량이 없습니다!”라고 출력한다.
- 입력예시
> x // 현재시간을 2023/05/10:16:30이라고 가정
- 출력예시
1. car 1234 2000cc 2023/05/10:14:30 서울->대전 2023/05/10:16:06 6800원// (진출시간:2023/05/10:16:06) (통행료: 6800원)
2. ...
- 입력예시
> c
- 출력예시
2023/05/10:16:30