網站首頁 編程語言 正文
程序演示:
程序代碼:
#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; }
原文鏈接:https://blog.csdn.net/qq_51701007/article/details/122154504
相關推薦
- 2022-07-03 C#中的委托Delegate_C#教程
- 2023-01-15 Rust包和Crate超詳細講解_Rust語言
- 2022-05-22 Python臨時文件創建之tempfile模塊介紹_python
- 2022-04-24 解決redis在linux上的部署的問題_Redis
- 2022-03-12 C++實現堆排序實例介紹_C 語言
- 2023-12-10 怎么給數據庫某個字段建立一個前綴索引
- 2022-09-28 Dephi逆向工具Dede導出函數名MAP導入到IDA中的實現方法_python
- 2022-12-24 利用C語言實現頁面置換算法的詳細過程_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支