Hello! I am currently attempting to create a program that compares vehicle efficiencies for a road trip. My first draft worked but looking over it, I don’t think I could’ve created a longer amount of code for what I needed to do. I know there is a simpler/better way.
I’m trying to rewrite it and have the user inputs stored in an array. I’m having a lot of trouble figuring out what I’m doing incorrectly. All advice is gratefully received!
1st Draft:
distance = 3000.00
gallon_price = 3.00
#Welcome statement
puts “Hello, this program will assist you in planning for your roadtrip from Seattle to Boston!”
puts “”
#Vehicle 1 user inputs
#User inputs converted to float value
puts “Please enter the following information for your 1st vehicle.”
puts “What is the average mileage per gallon?”
veh1_milespergallon = gets.chomp.to_f
puts “What is the gas tank capacity?”
veh1_gastankvol = gets.chomp.to_f
“What is the vehicle maintenance cost at each refueling stop?”
veh1_maintcost = gets.chomp.to_f
#Vehicle 2 user inputs
puts “Please enter the following information for your 2nd vehicle.”
puts “What is the average mileage per gallon?”
veh2_milespergallon = gets.chomp.to_f
puts “What is the gas tank capacity?”
veh2_gastankvol = gets.chomp.to_f
puts “What is the vehicle maintenance cost at each refueling stop?”
veh2_maintcost = gets.chomp.to_f
#Vehicle 3 user inputs
puts “Please enter the following information for your 3rd vehicle.”
puts “What is the average mileage per gallon?”
veh3_milespergallon = gets.chomp.to_f
puts “What is the gas tank capacity?”
veh3_gastankvol = gets.chomp.to_f
puts “What is the vehicle maintenance cost at each refueling stop?”
veh3_maintcost = gets.chomp.to_f
#Vehicle 4 user inputs
puts “Please enter the following information for your 4th vehicle.”
puts “What is the average mileage per gallon?”
veh4_milespergallon = gets.chomp.to_f
puts “What is the gas tank capacity?”
veh4_gastankvol = gets.chomp.to_f
puts “What is the vehicle maintenance cost at each refueling stop?”
veh4_maintcost = gets.chomp.to_f
#Set variables for program outputs
#Vehicle 1 variables
veh1_distancepertank = veh1_milespergallon * veh1_gastankvol
veh1_refuelstops = distance / veh1_distancepertank
veh1_totaltripcost = ((veh1_refuelstops * veh1_maintcost) + (gallon_price * (distance / veh1_milespergallon)))
#Vehicle 2 variables
veh2_distancepertank = veh2_milespergallon * veh2_gastankvol
veh2_refuelstops = distance / veh2_distancepertank
veh2_totaltripcost = ((veh2_refuelstops * veh2_maintcost) + (gallon_price * (distance / veh2_milespergallon)))
#Vehicle 3 variables
veh3_distancepertank = veh3_milespergallon * veh3_gastankvol
veh3_refuelstops = distance / veh3_distancepertank
veh3_totaltripcost = ((veh3_refuelstops * veh3_maintcost) + (gallon_price * (distance / veh3_milespergallon)))
#Vehicle 4 variables
veh4_distancepertank = veh4_milespergallon * veh4_gastankvol
veh4_refuelstops = distance / veh4_distancepertank
veh4_totaltripcost = ((veh4_refuelstops * veh4_maintcost) + (gallon_price * (distance / veh4_milespergallon)))
puts “Thank you!”
puts “The information you provided was used to calculate the following for each vehicle.”
#Vehicle 1 outputs
puts “”
puts “Vehicle 1:”
puts “Distance per gas tank = #{veh1_distancepertank.round(3)} miles.”
puts “Number of refueling stops required = #{veh1_refuelstops.ceil} stops.”
puts “Total cost of trip = $#{veh1_totaltripcost.round(2)}.”
#Vehicle 2 outputs
puts “”
puts “Vehicle 2:”
puts &“Distance per gas tank = #{veh2_distancepertank.round(3)} miles.”
puts “Number of refueling stops required = #{veh2_refuelstops.ceil} stops.”
puts “Total cost of trip = $#{veh2_totaltripcost.round(2)}.”
#Vehicle 3 outputs
puts “”
puts “Vehicle 3:”
puts “Distance per gas tank = #{veh3_distancepertank.round(3)} miles.”
puts “Number of refueling stops required = #{veh3_refuelstops.ceil} stops.”
puts “Total cost of trip = $#{veh3_totaltripcost.round(2)}.”
#Vehicle 4 outputs
puts “”
puts “Vehicle 4:”
puts “Distance per gas tank = #{veh4_distancepertank.round(3)} miles.”
puts “Number of refueling stops required = #{veh4_refuelstops.ceil} stops.”
puts “Total cost of trip = $#{veh4_totaltripcost.round(2)}.”
#Calculate total fuel burned if all 4 vehicles complete roadtrip
veh1_gallonsused = distance / veh1_milespergallon
veh2_gallonsused = distance / veh2_milespergallon
veh3_gallonsused = distance / veh3_milespergallon
veh4_gallonsused = distance / veh4_milespergallon
totalgallonsused = veh1_gallonsused + veh2_gallonsused + veh3_gallonsused + veh4_gallonsused
puts “”
puts “If all vehicles complete the roadtrip from Seattle to Boston, #{totalgallonsused.round(3)} gallons of fuel will be used.”
#Carpool comparison
a = veh1_gallonsused
b = veh2_gallonsused
c = veh3_gallonsused
d = veh4_gallonsused
totalcost = veh1_totaltripcost + veh2_totaltripcost + veh3_totaltripcost + veh4_totaltripcost
veh1_saves = totalcost - veh1_totaltripcost
veh2_saves = totalcost - veh2_totaltripcost
veh3_saves = totalcost - veh3_totaltripcost
veh4_saves = totalcost - veh4_totaltripcost
puts “”
if a < b and a < c and a < d
puts “If you choose to carpool, Vehicle 1 is the most fuel efficient choice. By carpooling in Vehicle 1, as opposed to driving separately, you will save $#{veh1_saves.round(2)}.”
elsif b < a and b < c and b < d
puts “If you choose to carpool, Vehicle 2 is the most fuel efficient choice. By carpooling in Vehicle 2, as opposed to driving separately, you will save $#{veh2_saves.round(2)}.”
elsif c < a and c < b and c < d
puts “If you choose to carpool, Vehicle 3 is the most fuel efficient choice. By carpooling in Vehicle 3, as opposed to driving separately, you will save $#{veh3_saves.round(2)}.”
elsif d < a and d < b and d < c
puts “If you choose to carpool, Vehicle 4 is the most fuel efficient choice. By carpooling in Vehicle 4, as opposed to driving separately, you will save $#{veh4_saves.round(2)}.”;
end
2nd draft (where I’m at so far)
#array
vehicles = []
#hash
veh_data = {}
#variables
distance = 3000
gallon_price = 3.00
#welcome statement
puts “Hello, this program will assist you in planning for your roadtrip from Seattle to Boston!”
puts “”
puts “How many vehicles would you like to evaluate today? Please enter a numeral.”
veh_count = gets.chomp.to_i
puts “Please enter the following information for your vehicle:”
puts “Make and Model?”
veh_type = gets.chomp
puts “Average MPG?”
mpg = gets.chomp.to_f
puts “Gas tank capacity? (in gallons)”
tank_vol = gets.chomp.to_f
puts “Maintenance cost at each refueling stop?”
maint_cost = gets.chomp.to_f
#calculations based on user inputs
tank_dist = mpg * tank_vol
fuel_stops = distance / tank_dist
fuel_cost_total = ((fuel_stops * maint_cost) + (gallon_price * (distance / mpg)))
veh_data < [veh_type, mpg, tank_vol, maint_cost, tank_dist, fuel_stops, fuel_cost_total]
veh_data.each do |veh_type, mpg, tank_vol, maint_cost, tank_dist, fuel_stops, fuel_cost_total|
puts “For the road trip from Seattle to Boston the veh_type has a tank distance of #{tank_dist}, will require approximately #{fuel_stops} fuel stops along the way, and the total fuel required will cost approximately $#{fuel_cost_total.round(2)}.”
end