📄 polybios.cpp
字号:
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int matrice[5][5] = { 0 , 1 , 2 , 3 , 4 ,
5 , 6 , 7 , 8 , 9 ,
10, 11, 12, 13, 14,
15, 16, 17, 18, 19,
20, 21, 23, 24, 25 };
class cuvinte
{
public:
unsigned int size;
int *mesaj;
cuvinte()
{
unsigned int i;
char c;
cout<<"Dati lungimea sirului "; cin>>size;
mesaj = new int[size+1];
cout<<"Tastati sirul"<<endl;
for (i=0;i<size;i++)
{
c=getch();
cout<<c;
mesaj[i]=c-97;
}
}
cuvinte(int x)
{
size = x;
mesaj = new int[size+1];
}
void afisare()
{
cout<<endl;
char c;
unsigned int i;
for (i=0;i<size;i++)
{
c=mesaj[i]+97;
cout<<c;
}
getch();
}
~cuvinte()
{
}
};
void codare_polybios(cuvinte mesaj)
{
cuvinte codat(mesaj.size*2);
unsigned int i,j,k;
for (k=0;k<mesaj.size;k++)
{
if (mesaj.mesaj[k]==22) codat.size=codat.size-2;
for (i=0;i<5;i++)
for (j=0;j<5;j++) if (matrice[i][j]==mesaj.mesaj[k])
{
codat.mesaj[2*k]=i;
codat.mesaj[2*k+1]=j;
}
}
codat.afisare();
}
void decodare_polybios(cuvinte mesaj)
{
cuvinte decodat(mesaj.size/2);
unsigned int k;
for (k=0;k<mesaj.size/2;k++)
{
decodat.mesaj[k]=matrice[mesaj.mesaj[2*k]][mesaj.mesaj[2*k+1]];
}
decodat.afisare();
}
void main()
{
cout<<"Dati mesajul"<<endl;
cuvinte mesaj;
unsigned int i;
cout<<"1 pt codare 2 pt decodare"<<endl;
cin>>i;
if (i==1) codare_polybios(mesaj);
if (i==2) decodare_polybios(mesaj);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -