CPSC 120B -- Assignment #1

The Economics of Hybrid Cars Due Friday, September 22, 2005 by 4 p.m.

Given the recent spike in the cost of gas prices, you may be considering buying a hybrid car.  We all know that hybrids use less gas, but they also cost more to initially purchase. For this assignment you will write a JAVA program to help you make an informed decision about the economics of owning a hybrid vehicle.  (Note- this program may calculate the bottom line for your checkbook, but it does not address the broader ethical questions surrounding the use of  energy consumption.    Saving the planet:   Priceless)

According to recent surveys, Hybrid owners report an average improvement of 9 miles per gallon in feul economy.    A quick survey of the manufacturer's suggested retail prices reveals that consumers pay an average of \$5,000 more for a hybrid vehicle than a comparably equipped gasoline-only vehicle.    Moreover, the government is offering tax incentives (\$2400) to encourage people to make the transition from gas to hybrid.    In order to balance the savings in fuel economy with the cost of ownership, one must also make some assumptions about the cost of gas and the driving profile of the potential buyer.

The program should meet the following requirements:

Input to the program will be:

• Number of miles driven in an average month
• Anticipated price of gas
• Anticipated gas mileage a non-hybrid car
• Size of the gas tank.

Values to compute:

• Annual amount spent on gas purchase (Non-Hybrid & Hybrid)
• Frequency of gas station visits (in weeks) (Non-Hybrid & Hybrid)
• Amount saved in gas expenses by purchasing Hybrid model.
• Decrease in overall number of gas station visits.
• Number of years it will take to balance the gas savings with the cost of ownership
Assumptions:
• For the design of this program, we are going to assume that the impoved fuel economy, increased cost and tax incentives are to be treated as constants.  Embed comments near these variable declarations to describe why it is appropriate to treat these values as constants.   Consider:
• How the program would be different if these values were not treated as constants
• How this assumption affects the audience of the program - to whom is it useful given these assumptions.
• Why are constants preferable to literals in this program.
• The tax incentive should be treated as a tax credit.   This is tantamount to a rebate on your taxes.

Output Your output must be nicely formatted (similar to that below but you should choose your own way of formatting) and must include the following information (all appropriately labeled with white space):

• A reasonable heading, offset at least 3 lines from where the user provided input.
• The total amout of gas spent with a Non-Hybrid model
• The frequency of gas station visits for a Non-Hybrid model.
• A list of the assumptions that go into calculating the Hybrid benefits.
• The amount saved in gas expenses by purchasing a Hybrid model
• The frequency of gas station visits for a Hybrid model.
• A statement about the amount of time to balance the gas savings with cost of ownership.

Sample Output  A frun of your program may look something like the following :

`How many miles do you drive per month?  _____What is the anticipated price of gas ?  _____What is the anticipated gas mileage for your new car?  _____How big is the gas tank in your new car? ____Hybrid Car Savings Analysis===========================Over the course of the year, you will spend \$_____ on gasYou'll need to stop at the gas station approximately once every ____ weeksHybrid owners report getting an average of ___ more miles per gallon and paying \$______ more.  Fortunately, there is currently a tax credit of ______Under these conditions:        You will save ____ per year        You will only have to fill up approximately once every _____ weeks 	It will take you approximately ______ years to balance the cost of ownership with the savings.Note:  the blanks in the example above will be filled with actual numbers`

Requirements:

• You must use meaningful names for variables, constants, and your class. Use Java conventions for case -- constants (declared with final) are all uppercase (with the underscore separating words), variables start with a lowercase letter (but each separate word within the variable starts with a capital), the class name is capitalized. Choosing meaningful names makes your program easier to read and follow.
• Use white space (blank lines and blank spaces) in your program to make it easier to read. Separate the sections of the program with blank lines. Indent and align your code properly (emacs helps you do this - it automatically indents in most cases -- if a line isn't indented correctly go to it and press TAB -- if TAB doesn't make it indent correctly you probably have a syntax error).
• Document your program. At the top you must have documentation that includes the file name, a brief description of what the program does (this should include a list of the input expected and the output the program will produce), the date, and your name.
• Hand In: A printed copy of your program (the source code).
• E-mail: Your source code to hughes@roanoke.edu.

Academic Integrity Reminder!!! Programming assignments are to be your own work. You may get help on the specifics of the assignment from no one except the instructor. You may not show your program to anyone or look at anyone else's program or share ideas with anyone about how to write the program.