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

CODE: Objectives: The main objective of this assignment is to help you review so

ID: 3878055 • Letter: C

Question

CODE:

Objectives: The main objective of this assignment is to help you review some of the concepts related to functions in C++ as well as working with files General Instructions: 1. Read the Problem Descriptions below 2. In this assignment, you will actually start with a working program 3. Split the single function given into multiple functions 4. Read the input from a file 5. Files provided for this assignment can be found on Blackboard. Task Description: The program in CombinationCipher.cpp takes a message written by the user and puts it through multiple ciphers. A cipher is a technique to create a secret code from a message. A combination cipher uses multiple ciphers to encode the same message. This combination cipher uses a Keyboard cipher twice and then uses Morse code The Keyboard Code is just the order of letters your keyboard. The top row is the original letter, bottom row is the encoded letter ABCDEFGHIJKLMNOPQRSTUVWXYZ QWERTYUIOPASDFGHJKLZXCVBNM The program in CombinationCipher.cpp file works, but it is ugly and harder to understand than it should be. That's because it was written without functions other than main ). As a consequence, a lot of code gets repeated, and the overall logic of the program is hidden by the mass of details Rewrite the program by grouping the a file 'input.txt' instead of the terminal. In particular, your program should include the following func tions code into functions. Change the program so it takes the input from 1. A function named readInput that returns a string containing the message from a file. The parameter should be an fstream passed by reference

Explanation / Answer

#include <iostream>

#include <string>

#include <fstream>

using namespace std;

string readInput(const ifstream fin)

{

string line="";

string message="";

while(!fin.eof()) // To get you all the lines.

{

getline(fin,line); // Saves the line in STRING.

message.append(line); // Append all the lines into a message .

}

return message;

}

void upperCase(string &tempMessage)

{

//clean up the message and make all upper case

for(int i = 0; i < tempMessage.size(); i++)

tempMessage[i] = toupper(tempMessage[i]);

}

string cipher(string tempMessage)

{

//Encode the message through KeyBoard Cipher

for(int i = 0; i < tempMessage.size(); i++){

char letter = tempMessage[i];

switch (letter){

case 'A':

letter = 'Q';

break;

case 'B':

letter = 'W';

break;

case 'C':

letter = 'E';

break;

case 'D':

letter = 'R';

break;

case 'E':

letter = 'T';

break;

case 'F':

letter = 'Y';

break;

case 'G':

letter = 'U';

break;

case 'H':

letter = 'I';

break;

case 'I':

letter = 'O';

break;

case 'J':

letter = 'P';

break;

case 'K':

letter = 'A';

break;

case 'L':

letter = 'S';

break;

case 'M':

letter = 'D';

break;

case 'N':

letter = 'F';

break;

case 'O':

letter = 'G';

break;

case 'P':

letter = 'H';

break;

case 'Q':

letter = 'J';

break;

case 'R':

letter = 'K';

break;

case 'S':

letter = 'L';

break;

case 'T':

letter = 'Z';

break;

case 'U':

letter = 'X';

break;

case 'V':

letter = 'C';

break;

case 'W':

letter = 'V';

break;

case 'X':

letter = 'B';

break;

case 'Y':

letter = 'N';

break;

case 'Z':

letter = 'M';

break;

default :

break;

}

tempMessage[i] = letter;

}

return tempMessage;

}

void translateLetterKeyboard(char letter)

{

  

switch (letter){

case 'A':

letter = 'Q';

break;

case 'B':

letter = 'W';

break;

case 'C':

letter = 'E';

break;

case 'D':

letter = 'R';

break;

case 'E':

letter = 'T';

break;

case 'F':

letter = 'Y';

break;

case 'G':

letter = 'U';

break;

case 'H':

letter = 'I';

break;

case 'I':

letter = 'O';

break;

case 'J':

letter = 'P';

break;

case 'K':

letter = 'A';

break;

case 'L':

letter = 'S';

break;

case 'M':

letter = 'D';

break;

case 'N':

letter = 'F';

break;

case 'O':

letter = 'G';

break;

case 'P':

letter = 'H';

break;

case 'Q':

letter = 'J';

break;

case 'R':

letter = 'K';

break;

case 'S':

letter = 'L';

break;

case 'T':

letter = 'Z';

break;

case 'U':

letter = 'X';

break;

case 'V':

letter = 'C';

break;

case 'W':

letter = 'V';

break;

case 'X':

letter = 'B';

break;

case 'Y':

letter = 'N';

break;

case 'Z':

letter = 'M';

break;

default :

break;

}

}

string translateLetterMorseCode(char letter)

{

string output = "";

switch(letter){

case 'A':

output = ".- ";

break;

case 'B':

output = "-... ";

break;

case 'C':

output = "-.-. ";

break;

case 'D':

output = "-.. ";

break;

case 'E':

output = ". ";

break;

case 'F':

output = "..-. ";

break;

case 'G':

output = "--. ";

break;

case 'H':

output = ".... ";

break;

case 'I':

output = ".. ";

break;

case 'J':

output = ".--- ";

break;

case 'K':

output = "-.- ";

break;

case 'L':

output = ".-.. ";

break;

case 'M':

output = "-- ";

break;

case 'N':

output = "-. ";

break;

case 'O':

output = "--- ";

break;

case 'P':

output = ".--. ";

break;

case 'Q':

output = "--.- ";

break;

case 'R':

output = ".-. ";

break;

case 'S':

output = "... ";

break;

case 'T':

output = "- ";

break;

case 'U':

output = "..- ";

break;

case 'V':

output = "...- ";

break;

case 'W':

output = ".-- ";

break;

case 'X':

output = ".-- ";

break;

case 'Y':

output = "-.-- ";

break;

case 'Z':

output = "--.. ";

break;

case ' ':

output = " ";

break;

case '1':

output = ".---- ";

break;

case '2':

output = "..--- ";

break;

case '3':

output = "...-- ";

break;

case '4':

output = "....- ";

break;

case '5':

output = "..... ";

break;

case '6':

output = "-.... ";

break;

case '7':

output = "--... ";

break;

case '8':

output = "---.. ";

break;

case '9':

output = "----. ";

break;

case '0':

output = "----- ";

break;

default:

output = letter;

}

return output;

}

void printOutput(string userInput,string encodedMessage)

{

cout << endl << "You Gave me the Message: " << endl << userInput << endl << endl

<< "Your Message Encoded is: " << endl << encodedMessage << endl;

}

int main()

{

cout << "Assignment 0- Combination Cipher ";

//Prompt the user for a string

string userInput ="";

ifstream fin("input.txt");

userInput = readInput(&fin);

string tempMessage =userInput;

upperCase(&tempMessage);

  

tempMessage = cipher(tempMessage);

//Encode the message through KeyBoard Cipher a second time

for(int i = 0; i < tempMessage.size(); i++){

char letter = tempMessage[i];

translateLetterKeyboard(&letter) ;

}

//encode the message through Morse code

string encodedMessage = "";

for(int i = 0; i < tempMessage.size(); i++){

encodedMessage += translateLetterMorseCode(tempMessage[i]);

}

//Print the output

printOutput(userInput,encodedMessage);

return 0;

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote