Está en la página 1de 21

1CV10

PROYECTO FINAL “FUNDAMENTOS DE LA PROGRAMACION”

PÉREZ SOLANO OSCAR ARTURO


RIVERA GONZALEZ EDWIN JHOVANY
SISTEMA DE ENCRIPTADO
1CV10
INDICE

DESCRIPCION DEL PROBLEMA ........................................................................... 2

PLANTEAMIENTO DEL PROBLEMA ..................................................................... 3

TOP DOWN............................................................................................................. 4

DIAGRAMA DE FLUJO ........................................................................................... 5

TABLA DE VALORES PARA CODIFICACION Y DECIRADO ................................ 4

PRUEBA DE ESCRITORIO .................................................................................... 5

PRUEBAS DE EJECUCIÓN.................................................................................... 6

CODIGO .................................................................................................................. 8
DESCRIPCION DEL PROBLEMA

Realizar un programa estructurado realizado con funciones que contenga un menú

con dos opciones

“1ra- que pida y lea un mensaje dado por el usuario y lo codifique”

“2da-que pida lea un mensaje ya codificado y que lo descifre”.

Las opciones deben estar limitaras en un rango de 1 y 2 excluyendo cualquier otro

valor.

El programa debe leer cada letra sea en mayúsculas o minúsculas, numero y/o

carácter.

El programa debe pedir al usuario después de cada operación si desea continuar

usando el sistema o si desea cerrar y limpiar pantalla

“EL PRGRAMA DEBE INCLUR TODOS LOS TEMAS VISTOS EN CLASE”


2
PLANTEAMIENTO DEL PROBLEMA

Entradas Procesos Salidas

Si(Opcion=1){

Leer(char msg[1000]);

EncriptrarMsg(msg[1000])

ImprimirMsg(MsgCodificado)}

Opcion(1, 2); MsgCodificado(Msg);

Msg Si(Opcion=2){ MsgDecifrado(Msg);

MsgCodificado LeeMsgCodificado(char

msg[1000]);

DesencriptarMsg(msg[1000])

ImprimirMsg(MsgDecifrado)}
3
TOP DOWN

4
DIAGRAMA DE FLUJO

si

no

5
TABLA DE VALORES PARA CODIFICACION Y DECIRADO

Método de codificado método de descifrado


