⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zhi fa lian xi.c

📁 一个用c语言写的指法练习小软件的源代码。是直接用c语言在控制台编程上编写的。
💻 C
字号:
#include <stdio.h>

void readch();
void show();
void lhj();
void caidan();

/* 定义全局变量 */
FILE *fp;
char YuanWen[12][80] = {0}, LuRu[12][80] = {0};
int y1, y2, row, col;
/* 主函数,完成所有工作 */
void main()
{
    char ch = 'a';
    while(ch != '0')  /* 实现菜单循环 */
    {
        textbackground(1);
        clrscr();
        caidan();
        ch = getche();
        switch(ch)     /* 实现菜单处功能 */
        {
            case '1':
                fp = fopen("sucai1.txt","r");    /* 不添加路径,自动到当前文件夹找 */
                break;
            case '2':
                fp = fopen("sucai2.txt","r");
                break;
            case '3':
                fp = fopen("sucai3.txt","r");
                break;
            case '4':
                fp = fopen("sucai4.txt","r");
                break;
            case '5':
                fp = fopen("sucai5.txt","r");
                break;
            default:
                fp = NULL;
                break;
        }
        if(fp==NULL)
            {
            printf("Open file error! exit!\n");
            getch(); exit(0);
            }
        while(!feof(fp))
            {
            readch();
            show();
            lhj();
            }

    }

    getch();
}


/* 读一屏 */
void readch()
    {
    for(row=0; row<12; row++)
        for(col=0; col<80; col++)
            if(( YuanWen[row][col] = fgetc(fp) ) == '\n')  break;
    }

/* 显示一屏 */
void show()
    {
    textbackground(1);
    clrscr();
    for(row=0,y1=1; row<12; row++,y1+=2)
        {
        gotoxy(1,y1);
        for(col=0; col<80; col++)
            {
            if(YuanWen[row][col]=='\n')  break;
            else
                printf("%c",YuanWen[row][col]);
            }
         }
    }

/* 录入和检查 */
void lhj()
    {
    #include <dos.h>
    struct time *t;
    int err;
    float tim1, tim2;
    for(row=0,y2=2; row<12; row++,y2+=2)
        {
        gettime(t);      /* 获取时间 */
        tim1 = t->ti_hund/6000.0+t->ti_sec/60.0+t->ti_min+t->ti_hour*60.0;
        gotoxy(1,y2);
        err = 0;
        for(col=0; col<80; col++)
            {
            if(YuanWen[row][col]=='\n')  break;
            else
                {
                LuRu[row][col]=getche();
                    if(LuRu[row][col]==8)
                        col=col-2;
                }
            if(LuRu[row][col]!=YuanWen[row][col])   err++;
            }
        gettime(t);
        tim2=t->ti_hund/6000.0+t->ti_sec/60.0+t->ti_min+t->ti_hour*60.0;

        gotoxy(10,25);
        printf("Your Speed is:%g CPM",col/(tim2-tim1));
        gotoxy(42,25);
        printf("Right rate is:%d%%",100*(col-err)/col);
        }
    }
/* 打印菜单 */
void caidan()
{
    printf("\n\n\n\n**********************************************************************\n");
    printf("\nPlease input the nummber which you want use!\n\n"
           "0. EXIT!\n\n"
           "1. Coder - is me\n\n"
           "2. Bush\n\n"
           "3. The Art of Love Letters \n\n"
           "4. Fathers 1\n\n"
           "5. Fathers 2\n\n" );
    printf("**********************************************************************\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -