Программа "Шифрование"
Сегодня я расскажу вам как создать шифратор на С++ . Это программа сможет зашифровывать большие и маленькие буквы русского алфавита , пробел и точку. Как создать этот шифратор рассказано ниже :
Далее заходим в ProgramDlg.h удаляем все что написано после "private:" и вставляем следующий код:
//HPEN hPenOxy, hOldPen;
//HBRUSH m, oldm, brush;
//HPEN pen;
//COLORREF cf, c[25];
//CPen d, oldd;
//CBitmap pic;
//CRect rc, w, kw[12];
CString ms, t, shf, q;
int B[66];
wchar_t A[66], buf[20];
//int Matrix[50][50];
int RH, RW, k, n, cod, i, j, cx, cy, dx, dy;
bool fg;
DECLARE_MESSAGE_MAP()
public:
CString Z;
CStatic E;
};
В самом верху кода вставляем:
#define pi 3.14159265358979323846
#include "afxwin.h"
Распологаем объекты из ToolBox как показано ниже :
Клацаем ПКМ по "Static" выбираем Propetries и изменяем в поле ID
IDC_STATIC на IDC_E.
Клацаем ПКМ по кнопке "Зашифровать" и выбираем Add Event Handler. Смотрим что бы все совпадало с изображением ниже и нажимаем Add and Edit.
Клацаем ПКМ по кнопке "Cancel" и выбираем Add Event Handler. Смотрим что бы все совпадало с изображением ниже и нажимаем Add and Edit.
Открываем файл ProgramDlg.cpp
В самый конец стираем два последних блока и вставляем вот эти ( они идентич
void CProgramDlg::OnBnClickedButton2()
{
// TODO: Add your control notification handler code here
OnOK();
}
void CProgramDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
UpdateData(true);
ms = Z;
UpdateData(false);
shf = "\tТаблица кодирования:\n\n\t";
n = ms.GetLength();
t.Empty();
A[0] = ' '; B[0] = 0;
A[65] = '.'; B[65] = 65;
for (k = 1; k < 65; k++)
{
A[k] = wchar_t(k + 1039);
B[k] = k;
}
j = 0;
for (k = 0; k <8; k++)
{
for (i = 0; i < 8; i++)
{
shf += "\"";
shf += A[j];
shf += "\"=";
t.Format(L"%i\t", B[j]);
if ((B[j] >= 0) && (B[j] < 10))
{
t.Format(L"0%i\t", B[j]);
}
shf += t;
j++;
}
shf += "\n\t";
}
shf += "\"";
shf += A[64];
shf += "\"=";
t.Format(L"%i\t", B[j]);
shf += t;
j++;
shf += "\"";
shf += A[65];
shf += "\"=";
t.Format(L"%i\n\n\t", B[j]);
shf += t;
shf += "Результат шифрования: \n\t";
CString shf1;
shf1.Empty();
for (k = 0; k <n; k++)
{
for (i = 0; i < 66; i++)
{
if (ms[k] == A[i])
{
t.Format(L"%i", B[i]);
if ((B[i] >= 0)&&(B[i]<10))
{
t.Format(L"0%i", B[i]);
}
shf += t;
shf1 += t;
}
}
}
E.SetWindowTextW(shf);
setlocale(LC_ALL, "Russian");
CStdioFile inf(L"D:\\TEMP\\data.txt", CFile::modeCreate | CFile::modeWrite);
inf.WriteString(shf1); // записать в файл
inf.Flush();
inf.Close();
Добавляем библиотеки :
#include <time.h>
#include <iostream>
using namespace std;
Далее заменяем этим кодом
CProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/)
: CDialog(IDD_PROGRAM_DIALOG, pParent)
, Z(_T("Я изучаю программирование"))
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CProgramDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
fg = true;
SetWindowTextW(L"Программа шифрования");
DDX_Text(pDX, IDC_EDIT1, Z);
DDX_Control(pDX, IDC_E, E);
E.SetWindowTextW(L"Введите фразу и нажмите <Зашифровать>:");
}
Этот
CProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/)
: CDialog(CProgramDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CProgramDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
c[0] = 0xFF00FF;
c[1] = 0xFFA500;
c[2] = 0xFFFF;
c[3] = 0x0C7800;
c[4] = 0x005690;
c[5] = 0xFFFF0000;
c[6] = 0xCC00AA;
c[7] = 0xAA5600;
c[8] = 0xAAAA;
c[9] = 0x00CC00;
c[10] = 0x090056;
c[11] = 0xF0F0F0;
fg = true;
SetWindowTextW(L"Program");
}
Наша программа готова, осталось только вписать в зону SimpleEdit
текст и нажать кнопку "Зашифровать"
Комментариев нет:
Отправить комментарий