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

📄 111111.cpp

📁 凯撒密码算法源程序...... 凯撒密码算法源程序
💻 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 + -