I recently wrote a program to do some cheesy decryption of my homework that my US history teacher gave us based on the Zimmerman Note. I thought up of making a two-dimensional array since that represented the key that he gave us and then assign each one a unique letter. Though it works, I'm looking for ways to code more efficiently, and with better design. Any tips on how to improve my code?
The following word:Code:#include <iostream>
#include <string>
using namespace std;
int getGridNumber(char gridLetter)
{
switch (gridLetter)
{
case 'a':
return 0;
case 'd':
return 1;
case 'f':
return 2;
case 'g':
return 3;
case 'v':
return 4;
case 'x':
return 5;
default:
return 0;
}
}
string decode(string argv)
{
char grid[6][6];
char char1;
char char2;
string news;
grid[0][0] = 'B';
grid[1][0] = 'I';
grid[2][0] = '3';
grid[3][0] = '7';
grid[4][0] = 'M';
grid[5][0] = 'U';
grid[0][1] = '2';
grid[1][1] = '9';
grid[2][1] = 'D';
grid[3][1] = 'H';
grid[4][1] = 'O';
grid[5][1] = 'V';
grid[0][2] = 'E';
grid[1][2] = 'N';
grid[2][2] = '4';
grid[3][2] = '8';
grid[4][2] = 'P';
grid[5][2] = 'W';
grid[0][3] = '5';
grid[1][3] = 'A';
grid[2][3] = 'F';
grid[3][3] = 'J';
grid[4][3] = 'Q';
grid[5][3] = 'X';
grid[0][4] = 'R';
grid[1][4] = '1';
grid[2][4] = '6';
grid[3][4] = '0';
grid[4][4] = 'S';
grid[5][4] = 'Y';
grid[0][5] = 'L';
grid[1][5] = 'C';
grid[2][5] = 'G';
grid[3][5] = 'K';
grid[4][5] = 'T';
grid[5][5] = 'Z';
for ( int i = 0; i < argv.size(); i+=2)
{
news = argv.substr( i,2 );
news.copy(&char1,1,0);
news.copy(&char2,1,1);
cout << grid[getGridNumber(char1)][getGridNumber(char2)];
}
return news;
}
int main ( int argc, const char* argv[])
{
if (argc < 2)
{
cout << "Type -help because you fail. E.G. for retards: DecodeHomework.exe -help" << endl;
return 0;
}
else if (argv[1] == string("-d"))
{
decode(string(argv[2]));
}
else
{
cout << "Well it seems that you attempted to type something in the parameter slot be it wrong or right. Type -help n00b." << endl;
}
return 0;
}
should give you:Code:fgafaaavxadgavxvadaddvdddvgavxvdxdvddfafdxgxgddgavfdvxvaafxgdadxvddxdavxxvaaavdavxdavvgddxavdgdxgxvxvdvfvvafdxavafvxdxvdfda
fxavvvfavafvvvvvadgxvaxafdggxfxafavvadgdfvfaxvdvxxfdavxgdvaafxgdadxvdvfavafvfdgavafvxvdaxafdgxdafafvaaadgvvvvxvvddfvvgdvdavvxdfv
dvxdadxafaaafavdfvvvxvdavfgfgxfdgvvgddadffxvxvddffddx
Code:FEBRUARY221917TOVONECKHARDTMEXICOCITYBRITISHCRACKTOPSECRETCODEUSPRESSMAYLEAKGERMANPLOTWITHMEXICOPREPARETOLEAVE
EMBASSYONSHORTNOTICEBERNSTORFFWASHINGTONDC