- Understand the Problem
- What are you asked to show?
- Can you restate the problem in your own words?
- Can you think of a picture or diagram that might help you understand the problem?
- Devise a Plan
- Look for a pattern?
- Draw a picture
- Solve a simpler problem
- Consider special cases
- Have you seen the problem before or the same problem in a slightly different form?
- Do you know how to solve a related problem? Could that help solve this problem?
- Be ingenious!
- Carry out the Plan
This is should be easy if the first two steps are done well.
Fine! But how does this help find appropriate structures to use if you haven't already solved the same or a similar problem or don't feel particularly ingenious at the moment?
You can try the following technique for discovering the set of classes you may need.
The technique is called CRC and consists of an approach to discovering classes and member functions to solve a problem you should already understand.