Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Principal
- #include <iostream>
- #include <time.h>
- #include "Aleatori.h"
- #include "FuncionsEncriptacio.h"
- int main()
- {
- srand((unsigned)time(NULL));
- Tcodebook_entry codebook[CODEBOOK_SIZE]; //Ejercicio 2
- char message[100] = { "Hola Maximino" };
- char codificado[100];
- char descodificado[100];
- InicialitzaCodebook(codebook);
- ImprimirCodebook(codebook);
- cout << endl << "Mensaje a codificar: " << message << endl;
- CodificaMissatge(codebook, message, codificado, 100);
- cout << endl << "Mensaje codificado: " << codificado << endl;
- DecodificaMissatge(codebook, codificado, descodificado, 100);
- cout << endl << "Mensaje final: " << descodificado << endl;
- return 0;
- }
- //FuncionsEncriptacio.cpp
- #include "FuncionsEncriptacio.h"
- using namespace std;
- bool JaUtilitzat(Tcodebook_entry codebook[], int Pos, int Simbol) // Ejercicio 3
- {
- int i = 0; bool trobat = false;
- while ((i < Pos) && (!trobat))
- {
- if (codebook[i].output == Simbol)
- trobat = true;
- else
- i++;
- }
- return trobat;
- }
- void InicialitzaCodebook(Tcodebook_entry codebook[]) // Ejercicio 4
- {
- codebook[0].input = CODEBOOK_MIN;
- codebook[0].output = Aleatori(CODEBOOK_MIN, CODEBOOK_MAX);
- for (int i = 1; i < CODEBOOK_SIZE; i++)
- {
- codebook[i].input = CODEBOOK_MIN + i;
- bool trobat = true;
- while (trobat == true)
- {
- int simbol = Aleatori(CODEBOOK_MIN, CODEBOOK_MAX);
- trobat = JaUtilitzat(codebook, i, simbol);
- codebook[i].output = simbol;
- }
- }
- }
- void ImprimirCodebook(Tcodebook_entry codebook[]) // Ejercicio 5
- {
- for (int i = 0; i < CODEBOOK_SIZE; i++)
- {
- cout << "Index: " << i << " Input: " << codebook[i].input << " Output: " << codebook[i].output << endl;
- }
- }
- bool TradueixCodi(Tcodebook_entry codebook[], char in_code, char &out_code) // Ejercicio 6
- {
- int i = 0; bool trobat = false;
- while ((i < CODEBOOK_SIZE) && (!trobat))
- {
- if (codebook[i].input == in_code)
- {
- trobat = true;
- out_code = codebook[i].output;
- }
- else
- i++;
- }
- if (!trobat)
- out_code = in_code;
- return trobat;
- }
- bool TradueixCodiInvers(Tcodebook_entry codebook[], char in_code, char &out_code)
- {
- int i = 0; bool trobat = false;
- while ((i < CODEBOOK_SIZE) && (!trobat))
- {
- if (codebook[i].output == in_code)
- {
- trobat = true;
- out_code = codebook[i].input;
- }
- else
- i++;
- }
- if (!trobat)
- out_code = in_code;
- return trobat;
- }
- void CodificaMissatge(Tcodebook_entry codebook[], char inputmsg[], char outputmsg[], int msg_lenght) // Ejercicio 7
- {
- for (int i = 0; i < msg_lenght; i++)
- {
- TradueixCodi(codebook, inputmsg[i], outputmsg[i]);
- }
- }
- void DecodificaMissatge(Tcodebook_entry codebook[], char encodemsg[], char decodemsg[], int msg_lenght)
- {
- for (int i = 0; i < msg_lenght; i++)
- {
- TradueixCodiInvers(codebook, encodemsg[i], decodemsg[i]);
- }
- }
- //FuncionsEncriptacio.h
- #include <iostream>
- #include "Aleatori.h"
- #define CODEBOOK_MIN 32
- #define CODEBOOK_MAX 126
- #define CODEBOOK_SIZE CODEBOOK_MAX - CODEBOOK_MIN + 1
- using namespace std;
- typedef struct //Ejercicio 1
- {
- char input;
- char output;
- }Tcodebook_entry;
- bool JaUtilitzat(Tcodebook_entry codebook[], int Pos, int Simbol);
- void InicialitzaCodebook(Tcodebook_entry codebook[]);
- void ImprimirCodebook(Tcodebook_entry codebook[]);
- bool TradueixCodi(Tcodebook_entry codebook[], char in_code, char &out_code);
- bool TradueixCodiInvers(Tcodebook_entry codebook[], char in_code, char &out_code);
- void CodificaMissatge(Tcodebook_entry codebook[], char inputmsg[], char outputmsg[], int msg_lenght);
- void DecodificaMissatge(Tcodebook_entry codebook[], char encodemsg[], char decodemsg[], int msg_lenght);
- //Aleatori.cpp
- #include "Aleatori.h"
- int Aleatori(int NumMin, int NumMax)
- {
- int NumAleatori;
- NumAleatori = NumMin + (rand() % (NumMax - NumMin + 1));
- return NumAleatori;
- }
- //Aleatori.h
- #include <stdlib.h>
- #include <time.h>
- #include <iostream>
- using namespace std;
- int Aleatori(int, int);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement