//包含头文件

#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. html javascript 引号
  2. 手动删除SVCH0ST.EXE的方法
  3. python怎么导入文件-Python模块导入详解
  4. 登录界面的滑动_【提醒】电子税务局登录方式有变化! 8月31日关闭“原方式登录”...
  5. java equals比较_Java中equals()和==的比较
  6. linux sh-3.2 怎么开机,linux 开机执行脚本文件
  7. mysql 数据恢复 报错_Mysql 数据恢复报错
  8. 马哥学习李洋个人笔记之-----正则表达式
  9. 使用 MSDeploy 部署网站
  10. opcache引起的“php-cgi.exe - FastCGI 进程意外退出”,事件ID487
  11. Linux查看某个进程的磁盘IO读写情况
  12. linux安装vlan管理软件,Linux_Linux下配置vlan网卡教程,1.需要使用到vconfig软件。首先y - phpStudy...
  13. 原生社区交友婚恋视频即时通讯双端APP源码 ONE兔2.0版
  14. 验证整数和小数的正则表达式
  15. 小学校计算机教室年度工作总结,小学计算机教师年度工作总结
  16. Mac加显示器桌面排列设置
  17. R语言中的Wilcoxon符号秩检验与配对学生t检验
  18. php mysql 金钱_PHP实现货币换算的方法
  19. README.md的内容格式
  20. WPF MVVM设计模式下 相同Xaml绑定不同ViewModel问题

热门文章

  1. gba开发工具_GBA扩展卡软件GBAExpLoader最详尽使用教程
  2. 360清理痕迹后,系统启动变的超慢
  3. 二、java设计模式之工厂方法+抽象工厂模式(创建型设计模式)
  4. 基于FPGA的DVP协议实现
  5. pfsense修改密码的两个方法
  6. 平稳发展 | 西欧地区手游玩家的数据和洞察
  7. 链表的回文结构@Nowcoder—— 单链表
  8. HDFS数据负载均衡原理
  9. 手把手教你使用NVIDIA Isaac Sim进行机器人仿真①
  10. 负2次方计算机怎么算,3的负2次方怎么算呀