c语言编程打字通,C语言之打字通完整版
//包含头文件
#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语言之打字通完整版相关推荐
- c语言编程模拟选举,C语言编程题精选
C语言编程题精选 C语言编程题精选 1. 编程实现对键盘输入的英文名句子进行加密.用加密方法为,当内容为英文字母时其在26字母中的其后三个字母代替该字母,若为其它字符时不变. 2. 编程实现将任意的十 ...
- 成都c语言编程培训机构,成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗...
成都学c语言编程,成都学c语言编程去哪里,成都学c语言编程需要报培训班吗 首页 > 软件 > 成都学c语言编程 作者:镀金池 发布时间:2018-09-28 14:20 近似带有序布局 ...
- 罗定c语言,罗定学c语言编程,罗定学c语言编程培训,罗定学c语言编程一般怎么收费...
罗定学c语言编程,罗定学c语言编程培训,罗定学c语言编程一般怎么收费 首页 > 软件 > 罗定学c语言编程 作者:镀金池 发布时间:2018-10-04 23:40 依照c语言的法则, ...
- c语言编程技巧分析,C语言难点及编程技巧分析
摘要:近些年信息技术发展迅速,社会需要大量专业的计算机人才,C语言是学习计算机知识的专业理论课程,能够为以后的学习打下专业基础.但目前C语言学习受到各方面因素的影响,学习效果不是很理想,很多时候即使努 ...
- 单片机c语言编程下载,单片机C语言编程.doc
单片机C语言编程.doc 单片机C语言编程指令格式 功能简述 字节数 周期 一.数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,Ri ...
- python编程快速上手自动化_《Python编程快速上手 让繁琐工作自动化》完整版PDF...
image.png <Python编程快速上手 让繁琐工作自动化>完整版PDF 提取码:7qm4 3.jpg 有关本书 累计销售超过10万册 零基础编程者的不二之选 基于Python3编写 ...
- stm8的c语言编程,STM8的C语言编程.doc
STM8的C语言编程.doc STM8的C语言编程(1)基本程序与启动代码分析现在几乎所有的单片机都能用C语言编程了,采用C语言编程确实能带来很多好处,至少可读性比汇编语言强多了.在STM8的开发环境 ...
- c语言编程所得票数,C语言编程求1X2X3····Xn所得的数末尾有多少个零
C语言编程求1X2X3····Xn所得的数末尾有多少个零 发布时间:2020-08-10 02:23:57 来源:51CTO 阅读:312 作者:sonissa 参见大数的阶乘 https://blo ...
- c语言编程课程心得,c语言编程课程设计心得.docx
C语言编程课程设计心得 C语言编程课程设计心得 河南城建学院 <C语言程序设计>课程设计报告 适用专业工程管理专业课程名称C语言程序设计指导教师赵军民.魏新红.张芳芳 设计人:051409 ...
- 方程组c语言编程,最小二乘解方程组C语言编程.doc
最小二乘解方程组C语言编程 #include #include"math.h" using namespace std; int main() { double **a,*x,*y ...
最新文章
- Vue.js slots: 为什么你需要它们?
- wxWidgets:显示和测试 wxDC 功能
- Linux 查看显存带宽,Vega 20规格与Vega 10相近,显存带宽翻倍,但目前只能跑Linux - 超能网 - IT帮...
- 【逻辑与计算理论】Lambda 演算的类型与其 Lambda 演算建模
- tinymce 工具栏 不显示_winform中MenuStrip主菜单、工具栏、状态栏、托盘、其他控件...
- python中函数包括参数函数吗_Python中的函数---函数的定义和参数
- android 百度室内地图开发,androidsdk | 百度地图API SDK
- python按键暂停程序_汇总程序员学习python必备的42个快捷键,看完收获满满
- Windows 用户怒了!系统漏洞简直泛滥成灾
- TCP/IP网络编程-前三章学习笔记
- QT IDE下载及安装(最新版本)
- ipad编写python_ipad怎么写python
- hadoop培训感想
- [线性代数]n维向量(秦静老师主讲)
- 购物小票的巧妙新设计
- windows系统常量
- 简单批处理文件使用win7自带wifi,妈妈再也不担心WiFi软件不稳定了
- Icon图标制作(转化)工具
- 社群运营当下最流行的红包玩法
- 9012,9013,9014,9015,8050,8550三极管的区别
热门文章
- 5.4 SVR回归(时间序列分析)
- 计算机大赛作品文本,全国创新杯说课大赛计算机应用基础类一等奖作品:毕业展示会策划文案的美化文本和段落的格式设置说课课件...
- C/C++:system()函数的用法
- system函数返回值,Linux
- 时间序列模型 (七): 时间序列建模的基本步骤
- bootstrap树形结构
- python字典可以对键信息赋值吗_python字典键操作
- 浙江大学公共管理硕士(MPA)的选修课都有哪些哪些内容?
- 47岁林忆莲将大婚 揭秘6位40+女星保养秘籍
- 物流基础知识(十四)