Hi,
I don't think we can just pull a design pattern from the shelf and use it, design patterns should not be approached as instant noodles,
I suppose you need to start the work from fundamental oops
philosophy something very roughly one need to think in these lines:-
1.) Divide your application into different modules [ such as input/data cleansing, report generating, printing, error handling and reporting and so on ]
2.) Then for each of the modules identify different services it performs and their interfaces.
3.) draw a high level architecture { Systems and sub-systems diagram} of your application, identify functional and non-functional requirements,
4.) Refer the Internet/books and journal for best practices employed by earlier hackers[aka programmers/solution architects etc ] for handling a specific functionality, select well defined patterns for your proposed systems and its modules.
5.) Refine the patterns to your needs, and further work on modules identifying the classes, objects interfaces etc.