(1) Learning how to write a GUI-based application in Java.
(2) Learning how to write an event driven application program in Java.
(3) Develop further understanding of object-oriented programming.
Description: In this programming assignment, you will write a GUI-based event-driven application program. In this GUI-based application you will implement a program that determines heart-rate based aerobic and anaerobic training zones for endurance athletes. Racing cyclists, for example, will maintain heart rates just below their anaerobic threshold for hours at a time. This capability comes from training in various zones which are based upon an individual's maximum heart rate (MHR). Most high-level training regimes classify five different training zones. These zones are classified as follows:
Zone 1 = 50% - 60% of MHR
Zone 2 = 60% - 70% of MHR
Zone 3 = 70% - 80% of MHR
Zone 4 = 80% - 90% of MHR
Zone 5 = 90% - 100% of MHR
While an exact value for MHR requires controlled laboratory testing, an individual's theoretical MHR can be fairly accurately approximated according to the following formula:
MHR = 210 - (half_your_age) - (5% x weight_in_pounds) + SF
where SF = 0 if female and 4 if male
Your GUI-based application should ask the user to input the three necessary pieces of information (age, weight in pounds, sex) and produce as output the recommended heart rates for each of the five training zones as well as the calculated theoretical maximum heart rate for the user.
For this program your GUI should look exactly like the one shown below:
Your .java file shall begin with header comments containing the following information:
COP 3330 - Summer 2011
Assignment title: Program #4: GUI-based Even-driven Application
Date: July 17, 2011
Your GUI window must be properly sized by your code to receive full-credit on the program. Do not resize/reshape your GUI-window by dragging it with the mouse. You must use a FlowLayout manager for this assignment.
The UML class diagram for the HeartRateZones class looks like the one shown below. Note that this diagram is incomplete...you will add more class variables, instance variables, and methods that are not shown here.