亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C語言制作簡易金山打字通功能的代碼

2020-05-23 13:24:34
字體:
來源:轉載
供稿:網友

本小項目最終的實現如下:

輸入相應的字符,然后在最下面能夠統計錯誤的個數,輸入字符總個數,輸入個數以及錯誤率。

C語言,金山打字通,代碼

C語言,金山打字通,代碼

那如何來實現這個小項目呢?規劃如下,我們需要大致實現以下三個模塊:

  • (1)輸入模塊
  • (2)顯示模塊
  • (3)統計模塊

實現過程:

使用getch()函數可以獲取鍵盤輸入的字符,顯示可以使用Window自帶的API來實現,統計就很簡單了,就是計算輸入字符的個數等等。。。接下來就是簡單的軟件邏輯的實現。

源碼如下:

#include <stdio.h>#include <string.h>#include <Windows.h>#include <unistd.h>#include <conio.h>#define NR(x) sizeof(x)/sizeof(x[0])//清屏#define ClearScreen() /   system("cls");#define TITLE "金山打字通"  enum{ LEFT = 1 , RIGHT , BACKSPACE , ESC , Char,};enum KEYBOARD{ ESC_KEY = 27, BACKSPACE_KEY = 8 , LEFT_KEY = 75 , RIGHT_KEY = 77};int iindex = 0 ;int max = 0 ; static int count = 0 ;char buffer[1024] = {0} ;int Get_User_input(HANDLE hOut,char *ch) ;void Show_string(HANDLE hOut,const char *text) ;//窗口初始化void HANDLE_init(HANDLE hOut);//定義設置光標結構體變量CONSOLE_CURSOR_INFO cci; //定義默認的坐標位置  COORD pos = {0,0};int main(void){ char *text = "WelCome to School ... Good Good Work ,Day Day Up !" ; char ch ; int ret ; HANDLE hOut; hOut = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE_init(hOut); printf("/n%s/n",text); Show_string(hOut,text); while(1) { if(max >= strlen(text))  break ; ret = Get_User_input(hOut,&ch) ; if(ret == ESC)  break ; Show_string(hOut,text); } //關閉窗口句柄 CloseHandle(hOut); return 0 ;}//窗口初始化void HANDLE_init(HANDLE hOut){ SetConsoleTitleA(TITLE); //獲取當前的句柄---設置為標準輸出句柄   //獲取光標信息  GetConsoleCursorInfo(hOut, &cci);  //設置光標大小   pos.X = 0 ;  pos.Y = 2 ;  cci.dwSize = 1;  //設置光標不可見 FALSE    cci.bVisible = 0;   //設置(應用)光標信息  SetConsoleCursorInfo(hOut, &cci);}static int __Get_User_input(HANDLE hOut,char *ch) { char tmp ; int type = Char ; //關閉回顯  pos.X = 0 ;  pos.Y = 2 ; GetConsoleCursorInfo(hOut, &cci);  cci.dwSize = 100;   cci.bVisible = 0; SetConsoleCursorInfo(hOut, &cci);  tmp = getch() ; switch(tmp) { case ESC_KEY : type = ESC ; break ;  case BACKSPACE_KEY : type = BACKSPACE ; break ; case LEFT_KEY : type = LEFT ; break ;  case RIGHT_KEY : type = RIGHT; break ; } *ch = tmp ; //打開回顯  pos.X = 0 ;  pos.Y = 2 ; GetConsoleCursorInfo(hOut, &cci);  cci.dwSize = 100;   cci.bVisible = 1; SetConsoleCursorInfo(hOut, &cci);  return type ;}//獲取用于輸入 int Get_User_input(HANDLE hOut,char *ch){ int type ;  type = __Get_User_input(hOut,ch); switch(type) { case Char :    if(buffer[iindex] == '/0' )    buffer[iindex] = *ch ;   else   {   memmove(buffer+iindex+1 , buffer+iindex , max-iindex) ;   buffer[iindex] = *ch ;   }   iindex ++ ; max ++ ; break ; //case LEFT : if(iindex > 0) iindex -- ; break ; //case RIGHT : if(iindex < max) iindex ++ ; break ; case BACKSPACE :    if(iindex > 0){   memmove(buffer+iindex-1 , buffer+iindex , max-iindex) ;    iindex -- ;    max -- ;   }   if(iindex == 0)   {   count = 0 ;    }   break ; case ESC : return ESC ; } return 0 ;}//顯示和統計 void Show_string(HANDLE hOut,const char *text){ system("cls") ; printf("/n%s/n",text) ; int i ;  int errno_Num = 0 ;  for(i = 0 ; i < max ; i++) { if(buffer[i] == text[i]) {  SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | 0x8);  printf("%c",buffer[i]); } else  {  SetConsoleTextAttribute(hOut, FOREGROUND_RED | 0x8);  printf("%c",buffer[i]);  errno_Num++ ; } } pos.X = 0 ;  pos.Y = 2 ; cci.dwSize = 100;  cci.bVisible = 1 ; SetConsoleCursorPosition(hOut,pos); SetConsoleCursorInfo(hOut, &cci);  SetConsoleTextAttribute(hOut,FOREGROUND_GREEN | 0x8); pos.X = 0; pos.Y = 15 ; SetConsoleCursorPosition(hOut,pos); printf("錯誤的個數:%d", errno_Num) ; pos.X = 0; pos.Y = 16 ; SetConsoleCursorPosition(hOut,pos); printf("總個數:%d", (int)strlen(text)) ; pos.X = 0; pos.Y = 17 ; SetConsoleCursorPosition(hOut,pos); printf("輸入個數:%d", max) ; pos.X = 0; pos.Y = 18 ; SetConsoleCursorPosition(hOut,pos); if(count == 0) printf("錯誤率:0%%") ; else printf("錯誤率:%.2f%%",((float)errno_Num)/((float)max)*100) ; pos.X = iindex + 1 ;  pos.Y = 2 ; cci.dwSize = 100;  cci.bVisible = 1 ; count = 1 ; SetConsoleCursorPosition(hOut,pos); SetConsoleCursorInfo(hOut, &cci);  fflush(stdout);}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内免费精品永久在线视频| 欧美日韩美女视频| 性欧美长视频免费观看不卡| 亚洲欧美国产va在线影院| 精品中文字幕乱| 亚洲系列中文字幕| 久久免费在线观看| 亚洲图片制服诱惑| 亚洲欧洲国产一区| 欧美中文字幕在线播放| 国产一区二区三区四区福利| 亚洲国产一区二区三区在线观看| 欧美在线观看一区二区三区| 日韩风俗一区 二区| 欧美激情视频网址| 欧美老妇交乱视频| 91在线视频导航| 尤物yw午夜国产精品视频| 国产精品7m视频| 亚洲bt天天射| 精品久久久999| 茄子视频成人在线| 色多多国产成人永久免费网站| 亚洲欧美国内爽妇网| 久久理论片午夜琪琪电影网| 国产精品久久久久久av下载红粉| 日韩成人在线视频网站| 色777狠狠综合秋免鲁丝| 国产在线视频2019最新视频| 欧美性xxxxx极品娇小| 538国产精品一区二区在线| 丝袜美腿精品国产二区| 精品成人国产在线观看男人呻吟| 亚洲日韩欧美视频| 91精品免费久久久久久久久| 日韩高清免费在线| 久久久久亚洲精品| 亚洲天天在线日亚洲洲精| 日韩美女在线观看| 色yeye香蕉凹凸一区二区av| 亚洲天堂一区二区三区| 欧美亚洲另类制服自拍| 亚洲精品日韩在线| 久久人体大胆视频| 欧美精品激情视频| 色综合亚洲精品激情狠狠| 欧美久久精品一级黑人c片| 黑人巨大精品欧美一区二区免费| 欧美亚洲在线视频| 亚洲精品日韩在线| 欧美日韩中文字幕综合视频| 日本三级韩国三级久久| 麻豆乱码国产一区二区三区| 久久最新资源网| www.午夜精品| 日韩人体视频一二区| 久久99国产精品自在自在app| 尤物九九久久国产精品的特点| 国产日韩欧美黄色| 日韩av在线网站| 国产视频精品自拍| 国产精品久久久久久网站| 亚洲免费高清视频| 国产精品美女www爽爽爽视频| 在线观看欧美成人| 亚洲精品免费在线视频| 伊人久久五月天| 国产亚洲精品美女久久久久| 日韩av在线播放资源| 精品国产乱码久久久久酒店| 久久久久久久网站| 欧美乱妇40p| 亚洲国产精品推荐| 欧美视频在线视频| 国产欧美一区二区三区久久人妖| 国产精品久久久久久久av大片| 亚洲一区二区在线播放| 蜜臀久久99精品久久久无需会员| 伊人久久大香线蕉av一区二区| 国产精品爽爽爽| 国产欧美一区二区三区在线| 欧美激情小视频| 亚洲欧美国产精品| 亚洲人成电影网站色xx| 欧美成人亚洲成人| 青青草精品毛片| 亚洲色图欧美制服丝袜另类第一页| 亚洲综合精品一区二区| 亚洲综合精品伊人久久| 国产一区二区欧美日韩| 欧美一二三视频| 欧美日韩成人黄色| 国产91露脸中文字幕在线| 欧美日韩国产中文精品字幕自在自线| 欧美性猛交xxxxx水多| 成人黄色av网| 亚洲国产精久久久久久| 久久五月情影视| 久久久久久久久爱| 欧美午夜精品在线| 亚洲午夜未满十八勿入免费观看全集| 欧美日韩中文在线观看| 国产精品久久久久久久电影| 91精品久久久久久久久| 日本一区二区三区在线播放| 日韩精品999| 国产精品最新在线观看| 日本精品中文字幕| 热久久视久久精品18亚洲精品| 日韩欧美在线国产| 久久久亚洲国产| 91精品在线国产| 欧美在线视频观看免费网站| 91精品国产高清自在线看超| 国产午夜精品免费一区二区三区| 成人网欧美在线视频| 国产精品美女呻吟| 91精品国产高清自在线看超| 91免费视频国产| 国产精品久久久久久久久久免费| 日韩亚洲综合在线| 欧美中文字幕在线| 美日韩精品免费视频| 亚洲人成电影网站色…| 91九色在线视频| 欧美色欧美亚洲高清在线视频| 日韩电影免费观看在线观看| 亚洲成人动漫在线播放| 亚洲精品白浆高清久久久久久| 久久国内精品一国内精品| 九九久久国产精品| 国产日韩综合一区二区性色av| 久久电影一区二区| 日韩精品一区二区三区第95| 伊人男人综合视频网| 日韩欧美视频一区二区三区| 中文字幕国产日韩| 91av在线影院| 亚洲精品久久久久中文字幕二区| 国产欧美一区二区| 日本精品视频在线观看| 5252色成人免费视频| 欧美日韩中文字幕在线视频| 热久久这里只有| 欧美日韩精品二区| 亚洲小视频在线观看| 91久久在线观看| 亚洲日韩中文字幕| 久久夜色精品国产| 亚洲丝袜av一区| 亚洲有声小说3d| 91日本在线视频| 中文字幕精品在线视频| 综合av色偷偷网| 欧洲成人性视频| 国产成人jvid在线播放| 亚洲欧美资源在线| 亚洲日韩中文字幕| 6080yy精品一区二区三区| 欧美日韩免费区域视频在线观看| 国产精品久久久久久久久久久久久| 国产裸体写真av一区二区| 国产日韩亚洲欧美| 成人高清视频观看www|