⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 polybios.cpp

📁 polybios encrypting
💻 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 + -