//包含头文件

#include

#include

#include

#include

#pragma warning(disable:4996)

//全局变量

char g_ch;//屏幕上出现的字符

int g_row, g_col;//行和列的坐标

int correct, error;//输入正确的和错误的字符的数量

int redraw = 0;//是否要重写信息,计算正确率

int running = 1;//运行状态

int pause = 0;//是否暂停状态,1是 2否

HANDLE hout;

//产生一个新的字符,并设置其出现的位置

void GetRandomChar()

{

g_ch = rand() % 26 + 'a';//能够得到从a到z之间的一个随机字符

g_row = 0;//出现在最上面的一行

g_col = rand() % 80;//横坐标的位置随机

}

//线程处理函数

DWORD CALLBACK Proc(LPVOID lpParam)

{

int r, c;

COORD pos = { 0, 0 };//坐标,初始为0,0,表示左上角位置

while (running)

{

if (pause)

continue;

SetConsoleCursorPosition(hout, pos);//把控制台光标位置定位到左上角00的位置

for (r = 0; r < 12; ++r)//共12行

{

for (c = 0; c < 80; ++c)//共80列

{

if (r == 10)//第11行

{

printf("-");

}

else if (r == 11)//第12行

{

if (redraw)

{

printf("  正确:%d  错误:%d  正确率:%6.2lf%%", correct, error,

(double)correct / (correct + error) * 100);

redraw = 0;

}

}

else if (r == g_row && c == g_col)

{

printf("%c", g_ch);

}

else

{

printf(" ");

}

}

}

if (g_row++ == 10)

{

++error;//错误的数量加1

GetRandomChar();// 重新产生字符

redraw = 1;//需要重新计算正确率

}

Sleep(300);

}

return 0;

}

int main()

{

int ch;//保存用户输入的按键

HANDLE hThread;//线程的句柄

system("color E0");

hout = GetStdHandle(STD_OUTPUT_HANDLE);

GetRandomChar();

//创建一个线程

hThread = CreateThread(NULL, 0, Proc, NULL, 0, NULL);

while (running)

{

if (ch = getch())

{

if (ch == 27)//按下了键盘上的ESC键

{

running = 0;

}

else if (ch == 13)//按下了键盘上的回车键

{

pause = !pause;

}

else if (ch == g_ch)

{

if (pause == 0)

{

//输入了正确的字符

++correct;//正确的数量加1

GetRandomChar();

redraw = 1;//需要重新计算正确率

}

}

else

{

if (pause == 0)

{

//输入了不正确的字符

++error; //错误数量加1

redraw = 1;//需要重新计算正确率

}

}

}

}

return 0;

}

c语言编程打字通,C语言之打字通完整版相关推荐

  1. c语言编程模拟选举,C语言编程题精选

    C语言编程题精选 C语言编程题精选 1. 编程实现对键盘输入的英文名句子进行加密.用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变. 2. 编程实现将任意的十 ...

  2. 成都c语言编程培训机构,成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗...

    成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗 首页 > 软件 > 成都学c语言编程 作者:镀金池   发布时间:2018-09-28 14:20 近似带有序布局 ...

  3. 罗定c语言,罗定学c语言编程,罗定学c语言编程培训,罗定学c语言编程一般怎么收费...

    罗定学c语言编程,罗定学c语言编程培训,罗定学c语言编程一般怎么收费 首页 > 软件 > 罗定学c语言编程 作者:镀金池   发布时间:2018-10-04 23:40 依照c语言的法则, ...

  4. c语言编程技巧分析,C语言难点及编程技巧分析

    摘要:近些年信息技术发展迅速,社会需要大量专业的计算机人才,C语言是学习计算机知识的专业理论课程,能够为以后的学习打下专业基础.但目前C语言学习受到各方面因素的影响,学习效果不是很理想,很多时候即使努 ...

  5. 单片机c语言编程下载,单片机C语言编程.doc

    单片机C语言编程.doc 单片机C语言编程指令格式 功能简述 字节数 周期 一.数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,Ri ...

  6. python编程快速上手自动化_《Python编程快速上手 让繁琐工作自动化》完整版PDF...

    image.png <Python编程快速上手 让繁琐工作自动化>完整版PDF 提取码:7qm4 3.jpg 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 ...

  7. stm8的c语言编程,STM8的C语言编程.doc

    STM8的C语言编程.doc STM8的C语言编程(1)基本程序与启动代码分析现在几乎所有的单片机都能用C语言编程了,采用C语言编程确实能带来很多好处,至少可读性比汇编语言强多了.在STM8的开发环境 ...

  8. c语言编程所得票数,C语言编程求1X2X3····Xn所得的数末尾有多少个零

    C语言编程求1X2X3····Xn所得的数末尾有多少个零 发布时间:2020-08-10 02:23:57 来源:51CTO 阅读:312 作者:sonissa 参见大数的阶乘 https://blo ...

  9. c语言编程课程心得,c语言编程课程设计心得.docx

    C语言编程课程设计心得 C语言编程课程设计心得 河南城建学院 <C语言程序设计>课程设计报告 适用专业工程管理专业课程名称C语言程序设计指导教师赵军民.魏新红.张芳芳 设计人:051409 ...

  10. 方程组c语言编程,最小二乘解方程组C语言编程.doc

    最小二乘解方程组C语言编程 #include #include"math.h" using namespace std; int main() { double **a,*x,*y ...

最新文章

  1. Vue.js slots: 为什么你需要它们?
  2. wxWidgets:显示和测试 wxDC 功能
  3. Linux 查看显存带宽,Vega 20规格与Vega 10相近,显存带宽翻倍,但目前只能跑Linux - 超能网 - IT帮...
  4. 【逻辑与计算理论】Lambda 演算的类型与其 Lambda 演算建模
  5. tinymce 工具栏 不显示_winform中MenuStrip主菜单、工具栏、状态栏、托盘、其他控件...
  6. python中函数包括参数函数吗_Python中的函数---函数的定义和参数
  7. android 百度室内地图开发,androidsdk | 百度地图API SDK
  8. python按键暂停程序_汇总程序员学习python必备的42个快捷键,看完收获满满
  9. Windows 用户怒了!系统漏洞简直泛滥成灾
  10. TCP/IP网络编程-前三章学习笔记
  11. QT IDE下载及安装(最新版本)
  12. ipad编写python_ipad怎么写python
  13. hadoop培训感想
  14. [线性代数]n维向量(秦静老师主讲)
  15. 购物小票的巧妙新设计
  16. windows系统常量
  17. 简单批处理文件使用win7自带wifi,妈妈再也不担心WiFi软件不稳定了
  18. Icon图标制作(转化)工具
  19. 社群运营当下最流行的红包玩法
  20. 9012,9013,9014,9015,8050,8550三极管的区别

热门文章

  1. 5.4 SVR回归(时间序列分析)
  2. 计算机大赛作品文本,全国创新杯说课大赛计算机应用基础类一等奖作品:毕业展示会策划文案的美化文本和段落的格式设置说课课件...
  3. C/C++:system()函数的用法
  4. system函数返回值,Linux
  5. 时间序列模型 (七): 时间序列建模的基本步骤
  6. bootstrap树形结构
  7. python字典可以对键信息赋值吗_python字典键操作
  8. 浙江大学公共管理硕士(MPA)的选修课都有哪些哪些内容?
  9. 47岁林忆莲将大婚 揭秘6位40+女星保养秘籍
  10. 物流基础知识(十四)