Analyze a basic set of requirements for a problem
Compose basic C++ language programs
Create basic test cases for a program
Apply arrays, strings, and pointers
Declare and define constructors
Declare and define destructors
Compare and contrast public and private access specifiers in C++
Describe what is an attribute or data member of a class
Describe what is a method of a class
Apply and implement overloaded functions
Distinguish between pass-by-value and pass-by-reference
Discuss classes versus objects
Build a basic cipher base class that may be derived from for the ciphers described below.
1. Encode a text message using the Caesar Cipher, a mono-alphabetic substitution cipher. You will need to input the KEY number from 1 to 25. Do not encode special characters or white space. All encoded text should be upper case only. You should be able to save an encoded message to a file.
2. Decode a Caesar Cipher text. You will have two cases:
a. You are given the KEY.
b. You have to break the KEY by brute force trial and error.
3. Build a randomly generated simple substitution cipher and use it to encode messages. Again the encoded messages will be in all upper case letters only. Only encode the letters.
4. Build a method for performing frequency analysis to decode a substitution cipher. Your system should determine the frequency of characters in the encoded message and generate it's guess on the decoding by building a lookup table as an array and supporting class that would hold each encoded pair of characters.
5. Build a standard text-based wrapper for the application.