너의 타자소리가 들려 - by 화영


1. 작품 개요


-개발동기

평소 영어 타자 실력이 좋지 못해서 컴퓨터에 기본적으로 깔려있는 한컴 타자연습에 들어가서  연습을 하려고 했더니 프로그램이 오류가 나면서 작동이 중지 됐었다. C언어 프로젝트의 주제를 고민하다가 이 기회를 이용하여 직접 타자연습 프로그램을 만들게 되었다.


-개발환경

visual studio 2017


-제작과정

키보드 연습, 긴글 연습을 먼저 만들고 시작하면을 디자인 했다.

17~19일에 키보드 연습을 만들었고 , 

19~22일을 긴글 연습을 만드는데 사용했다.

나머지는 오류를 수정하고 기능추가와 보고서와 ppt를 만들었다.


2. 작품 소개


-사용 헤더 및 라이브러리


#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#include<windows.h>


#define _CRT_SECURE_NO_WARNINGS

#define COLOR_YELLOW SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14)

#define COLOR_WHITE SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7)


1) 시간 측정을 위해 time.h 라이브러리 사용

2) 글자 색 변환을 위해 windows.h 라이브러리 사용

3) SetConsoleTextAttribute(GetStdHandle

(STD_OUTPUT_HANDLE), 14) 글자를 노란색으로 변환

4) #define COLOR_WHITE SetConsoleTextAttribute(GetStdHandle

(STD_OUTPUT_HANDLE), 7) 글자를 흰색으로 변환



-사용자 지정 함수


void start(); ->시작 화면 출력


void level_one();  //키보드

void print_keyboard(char key); ->키보드 랜덤 출력

char random_key(); ->랜덤숫자 지정

int input_key(char key, int *arr); ->입력받는 함수

void keyboard_turn(int *arr); ->키보드를 출력하고 출력횟수 제한


void level_two();  //긴글

char *ReadAllFile(char *fileName); ->파일을 읽고 버퍼에 저장

void Input_filename(char *Inbuf, int len); ->파일 이름 입력 확인

void print_contents(GameInfo Game); ->지정 길이 만큼 내용 출력

void input_contents(GameInfo *Game); ->출력된 내용 입력받기

void print_score(GameInfo Game); ->타수와 정확도 측정.출력


-구조체


typedef struct _Engfile {      

char file_Letitgo[30];

char file_Partof[30];

char file_Awolenew[30];

char file_Healthe[30];

char file_Sugar[30];

}Engfile;

->긴글 연습에 필요한 파일 이름을 저장시켜놓은 구조체

(입력받은 파일이름을 비교하기 위해)


typedef struct _Gameinfo {
char *contents; //내용 들어있는 contents 포인터
int offset; //contents에서 입력할 글자 가리키기
int start_time; //입력 시작 시간
//현재속도 = (타수-백스페이스*2) / 경과시간(초) * 60초
//      한컴타자는 백스페이스 * 3
int end_time; //입력 끝난 시간
int elapsedTime; // 입력 끝난 시간 - 입력 시작 시간
int correct; //입력 글자 중 맞은 개수
int wrong; //입력 글자중 틀린 개수
}GameInfo;
->긴글 연습 한번을 실행 시킬때 필요한 내용을 담아놓은 구조체



-실행 화면


<시작화면>




<키보드 연습(1)>



<키보드 연습(2)>



<긴 글 연습(1)>



<긴 글 연습(2)>



3. 개발하면서 느낀점


내가 목표한 프로그램을 다 만들었다는 거에 큰 성취감을 느꼈고 지금까지 배워왔던 모든 C언어 지식들을 총 동원하여 만들어서 다시한번 명령어들의 쓰임새와 알고있던 것들이 정리되는 느낌이었다.

'@C언어 : Layer7' 카테고리의 다른 글

HackerSchool FTZ 풀이  (0) 2018.06.15
Git 사용 보고서  (1) 2018.06.08
구조체 예제  (0) 2018.05.15
구조체  (0) 2018.05.13
메모리 구조  (0) 2018.05.12

+ Recent posts