1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
jekas [21]
3 years ago
13

Today we will be making a Caesar Cipher to encrypt and decrypt messages.A Caesar Cipher is a simple cipher that translates one l

etter to another via shifting the letter a few spaces in the alphabet. For example:A Caesar Cipher with a shift of 3 would turn A into D, B into E, C into F, and so on.Your task is to use string methods and two user defined functions (an encrypt function and a decrypt function) to produce an encrypted message from a "plaintext" message and a "plaintext" message from an encrypted message.The program should use a menu such as:1. Encrypt2. Decrypt3. ExitThe menu should be displayed in a loop until the user chooses to exit. When the user chooses the Encrypt option, your program should prompt the user to input a "plaintext" string. Then the program should display what the encrypted text would be.When the user chooses the Decrypt option, your program should prompt the user for an encrypted message and then display the "plaintext" version of that message to the user.For this program each message should be a single word and your cipher should use a shift of 3.Any message entered by the user should be capitalized using a user defined function that will take a string in by reference and use the toupper() function from to capitalize each letter of the string.
Computers and Technology
1 answer:
Len [333]3 years ago
8 0

Answer:

#include <iostream>

#include <stdio.h>

#include <ctype.h>

using namespace std;

string

encrypt (string text, int s)

{  string resultingString = "";

 for (int i = 0; i < text.length (); i++)

   {      if (!isspace (text[i]))

{

  if (isupper (text[i]))

    resultingString += char (int (text[i] + s - 65) % 26 + 65);

  else

  resultingString += char (int (text[i] + s - 97) % 26 + 97);

}

     else

{

  resultingString += " ";

}

  }

 return resultingString;

}

string

decrypt (string text, int s)

{

 string resultingString = "";

 for (int i = 0; i < text.length (); i++)

   {

     if (!isspace (text[i]))

{

  if (isupper (text[i]))

    resultingString += char (int (text[i] + s - 65) % 26 + 65);

  else

  resultingString += char (int (text[i] + s - 97) % 26 + 97);

}

     else

{

  resultingString += " ";

}

   }

 return resultingString;

}

string upper(string str){

   for (int i=0;i<str.length();i++){

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

   }

   return str;

}

int

main ()

{

 string text = "This is test text string";

 

 int s = 3;

 string cipherText = "";

 string decipherText = "";

int menu=-1;

while (menu!=3){

   cout<<"1. Encrypt"<<endl;

   cout<<"2. Decrypt"<<endl;

   cout<<"3. Exit"<<endl;

   cin >>menu;

   cin.ignore();

   if(menu==1){

       cout<<"Enter Plain string "<<endl;

       getline(cin,text);

       text=upper(text);

         cipherText = encrypt (text, s);

           cout << "cipher text: " << cipherText << endl;

   }

   else if(menu==2){

       cout<<"Enter Encrypted string "<<endl;

       getline(cin,cipherText);

               cipherText=upper(cipherText);

         decipherText = decrypt (cipherText, 26 - s);

 cout << "decipher text: " << decipherText << endl;

   }

   else {

       cout<<"Not valid"<<endl;

   }

}

 return 0;

}

Explanation:

Display menu with options 1 encrypt, 2 decrypt, 3 exit. Write a function to translate string to upper case. Iterate through string and for each index use toupper function to translate alphabet to upper case and store it back to current index of string.On exiting from loop return string. Pass upper case string to encrypt function.

In encrypt function pass string by reference and shift value. Create an empty string resultingString. Iterate through string for each character check if its space, if its a space add it to resulting string otherwise using ascii values convert char to its ascii add shift value and subtract 65 (staring ascii value for capital alphabet) take modules with 26 for new character and than add 65 to get alphabet.Now add this alphabet to resulting string. Upon loop completion return resultingString.

For decryption use same function as encryption. We are using cyclic property to decrypt using same function therefor subtract shift from 26 and pass resulting shift value to decrypt function.

You might be interested in
What is the single most important component of a computer? Central Processing Unit DIP Motherboard Chipset
Dominik [7]
The mother board it holds all of the storage
5 0
4 years ago
In which of the following situations may the taxpayer take an education expense on Schedule C? a. Henry, a self-employed adminis
daser333 [38]

Answer:

Henry, an administrative assistant, is taking an advanced Word computer program class through an adult school program.  

Explanation:

4 0
3 years ago
Write a method called min that takes three integers as parameters and returns the smallest of the three values, such that a call
Debora [2.8K]

Answer:

public class Main

{

public static void main(String[] args) {

 System.out.println(min(3, -2, 7));

}

public static int min(int n1, int n2, int n3){

    int smallest = Math.min(Math.min(n1, n2), n3);

    return smallest;

}

}

Explanation:

*The code is in Java.

Create a method named min that takes three parameters, n1, n2, and n3

Inside the method:

Call the method Math.min() to find the smallest among n1 and n2. Then, pass the result of this method to Math.min() again with n3 to find the min among three of them and return it. Note that Math.min() returns the smallest number among two parameters.

In the main:

Call the method with parameters given in the example and print the result

7 0
3 years ago
What is malware? What are some signs that malware may be impacting the performance of your computer? How can you avoid malware?
Anni [7]

Answer:

Malware is a type of software that is specifically designed to disrupt, damage, or gain unauthorized access to a computer system. Malware can be spread through email attachments, online advertisements, websites, and other methods.

Some signs that malware may be impacting the performance of your computer include:

  • Your computer is running more slowly than usual
  • Your computer crashes frequently
  • Your computer has pop-up ads or other unwanted behavior
  • Your default homepage or search engine has changed without your permission
  • You see new icons or programs on your desktop that you didn't install

To avoid malware, you should be cautious when browsing the internet and avoid visiting suspicious websites. You should also avoid opening email attachments from unknown senders, and be wary of online advertisements. You can also protect your computer by using antivirus software and keeping it up to date.

3 0
1 year ago
WILL GIVEE BRAINLIEST ANSWER!!!!
Licemer1 [7]

Answer:

People have been ringing the death knell for email on and off for a few years now. But should we be listening?

The latest peal came from French IT company Atos, which declared that it would phase out internal emails by 2013. And for reasons we’ll all recongize: too much time spent dealing with too many emails, of which too few are useful and too many are spam. CEO Thierry Breton said his staff would instead use good old face-to-face communication, as well as instant messaging (IM) and social media tools.

3 0
3 years ago
Other questions:
  • Pete Jones, a bait shop owner, incorporates ______ within a webpage to entice customers to buy a new lure.
    7·1 answer
  • If someone receives a shock, or a piece of equipment is throwing sparks or arcing you should try to pull them away from the sour
    7·1 answer
  • A technician wants to consolidate and log specific alerts from network devices into a database so maintenance tasks and potentia
    11·1 answer
  • Which of the following variable names is not valid? 1price 1 price price 1 price1
    15·2 answers
  • Does anyone know the answer for this? I’m extremely confused.
    8·2 answers
  • ​Suppose your computer network was compromised in a large scale virus attack last Thursday. Most of the data files got corrupted
    8·1 answer
  • Please could you help me
    6·2 answers
  • How many cubic millimeters are present in 0.0923 m3?​
    14·1 answer
  • Simple interest will always pay more interest than compound interest.
    14·1 answer
  • Which of the following is not a reason to choose a community college?
    14·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!