Just going back to the heart rate zones.
The easiest thing to do is have the user put in their Maximum Heart Rate, and then their Resting Heart Rate and then each zone is a simple calculation.
For example using my own measures:
Maximum Heart Rate = 204
Resting Heart Rate = 38
Working Heart Rate = MHR (204) - RHR (38) = 166
Training zones for 60% should then be:
(60% of WHR) + RHR
60% = 138
((0.6 x 166) +38)
70% = 154
80% = 171
90% = 187
100% = 204
Using the Working Heart Rate is more accurate as it takes into account your relative fitness (through your resting heart rate).
This difference is easily shown as 60% of my MHR only is 122, whereas using my WHR is actually 138 - a massive difference
Also the MHR and RHR should be input by user - as if I was to follow default of 220-age (34) then my MHR is only 186.
After typing all this out - it doesn't look simple at all

But if you can code an input field for MHR and RHR - then have the simple forula in the background that then works out the zones based on the info provided.