Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74

Шифрование гаммированием: переписать программу с оконным интерфейсом (Builder 6)

05.12.2015, 20:44. Показов 1362. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
парни в программировании не очень шарю и сколько не бьюсь - не могу этот листинг на визуальную основу перевести. Пожалуйста помогите:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
 
    char msg[80];
    int key;
    char n;
    cout << "Plaintext: ";
    gets (msg); 
     cout << "key: " ;
    cin>>key;
 
    for ( n = 0; n < strlen(msg); n++)
        msg[n] = msg[n] ^ key; 
    cout << "Ciphertext: " << msg << "\n";
 
    for (n = 0; n < strlen(msg); n++)
        msg[n] = msg[n] ^ key; 
    cout << "unciphering message: " << msg << "\n";
 
    system ("pause");
    return 0;
}
Это шифрование гамированием, если что.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2015, 20:44
Ответы с готовыми решениями:

Создание программы с оконным интерфейсом сделать задание как задачу с массивом и использовать stringGrid для отображения
Вычислить среднее арифметическое элементов двумерного массива случайно заполненных из вещественных чисел. Массив имеет 8 столбцов и 3 строк

создайте на языке Java программу с оконным интерфейсом
создайте на языке Java программу с оконным интерфейсом

Задание с оконным интерфейсом
Подскажите какие ни будь задание с оконным интерфейсом не сильно сложные но интересные.

13
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,411
Записей в блоге: 3
05.12.2015, 22:34
Ну вот так как-то можно...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TEdit *E_in, *E_out;
  if(((TButton *)Sender)->Tag == 0)
   {
     E_in = Edit1;
     E_out = Edit2;
   }
  else
   {
     E_in = Edit2;
     E_out = Edit3;
   }
  String s = E_in->Text;
  int key;
  if((!TryStrToInt(Edit4->Text, key)) || (s.Length() == 0)) return;
  for(int i = 1; i <= s.Length(); i++)
   s[i] ^= key;
  E_out->Text = s;
}
Свойства для кнопки "Зашифровать"
Name == Button1
Tag == 0
Свойства для кнопки "Расшифровать"
Name == Button2
Tag == 1
OnClick == Button1Click
Миниатюры
Шифрование гаммированием: переписать программу с оконным интерфейсом (Builder 6)  
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74
06.12.2015, 17:01  [ТС]
а можно без сохранения, проосто чтобы ввел в едит - нажал зашифровать и в другом едите появилось ??

Добавлено через 21 минуту
херню написал, сорян) Ща проверю будет это работать или нет)

Добавлено через 5 минут
кнопки ведут себя как аутисты, на них нажимаешь, а им плевать. Что в таком случае делать?

Добавлено через 1 минуту
тааак, смотри . Работает только с числами в ключе. Как сделать чтоб работало и с буквами и цифрами??
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,411
Записей в блоге: 3
06.12.2015, 17:10
Цитата Сообщение от Markell Посмотреть сообщение
на них нажимаешь, а им плевать. Что в таком случае делать?
Надо видеть, как ты организовал обработчики события нажатия на кнопки
Цитата Сообщение от Markell Посмотреть сообщение
Как сделать чтоб работало и с буквами и цифрами??
Да это тебя надо спросить, как сделать... Я про этот метод шифрования от тебя только и услышал. Было задание - перевести с консоли в GUI - я перевел... И в данном тобой коде ключ - целое число, ни о каких буквах речи не идет
1
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74
06.12.2015, 17:11  [ТС]
а если вместо вервых трех едитов ставлю ричедит, то не получается конвертировать тричедит в тедит. С этим как быть?
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,411
Записей в блоге: 3
06.12.2015, 17:26
Да точно так же, только проще...
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::Button3Click(TObject *Sender)
{
  String s = RichEdit1->Text;
  int key;
  if((!TryStrToInt(Edit4->Text, key)) || (s.Length() == 0)) return;
  for(int i = 1; i <= s.Length(); i++)
   s[i] ^= key;
  RichEdit1->Text = s;
}
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74
06.12.2015, 20:10  [ТС]
А как сделать так, чтобы введенный ключ проверялся на принадлежность к числовому значению. Т.е ввел вместь числа "вапвапот" и выскакивает окно - Введите число!
Почитал литературу, надо через isdigit. Но как хз.
Братан, помогай)
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,411
Записей в блоге: 3
06.12.2015, 20:31
C++
1
if((!TryStrToInt(Edit4->Text, key)) || (s.Length() == 0)) return;
Вот эта вот строка в коде - это как раз и есть проверка на...
1. то, что в поле ввода ключа вводится верное целочисленное значение, т.е. поле ключа не пусто и не содержит алфавитных символов
2. то, что в поле текста, который нужно кодировать/декодировать содержатся какие-то данные (проверка на пустоту)
Если это условие не выполняется хоть в одной из частей - ничего не происходит, работа обработчика завершается. Если так хочется, можно разделить это условие на 2 части и для каждой части выдать свое сообщение об ошибке, т.е. вместо 5-й строчки пишешь этот блок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if(!TryStrToInt(Edit4->Text, key))
{
   ShowMessage("Неверное значение ключа или ключ не введен");
   Edit4->Text = "";
   Edit4->SetFocus();
   return;
}
if(s.Trim().Length() == 0)
{
   ShowMessage("Не задан текст для кодирования / декодирования");
   RichEdit1->SetFocus();
   return;
}
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74
06.12.2015, 21:01  [ТС]
от души))

Добавлено через 4 минуты
Я тут еще такую тему сделал на RichEdit:
C++
1
RichEdit1->Lines->Clear();
Работает, все классно. Но до тех пор пока я не осознал что она будет очищать всегда)
lines у меня там "Введите сообщение"
Не долго думая я сделал вот так:
C++
1
2
3
4
if (RichEdit1->Lines="Введите сообщение")
{
RichEdit1->Lines->Clear();
}
Но оно не работает. Что тут исправить?
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,411
Записей в блоге: 3
06.12.2015, 21:10
C++
1
2
3
4
if (RichEdit1->Text == "Введите сообщение")
{
  RichEdit1->Lines->Clear();
}
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74
06.12.2015, 21:24  [ТС]
Не очищается.

Добавлено через 7 минут
Сделал подобное в просто едите, работает
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,411
Записей в блоге: 3
06.12.2015, 21:33
У меня вот такая конструкция прекрасно все очищает
C++
1
2
3
4
5
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if(RichEdit1->Text.Trim() == "Введите сообщение")
   RichEdit1->Clear();
}
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74
06.12.2015, 21:50  [ТС]
Пашет, я тупанул)
0
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74
06.12.2015, 22:42  [ТС]
Вот такая трабла еще:
при сохранении файла получается то что в текстовом документе.
Код на кнопке вот такой:
C++
1
2
3
4
5
6
void __fastcall TForm1::Button4Click(TObject *Sender)
{
String FileName;
if (SaveDialog1->Execute())
RichEdit2->Lines->SaveToFile(FileName );
}
Все дело в том чтобы сохранялось так как и зашифровало. А не так как у меня)
Миниатюры
Шифрование гаммированием: переписать программу с оконным интерфейсом (Builder 6)   Шифрование гаммированием: переписать программу с оконным интерфейсом (Builder 6)  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.12.2015, 22:42
Помогаю со студенческими работами здесь

Создание программы с оконным интерфейсом в си, использовать stringGrid
Задача: Вычислить произведение элементов матрицы, находящихся в интервале . Размер матрицы 6*4, тип элементов матрицы вещественный. ...

Калькулятор вычисления параметров геометрических фигур с оконным интерфейсом
Помогите сделать калькулятор вычесления параметров геометрических фигур.К примеру ввести радиус круга и чтобы программа вычеслила площадь и...

Подскажите книгу для создания приложений с оконным интерфейсом
Здравствуйте, я хотел бы научиться создавать приложения на С# , не консольные,а к примеру текстовый редактор,калькулятор и т.п. ,...

шифрование гаммированием
помогите дописать задачу на Delphi: &quot;Зашифровать и расшифровать текст, находящийся в файле с именем Source.txt. Закодированный текст...

Шифрование/Расшифрование гаммированием
Привет братцы! Нужна ваша помощь У меня есть программа, где надо зашифровать текст методом гаммирования, и потом его вывести Шифрует...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru