小编给大家分享一下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到26return 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++如何模拟实现键盘打字程序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!