/AreaPrj

Some analysis, design, and programming concepts for an OOP course with C++ Builder

Primary LanguageC++MIT LicenseMIT

AreaPrj

This project was created with the aim of introducing some analysis, design, and programming concepts for an OOP course with C++ Builder. Alas, things didn't work out, so I thought I'd publish this educational material.

In order to show a complete application development cycle, some test modules should also have been provided, perhaps using either boost or google test suites, but unfortunately, this was not done.

I had also started drafting the documentation using Doxygen, but again, as with the test suite, there weren't the resources to continue.

In the imagination, this application stems from a request from one of our hypothetical customers who represent a company specialized in particular decorations on the walls or floors of large buildings, or which deals with large signage, for example for airport runways, circuits for car races or something similar.

The main problem of our client concerns the generation of precise cost estimates to be submitted to his client. In fact, he must accurately calculate the surface of the areas to be painted in order to be able to estimate with a good approximation the volume of the paint to be used and the time required to complete the job.

While it is easy to calculate the area of simple and regular geometric figures, calculating the surface occupied by a writing becomes a non-trivial operation. But this, fortunately, is a job suitable for a computer. With a special program, it will be sufficient to define the text, the properties of the font to be used and the height of the text itself, in order to have the value corresponding to the surface expressed in “conventional” square units.

This program uses the acronym SOLID for the implementation of its parts. Furthermore, the MVC pattern was used for the structure of the application.