📄 111111.cpp
字号:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#include <stdlib.h>
#define LENGTH 100//输入字符串的长度
void menu();
void cryptograph();//解密
void proclaimed();//加密
void main()
{
char ch;
menu();
printf("%28c",' ');
do
{
printf("按任意键继续:\n");
getch();
system("cls");
printf("\n\n%28c",' ');
printf("你要继续吗(y/n)\?\n");
printf("%28c",' ');
ch=getche();
printf("\n");
if(ch=='y'||ch=='Y')
{
system("cls");
menu();
printf("%28c",' ');
}
else if(ch=='n'||ch=='N')
exit(0);
else
{
printf("%28c",' ');
printf("输入错误,");
}
}while(ch!='y'||ch!='Y'||ch!='n'||ch!='N');
}
void menu()
{
char ch,number;
int flag=-1;
do
{
printf("\n%21c",' ');
printf("请输入你的选择:\n\n");
printf("%5c",' ');
printf("____________________________________________________________________\n");
printf("%28c",' ');
printf("A:恺撒密码算法\n");
printf("%33c",' ');
printf("1:加密\n");
printf("%33c",' ');
printf("2:解密\n");
printf("%28c",' ');
printf("B:退出\n");
printf("%5c",' ');
printf("____________________________________________________________________\n");
printf("%15c",' ');
printf("注:----恺撒密码按c=(m+9)%%26加密----\n");
printf("%19c",' ');
printf("----除字母其他字符均按c=(m+1)%%26加密----\n");
printf("%19c",' ');
printf("----当其他其它字符+1为字母时+26跳过字母加密----\n");
printf("%19c",' ');
printf("----当其他其它字符+1超出ASCII码表示范围时-128循环表示----\n");
printf("%28c",' ');
number=getche();
fflush(stdin);
printf("\n");
if(number=='A'||number=='a')
{
do
{
system("cls");
printf("%28c",' ');
printf("A:恺撒密码算法\n\n\n");
printf("%33c",' ');
printf("1:加密\n");
printf("%33c",' ');
printf("2:解密\n");
printf("%33c",' ');
printf("3:退出\n");
printf("%33c",' ');
printf("4:返回主菜单\n");
printf("\n");
printf("%28c",' ');
ch=getche();
printf(":");
if(ch=='1')
{
system("cls");
printf("%28c",' ');
printf("1:加密\n");
printf("\n");
printf("%28c",' ');
proclaimed();
flag=2;
break;
}
else if(ch=='2')
{
system("cls");
printf("%28c",' ');
printf("2:解密\n");
printf("\n");
printf("%28c",' ');
cryptograph();
flag=2;
break;
}
else if(ch=='3')
{
printf("\n%33c",' ');
printf("3:退出\n");
exit(0);
}
else if(ch=='4')
{
system("cls");
menu();
}
else
{
printf("输入错误,按任意键继续:\n");
getch();
system("cls");
}
}while(ch!='1'||ch!='2');
}
else if(number=='B'||number=='b')
{
printf("%28c",' ');
printf("B:退出\n");
exit(0);
}
if(flag==1||flag==2)
break;
else
{
printf("%28c",' ');
printf("输入错误,按任意键继续:\n");
getch();
system("cls");
}
}while(number!='A'||number!='a'||number!='B'||number!='b'||number!='C'||number!='c');
}
void cryptograph()//解密
{
int leng,i;
char chc[LENGTH],chp[LENGTH];
printf("请输入你要解密的密文:\n");
printf("%28c",' ');
gets(chc);
leng=strlen(chc);
printf("%28c",' ');
printf("明文:\n");
printf("%28c",' ');
for(i=0;i<leng;i++)
{
if(isupper(chc[i]))
{
if(chc[i]-9<'A')
{
chp[i]=chc[i]-9+26;
printf("%c",chp[i]);
}
else
{
chp[i]=chc[i]-9;
printf("%c",chp[i]);
}
}
else if(islower(chc[i]))
{
if(chc[i]-9<'a')
{
chp[i]=chc[i]-9+26;
printf("%c",chp[i]);
}
else
{
chp[i]=chc[i]-9;
printf("%c",chp[i]);
}
}
else
{
chp[i]=chc[i]-1;
if(chp[i]=='Z'||chp[i]=='z')//遇到-1为字母时的处理
chp[i]-=26;
else if(chp<0)//遇到-1超出ASCII码表示范围时
chp[i]=char(chp[i]+128);
printf("%c",chp[i]);
}
}
printf("\n");
}
void proclaimed()//加密
{
int leng,i;
char chc[LENGTH],chp[LENGTH];
printf("请输入你要解密的密文:\n");
printf("%28c",' ');
gets(chc);
leng=strlen(chc);
printf("%28c",' ');
printf("明文:\n");
printf("%28c",' ');
for(i=0;i<leng;i++)
{
if(isupper(chc[i]))
{
if(chc[i]+9>'Z')
{
chp[i]=chc[i]+9-26;
printf("%c",chp[i]);
}
else
{
chp[i]=chc[i]+9;
printf("%c",chp[i]);
}
}
else if(islower(chc[i]))
{
if(chc[i]+9>'z')
{
chp[i]=chc[i]+9-26;
printf("%c",chp[i]);
}
else
{
chp[i]=chc[i]+9;
printf("%c",chp[i]);
}
}
else
{
chp[i]=chc[i]+1;
if(chp[i]=='A'||chp[i]=='a')//遇到+1为字母时的处理
chp[i]+=26;
else if(chp[i]>127)//遇到+1超出ASCII码表示范围时
chp[i]=char(chp[i]-128);
printf("%c",chp[i]);
}
}
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -