I'm pretty new to programming myself and you will probably get great advice here. Looking at the requirements it looks fairly simple. remember there are MANY ways to do this.
Re-read the hints section again. After that, break the process up into a mathproblem. i.e. If I wanted 7 batches, how long would the output for the gravel need to be on to get the correct amount. (you may need to use a different time base to accomplish this other than 1 sec.)
You'll have to figure out how to increment the batches then you can use this register to multiply it by the increment for each ingredient.
I hope this give you a nudge in the right direction.
Kraken Fan #69