The techniques and tools for solving many of today's software problems have existed for some time. Languages such as PL/I and Pascal support modern structured programming. Newer languages such as C and Modula-2 provide even more tools for scaling down large software projects and finally, object-oriented programming languages offer greatly enhanced support for data encapsulation, information hiding and more. This book offers a hands-on guide to this new approach. By tackling real-life software design problems and providing viable solutions in both C and C++, the author shows readers how to make the transition into the objective programming world of tomorrow.