恺撒密码C++代码
恺撒密码C++代码
#include<iostream>
using namespace std;//头文件
typedef struct node{
int data;
node *next;
}Node;//定义一个node结构,其结构名为Node
void print(Node *head)
{Node *p;
p=head->next;//定义一个指向输出链表的指针
if(p==NULL){cout<<"无";}
while(p->next!=NULL){
if(p->data==65){cout<<'A';}else if(p->data==66){cout<<'B';}else if(p->data==67){cout<<'C';}
else if(p->data==68){cout<<'D';}else if(p->data==69){cout<<'E';}else if(p->data==70){cout<<'F';}
else if(p->data==71){cout<<'G';}else if(p->data==72){cout<<'H';}else if(p->data==73){cout<<'I';}
else if(p->data==74){cout<<'J';}else if(p->data==75){cout<<'K';}else if(p->data==76){cout<<'L';}
else if(p->data==77){cout<<'M';}else if(p->data==78){cout<<'N';}else if(p->data==79){cout<<'O';}
else if(p->data==80){cout<<'P';}else if(p->data==81){cout<<'Q';}else if(p->data==82){cout<<'R';}
else if(p->data==83){cout<<'S';}else if(p->data==84){cout<<'T';}else if(p->data==85){cout<<'U';}
else if(p->data==86){cout<<'V';}else if(p->data==87){cout<<'W';}else if(p->data==88){cout<<'X';}
else if(p->data==89){cout<<'Y';}else if(p->data==90){cout<<'Z';}
若图片无法显示请联系QQ3249114,恺撒密码C++代码免费,转发请注明源于www.751com.cn
else if(p->data==121){cout<<'y';}else if(p->data==122){cout<<'z';}
p=p->next;
}
if(p->data==65){cout<<'A';}
else if(p->data==66){cout<<'B';}
else if(p->data==67){cout<<'C';}
else if(p->data==68){cout<<'D';}else if(p->data==69){cout<<'E';}else if(p->data==70){cout<<'F';}
else if(p->data==71){cout<<'G';}else if(p->data==72){cout<<'H';}else if(p->data==73){cout<<'I';}
else if(p->data==74){cout<<'J';}else if(p->data==75){cout<<'K';}else if(p->data==76){cout<<'L';}
else if(p->data==77){cout<<'M';}else if(p->data==78){cout<<'N';}else if(p->data==79){cout<<'O';}
else if(p->data==80){cout<<'P';}else if(p->data==81){cout<<'Q';}else if(p->data==82){cout<<'R';}
else if(p->data==83){cout<<'S';}else if(p->data==84){cout<<'T';}else if(p->data==85){cout<<'U';}
else if(p->data==86){cout<<'V';}else if(p->data==87){cout<<'W';}else if(p->data==88){cout<<'X';}
else if(p->data==89){cout<<'Y';}else if(p->data==90){cout<<'Z';}
else if(p->data==97){cout<<'a';}else if(p->data==98){cout<<'b';}else if(p->data==99){cout<<'c';}
else if(p->data==100){cout<<'d';}else if(p->data==101){cout<<'e';}else if(p->data==102){cout<<'f';}
else if(p->data==103){cout<<'g';}else if(p->data==104){cout<<'h';}else if(p->data==105){cout<<'i';}
else if(p->data==106){cout<<'j';}else if(p->data==107){cout<<'k';}else if(p->data==108){cout<<'l';}
else if(p->data==109){cout<<'m';}else if(p->data==110){cout<<'n';}else if(p->data==111){cout<<'o';}
else if(p->data==112){cout<<'p';}else if(p->data==113){cout<<'q';}else if(p->data==114){cout<<'r';}
else if(p->data==115){cout<<'s';}else if(p->data==116){cout<<'t';}else if(p->data==117){cout<<'u';}
else if(p->data==118){cout<<'v';}else if(p->data==119){cout<<'w';}else if(p->data==120){cout<<'x';}
else if(p->data==121){cout<<'y';}else if(p->data==122){cout<<'z';}
cout<<endl;
}恺撒密码C++代码
void casar(Node *head,int key,int count)
{void print(Node *); //输出链表函数声明
void jiemi(Node *n,int count,int key);//解密算法声明
Node *p,*q,*n,*m;//定义结构指针
n=(Node *)malloc(sizeof(Node));
n->next=NULL;
m=n;
q=head;
p=head->next;
for(int i=0;i<count;i++)
{
if(p->data>='a'&&p->data<='z')
{p->data+=key%26;
if(p->data>'z'){p->data-=26;}
p->data-=32;
}
q->next=p->next;
p->next=NULL;
m->next=p;
m=p;
p=q->next;
}
cout<<"密文为:";
print(n);
jiemi(n,count,key);
}
void jiemi(Node *n,int count,int key)
{void print(Node *);
Node *p,*q,*r,*s;//定义结构指针
r=(Node *)malloc(sizeof(Node));
r->next=NULL;
s=r;
q=n;
p=n->next;
for(int i=0;i<count;i++)
{p->data-=key%26;
if(p->data<'A'){p->data+=26;}
p->data+=32;
q->next=p->next;
p->next=NULL;
s->next=p;
s=p;
p=q->next;}
cout<<"解密后原文为:";
print(r);
}
//主函数
void main()
{
void print(Node *);//输出函数声明
void jiemi(Node *n,int count,int key);
void casar(Node *head,int key,int count);
Node *head,*p,*q;
int key,count=0;
char it;
head=(Node *)malloc(sizeof(Node));
head->next=NULL;
q=head;
cout<<"请输入明文:";
cin>>it;
//新建链表算法
while(it!='$')
{p=(Node *)malloc(sizeof(Node));
p->next=NULL;
p->data=it;
q->next=p;
q=p;恺撒密码C++代码
cin>>it;
count++;
}
cout<<"请输入密钥:";
cin>>key;
casar(head,key,count);}85