Taxi Booking System
Taxi Booking System
import java.util.*;
class Main {
for(int i=1;i<=4;i++){
taxiList.add(t);
while(true){
System.out.println("Welcome to Taxi Booking System");
int choice=sc.nextInt();
switch(choice){
case 1:{
int custId=sc.nextInt();
System.out.println("Enter PickupPoint:");
char pickupPoint=sc.next().charAt(0);
if(!(pickupPoint>='A'&&pickupPoint<='F')){
return;
System.out.println("Enter DestinationPoint:");
char dropPoint=sc.next().charAt(0);
if(!(dropPoint>='A'&&dropPoint<='F')){
return;
int pickupTime=sc.nextInt();
for(Taxi t:taxiList){
if((t.freeTime+Math.abs(t.currentPoint-pickupPoint)<=pickupTime))
{
freeTaxi.add(t);
if(freeTaxi.size()==0){
break;
Taxi allotedTaxi=freeTaxi.get(0);
for(int i=1;i<freeTaxi.size();i++){
if(freeTaxi.get(i).totalEarning<allotedTaxi.totalEarning){
allotedTaxi=freeTaxi.get(i);
book.bookTaxi(custId,pickupPoint,dropPoint,pickupTime,allotedTaxi);
break;
case 2:{
for(Taxi t:taxiList){
System.out.print("Taxi"+t.id);
System.out.println(" TotalEarnings:"+t.totalEarning);
t.viewBookings();
break;
default:
System.out.println("Exit");
break;
// book.BookTaxi(1,'A','D',9,a);
// book.BookTaxi(2,'B','D',9,a);
// book.BookTaxi(8,'B','E',9,a);
// a.viewBookings();
class Taxi{
int id;
int freeTime;
char currentPoint;
int totalEarning;
List<String> bookings;
Taxi(){
Taxi.count=Taxi.count+1;
id=this.count;
freeTime=6;
currentPoint='A';
totalEarning=0;
bookings=new ArrayList<>();
this.bookings.add(booking);
this.freeTime=dropTime;
this.currentPoint=dest;
this.totalEarning+=amount;
for(String s:bookings){
System.out.println(s);
class Booking{
int id;
int custId;
char source;
char dest;
int pickupTime;
int dropTime;
int amount;
Booking(){
Booking.count=0;
this.id=count;
}
public void bookTaxi(int customerId,char Source,char Destination,int pickupTime,Taxi a){
Booking.count+=1;
this.id=count;
this.custId=customerId;
this.source=Source;
this.dest=Destination;
this.pickupTime=pickupTime;
this.dropTime=pickupTime+Math.abs(Source-Destination);
this.amount=((Math.abs(Source-Destination)*15)-5)*10+100;
a.addBooking(this.id,this.custId,this.source,this.dest,this.pickupTime,this.dropTime,this.amount);