Rainfall Solution

For this programming project, you will create a program to accept rainfall data, and compute the annual statistics.
GOALS: Arrays, Procedures, Functions, Menus, Multiple Forms

Input to the program:
• 12 monthly rainfall amounts
• The year
• The location ( City, ST) for the rainfall stats

• Enter the Rainfall from the keyboard and store in an array
• Calculate the Total, Average, High, and Low values for the year
• Clear the form and the arrays
• Exit the program
• Modularize your code appropriately

• Displayed on one form:
o List box with month names (filled from an array of the month names)
o Listbox for the rainfall data per month (filled during the run of the program)
• Displayed on a separate form
o Labels to display Total, Average, High, and Low values for the year
o Labels to display the Year and Location for the currently displayed statistics

Considerations in and Expectations for your Procedures

Enter Rainfall Data– allows user to enter the monthly rainfall amounts in input boxes; prompt user accordingly; consider default values in the input boxes to limit errors; store the values in an array; display the values in a list box parallel to the month names

Calculate Stats – Checks whether data is correct, by calling a VerifyData function, then proceeds with calculation of stats (using appropriate functions). If data is not confirmed to be correct, clears the rainfall data list box and displays a message asking for re-entry of data. Annual Stats Records (Total, Average, High, Low, Year, Location) should be stored in an parallel arrays. Allow for a maximum of 100 years’ worth of rainfall statistics to be stored.

VerifyData Function – Should loop through the array of 12 monthly rainfall amounts, and return a Boolean indicator of the validity of the array. A link to the array should be passed as a parameter to the function.

Clear button/menu – should clear the rainfall data list box, and the stats boxes.

Exit button/menu – exits the program

Be sure to document your program and follow good naming conventions.
Be sure to use good user interface design practices: enter and cancel keys defined; Shortcut/Access keys; Tool Tips; Tab Order; Menus, etc.
Be sure to use good programming practices: error trapping and data validation; Option Strict On; etc.

**********************FOR EXTRA PROGRAMMING FUN ****************************
• Include graphs for the monthly rainfall (consider a procedure called by the CalculateStats menu/button
• Consider options to display summary information about the annual summaries

Powered by