Buscar

[RESOLUÇÃO] Trabalho Final Cifrador e Descifrador de César (Programação de Computadores/C)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Instituto Federal de Santa Catarina – Jaraguá do Sul - RAU 
Rua dos Imigrantes, 445 | Rau | Jaraguá do Sul /SC | CEP: 89254-430 
Fone: (47) 3276-9600 | www.gw.ifsc.edu.br | CNPJ 11.402.887/0005-94 
Aluno: Matheus Willian Sprotte | Programação de Computadores | 3º Fase – Engenharia Elétrica 
Trabalho Final – Cifrador e Descifrador de César 
 1. Desenvolver um programa que implementa o Cifrador e Descifrador de César, 
para uma interação via tela e teclado para um texto fornecido via teclado. O usuário 
deverá fornecer um texto a ser cifrado ou descifrado, chave (número do 
deslocamento de posições no alfabeto a direita), e opção se quer cifrar ou descifrar 
o texto fornecido. Após realizar a operação o resultado de saída deverá ser 
apresentado. 
 2. Com base no programa desenvolvido na Questão 1, implementar mais uma 
funcionalidade ao programa. Esta versão 2 do programa deve possibilitar que o 
usuário forneça um arquivo como entrada para ser cifrado ou descifrado, o arquivo 
deve ser no formato texto (txt), ou seja, um texto estará salvo no arquivo e o 
mesmo será fruto do cifrador com a devida opção de cifrar ou descifrar. Assim, o 
resultado será o conteúdo do arquivo estar cifrado ou descifrado utilizando o 
cifrador de César. 
 Código fonte da resolução: 
 
