Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 12.08.2016
Сообщений: 239
1

Нужно переделать под С

02.12.2016, 20:54. Показов 743. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно код с++ переделать на с
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <stdio.h> 
#include <locale.h>//для языка
#include <iostream>//для cout и cin
#include <fstream> // работа с файлами
#include < conio.h > 
using namespace std;
 
int main (){ 
setlocale(LC_ALL,"Russian");//для языка
int actionSelection;//переменная для выбора действия 
cout << "Добро пожаловать в программу EDD (encryption and decryption of data)!\nВыберите одно из действий:\n1-ENCRYPTION\n2-DENCRYPTION\n3-EXIT\n";
cin >> actionSelection;
 
  switch (actionSelection) // начало оператора switch
  {
   case 1: // actionSelection = 1
   {
    cout << "ENCRYPTION\n";
    char txt;//Переменная в которую считываем текст из файла
    ifstream sourceText("D://kurs//Kompaniiets_sourceText.txt",ios_base::binary); // открыли файл для чтения 
    ofstream keyStream("D://kurs//Kompaniiets1.str",ios_base::binary); // открыли файл для записи ключа
    ofstream encryptionText("D://kurs//Kompaniiets.enc",ios_base::binary); // открыли файл для записи зашифрованного текста 
    if (!sourceText && !keyStream && !encryptionText) 
    { 
     cout << "Unable to access the file ...\n"; 
     exit(0);
    } 
    else
    sourceText.seekg (0, sourceText.end);//устанавливаем позицию в потоке данных . в конец
    int length = sourceText.tellg();//определяем позицию указателя
    sourceText.seekg (0, sourceText.beg);//устанавливаем позицию в потоке данных . в начало
    char * pos = new char [length];
    sourceText.read (pos, length);
    while (sourceText) 
    { 
     sourceText.get(txt); //читаем символ из файла 
     cout << txt; //выводим символ в консоль 
     sourceText.close(); // закрываем файл
    } 
    unsigned int k1[16];
    unsigned int k2[12];
    unsigned int gh, s, gj, s2, s1;
    cout <<"Введите код из 16 бит"<<endl;
    for (int i=0; i<16; i++)
    {
     cout <<"\n%d symbol:"<< i+1 <<endl;
     cin >> k1[i];
    }
    cout <<"Введите код из 12 бит"<<endl;
    for (int i=0; i<12; i++)
    {
    cout <<"\n%d symbol:"<< i+1 <<endl;
    cin >> k2[i];
    }
 
    for (size_t i = 0; i < length; ++i) //До тех пор, пока не закончится файл с исходным текстом
    { 
        char ch = 0;
 
        for (size_t j = 0; j < 8; ++j) //До тех пор, пока файл не закончится длина  одного байта
        {
            gh = k1[0]^k1[3]^k1[4]^k1[15];
            s = k1[11];
            s1 = k1[0];
      //Выполняем операции и действия связанные с регистрами согласно варианту задания
            for (int y = 0;y < 16 - 1;y++) k1[y] = k1[y+1];
            k1[15]=gh;
 
            gj=k2[11]^k2[5]^k2[4]^k2[3]^k2[0];
            s2 = k2[0];
 
            for ( int y=0;y<12 - 1;y++) k2[y]=k2[y+1];
            k2[11]=gj;
 
            ch |= ((s ^ s2) | s1) << j;
        }
 
        pos[i] ^= ch; 
        encryptionText << pos[i];
    }
    break;
   }
   case 2: // если actionSelection = 2
    {
    cout << "DENCRYPTION\n\n";
    char txt;//Переменная в которую считываем текст из файла
    ifstream sourceText("D://kurs//Kompaniiets.enc",ios_base::binary); // открыли файл для чтения 
    ofstream keyStream("D://kurs//Kompaniiets2.str",ios_base::binary); // открыли файл для записи ключа
    ofstream encryptionText("D://kurs//Kompaniiet_decryptedText.txt",ios_base::binary); // открыли файл для записи зашифрованного текста 
    if (!sourceText && !keyStream && !encryptionText) 
    { 
     cout << "Unable to access the file ...\n"; 
     exit(0);
    } 
    else
    sourceText.seekg (0, sourceText.end);//устанавливаем позицию в потоке данных . в конец
    int length = sourceText.tellg();//определяем позицию указателя
    sourceText.seekg (0, sourceText.beg);//устанавливаем позицию в потоке данных . в начало
    char * pos = new char [length];
    sourceText.read (pos, length);
    while (sourceText) 
    { 
     sourceText.get(txt); //читаем символ из файла 
     cout << txt; //выводим символ в консоль 
     sourceText.close(); // закрываем файл
    } 
    unsigned int k1[16];
    unsigned int k2[12];
    unsigned int gh, s, gj, s2, s1;
    cout <<"Введите код из 16 бит"<<endl;
    for (int i=0; i<16; i++)
    {
     cout <<"\n%d symbol:"<< i+1 <<endl;
     cin >> k1[i];
    }
    cout <<"Введите код из 12 бит"<<endl;
    for (int i=0; i<12; i++)
    {
    cout <<"\n%d symbol:"<< i+1 <<endl;
    cin >> k2[i];
    }
 
    for (size_t i = 0; i < length; ++i) //До тех пор, пока не закончится файл с исходным текстом
    { 
        char ch = 0;
 
        for (size_t j = 0; j < 8; ++j) //До тех пор, пока файл не закончится длина  одного байта
        {
            gh = k1[0]^k1[3]^k1[4]^k1[15];
            s = k1[11];
            s1 = k1[0];
      //Выполняем операции и действия связанные с регистрами согласно варианту задания
            for (int y = 0;y < 16 - 1;y++) k1[y] = k1[y+1];
            k1[15]=gh;
 
            gj=k2[11]^k2[5]^k2[4]^k2[3]^k2[0];
            s2 = k2[0];
 
            for ( int y=0;y<12 - 1;y++) k2[y]=k2[y+1];
            k2[11]=gj;
 
            ch |= ((s ^ s2) | s1) << j;
        }
 
        pos[i] ^= ch; 
        encryptionText << pos[i];
    }
     break;
    }
    case 3: // если actionSelection = 3
    {
     cout << "EXIT\n";
     break;
    }
    default: // если actionSelection равно любому другому значению
    cout << "ERROR" << endl;//аналог \n и очищает поток
   }
system("pause");
return 0; 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2016, 20:54
Ответы с готовыми решениями:

Есть код программы с динамическими массивами, но нужно переделать его под локальные.
Добрый вечер, нужна помощь! Есть код программы с динамическими массивами, но нужно переделать его...

Переделать под классы
Здравствуйте. Был бы благодарен, если бы вы помогли переделать эту задачу под классы. Элемент...

Переделать код программы под Си
помогите переделать код программы под Си #include &lt;iostream&gt; using namespace std; int main()...

Переделать программу под поинтер
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; struct hotel{ char Denumirea ; int...

3
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28046 / 15779 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
02.12.2016, 20:58 2
нужно написать условие задачи.
0
0 / 0 / 1
Регистрация: 12.08.2016
Сообщений: 239
02.12.2016, 21:26  [ТС] 3
Программа должна обеспечивать:
• шифрование информации, находящейся в текстовом файле, с записью результата в другой текстовый файл,, а ключевого потока — в третий текстовый файл;
• ввод ключа с клавиатуры, с записью в файлы только зашифрованного текста и ключевого потока;
• расшифровку текста, содержащегося в файле, при помощи ключевого потока, хранящегося в другом файле, с выводом результатов на экран или в третий файл.

Тип файлов -текстовый
Файл с открытым текстом должен иметь расширение .txt.
Файл с зашифрованным текстом должен иметь расширение .enc.
Файл ключевого потока должен иметь расширение .str.
Нужно переделать под С

ключ будет в виде двоичного кода
0
0 / 0 / 1
Регистрация: 12.08.2016
Сообщений: 239
02.12.2016, 21:29  [ТС] 4
Нужно переделать под С
0
02.12.2016, 21:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2016, 21:29
Помогаю со студенческими работами здесь

Переделать задачу под указатели
Здравствуйте! Никак не могу понять, каким образом данную задачу переделать под указатели так как...

Переделать код под динамический массив
В коде используется статический массив. А как записать в динамическом? #include &lt;stdio.h&gt;...

Как переделать любую из функций под void?
#include &lt;stdio.h&gt; #include &lt;math.h&gt; /*int ch1,ch2,osn,PR,pr,summa,PROI,a,b; double de;*/ int...

Нужно переделать программу
Нужно сделать такую программу только через функции. #include #include int main(){ double...

Нужно переделать код
Главная форма Form1 using System; using System.Collections.Generic; using System.Windows.Forms;...

Программу С++ нужно переделать в С
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cctype&gt; int main() { std::string str ;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru