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

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

05.12.2015, 20:44. Показов 1335. Ответов 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
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,362
Записей в блоге: 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
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,362
Записей в блоге: 3
06.12.2015, 17:10
Цитата Сообщение от Markell Посмотреть сообщение
на них нажимаешь, а им плевать. Что в таком случае делать?
Надо видеть, как ты организовал обработчики события нажатия на кнопки
Цитата Сообщение от Markell Посмотреть сообщение
Как сделать чтоб работало и с буквами и цифрами??
Да это тебя надо спросить, как сделать... Я про этот метод шифрования от тебя только и услышал. Было задание - перевести с консоли в GUI - я перевел... И в данном тобой коде ключ - целое число, ни о каких буквах речи не идет
1
0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 74
06.12.2015, 17:11  [ТС]
а если вместо вервых трех едитов ставлю ричедит, то не получается конвертировать тричедит в тедит. С этим как быть?
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,362
Записей в блоге: 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
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,362
Записей в блоге: 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
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,362
Записей в блоге: 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
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,362
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru