//Jiami.h
class Jiami
{
public :
void welcomeUI_1();//开始加密
void welcomeUI_2();//开始解密
void getEncryptNumber(); //录入要加密的四位数据
void getDecodeNumber();//录入要解密的四位数据
void encrypt();//加密算法
void decode();//解密算法
private:
int beforeEncryptNumber[4];//设计一个数组来存放解加密之前的数据
int afterEncryptNumber[4];//存放加密后的数
int beforeDecodeNumber[4];//存放解密前的数组
int afterDecodeNumber[4];//存放解密后的数组
};
//Jiami.cpp
#include"Jiami.h"
#include<iostream>
using namespace std;
void Jiami::welcomeUI_1()
{
cout << "下面是加密过程,需要先输入加密前的四位整数,然后可得出加密后的四位整数" << endl;
}
void Jiami::welcomeUI_2()
{
cout << "下面是解密过程,需要先输入加密后的四位整数,然后可得加密出前的四位整数" << endl;
}
//录入加密前的四位数据
void Jiami::getEncryptNumber()//将四位数分入数组中去
{
int tempNumber ;
cout << "请输入一个四位整数" << endl;
cin >> tempNumber;
for(int i=0;i<4;i++)//每次获取除以10的余数并且从数中减去这个余数
{
beforeEncryptNumber[i] = tempNumber%10 ;
tempNumber = (tempNumber - beforeEncryptNumber[i])/10 ;
}
cout << "加密前的四位数为:" ;
for(int j=3;j>=0;j--)
cout << beforeEncryptNumber[j] ;
cout << endl;
}
//录入解密前的数据
void Jiami::getDecodeNumber()//将四位数分入数组中去
{
int tempNumber ;
cout << "请输入加密后的四位整数" << endl;
cin >> tempNumber;
for(int i=0;i<4;i++)//每次获取除以10的余数并且从数中减去这个余数
{
beforeDecodeNumber[i] = tempNumber%10 ;
tempNumber = (tempNumber - beforeDecodeNumber[i])/10 ;
}
cout << "解密前的四位数为:" ;
for(int j=3;j>=0;j--)
cout << beforeDecodeNumber[j] ;
cout << endl;
}
//加密算法
void Jiami::encrypt()
{
int temp;
//将每位数字替换成它与7之和再用10求模的结果
for(int k=0;k<4;k++)
afterEncryptNumber[k] = (beforeEncryptNumber[k]+7)%10 ;
//替换后的数第1、3位互换,第2、4位互换
temp = afterEncryptNumber[0] ;
afterEncryptNumber[0] = afterEncryptNumber[2] ;
afterEncryptNumber[2] = temp;
temp = afterEncryptNumber[1];
afterEncryptNumber[1] = afterEncryptNumber[3] ;
afterEncryptNumber[3] = temp;
cout << "加密后的四位数为:" ;
for(int j=3;j>=0;j--)//*********************j>=0写成j>+0看看会出现什么啊哈哈哈哈哈
cout << afterEncryptNumber[j] ;
cout << endl;
}
//解密算法
void Jiami::decode()
{
int temp;
//将每位数字计算换的加密前的数
for(int k=0;k<4;k++)
{
if((beforeDecodeNumber[k]<=9)&&(beforeDecodeNumber[k]>=7))
afterDecodeNumber[k] = beforeDecodeNumber[k]-7 ;
else
afterDecodeNumber[k] = beforeDecodeNumber[k]+3 ;
}
//替换后的数第1、3位互换,第2、4位互换
temp = afterDecodeNumber[0] ;
afterDecodeNumber[0] = afterDecodeNumber[2] ;
afterDecodeNumber[2] = temp;
temp = afterDecodeNumber[1];
afterDecodeNumber[1] = afterDecodeNumber[3] ;
afterDecodeNumber[3] = temp;
cout << "解密后的四位数为:" ;
for(int j=3;j>=0;j--)//*********************j>=0写成j>+0看看会出现什么啊哈哈哈哈哈
cout << afterDecodeNumber[j] ;
cout << endl;
}
//main.cpp
#include<string>
#include"Jiami.h"
int main()
{
//加密
Jiami encrypt ;
encrypt.welcomeUI_1();
encrypt.getEncryptNumber();
encrypt.encrypt();
//解密
Jiami decode;
decode.welcomeUI_2();
decode.getDecodeNumber();
decode.decode();
system("pause>>cout");
return 0;
}