Jump to content
Fórum Script Brasil
  • 0

Question

#include <iostream>
#include <string.h>
#include<stdlib.h>
#include<stdio.h>
#include<ctype.h>
#include<fstream>

using namespace std;
////Com Espaços e Numeros
void cript_espnum()
{
      char frase[30],frase_cript[30],chave[10],chave_estendida[30],alfabeto[26][26],a='A',z,aux_linha,aux_coluna;
      int i,j;
      for(i=0;i<26;i++)
      {
            z=a;
            for(j=0;j<26;j++)
            {
                  alfabeto[i][j]=z;
                  if(z=='Z')
                  {
                        z='A';
                  }
                  else
                  {
                        z++;
                  }
            }
      a++;
      }
      setbuf(stdin,NULL);
      cout << "Digite a frase a ser criptografada:";
      cin.getline(frase,30);
      cout << "Digite a chave:";
      cin >> chave;
      for(i=0;i<strlen(frase);i++)
      {
            frase[i]=toupper(frase[i]);
      }
      for(i=0;i<strlen(chave);i++)
      {
            chave[i]=toupper(chave[i]);
      }
      for(int i=0,cont=0;i<strlen(frase);i++)
    {
        if(chave[cont] != '\0')
            {
                  chave_estendida[i] = chave[cont];
            }
            else
            {
                  cont = 0;
                  chave_estendida[i] = chave[cont];
            }
            cont++;
      }
      chave_estendida[strlen(frase)] = '\0';
      for(int i=0;i<strlen(frase);i++)
      {
            if(frase[i]>=65 && frase[i]<=90)
            {
                 aux_linha=frase[i]-65;
                 aux_coluna=chave_estendida[i]-65;
                 frase_cript[i]=alfabeto[aux_linha][aux_coluna];
            }
            else
            {
                 frase_cript[i]=frase[i];
            }

      }
      cout << "Frase criptografada:" << endl;
      cout << frase_cript<< endl;
      exit(0);
}
//Com Espaços
void cript_espaco()
{
      char frase[30],frase_cript[30],chave[10],chave_estendida[30],alfabeto[26][26],a='A',z,aux_linha,aux_coluna;
      int i,j;
      for(i=0;i<26;i++)
      {
            z=a;
            for(j=0;j<26;j++)
            {
                  alfabeto[i][j]=z;
                  if(z=='Z')
                  {
                        z='A';
                  }
                  else
                  {
                        z++;
                  }
            }
      a++;
      }
      setbuf(stdin,NULL);
      cout << "Digite a frase a ser criptografada:";
      cin.getline(frase,30);

      cout << "Digite a chave:";
      cin >> chave;
      for(i=0;i<strlen(frase);i++)
      {
            frase[i]=toupper(frase[i]);
      }
      for(i=0;i<strlen(chave);i++)
      {
            chave[i]=toupper(chave[i]);
      }
      for(int i=0,cont=0;i<strlen(frase);i++)
    {
        if(chave[cont] != '\0')
            {
                  chave_estendida[i] = chave[cont];
            }
            else
            {
                  cont = 0;
                  chave_estendida[i] = chave[cont];
            }
            cont++;
      }
      for(int i=0;i<strlen(frase);i++)
      {
            if(frase[i]==32)
            {
                  frase_cript[i]=32;
            }
            else
            {
                 aux_linha=frase[i]-65;
                 aux_coluna=chave_estendida[i]-65;
                 frase_cript[i]=alfabeto[aux_linha][aux_coluna];
            }

      }
      cout << "Frase criptografada:" << endl;
      cout << frase_cript << endl;
      exit(0);
}
void descript()
{
char frase_cript[500],chave[10],chave_estendida[500],alfabeto[26][26],aux,frase_descrip[500],auxl;
int i;
setbuf(stdin,NULL);
ifstream arquivo_entrada;
cout << "Digite a frase criptografada:";
cin.getline(frase_cript,500);
cout << "Digite a chave utilizada:";
cin >> chave;
for(i=0;i<strlen(frase_cript);i++)
{
      frase_cript[i]=toupper(frase_cript[i]);
}
for(i=0;i<strlen(chave);i++)
{
      chave[i]=toupper(chave[i]);
}
char a = 'A';
char z;
      for (int i = 0; i < 26; i++)
      {
            z = a;
            for (int j = 0; j < 26; j++)
            {
                  alfabeto[i][j] = z;
                  if (z == 'Z')
                  {
                        z = 'A';
                  }
                  else
                  {
                        z++;
                  }
            }
            a++;
      }
    for(int i=0,cont=0;i<strlen(frase_cript);i++)
    {
        if(chave[cont] != '\0')
            {
                  chave_estendida[i] = chave[cont];
            }
            else
            {
                  cont = 0;
                  chave_estendida[i] = chave[cont];
            }
            cont++;
      }
      chave_estendida[strlen(frase_cript)] = '\0';
      cout << chave_estendida << endl;
      for(int i=0;i<strlen(frase_cript);i++)
      {
            aux=chave_estendida[i]-65;
                  for(int j=0;j<26;j++)
                  {
                        if(alfabeto[j][aux]==frase_cript[i])
                        {
                              auxl=j+65;
                        }
                  }
                   frase_descrip[i]=auxl;
      }

        cout << "Frase descriptografada:" << endl;
		cout << frase_descrip << endl;
		exit(0);
}



