| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2191 人关注过本帖
标题:简单的指法练习软件
只看楼主 加入收藏
卢露露
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-9-13
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:18 
简单的指法练习软件
用C语言编程的思路
搜索更多相关主题的帖子: 编程 软件 C语言 
2011-09-13 15:14
笨蛋编程
Rank: 3Rank: 3
等 级:论坛游侠
威 望:4
帖 子:65
专家分:131
注 册:2011-8-11
收藏
得分:5 
楼主坑人 沙发
2011-09-13 15:17
tisyang
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:132
专家分:737
注 册:2011-5-7
收藏
得分:5 
就是类似练习打字的那种么
如果是的话,简单考虑
    预先定义有一条英文语句,存储起来。
    程序开始的时候,先打印一行语句,给用户看,然后等待用户输入若干个字符,用数组存储起来。
    从预定义的语句头开始和用户输入的字符串进行逐字符匹配,如果均匹配通过,那么
        打印出预定以语句,然后换行输出用户已经输入过的正确匹配的语句,然后光标自然停留在跟上行对应的用户还未输入的位置
大意是这样子的,但是如果用户输入有不匹配的话,可以考虑接受输入中前若干个正确的字符,提示从不正确的地方重新输入。

C++ 用无参数构造函数生成对象时候请勿在构造函数后添加无用的那一对括号,否则有可能会被当成函数声明而忽略,嗯,栈上构建的时候就是这样。
2011-09-13 16:23
a5952036
Rank: 2
等 级:论坛游民
帖 子:65
专家分:94
注 册:2011-9-7
收藏
得分:5 
不理解,什么情况?
2011-09-13 16:31
卢露露
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-9-13
收藏
得分:0 
回复 3楼 tisyang

还是不是很明白啊 就是关于简单的指法练习软件的编程
2011-09-13 16:33
卢露露
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-9-13
收藏
得分:0 
回复 4楼 a5952036
简单的指法练习软件
2011-09-13 16:34
卢露露
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-9-13
收藏
得分:0 
回复 3楼 tisyang
为什么用数组储存
2011-09-13 16:36
卢露露
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-9-13
收藏
得分:0 
回复 2楼 笨蛋编程
没有啊
2011-09-13 16:56
tisyang
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:132
专家分:737
注 册:2011-5-7
收藏
得分:0 
回复 5楼 卢露露
程序代码:
#include <stdio.h>
#include <string.h>

int main()
{
    char buffer[255] = {0};
    char input[255] = {0};
    int text_length, current_pos;
    int i,j,k;
    const char * TEXT = "A quick brown fox jumped over the lazy dog.";
    text_length = strlen(TEXT);
    current_pos = 0;
    puts("/****************/");
    puts("Simple type-player");
    puts("Please input the same text below\n\n");
    
    while(current_pos < text_length)
    {
        printf("\n%s\n", TEXT);
        printf("%s", input);
        fflush(stdout);
        scanf("%[^\n]%*c", buffer);
        fflush(stdin);
        i = strlen(buffer);
        k = current_pos;
        for(j = 0; j < i; j++)
        {
            if(buffer[j] == TEXT[j + current_pos])
            {
                input[j+current_pos] = buffer[j];
                k = j + current_pos;
            }
        }
        input[k+1]='\0';
        current_pos = k+1;
    }
    puts("\nRight!\n");
    return 0;
}

就类似这个简单的,只要完整的输入提示的句子就通过了,也可以一部分一部分的输入,scanf("%[^\n]%*c", buffer) 这是为了可以允许输入空格,把回车作为了语句输入的截断符。
如果有输入错误的,就会从错误的地方开始。

C++ 用无参数构造函数生成对象时候请勿在构造函数后添加无用的那一对括号,否则有可能会被当成函数声明而忽略,嗯,栈上构建的时候就是这样。
2011-09-13 17:19
卢露露
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-9-13
收藏
得分:0 
回复 9楼 tisyang
嘿嘿 谢谢
2011-09-13 17:33
快速回复:简单的指法练习软件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022992 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved