您好,登錄后才能下訂單哦!
小編給大家分享一下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++如何模擬實現鍵盤打字程序”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。