Advertisement
wojtas626

[C++] JiMP2 lab2 lamanie szyfru

Mar 8th, 2015
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <conio.h>
  4.  
  5.  
  6. using namespace std;
  7.  
  8.  
  9. struct NumberList
  10. {
  11.     int number;
  12.     NumberList *next;
  13. };
  14.  
  15. void addToList(NumberList **headPointer, int num)
  16. {
  17.     NumberList *pointer;
  18.  
  19.     pointer = *headPointer;
  20.     if (pointer == NULL)
  21.     {
  22.         pointer = new NumberList;
  23.         pointer->number = num;
  24.         pointer->next = NULL;
  25.         *headPointer = pointer;
  26.     }
  27.     else
  28.     {
  29.         while(pointer->next != NULL)
  30.         {
  31.             pointer = pointer->next;
  32.         }
  33.         pointer->next = new NumberList;
  34.         pointer = pointer->next;
  35.         pointer->number = num;
  36.         pointer->next = NULL;
  37.     }
  38. }
  39.  
  40. int main()
  41. {
  42.     ifstream myfile("cipher.txt");
  43.     string cipher;
  44.  
  45.     if(!myfile)
  46.         cout << "Nie można otworzyć pliku!" << endl;
  47.     else
  48.     {
  49.         int stringLength, encryptedNumber;
  50.  
  51.         myfile >> cipher;
  52.         NumberList *head;
  53.         head = NULL;
  54.  
  55.         stringLength = cipher.length();
  56.  
  57.         encryptedNumber = 0;
  58.         for (int i = 0; i < stringLength; i++)
  59.         {
  60.             if (cipher[i] != ',')
  61.             {
  62.                 encryptedNumber = encryptedNumber*10 + cipher[i] - 48;
  63.             }
  64.             else
  65.             {
  66.                 addToList(&head, encryptedNumber);
  67.                 encryptedNumber = 0;
  68.             }
  69.  
  70.         }
  71.         addToList(&head, encryptedNumber);
  72.  
  73.         NumberList *pointer;
  74.  
  75.         int decryptedSum = 0;
  76.  
  77.         for (int i = 103; i < 104; i++)
  78.         {
  79.             for (int j = 111; j < 112; j++)
  80.             {
  81.                 for (int k = 100; k < 101; k++) // 97-122
  82.                 {
  83.                     int letterSwitch = 0;
  84.                     int key, decrypted;
  85.  
  86.                     pointer = head;
  87.  
  88.                     while(pointer != NULL)
  89.                     {
  90.                         switch(letterSwitch)
  91.                         {
  92.                         case 0:
  93.                             key = i;
  94.                             break;
  95.                         case 1:
  96.                             key = j;
  97.                             break;
  98.                         case 2:
  99.                             key = k;
  100.                             break;
  101.                         }
  102.                         decrypted = pointer->number ^ key;
  103.                         decryptedSum += decrypted;
  104.                         cout << (char)decrypted;
  105.                         letterSwitch++;
  106.                         letterSwitch %= 3;
  107.                         pointer = pointer->next;
  108.                     }
  109.                     cout << endl;
  110.                 }
  111.             }
  112.         }
  113.         cout << endl << endl << endl;
  114.         cout << "Suma kodow ASCII rozszyfrowanych liter: " << decryptedSum;
  115.     }
  116.  
  117.     myfile.close();
  118.  
  119.     getch();
  120.  
  121.     return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement