Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

захист / 10 / Макс

.docx
Скачиваний:
4
Добавлен:
30.05.2020
Размер:
78 Кб
Скачать

#include <iostream>

#include <string>

#include <conio.h>

#include <stdlib.h>

#include <sstream>

#include <fstream>

using namespace std;

int main()

{

int k;

string result = "";

string key = "";

string key_on_s = "";

bool flag;

int x = 0, y = 0;

int registr = 0;

char dublicat;

int shift = 0;

char **tabula_recta = new char *[27];

for (int i=0;i<27;i++)

tabula_recta[i] = new char [27];

string alfabet = " abcdefghijklmnopqrstuvwxyz";

for (int i = 0; i < 27; i++)

for (int j = 0; j < 27; j++)

{

shift = j + i;

if (shift >= 27) shift = shift % 27;

tabula_recta[i][j] = alfabet[shift];

}

k=1;

switch (k)

{

case 1:

{

setlocale(LC_ALL,"Russian");

cout<<"Напишите ключ, который считаете нужным\n";

cin>>key;

setlocale(LC_ALL,"Russian");

string s;

ifstream in("1.txt");

getline(in,s);

cout<<endl;

cout<<endl;

cout<<endl;

cout<<"Введенный текст в файле: \n"<<s<<endl;

in.close();

cout<<endl;

cout<<endl;

cout<<endl;

cout<<endl;

cout<<endl;

cout<<"Результат...\n";

for (int i = 0; i < s.length(); i++)

{ key_on_s += key[i % key.length()];

} for (int i = 0; i < s.length(); i++)

{

if (((int)(s[i]) < 65) || ((int)(s[i]) > 122))

result += s[i];

else

{

int l = 0;

flag = false;

while ((l < 27) && (flag == false))

{

if (key_on_s[i] == tabula_recta[l][0])

{ x = l;

flag = true;

}

l++;

}

if (((int)(s[i]) <= 90) && ((int)(s[i]) >= 65))

{ dublicat = (char)((int)(s[i]) + 32);

registr = 1; } else

{ registr = 0;

dublicat = s[i];

} l = 0;

flag = false;

while ((l < 27) && (flag == false))

{

if (dublicat == tabula_recta[0][l])

{

y = l;

flag = true;

} l++;

}

if (registr == 1)

{

dublicat = char((int)(tabula_recta[x][y]) - 32);

result += dublicat;

}

else

result += tabula_recta[x][y];

}

}

for(int i=0;i<s.length();i++)

if(result[i]==' ')

result[i]='I';

cout<<result; break;

} }

getch();

return 0; }

Соседние файлы в папке 10