C语言之打字通完整版pc软件 文章资讯 手机软件

您当前的位置→图文中心软件教程C语言之打字通完整版

C语言之打字通完整版


2017/3/7  编辑:admin 来源:本站整理

教育学习 金山打字通2015下载现在开始下载

//包含头文件程序
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <Windows.h>

#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语言 编程思维特征 黑客入侵
  • 网易CC语音 3.11 官网官方版
  • 发表评论
    阅读排行
    相关热门
    网站帮助 - 广告合作 - 下载声明 - 网站地图