#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 
#include<locale.h> 
int main () 
{ 
 setlocale(LC_ALL,"portuguese"); 
 int op = 1, opt, f, cf, i, lt, ltc, ltcc; 
 char texto [10000]; 
 printf("\n\tCIFRADOR E DESCIFRADOR DE CÉSAR."); 
 while (op = 1) 
 { 
 printf ("\n\nInsiras o dígito correspondente ao que desejas:\n\nCifrar = 1\nDescifrar = 
2\nEncerrar = 3\n=> "); 
 scanf("%d", &f); 
 fflush(stdin); 
 switch (f) 
 { 
 default: 
 printf("\nOpção inválida! por gentileza tente novamente."); 
 break; 
 case 1: 
 printf("\nDesejas digitar o texto diretemante no programa ou que ele leia um 
arquivo .txt?\n\nInserir diretamente = 1\nLer o arquivo de texto = 2\n=> "); 
 scanf ("%d", &opt); 
 fflush(stdin); 
 if (opt == 1) 
 { 
 printf("\nDigite o texto a ser cifrado:\n=> "); 
 gets (texto); 
 fflush(stdin); 
 printf ("\nInsira a cifra:\n=> "); 
 
Instituto Federal de Santa Catarina – Jaraguá do Sul - RAU 
Rua dos Imigrantes, 445 | Rau | Jaraguá do Sul /SC | CEP: 89254-430 
Fone: (47) 3276-9600 | www.gw.ifsc.edu.br | CNPJ 11.402.887/0005-94 
 scanf ("%d", &cf); 
 fflush(stdin); 
 printf ("\nO texto codificado na cifra escolhida fica: "); 
 for (i = 0; i < strlen (texto); i++) 
 { 
 lt = texto[i]; 
 ltc = lt + cf; 
 ltcc = ltc; 
 if (lt >= 65 && lt <= 90) 
 { 
 while (ltcc > 90) 
 { 
 ltcc = ltcc - 26; 
 } 
 printf ("%c", (char)ltcc); 
 } 
 else if (lt >= 97 && lt <= 122) 
 { 
 while (ltcc > 122) 
 { 
 ltcc = ltcc - 26; 
 
 } 
 printf ("%c", (char)ltcc); 
 } 
 else 
 { 
 printf ("%c", (char)lt); 
 } 
 } 
 printf("\n\n"); 
 } 
 else if (opt == 2) 
 { 
 FILE *fp; 
 char* arquivo = "c:\\Cifrador\\Texto.txt"; 
 fp = fopen(arquivo, "r"); 
 if (fp == NULL) 
 { 
 printf("\nO arquivo de texto não foi encontrado e o programa será reiniciado.\n\nÉ 
necessário que exista um arquivo denominado 'Texto' em formato '.txt' contendo o texto a ser 
cifrado.\nAlém disso, o arquivo precisa estar na pasta 'Cifrador' na raíz do seu sistema (geralmente 
disco C).\n\nObs.: Seja livre para criá-los (caminho e arquivo) caso não existam.\n\n"); 
 system ("pause"); 
 return main (); 
 } 
 printf("\nO texto lido e que será cifrado é: "); 
 while (fgets(texto,sizeof(texto), fp) != NULL) 
 printf("%s", texto); 
 fclose(fp); 
 
Instituto Federal de Santa Catarina – Jaraguá do Sul - RAU 
Rua dos Imigrantes, 445 | Rau | Jaraguá do Sul /SC | CEP: 89254-430 
Fone: (47) 3276-9600 | www.gw.ifsc.edu.br | CNPJ 11.402.887/0005-94 
 printf ("\n\nInsira a cifra a ser usada:\n=> "); 
 scanf ("%d", &cf); 
 fflush(stdin); 
 printf ("\nO texto codificado na cifra escolhida fica: "); 
 for (i = 0; i < strlen (texto); i++) 
 { 
 lt = texto[i]; 
 ltc = lt + cf; 
 ltcc = ltc; 
 if (lt >= 65 && lt <= 90) 
 { 
 while (ltcc > 90) 
 { 
 ltcc = ltcc - 26; 
 } 
 printf ("%c", (char)ltcc); 
 } 
 else if (lt >= 97 && lt <= 122) 
 { 
 while (ltcc > 122) 
 { 
 ltcc = ltcc - 26; 
 
 } 
 printf ("%c", (char)ltcc); 
 } 
 else 
 { 
 printf ("%c", (char)lt); 
 } 
 } 
 printf("\n\n"); 
 } 
 else 
 { 
 printf("\nOpção Inválida.\n\n"); 
 } 
 system ("pause"); 
 break; 
 case 2: 
 printf("\nDesejas digitar o texto diretemante no programa ou que ele leia um 
arquivo .txt?\n\nInserir diretamente = 1\nLer o arquivo de texto = 2\n=> "); 
 scanf ("%d", &opt); 
 fflush(stdin); 
 if (opt == 1) 
 { 
 printf("\nDigite o texto a ser descifrado:\n=> "); 
 gets (texto); 
 fflush(stdin); 
 printf ("\nInsira a cifra usada:\n=> "); 
 
Instituto Federal de Santa Catarina – Jaraguá do Sul - RAU 
Rua dos Imigrantes, 445 | Rau | Jaraguá do Sul /SC | CEP: 89254-430 
Fone: (47) 3276-9600 | www.gw.ifsc.edu.br | CNPJ 11.402.887/0005-94 
 scanf ("%d", &cf); 
 fflush(stdin); 
 printf ("\nO texto decodificado pela cifra usada fica: "); 
 for (i = 0; i < strlen (texto); i++) 
 { 
 lt = texto[i]; 
 ltc = lt - cf; 
 ltcc = ltc; 
 if (lt >= 65 && lt <= 90) 
 { 
 while (ltcc < 65) 
 { 
 ltcc = ltcc + 26; 
 } 
 printf ("%c", (char)ltcc); 
 } 
 else if (lt >= 97 && lt <= 122) 
 { 
 while (ltcc < 97) 
 { 
 ltcc = ltcc + 26; 
 
 } 
 printf ("%c", (char)ltcc); 
 } 
 else 
 { 
 printf ("%c", (char)lt); 
 } 
 }printf("\n\n"); 
 } 
 else if (opt == 2) 
 { 
 FILE *fp; 
 char* arquivo = "c:\\Decifrador\\Texto.txt"; 
 fp = fopen(arquivo, "r"); 
 if (fp == NULL) 
 { 
 printf("\n\nO arquivo de texto não foi encontrado e o programa será reiniciado.\n\nÉ 
necessário que exista um arquivo denominado 'Texto' em formato '.txt' contendo o texto a ser 
decifrado.\nAlém disso, o arquivo precisa estar na pasta 'Decifrador' na raíz do seu sistema 
(geralmente disco C).\n\nObs.: Seja livre para criá-los (caminho e arquivo) caso não existam.\n\n"); 
 system ("pause"); 
 return main (); 
 } 
 printf("\nO texto lido e que será descifrado é: "); 
 while (fgets(texto,sizeof(texto), fp) != NULL) 
 printf("%s", texto); 
 fclose(fp); 
 
Instituto Federal de Santa Catarina – Jaraguá do Sul - RAU 
Rua dos Imigrantes, 445 | Rau | Jaraguá do Sul /SC | CEP: 89254-430 
Fone: (47) 3276-9600 | www.gw.ifsc.edu.br | CNPJ 11.402.887/0005-94 
 printf ("\n\nInsira a cifra que foi usada:\n=> "); 
 scanf ("%d", &cf); 
 fflush(stdin); 
 printf ("\nO texto decodificado pela cifra usada fica: "); 
 for (i = 0; i < strlen (texto); i++) 
 { 
 lt = texto[i]; 
 ltc = lt - cf; 
 ltcc = ltc; 
 if (lt >= 65 && lt <= 90) 
 { 
 while (ltcc < 65) 
 { 
 ltcc = ltcc + 26; 
 } 
 printf ("%c", (char)ltcc); 
 } 
 else if (lt >= 97 && lt <= 122) 
 { 
 while (ltcc < 97) 
 { 
 ltcc = ltcc + 26; 
 
 } 
 printf ("%c", (char)ltcc); 
 } 
 else 
 { 
 printf ("%c", (char)lt); 
 } 
 } 
 printf("\n\n"); 
 } 
 else 
 { 
 printf("\nOpção Inválida.\n\n"); 
 } 
 system ("pause"); 
 break; 
 case 3: 
 exit (0); 
 } 
 } 
}

Continue navegando