新西兰服务器

C++如何模拟实现键盘打字程序


C++如何模拟实现键盘打字程序

发布时间:2021-12-27 12:28:56 来源:高防服务器网 阅读:76 作者:小新 栏目:开发技术

小编给大家分享一下C++如何模拟实现键盘打字程序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

程序演示:

程序代码:

#include<graphics.h>  #include<iostream>  #include<conio.h>  #include<time.h>  using namespace std;     class KeyBoard  {  public:  	KeyBoard();  	~KeyBoard();  	int randomKeys();//产生1~26的随机值  	void showBoard();//画键盘  	void showText();//显示键值  	void acceptAction();//获取响应  private:  	int randomKey;//随机值  	int Struct;//支撑体  	int keySize;//键块大小  	int x1, y1;//第一行的第一个键块左上角坐标  	int x2, y2;//第二行的第一个键块左上角坐标  	int x3, y3;//第三行的第一个键块左上角坐标  };     KeyBoard::KeyBoard()  {  	Struct = 10;  	keySize = 50;  	x1 = 50, y1 = 50;  	x2 = 70, y2 = 110;  	x3 = 90, y3 = 170;  	initgraph(1000, 400);  	showBoard();  	_getch();  }     KeyBoard::~KeyBoard()  {     }     void KeyBoard::showText()  {  	settextcolor(WHITE);  	TCHAR firstRowKeys[100] = _T("Q     W     E     R     T     Y     U     I     O     P");//定义字符数组  	settextstyle(20, 0, _T("楷体"));  	outtextxy(65, 60, firstRowKeys);  	TCHAR secondRowKeys[100] = _T("A     S     D     F     G     H     J     K     L");//定义字符数组  	settextstyle(20, 0, _T("楷体"));  	outtextxy(85, 125, secondRowKeys);  	TCHAR thirdRowKeys[100] = _T("Z     X     C     V     B     N     M");//定义字符数组  	settextstyle(20, 0, _T("楷体"));  	outtextxy(105, 190, thirdRowKeys);  }     void KeyBoard::showBoard()  {  	int tx1 = x1,tx2 = x2,tx3 = x3;  	showText();  	for (int i = 0; i < 10; i++)  	{  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		x1 = x1 + keySize + Struct;  	}  	x1 = tx1;  	for (int i = 0; i < 9; i++)  	{  		rectangle(x2, y2, x2 + keySize, y2 + keySize);  		x2 = x2 + keySize + Struct;  	}  	x2 = tx2;  	for (int i = 0; i < 7; i++)  	{  		rectangle(x3, y3, x3 + keySize, y3 + keySize);  		x3 = x3 + keySize + Struct;  	}  	x3 = tx3;  }     int KeyBoard::randomKeys()  {  	srand((unsigned)time(NULL));  	randomKey = rand() % 26 + 1;//1到26  	return randomKey;  }     void KeyBoard::acceptAction()  {  	int tx1 = x1, tx2 = x2, tx3 = x3;  	int flag = randomKeys();  	char input;  	switch (flag)  	{  	case 1:  		setlinecolor(GREEN);  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		input = _getch();  		if (input == 'Q' || input == 'q')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x1, y1, x1 + keySize, y1 + keySize);  				input = _getch();  				if (input == 'Q' || input == 'q')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		break;  	case 2:  		setlinecolor(GREEN);  		x1 = x1 + keySize + Struct;  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		input = _getch();  		if (input == 'W' || input == 'w')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x1, y1, x1 + keySize, y1 + keySize);  				input = _getch();  				if (input == 'W' || input == 'w')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x1 = tx1;  		break;  	case 3:  		setlinecolor(GREEN);  		x1 = x1 + 2 * (keySize + Struct);  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		input = _getch();  		if (input == 'E' || input == 'e')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x1, y1, x1 + keySize, y1 + keySize);  				input = _getch();  				if (input == 'E' || input == 'e')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x1 = tx1;  		break;  	case 4:  		setlinecolor(GREEN);  		x1 = x1 + 3 * (keySize + Struct);  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		input = _getch();  		if (input == 'R' || input == 'r')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x1, y1, x1 + keySize, y1 + keySize);  				input = _getch();  				if (input == 'R' || input == 'r')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x1 = tx1;  		break;  	case 5:  		setlinecolor(GREEN);  		x1 = x1 + 4 * (keySize + Struct);  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		input = _getch();  		if (input == 'T' || input == 't')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x1, y1, x1 + keySize, y1 + keySize);  				input = _getch();  				if (input == 'T' || input == 't')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x1 = tx1;  		break;  	case 6:  		setlinecolor(GREEN);  		x1 = x1 + 5 * (keySize + Struct);  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		input = _getch();  		if (input == 'Y' || input == 'y')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x1, y1, x1 + keySize, y1 + keySize);  				input = _getch();  				if (input == 'Y' || input == 'y')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x1 = tx1;  		break;  	case 7:  		setlinecolor(GREEN);  		x1 = x1 + 6 * (keySize + Struct);  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		input = _getch();  		if (input == 'U' || input == 'u')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x1, y1, x1 + keySize, y1 + keySize);  				input = _getch();  				if (input == 'U' || input == 'u')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x1 = tx1;  		break;  	case 8:  		setlinecolor(GREEN);  		x1 = x1 + 7 * (keySize + Struct);  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		input = _getch();  		if (input == 'I' || input == 'i')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x1, y1, x1 + keySize, y1 + keySize);  				input = _getch();  				if (input == 'I' || input == 'i')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x1 = tx1;  		break;  	case 9:  		setlinecolor(GREEN);  		x1 = x1 + 8 * (keySize + Struct);  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		input = _getch();  		if (input == 'O' || input == 'o')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x1, y1, x1 + keySize, y1 + keySize);  				input = _getch();  				if (input == 'O' || input == 'o')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x1 = tx1;  		break;  	case 10:  		setlinecolor(GREEN);  		x1 = x1 + 9 * (keySize + Struct);  		rectangle(x1, y1, x1 + keySize, y1 + keySize);  		input = _getch();  		if (input == 'P' || input == 'p')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x1, y1, x1 + keySize, y1 + keySize);  				input = _getch();  				if (input == 'P' || input == 'p')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x1 = tx1;  		break;  	case 11:  		setlinecolor(GREEN);  		rectangle(x2, y2, x2 + keySize, y2 + keySize);  		input = _getch();  		if (input == 'A' || input == 'a')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x2, y2, x2 + keySize, y2 + keySize);  				input = _getch();  				if (input == 'A' || input == 'a')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x2 = tx2;  		break;  	case 12:  		setlinecolor(GREEN);  		x2 = x2 + keySize + Struct;  		rectangle(x2, y2, x2 + keySize, y2 + keySize);  		input = _getch();  		if (input == 'S' || input == 's')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x2, y2, x2 + keySize, y2 + keySize);  				input = _getch();  				if (input == 'S' || input == 's')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x2 = tx2;  		break;  	case 13:  		setlinecolor(GREEN);  		x2 = x2 + 2 * (keySize + Struct);  		rectangle(x2, y2, x2 + keySize, y2 + keySize);  		input = _getch();  		if (input == 'D' || input == 'd')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x2, y2, x2 + keySize, y2 + keySize);  				input = _getch();  				if (input == 'D' || input == 'd')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x2 = tx2;  		break;  	case 14:  		setlinecolor(GREEN);  		x2 = x2 + 3 * (keySize + Struct);  		rectangle(x2, y2, x2 + keySize, y2 + keySize);  		input = _getch();  		if (input == 'F' || input == 'f')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x2, y2, x2 + keySize, y2 + keySize);  				input = _getch();  				if (input == 'F' || input == 'f')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x2 = tx2;  		break;  	case 15:  		setlinecolor(GREEN);  		x2 = x2 + 4 * (keySize + Struct);  		rectangle(x2, y2, x2 + keySize, y2 + keySize);  		input = _getch();  		if (input == 'G' || input == 'g')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x2, y2, x2 + keySize, y2 + keySize);  				input = _getch();  				if (input == 'G' || input == 'g')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x2 = tx2;  		break;  	case 16:  		setlinecolor(GREEN);  		x2 = x2 + 5 * (keySize + Struct);  		rectangle(x2, y2, x2 + keySize, y2 + keySize);  		input = _getch();  		if (input == 'H' || input == 'h')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x2, y2, x2 + keySize, y2 + keySize);  				input = _getch();  				if (input == 'H' || input == 'h')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x2 = tx2;  		break;  	case 17:  		setlinecolor(GREEN);  		x2 = x2 + 6 * (keySize + Struct);  		rectangle(x2, y2, x2 + keySize, y2 + keySize);  		input = _getch();  		if (input == 'J' || input == 'j')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x2, y2, x2 + keySize, y2 + keySize);  				input = _getch();  				if (input == 'J' || input == 'j')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x2 = tx2;  		break;  	case 18:  		setlinecolor(GREEN);  		x2 = x2 + 7 * (keySize + Struct);  		rectangle(x2, y2, x2 + keySize, y2 + keySize);  		input = _getch();  		if (input == 'K' || input == 'k')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x2, y2, x2 + keySize, y2 + keySize);  				input = _getch();  				if (input == 'K' || input == 'k')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x2 = tx2;  		break;  	case 19:  		setlinecolor(GREEN);  		x2 = x2 + 8 * (keySize + Struct);  		rectangle(x2, y2, x2 + keySize, y2 + keySize);  		input = _getch();  		if (input == 'L' || input == 'l')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x2, y2, x2 + keySize, y2 + keySize);  				input = _getch();  				if (input == 'L' || input == 'l')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x2 = tx2;  		break;  	case 20:  		setlinecolor(GREEN);  		rectangle(x3, y3, x3 + keySize, y3 + keySize);  		input = _getch();  		if (input == 'Z' || input == 'z')  		{  			setlinecolor(WHITE);  		}  		else  		{  			rectangle(x3, y3, x3 + keySize, y3 + keySize);  			input = _getch();  			if (input == 'Z' || input == 'z')  			{  				setlinecolor(WHITE);  				break;  			}  		}  		x3 = tx3;  		break;  	case 21:  		setlinecolor(GREEN);  		x3 = x3 + keySize + Struct;  		rectangle(x3, y3, x3 + keySize, y3 + keySize);  		input = _getch();  		if (input == 'X' || input == 'x')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x3, y3, x3 + keySize, y3 + keySize);  				input = _getch();  				if (input == 'X' || input == 'x')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x3 = tx3;  		break;  	case 22:  		setlinecolor(GREEN);  		x3 = x3 + 2 * (keySize + Struct);  		rectangle(x3, y3, x3 + keySize, y3 + keySize);  		input = _getch();  		if (input == 'C' || input == 'c')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x3, y3, x3 + keySize, y3 + keySize);  				input = _getch();  				if (input == 'C' || input == 'c')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x3 = tx3;  		break;  	case 23:  		setlinecolor(GREEN);  		x3 = x3 + 3 * (keySize + Struct);  		rectangle(x3, y3, x3 + keySize, y3 + keySize);  		input = _getch();  		if (input == 'V' || input == 'v')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x3, y3, x3 + keySize, y3 + keySize);  				input = _getch();  				if (input == 'V' || input == 'v')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x3 = tx3;  		break;  	case 24:  		setlinecolor(GREEN);  		x3 = x3 + 4 * (keySize + Struct);  		rectangle(x3, y3, x3 + keySize, y3 + keySize);  		input = _getch();  		if (input == 'B' || input == 'b')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x3, y3, x3 + keySize, y3 + keySize);  				input = _getch();  				if (input == 'B' || input == 'b')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x3 = tx3;  		break;  	case 25:  		setlinecolor(GREEN);  		x3 = x3 + 5 * (keySize + Struct);  		rectangle(x3, y3, x3 + keySize, y3 + keySize);  		input = _getch();  		if (input == 'N' || input == 'n')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x3, y3, x3 + keySize, y3 + keySize);  				input = _getch();  				if (input == 'N' || input == 'n')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x3 = tx3;  		break;  	case 26:  		setlinecolor(GREEN);  		x3 = x3 + 6 * (keySize + Struct);  		rectangle(x3, y3, x3 + keySize, y3 + keySize);  		input = _getch();  		if (input == 'M' || input == 'm')  		{  			setlinecolor(WHITE);  		}  		else  		{  			while (1)  			{  				rectangle(x3, y3, x3 + keySize, y3 + keySize);  				input = _getch();  				if (input == 'M' || input == 'm')  				{  					setlinecolor(WHITE);  					break;  				}  			}  		}  		x3 = tx3;  		break;  	}  }     int main()  {  	KeyBoard KB;  	while (1)  	{  		KB.showBoard();  		KB.acceptAction();  	}     	return 0;  }

以上是“C++如何模拟实现键盘打字程序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注高防服务器网行业资讯频道!

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[