In my class (all one of them), the instructor taught us to use the Top Down design method. In a nutshell:
1) Study the problem, better than you believe you need to
2) Put off all the details you can, for now.
3) On paper, note the functional separations you'll need, probably:
a) Input
b) processing
c) Output
etc.
4) Note the parameters each functional part will need to work with, and make rough functions in code. Just reasonably close for now, and pseudo code or plain language, is fine.
5) Check that you have all the big parts of the program, included.
6) Start with main(), and work with each function in the order the program will, and start replacing the plain language and pseudo code, with actual code. All the details that you can put off still, put off. Only the essentials right now.
7) Once you have the flow of the program down right, go back and get enough details that the accuracy of your calculations can be confirmed. Things like appearance are still being put off. This applies to all functions except those dealing with appearance and other details.
8) When the above is OK, then get into all the details that you put off. NOW is the time to make your output, really shine.
The advantage is that the important things are done first, and the numerous lines of code dedicated to less important issues, are relegated to later. Things move along faster.
Oddly, this tends to improve those details, because by the time you are writing that code, you know better how you want them to be done.