Método de codificado para método de descifrado
para números y para números y
letras M y m para letras M y m
caracteres caracteres
Entrada Salida Entrada Salida Entrada Salida Entrada Salida
a b 0 9 b a 9 0
b c 1 8 c b 8 1
c d 2 7 d c 7 2
d e 3 6 e d 6 3
e f 4 5 f e 5 4
f g 5 4 g f 4 5
g h 6 3 h g 3 6
h i 7 2 i h 2 7
i j 8 1 j i 1 8
j k 9 0 k j 0 9
k l ! = l k = !
l m " ) m l ) "
m n # ( n m ( #
n o $ / o n / $
o p % & p o & %
p q & % q p % &
q r / $ r q $ /
r s ( # s r # (
s t ) " t s " )
t u = ! u t ! =
u v ? { v u { ?
v x } + x v + }
x w ] * w x * ]
w y { ? y w ? {
y z [ - z y - [
z a ^ ] a z ] ^
- } } -
+ [ [ +
* ^ ^ *
4
PRUEBA DE ESCRITORIO

PRUEBA 1:

Msg = HOLA MUNDO

Codificado= IPMB NVOEP

PRUEBA 2:

MSG= Xjxb MB qSPHSBNBDJPo

Descifrado= Viva LA pROGRAMACIOn

PRUEBA 3

Msg= 123abcABC!"# 098xyzXYZ=)

Codificado = 876bcdBCD=)( 901wzaWZA!/

Descifrado = 123abcABC!"# 098xyzXYZ=)

5
PRUEBAS DE EJECUCIÓN

PRUEBA 1

6
PRUEBA 2

PRUEBA 3

7
CODIGO

/* case 'd':
POR: cout<<"e";
PEREZ SOLANO OSCAR ARTURO break;
RIVERA GONZALEZ EDWIN JHOVANY case 'e':
cout<<"f";
Materia Fuandamentos de la programacion break;
*******Proyecto final******** */ case 'f':
#include <iostream> cout<<"g";
using namespace std; break;
case 'g':
cout<<"h";
//inicia funcion de encriptado break;
void Encriptar(char msg[1000]){ case 'h':
cout<<" --->Introdude El Mensaje a codificar<---\n"; cout<<"i";
cin.getline(msg,1000,'\n'); //pide el msj break;
cin.getline(msg,1000,'\n'); //pide el msjF case 'i':
cout<<" Tu Mensaje Codificado Es : \n"; cout<<"j";
for(char i=0;i<=msg[i];i++){//lee 1x1 cada caracter el msj break;
switch(msg[i]){//identifica cada termino y lo cifra case 'j':
//letras normales cout<<"k";
case 'a': break;
cout<<"b"; case 'k':
break; cout<<"l";
case 'b': break;
cout<<"c"; case 'l':
break; cout<<"m";
case 'c': break;
cout<<"d"; case 'm':

8
break; cout<<"n";
break; cout<<"y";
case 'n': break;
cout<<"o"; case 'y':
break; cout<<"z";
case 'o': break;
cout<<"p"; case 'z':
break; cout<<"a";
case 'p': break;
cout<<"q"; //MAYUSCULAS
break; case 'A':
case 'q': cout<<"B";
cout<<"r"; break;
break; case 'B':
case 'r': cout<<"C";
cout<<"s"; break;
break; case 'C':
case 's': cout<<"D";
cout<<"t"; break;
break; case 'D':
case 't': cout<<"E";
cout<<"u"; break;
break; case 'E':
case 'u': cout<<"F";
cout<<"v"; break;
break; case 'F':
case 'v': cout<<"G";
cout<<"x"; break;
break; case 'G':
case 'x': cout<<"H";
cout<<"w"; break;
break; case 'H':

5
case 'w': cout<<"I";
break; cout<<"T";
case 'I': break;
cout<<"J"; case 'T':
break; cout<<"U";
case 'J': break;
cout<<"K"; case 'U':
break; cout<<"V";
case 'K': break;
cout<<"L"; case 'V':
break; cout<<"X";
case 'L': break;
cout<<"M"; case 'X':
break; cout<<"W";
case 'M': break;
cout<<"N"; case 'W':
break; cout<<"Y";
case 'N': break;
cout<<"O"; case 'Y':
break; cout<<"Z";
case 'O': break;
cout<<"P"; case 'Z':
break; cout<<"A";
case 'P': break;
cout<<"Q"; //NUMEROS
break; case '0':
case 'Q': cout<<"9";
cout<<"R"; break;
break; case '1':
case 'R': cout<<"8";
cout<<"S"; break;
break; case '2':

6
case 'S': cout<<"7";
break; case '#':
case '3': cout<<"(";
cout<<"6"; break;//acaba
break; case '$':
case '4': cout<<"/";
cout<<"5"; break;//acaba
break; case '%':
case '5': cout<<"&";
cout<<"4"; break;//acaba
break; case '&':
case '6': cout<<"%";
cout<<"3"; break;//acaba
break; case '/':
case '7': cout<<"$";
cout<<"2"; break;//acaba
break; case '(':
case '8': cout<<"#";
cout<<"1"; break;//acaba
break; case ')':
case '9': cout<<"""";
cout<<"0"; break;//acaba
break; case '=':
//SIMBOLOS Y CRACTERES !"#$%&/()=' '{[ cout<<"!";
case ' ': break;//acaba
cout<<" "; case '?':
break; cout<<"{";
case '!': break;//acaba
cout<<"="; case '}':
break;//acaba cout<<"+";
case '"': break;//acaba
cout<<")"; case ']':

7
break;//acaba cout<<"*";
break;//acaba for(char i=0;i<=msg[i];i++){//lee 1x1 cada caracter el msj
case '{': switch(msg[i]){
cout<<"?"; //letras normales
break;//acaba case 'b':
case '[': cout<<"a";
cout<<"-"; break;
break;//acaba case 'c':
case '^': cout<<"b";
cout<<"]"; break;
break;//acaba case 'd':
case '-': cout<<"c";
cout<<"}"; break;
break;//acaba case 'e':
case '+': cout<<"d";
cout<<"["; break;
break;//acaba case 'f':
case '*': cout<<"e";
cout<<"^"; break;
break;//acaba case 'g':
cout<<"f";
} break;
case 'h':
} cout<<"g";
} break;
//finaliza funcion de encriptado case 'i':
cout<<"h";
//inicia funcion de desifrado break;
void Desifrar(char msg[1000]){ case 'j':
cout<<" --->introdude el msj a desifrar<---\n"; cout<<"i";
cin.getline(msg,1000,'\n'); break;
cin.getline(msg,1000,'\n'); case 'k':

8
cout<<" Tu Mensaje Desifrado Es : \n"; cout<<"j";
break; cout<<"u";
case 'l': break;
cout<<"k"; case 'x':
break; cout<<"v";
case 'm': break;
cout<<"l"; case 'w':
break; cout<<"x";
case 'n': break;
cout<<"m"; case 'y':
break; cout<<"w";
case 'o': break;
cout<<"n"; case 'z':
break; cout<<"y";
case 'p': break;
cout<<"o"; case 'a':
break; cout<<"z";
case 'q': break;
cout<<"p"; //MAYUSCULAS
break; case 'B':
case 'r': cout<<"A";
cout<<"q"; break;
break; case 'C':
case 's': cout<<"B";
cout<<"r"; break;
break; case 'D':
case 't': cout<<"C";
cout<<"s"; break;
break; case 'E':
case 'u': cout<<"D";
cout<<"t"; break;
break; case 'F':

9
case 'v': cout<<"E";
break; cout<<"P";
case 'G': break;
cout<<"F"; case 'R':
break; cout<<"Q";
case 'H': break;
cout<<"G"; case 'S':
break; cout<<"R";
case 'I': break;
cout<<"H"; case 'T':
break; cout<<"S";
case 'J': break;
cout<<"I"; case 'U':
break; cout<<"T";
case 'K': break;
cout<<"J"; case 'V':
break; cout<<"U";
case 'L': break;
cout<<"K"; case 'X':
break; cout<<"V";
case 'M': break;
cout<<"L"; case 'W':
break; cout<<"X";
case 'N': break;
cout<<"M"; case 'Y':
break; cout<<"W";
case 'O': break;
cout<<"N"; case 'Z':
break; cout<<"Y";
case 'P': break;
cout<<"O"; case 'A':
break; cout<<"Z";

10
case 'Q': break;
//NUMEROS case ' ':
case '9': cout<<" ";
cout<<"0"; break;//acaba
break; case '=':
case '8': cout<<"!";
cout<<"1"; break;//acaba
break; case ')':
case '7': cout<<"""";
cout<<"2"; break;//acaba
break; case '(':
case '6': cout<<"#";
cout<<"3"; break;//acaba
break; case '/':
case '5': cout<<"$";
cout<<"4"; break;//acaba
break; case '&':
case '4': cout<<"%";
cout<<"5"; break;//acaba
break; case '%':
case '3': cout<<"&";
cout<<"6"; break;//acaba
break; case '$':
case '2': cout<<"/";
cout<<"7"; break;//acaba
break; case '#':
case '1': cout<<"(";
cout<<"8"; break;//acaba
break; case '"':
case '0': cout<<")";
cout<<"9"; break;//acaba
break; case '!':

11
//CARACTERES !"#"$&%&/({[ cout<<"=";
break;//acaba }
case '{': //termina funcion de desifrado
cout<<"?";
break;//acaba //inicia menu
case '+': float Menu(char msg[1000]){
cout<<"}"; int m=0;
break;//acaba cout<<" ----------||Bienvenido Al Software De Cifrado||-----
case '*': -----\n \n";
cout<<"]"; cout<<" Introduce El Numero De La Funcion Que Deseas
break;//acaba Utilizar\n";
case '?': cout<<" ___________________________\n";
cout<<"{"; cout<<"\n |1.-Codificar Un Mensaje |\n";
break;//acaba cout<<" |2.-Decifrar Un Mensaje | \n |Respuesta : ";
case '-': cin>>m;
cout<<"["; if(m>3){
break;//acaba cout<<" Introduce Un Valor Correcto : ";
case ']': cin>>m;
cout<<"^"; }
break;//acaba if(m<1){
case '}': cout<<" introduce Un Valor Correcto : ";
cout<<"-"; cin>>m;
break;//acaba }
case '[': switch(m){
cout<<"+"; case 1:
break;//acaba Encriptar(msg);
case '^': break;
cout<<"*"; case 2:
break;//acaba Desifrar(msg);
break;
} }
}

12
} //fin menu
cout<<endl<<endl;
//funcion ´principal cout<<" Si deseas volves a realizar una operacion presiona
int main(){ cualquier numero\n si deseas salir presiona [0] : ";
system ("color 0b"); cin>>xx;
char msg[1000]; system("cls");
float r; }while(xx!=0);
int xx; system("pause");
do{ retur
Menu(msg);

13
4