You are a senior C++ programmer in the Utopian Navy serving aboard the good ship
the USS Leaky-hull whose mission is to track down the long lost treasure of Captain
Nobeard. After much investigation it has been discovered that Captain Nobeard has
hidden the directions to his long lost treasure in an acrostic text file. An acrostic is a
message in a block of text which is hidden in the columns of that text (usually the first
column but not exclusively).
For example:
Plagiarism is not the answer It irritates and endangers Really you should avoid it Anyone and everyone should say no Terrible things will happen Everyone will look down on you
You will need to write a program in order to detect hidden acrostics. The program will
have to be written according Utopian Navy guidelines as follows.
1. Your program must accept the names of two text files as command line
arguments. The first file represents the potential acrostic while the second
contains a list of dictionary words.
2. Your main program must read the contents of both text files into dynamically
allocated 2D arrays of characters. The final rows and columns of these arrays
contain the NULL character (‘\0’).
3. You must create a DLL file called detect.dll which exports the following
function without C++ name mangling and using the C calling convention:
void detect(char** data, char** words);
This function will compare the character sequences formed by each column in
the data array with the list of words provided in the second array. Any
matches are displayed on the standard output.
4. Add all of your C++ compilation instructions to a text file called build.bat
5. Your main program must explicitly link to the function provided in the DLL and
call that function.
6. Your program must make use of exception handling and define a custom
exception class hierarchy consisting of the following exceptions
a. UtopianNavalException
b. FileException
c. TextFileException
d. DLLFileException
7. (Bonus) – Make use of the Resource Aquistion Is Initialisation (RAII)
technique in order to manage access to your text files and DLL file in an
exception-safe manner.
6. Your program must make use of exception handling and define a custom
exception class hierarchy consisting of the following exceptions
a. UtopianNavalException
b. FileException
c. TextFileException
d. DLLFileException
7. (Bonus) – Make use of the Resource Aquistion Is Initialisation (RAII)
technique in order to manage access to your text files and DLL file in an
exception-safe manner.