tools1.0.4

这是一个包含加密、解密、系统调用等功能的程序,即将新增10以内的算术计算。用户可以进行加密操作,如将字符串转化为特定格式的加密字符,或者进行解密。程序还计划实现奏乐功能,通过调用beep函数。此外,提供了进制转换、2048游戏、文字颜色设置等实用工具。
摘要由CSDN通过智能技术生成

重大更新,新增10以内的算数,计算机出题,你算。

下一个版本将会调用beep函数,实现奏乐功能,敬请期待。

#include <bits/stdc++.h>
#include <conio.h>
#include <windows.h>
using namespace std;

int hnta[64],hntb[64],hntc[64];
int total;

void mi()
{
	char ttttt;
	do
	{
		cout<<"[1]加密    [2]解密:";
		string x,y;
		string ab;
		do
		{
			getline(cin,ab);
		}
		while(ab!="1"&&ab!="2");
		getline(cin,x);
		if(ab=="1")
		{
			int a[x.size()];
			int t[x.size()];
			for(int i=0;i<x.size();++i)
			{
				if(i%2)
				{
					a[i/2]=x[i];
				}
				else
				{
					t[i/2]=x[i];
				}
			}
			for(int i=0;i<=x.size()/2;++i)
			{
				a[i+(x.size())/2]=t[i];
			}
			for(int i=0;i<x.size();++i)
			{
				cout<<(char)(a[i]/100+'A')<<(char)(a[i]/10%10+'A')<<(char)(a[i]%10+'A');
			}
		}
		else
		{
			int a[x.size()/3]={};
			for(int i=0;i<x.size();++i)
			{
				a[i/3]*=10;
				a[i/3]+=(int)(x[i]-'A');
			}
			for(int i=0;i<x.size()/3;++i)
			{
				if(i%2)
				{
					cout<<(char)(a[i/2]);
				}
				else
				{
					cout<<(char)(a[i/2+(x.size()/3)/2]);
				}
			}
		}
		ttttt=getchar();
	}
	while(ttttt!='\n');
	
}
void js()
{
	char t;
	do
	{
		string s;
		cin>>s;
		char c[1024]={"powershell   "};
		for(int j=0;j<s.size();++j)
		{
			c[j+11]=s[j];
		}
		const char *i=c;
		system(i);
		t=getchar();
	}
	while(t!='\n');
}
void sys()
{
	char t;
	do
	{
		string s;
		cin>>s;
		char c[1024]={""};
		for(int j=0;j<s.size();++j)
		{
			c[j]=s[j];
		}
		const char *i=c;
		system(i);
		t=getchar();
	}
	while(t!='\n');
}
void ch()
{
	char t;
	do
	{
		cout<<"[1]char->int    [2]int->char:";
		int a,b;
		cin>>a;
		cout<<"char|int:";
		cin>>b;
		char c=b;
		if(a==1)
		{
			cout<<"正在开发";
			return;
			cout<<b;
		}
		else
		{
			cout<<c;
		}
		t=getchar();
	}
	while(t!='\n');
}
void yx2048()
{
	cout<<"正在开发";
	return;
	int a[4][4]={2,4},maxv=2;
	while(maxv!=2048)
	{
		cout<<123;
		Sleep(100);
		system("cls");
		for(int i=0;i<4;++i)
		{
			for(int j=0;j<4;++j)
			{
				cout<<a[i][j]<<' ';
			}
			cout<<'\n';
		}
		int b=getch();
		char c=b;
		switch(c)
		{
			case 'w':
			{
				for(int p=1;p<4;++p)
				{
					for(int i=0;i<4;++i)
					{
						for(int j=1;j<4;++j)
						{
							if(a[i][j]==a[i][j-1])
							{
								a[i][j]=0;
								a[i][j-1]*=2;
							}
							if(a[i][j-1]==0)
							{
								swap(a[i][j],a[i][j-1]);
							}
						}
					}
				}
				break;
			}
			case 's':
			{
				for(int p=1;p<4;++p)
				{
					for(int i=0;i<4;++i)
					{
						for(int j=4;j>0;--j)
						{
							if(a[i][j]==a[i][j+1])
							{
								a[i][j]=0;
								a[i][j+1]*=2;
							}
							if(a[i][j+1]==0)
							{
								swap(a[i][j],a[i][j+1]);
							}
						}
					}
				}
				break;
			}
			case 'd':
			{
				for(int p=1;p<4;++p)
				{
					for(int i=4;i>0;--i)
					{
						for(int j=0;j<4;++j)
						{
							if(a[i][j]==a[i+1][j])
							{
								a[i][j]=0;
								a[i+1][j]*=2;
							}
							if(a[i+1][j]==0)
							{
								swap(a[i][j],a[i+1][j]);
							}
						}
					}
				}
				break;
			}
			case 'a':
			{
				for(int p=1;p<4;++p)
				{
					for(int i=1;i<4;++i)
					{
						for(int j=0;j<4;++j)
						{
							if(a[i][j]==a[i-1][j])
							{
								a[i][j]=0;
								a[i-1][j]*=2;
							}
							if(a[i-1][j]==0)
							{
								swap(a[i][j],a[i-1][j]);
							}
						}
					}
				}
				break;
			}
		}
	}
}
void csh()
{
	cout<<"初始化完成"<<endl;
}
void zh()
{
	cout<<"暂时只能十进制以内的进制转换(因为有字母)也不能是小数(用的是int)"<<endl<<"请输入第一个数:";
	int x,y,z;
	cin>>x;
	cout<<endl<<"第一个数是什么进制:";
	cin>>y;
	cout<<endl<<"转换成什么进制:";
	cin>>z;
	if(y==z)
	{
		cout<<x;
	}
	else
	{
		cout<<"正在开发";
		return;
		if(y<z)
		{
			
		}
	}
	
}
void col()
{
	cout<<"0=黑色\n1=蓝色\n2=绿色\n3=浅绿色\n4=红色\n5=紫色\n6=黄色\n7=白色\n8=灰色\n9=淡蓝色\nA=淡绿色\nB=淡浅绿色\nC=淡红色\nD=淡紫色\nE=淡黄色\nF=亮白色\n";
	string s;
	cin>>s;
	char c[1024]={"color                 "};
	for(int j=0;j<s.size();++j)
	{
		c[j+11]=s[j];
	}
	const char *i=c;
	system(i);
}
bool ishnt(int a)
{
	if(1);
	return 0;
}
void dghnt(int a,int b,int c)
{
	while(ishnt(a));
}
void hnt()
{
	cout<<"正在开发中";
	return;
	cout<<"几层汉诺塔:";
	cin>>total;
	
}
int gcd(int a,int b)
{
	return b?gcd(b,a%b):a;
}
void gybs()
{
	char t;
	do
	{
		cout<<"[1]最大公因数    [2]最小公倍数:";
		int a,b,c;
		cin>>a;
		cout<<"第一个数和第二个数:";
		cin>>b>>c;
		if(a==1)
		{
			cout<<gcd(b,c);
		}
		else
		{
			cout<<b*c/gcd(b,c);
		}
		t=getchar();
	}
	while(t!='\n');
}
void tenjia()
{
	int tt=0,sum=0;
	cout<<"欢迎来做计算题,选择是或者否。\n要做多少道:";
	cin>>tt;
	int ttt=tt;
	while(tt--)
	{
		srand((unsigned)time(NULL));
		int a=rand()%10,b=rand()%10,n=rand()%10,t=rand()%5;
		string s;
		s+=(a+'0');
		s+='+';
		s+=(b+'0');
		s+='=';
		char c[6]={""};
		for(int j=0;j<4;++j)
		{
			c[j]=s[j];
		}
		if(t==3)
		{
			cout<<333<<endl;
			if(a+b<10)
			{
				c[4]=a+b+'0';
			}
			else
			{
				a+=b;
				a%=10;
				c[4]='1';
				c[5]=a+'0';
			}
		}
		else
		{
			if(n<10)
			{
				c[4]=n+'0';
			}
			else
			{
				c[4]='1';
				c[5]=n%10+'0';
			}
		}
		const char *i=c;
		if(MessageBox(NULL,i,"算数",MB_YESNO)==IDYES)
		{
			if(t==3)
			{
				++sum;
			}
			else
			{
				if(a+b==n)
				{
					++sum;
				}
			}
		}
		else
		{
			if(t!=3)
			{
				if(a+b!=n)
				{
					++sum;
				}
			}
		}
	}
	cout<<"您做了"<<ttt<<"道题,您对了"<<sum<<"道题。";
}
int main()
{
	cout<<"正在初始化工具,请稍等"<<endl;
	csh();
	while(1)
	{
		char a;
		cin>>a;
		switch(a)
		{
			case'1':
				mi();
				break;
			case '2':
				js();
				break;
			case '3':
				yx2048();
				break;
			case '4':
				sys();
				break;
			case '5':
				ch();
				break;
			case '6':
				zh();
				break;
			case '7':
				col();
				break;
			case '8':
				hnt();
				break;
			case '9':
				gybs();
				break;
			case 'a':
				tenjia();
				break;
			case '0':
				return 0;
			case '?':
				cout<<"[1]加密    [2]计算    [3]2048    [4]调用系统函数    [5]char——int互换    [6]进制转换    [7]文字颜色    [8]汉诺塔    [9]最大公约数、最小公倍数    [a]10以内加法    [0]退出    每次双回车退出";
				break;
			default:
				cout<<"输入‘?’获得提示(小写)";
				break;
		}
		cout<<'\n';
		string s;
		getline(cin,s);
	}
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值