Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Program Requirements Your program must meet the following requirements: 1. You m

ID: 3635152 • Letter: P

Question

Program Requirements

Your program must meet the following requirements:
1. You must ask the user if they want to perform an encryption or decryption operation.
2. You must ask the user to enter the name of the file they want to encrypt or decrypt.
3. You must get an encryption key from the user which can be up to 128 characters. The key must be all lower case alphabetic characters.
4. You must have a function which takes the encryption key and creates an encryption map from it. For each character in the encryption key string, subtract the lower case letter 'a' and store the result in the corresponding encryption map array.
5. You must have a function which takes the encryption key and creates a decryption map from it. For each character in the encryption key string, subtract the lower case letter 'a' from it. Then subtract that result from 26 and store the value in the corresponding decryption map array.
6. You must have a function which will do the encryption or decryption transformation. This function takes the following parameters:
A constant C string containing the line of text to be transformed.
A constant C character array which contains the encryption or decryption map.
An integer which contains the length of the encryption map.
A string reference (output) which will contain the encrypted or decrypted string upon completion.
The core of the encryption / decryption algorithm is as follows:
For each character (the ith character) in the text input line do the following:
if the character is not alphabetical, add it to the end of the output string
if the character is lower case alphabetical
subtract the character 'a' from the character
get the ith % map length element from the map and add it to the character
adjust the value of the character % 26 to keep it within the alphabet
add the character 'a' to the character
add the encrypted character value to the end of the output string
if the character is upper case alphabetical
do the same thing as for lower case except use 'A' instead of 'a'

7. For decryption, the main program should create an ifstream for the file to be decrypted. It should use the getline method of the ifstream to read lines from the file, call the encryption / decryption function with the line to be decrypted, and display the string which contains the result of the encryption / decryption function call. Repeat until the ifstream reaches the end of the file, then close the ifstream.

8. For encryption, the main program should create an ifstream for the file to be encrypted. It should also create an ofstream for the file where the encrypted result will be stored. The file name for this file can be gotten from the user or can be the input file name with a special extension added at the end. The getline method of the ifstream is used to read lines from the input file. Then the encryption / decryption function is called to encrypt the line. Display the string containing the result and write the string to the ofstream. Close the ifstream and ofstreams when finished.

9. Make sure that your program allows the user to encrypt / decrypt more than one file per session. This means adding a loop which allows the entire program to repeat until the user has nothing more to do.

Hints

1. Use C strings for the encryption string and the file names. Use char arrays for the encryption and decryption maps. You cannot treat these as C strings because the maps can contain 0 as a valid data item rather than the end of string marker.

2. Use a string type variable to hold the encrypted and decrypted strings. The string type allows you to add characters to the end of a string using the push_back method, and it allows you to dump the contents of the string using the erase method.

3. For input streams, you can use the eof method to determine when you have reached the end of a file.

4. Use a character array to read data from the files. Set the maximum length for this buffer to be 256 characters.

Explanation / Answer

#include #include #include using namespace std; void mapitE(string,char[]); void mapitD(string,char[]); void encryptdecrypt(const string,const char[],int,string&); int main() {string ende[]={"encrypt","decrypt"},buffer,key,newbuffer=""; char filename[80],enmap[128],demap[128],again; int i,maplength; ofstream out; ifstream in; int choice; do { coutchoice; while(choice2) {cout
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Chat Now And Get Quote