티스토리 뷰
728x90
그냥 심심해서 작성했습니다.
직접 작성이라기보단 이곳 저곳 찾아서 작성 했다는게 정확 하겠네요.
English
http://blog.thdev.net/2011/10/keyboard-typing-practice-program.html
참고로 비쥬얼 c++ 2008 에서 작성 했습니다.
파일 입출력이 아닌 배열을 통해 text를 정했습니다.
분당 타수와 표준편차를 구합니다.
#include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include <time.h> #include <math.h> #include <windows.h> #pragma comment(lib, "winmm.lib") //mmsystem.h 리눅스에서 gcc로 할려고했는데 포기를... #define TEXTLEN 512 //문자열 길이를 정의 char texts[][TEXTLEN] = {"Hello", "Android Ice Cream Sandwich!! "}; const int size = sizeof(texts) / sizeof(texts[0]); //배열에 저장된 행을 확인 int gettext(char *str) { gets(str); //키보드 입력을 받음 int len = (int) strlen(str); //입력받은 글자수를 확인 int onebyte = 0; int twobyte = 0; for (int i=0; i<len; i++) //for문을 사용하여 카운트를 샘 { if (str[i] < 0) twobyte++; // 2바이트 한글 else onebyte++; // 1바이트 영문 } return onebyte+(twobyte / 2); } //프로그램 실행 void run() { char user[TEXTLEN]; int sum = 0; //더하기 double sum2 = 0; // 표준편차 int diff; //표준편차 더하기 int avg; int arr[size] = {0}; //표준 편차를 위한 평균 타수 저장 //위에서 정의한 texts의 배열을 for문을 이용 for(int i = 0 ; i < size; i++) { int taja_count = 0; //입력한 타자수를 저장 printf("%s\n", texts[i]); //texts 배열에 저장된 값을 출력 unsigned int time = timeGetTime(); //시작 시간을 time에 복사 taja_count = gettext(user); //사용자 입력 후 count를 가져옴 time = timeGetTime() - time; //딜레이 시간에서 현재 시간을 뺌 if(taja_count == 0) break; //count가 0이면 정지 float n = (float) 60 / (time / 1000); //시작시간을 이용 1분 단위로 계산 arr[i] = (int) n * taja_count; //시간에서 입력한 타자수를 곱함 sum += arr[i]; printf("타자 속도는 평균 %d타\n", arr[i]); } avg = sum / size; //평균을 구함 for(int i = 0; i < size; i++) { diff = arr[i] - avg; sum2 += diff * diff; } //최종 출력 printf("최종: 평균 타수는 %d타, 표준 편차 %d\n", avg, (int)sqrt(sum2 / (size - 1))); } int main() { run(); //프로그램을 시작 puts("프로그램 종료"); getchar(); return 0; }
'Programming language' 카테고리의 다른 글
python * 찍기 프로그램 (0) | 2012.04.14 |
---|---|
TH 문자열 치환 ver. 1.0 (0) | 2012.04.02 |
C언어 char 포인터, 배열 사용 (0) | 2012.03.30 |
아주 기초적이지만 틀리기 쉬운 C 코드 (17) | 2012.03.28 |
ubuntu, mac python 사용하기 (0) | 2012.03.18 |
댓글
Blog is powered by
Tistory / Designed by
Tistory