//Função criptografa
void criptografa()
{
	char alfabeto[26][26],frase[30];
	char chave[10];
    char a = 'A';
    char z;
		for (int i = 0; i < 26; i++)
		{
			z = a;
			for (int j = 0; j < 26; j++)
			{
				alfabeto[i][j] = z;
				if (z == 'Z')
				{
					z = 'A';
				}
				else
				{
					z++;
				}
			}
			a++;
		}
		setbuf(stdin,NULL);
		cout << "Digite uma frase:";
		cin.getline(frase, 30);
		for (int i = 0; i < strlen(frase); i++)
            {
                  frase[i]=toupper(frase[i]);
            }
            for (int i = 0; i < strlen(frase); i++)
            {
			if (frase[i] == ' ')
			{
				for (int y = i; y < strlen(frase); y++)
					frase[y] = frase[y + 1];
					i--;
			}
            }
		cout << frase << endl;
		cout << "Digite a chave:";
		cin >> chave;
		for(int i=0;i<strlen(chave);i++)
            {
                  chave[i]=toupper(chave[i]);
            }
		char aux[30];


		for (int i = 0, cont = 0; i < strlen(frase); i++)
		{
			if (chave[cont] != '\0')
			{
				aux[i] = chave[cont];
			}
			else
			{
				cont = 0;
				aux[i] = chave[cont];
			}
			cont++;
		}
		aux[strlen(frase)] = '\0';
		cout<<aux << endl;

		char fraseaux[30],auxl,auxc,linha,frase_descript[30];
        for(int i=0;i<strlen(frase);i++)
        {
            auxl=frase[i]-65;
            auxc=aux[i]-65;
            fraseaux[i]=alfabeto[auxl][auxc];
        }
        exit(0);
}
//Função menu interno
void Menuinterno ()
{
      char opcao;
      while(opcao!='a'||opcao!='b'||opcao!='c')
      {
            system("cls");
            cout << "\n\tCriptografar";
            cout << "\n\na - Sem espaco";
            cout << "\n\nb - Manter os espaco";
            cout << "\n\nc - Manter numeros";
            cout << "\n\nEscolha uma opcao: ";
            cin >> opcao;
            switch(opcao)
            {
            case 'a':
                criptografa();
                  break;
            case 'b':
                  cript_espaco();
                  break;
            case 'c':
                  cript_espnum();
                  break;
            default:
                  cout << "Opcao Invalida!Tente novamente!";
                  system("pause");
            }
      }
}
//Função de menu
void Menu()
{
      char opcao;
      while(1)
      {
            system("cls");
            cout<< "\n\tPrograma de Criptografia";
            cout<<"\n\n 1 - Criptografar Arquivo";
            cout << "\n\n 2 - Descriptografar Arquivo";
            cout << "\n\n 3 - Creditos";
            cout << "\n\n 4 - Sair";
            cout << "\n\n Informe a opcao desejada: ";
            cin >> opcao;
            setbuf(stdin,NULL);
            switch(opcao)
            {
            case '1':
                  Menuinterno();
                  break;
            case '2':
                  descript()
;                  break;
            case '3':
                  cout << "\n\nProgramadores:";
                  cout << " Leonardo\n";
                  system("pause");
                  break;
            case '4':
                  cout << "\nFinalizando o programa!";
                  exit(0);
                  break;
            default:
                  cout << "Opcao Invalida!Tente novamente...\n";
                  system("pause");

            }
      }
}
int main()
{
      Menu();
}

 

Eu gostaria que Alguém me ajuda-se a refinar este código e a colocar arquivo nele para poder ler um arquivo de texto ao invés de escrever uma frase só, e outra um menu que retornasse .

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.1k
×
×
  • Create New...