1. Си / Говнокод #5938

    +138

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <ctime>
    #include <signal.h>
    #include <sys/time.h>
    #include <fcntl.h>
    #include <termios.h>
    #include <time.h>
    
    #include <iostream>
    
    using namespace std;
    
    struct termios savetty;
    struct termios tty;
    char num[]="0123456789QWERTYUIOPASDFGHJKLZXCVBNM";
            char let[]="!\",#$%&'()*qwertyuiopasdfghjklzxcvbnm";
    int t=1;
    int tm=0;
    int opnum=0;
      char buffer[30];
    char var[1000];
    char out[1000];
    struct timeval tv;
    struct timeval tv2;
    int main()
    {
      if ( !isatty(0) ) {
      fprintf (stderr, "stdin not terminal\n");
      exit (1);
      };
    
    tcgetattr (0, &tty);
    savetty = tty;
    tty.c_lflag &= ~(ICANON|ISIG);
    tty.c_cc[VMIN] = 1;
    tcsetattr (0, TCSAFLUSH, &tty);
    
      srand(time(0));
    
      int i=0;
      bool c=true;
      time_t curtime;
      int passLen=200+rand()%400;
      for(int i=0;i<=passLen;i++){
        int s=rand()%2;
        if(s==1){
          out[i]=let[rand()%37];
        } else {
          out[i]=num[rand()%35];
        };
        if((i%5)==0 && i!=0)out[i]=' ';
      };
      out[passLen]='\0';
      int tt=gettimeofday(&tv, NULL);
      if(tt<0)exit(0);
      printf("%s\n",out);
      while(out[i]!='\0')
      {
        var[i]=getchar();
        if(var[i]!=out[i]){
          opnum++;
          printf("Er%c",out[i]);
        };
        i++;
      };
      tt=gettimeofday(&tv2, NULL);
      if(tt<0)exit(0);
      int tm=tv2.tv_sec-tv.tv_sec;
      int v=(passLen*60)/tm;
      int min=tm/60;
      tm%=60;
      printf("Time %d min %d sec\n",min,tm);
      cout<<"Num of errors "<<opnum<<" Speed "<<v<<endl;
      tcsetattr (0, TCSAFLUSH, &savetty);
      
    };

    Клавиатурный тренажер

    Запостил: AliceGoth, 09 Марта 2011

    Комментарии (8) RSS

    Добавить комментарий