Designing a program is an iterative process: do a little, fix it, add some more, fix it, add some more, fix it, etc
Start with a simple list of what the program needs to do. Then take each complex step in the list and break it into a list of simpler steps. Many programs have these three steps:
write a report
The "get data" step might require asking the user for data, getting all the data needed from the user and saving it for the next step.
The "getting all the data needed" step could require a loop that repeatedly asks the user for the the next item