Vous êtes sur la page 1sur 4

Project 3 Advanced Taxi System

Objective

To gain experience and practice using classes.

Problem

As a concierge at a local hotel, you would like to simplify your work when ordering taxi rides for
your customers. Write a program that will place orders with local taxi companies for your
customers.

Specifications

For your program, implement two classes and a struct. You will have a class for taxi companies,
a class for times, and a struct for orders. The class and struct attributes and methods should be
as follows:

Time
-int h, m stores the time in 24h mode
-void rollForward()
-int getH() converts h to 12-hour mode, used by print
-int getM() returns m, used by print
+Time(int h, int m) constructor, sets h and m
+Time() constructor, doesnt set anything
+void setTime() asks the user to input time in 24h mode
+void print() nicely prints the time in 12h mode

Trip
int miles
Time pickup
string passenger

Taxi
-string name stores the name of the taxi company
-vector< Trip > trips stores the list of trips ordered with the company
-double rateMiles stores the charge per mile
-double rateTrips stores the charge per trip (flat rate)
+Taxi(string n, double rM, double rT) constructor that sets the name, and rates
+string getName() returns the companys name
+double calculateTrip(Trip t) calculates the cost of the trip passed as argument
+double calculateCart() calculates cost of all pending orders
+void addTrip(Trip t) adds a trip to the list of orders
+void showTripx() prints the total pending cost and shows all trips
In int main, you should start by establishing an array of three taxi companies. The following
properties should be given to each taxi company:

Name Charge per mile Charge per trip


Checker Cab 0 30
GTS Lawrence 0.20 5
Jayhawk Taxi 0.80 1

Build a menu system that will allow the user to order a trip, view their cart, or exit.

Ordering a trip should ask the user for the passengers name, the number of miles to be driven,
and use the Time class method to get the time of the pickup. Create a Trip instance with those
pieces of information. Next, display a submenu for the user to choose a taxi company from
which to order. Show the cost the trip would be with each company using the calculateTrip
class method. Use a for loop to iterate over your taxi company array rather than re-writing the
same basic menu option for each company. When the user selects a company to place the
order with, us the addTrip class method of the corresponding taxi company to add the Trip
instance you created earlier.

Viewing the cart should use a for loop to iterate over the companies in the array, calling the
showTrips class method for each.

Sample Output: Normal Operation (user input in italics)


===Main Menu===
1. Order a trip
2. View Cart
3. Exit
> 2
Active Trips:
$ 0.00 pending with Checker Cab
$ 0.00 pending with GTS Lawrence
$ 0.00 pending with Jayhawk Taxi

===Main Menu===
1. Order a trip
2. View Cart
3. Exit
> 1
What is the passenger's first name? Bob
How many miles would you like to travel? 10
Enter the time with whitespace separating the hours and minutes: 5 45
Which company would you like to place the Trip with?
1. Checker Cab - $30.00
2. GTS Lawrence - $7.00
3. Jayhawk Taxi - $9.00
> 2

===Main Menu===
1. Order a trip
2. View Cart
3. Exit
> 2
Active Trips:
$ 0.00 pending with Checker Cab
$ 7.00 pending with GTS Lawrence
Trip scheduled for Bob covering 10 miles with pickup at 05:45 am
$ 0.00 pending with Jayhawk Taxi

===Main Menu===
1. Order a trip
2. View Cart
3. Exit
> 1
What is the passenger's first name? Jane
How many miles would you like to travel? 100
Enter the time with whitespace separating the hours and minutes: 18 20
Which company would you like to place the Trip with?
1. Checker Cab - $30.00
2. GTS Lawrence - $25.00
3. Jayhawk Taxi - $81.00
> 2
===Main Menu===
1. Order a trip
2. View Cart
3. Exit
> 2
Active Trips:
$ 0.00 pending with Checker Cab
$ 32.00 pending with GTS Lawrence
Trip scheduled for Bob covering 10 miles with pickup at 05:45 am
Trip scheduled for Jane covering 100 miles with pickup at 06:20 pm
$ 0.00 pending with Jayhawk Taxi

===Main Menu===
1. Order a trip
2. View Cart
3. Exit
> 1
What is the passenger's first name? Sam
How many miles would you like to travel? 4
Enter the time with whitespace separating the hours and minutes: 10 13
Which company would you like to place the Trip with?
1. Checker Cab - $30.00
2. GTS Lawrence - $5.80
3. Jayhawk Taxi - $4.20
> 3

===Main Menu===
1. Order a trip
2. View Cart
3. Exit
> 2
Active Trips:
$ 0.00 pending with Checker Cab
$ 32.00 pending with GTS Lawrence
Trip scheduled for Bob covering 10 miles with pickup at 05:45 am
Trip scheduled for Jane covering 100 miles with pickup at 06:20 pm
$ 4.20 pending with Jayhawk Taxi
Trip scheduled for Sam covering 4 miles with pickup at 10:13 am

===Main Menu===
1. Order a trip
2. View Cart
3. Exit
> 1
What is the passenger's first name? Zoe
How many miles would you like to travel? 200
Enter the time with whitespace separating the hours and minutes: 23 59
Which company would you like to place the Trip with?
1. Checker Cab - $30.00
2. GTS Lawrence - $45.00
3. Jayhawk Taxi - $161.00
> 1

===Main Menu===
1. Order a trip
2. View Cart
3. Exit
> 2
Active Trips:
$ 30.00 pending with Checker Cab
Trip scheduled for Zoe covering 200 miles with pickup at 11:59 pm
$ 32.00 pending with GTS Lawrence
Trip scheduled for Bob covering 10 miles with pickup at 05:45 am
Trip scheduled for Jane covering 100 miles with pickup at 06:20 pm
$ 4.20 pending with Jayhawk Taxi
Trip scheduled for Sam covering 4 miles with pickup at 10:13 am

===Main Menu===
1. Order a trip
2. View Cart
3. Exit
> 3
Exiting...

Notes

You will likely need the vector, iomanip, and iostream libraries.
Deviating from the public / private requirements outlined above will incur penalties. Part of
what we are trying to learn in this project is lost if everything is public or global.
You should not need any more or any fewer class methods or attributes to accomplish this
project.

Deliverables

(15 points) A project report discussing what your program does, how it does it, and why you
designed it the way you did. Reflect on how the project would be different if you had not used
loops and functions methods. Shoot for something in the 1-2 page range. PDF format.
(85 points) Your c++ source code (the .cpp file). Make sure to name it
project3_yourlastname.cpp.

Vous aimerez peut-être aussi