CMPSC 201 – Fall 2015
Programming Project 3
Worth 50 points
Due by 11:00 pm on November 2, 2015
Goal: Using loops, functions, and formatting output.
Problem: Once launched a weather balloon can gather data about temperature and pressure for days. During the day the sun will warm the helium in the balloon and the balloon will rise to a higher altitude. At night, the helium will cool and the balloon will sink. This change in altitude can be approximated by the equation
Altitude(t) = -0.12t4 + 12t3 - 380t2 + 4100 t +220
where t is time in hours and altitude is in meters. The velocity of the balloon can similarly be approximated by the polynomial
Velocity(t) = -0.48t3 + 36t2 – 760t + 4100
where t again is in hours and velocity is in meters/hour.
For this project you are to write a program that will calculate the altitude (in meters) and velocity (in meters per second) of the balloon to create a table and histogram of the height. You program should:
v prompt the user to enter a start time for the monitoring,
v robustly confirm that the number is greater than or equal to 0 and less than or equal to 50,
v prompt the user to enter when the calculating should end,
v robustly confirm that the input is greater than the starting time and less than or equal to 50 hours,
v prompt the user to enter the time increments,
v and robustly confirm that the time increments > 0 and less than 3 hours.
Next your program should use a for loop to generate a table beginning at the start time and ending at the stop time. This table should contain the time, the balloon height (meters) and the balloon velocity (meters/second) and a horizontal histogram that displays the height of the balloon using asterisks. Each asterisk should symbolize 500 meters and you should round the number of asterisks that are printed, e.g. 3225 would be printed as 6 asterisks and 3790 would be printed as 8 asterisks. Your table would then look something like
Time Height Velocity (Each * symbolizes 500 meters)
(hrs) (meters) (m/s)
0.00 220.00 1.14
0.50 2176.49 1.04 ****
1.00 3951.88 0.94 ********
1.50 5554.89 0.84 ***********
2.00 6994.08 0.76 **************
2.50 8277.81 0.67 *****************
3.00 9414.28 0.59 *******************
The calculation of height and velocity should be done in a single function that will accept the time, calculate the height and velocity of the balloon and send both the height and velocity back to the function call.
Your program should also employ a do-while loop that allows the user to repeat the entire process with different starting and stopping times.
Do not use any concepts beyond Chapter 6 (e.g. arrays).
Make sure that you have included your introductory comments containing the purpose of the program i.e. what problem or task is being solved plus the input needed from user to complete the problem/task, output expected from the program, and the processing needed to get the output from the input. The description of the purpose should be detailed enough that a person reading your code would not need any additional information to understand the problem. The processing comments should not include any C++ commands.
Remember to confirm all your submissions to ANGEL. You may make multiple submissions to the same drop box and the last submission will be graded.
Programming Project 3 1 CMPSC 201-Spring 2015