C언어로 스톱워치/타이머 만들기1 - 시작

컴퓨터/Projects

728x90
반응형

배경

효율적인 C언어 공부를 하기 위해서 시작하는 첫 프로젝트 아닌 프로젝트. 

목표는 어찌 되든 배포 파일까지 만들어 결과를 만들어 보기.

필요한 공부 내용들을 정리하며 프로젝트 일지를 위해서 작성하는 포스트입니다. 


개요

C언어를 베이스로 해서 스톱워치 / 타이머 기능을 하는 프로그램을 만들려고 합니다.

  • 프로젝트명 : C언어를 통한 스톱워치 / 타이머 프로그램
  • 시작 일시 : 2021년 12월 03일
  • 종료일시 : 미정
  • 주요 내용 
    1. 타이머 기능 구현
    2. 스톱워치 기능 구현
    3. 실행 파일(배포 파일) 제작 

계획 초안 

  • 0 단계
    • Github에 레포 등록
    • VS를 통한 소스코드 작성 준비
  • 1 단계
    • CMD 상태에서 스톱워치 / 타이머 구현
    • 키 입력으로 제어
  • 2 단계
    • CMD 상태에서 스톱워치 / 타이머 구현
    • 화면 이동으로 제어
  • 3 단계
    • Window 창으로 만들어서 제어 

오늘의 목표

  • Github 레포등록
  • VS를 통한 1단계 구조 만들기
  • 스톱워치 기능 구현하기 

 

Github repositoriy 생성

 

GitHub - Gon-91/Timer

Contribute to Gon-91/Timer development by creating an account on GitHub.

github.com

 

앞으로 이 프로젝트의 기록을 할 수 있도록 레포 생성을 했습니다.

적나라하게 나의 소스코드 이력을 확인할 수 있도록 도와줄 것입니다.

 

VS를 통한 1단계 구조 만들기

처음 프로젝트 시작이니... 구조 준비와 간단한 예외처리를 하기 위한 소스코드 작성을 했습니다.

#include<stdio.h>
#include<time.h>
#include<Windows.h>

int main() {
	while (1) {
		//메뉴 입력
		system("cls");
		printf("\t=== Test Program ==\n\n");
		int input;
		printf("1.스톱워치\t2.타이머\t3.종료\n\n");
		printf("원하는 메뉴를 입력 하세요 : ");
		scanf_s("%d", &input);

		//메뉴에 따른 제어
		if (input > 0 && input < 4) {
			if (input == 3) {
				printf("프로그램을 종료 합니다.");
				break;
			}
			switch (input)
			{
			case 1:
				/*
				* 아래 기능을 포함하여 구현 예정
				* 시작 | 기록 | 정지 | 초기화
				*/
				printf("1번\n");
				system("pause");
				break;
			case 2:
				/*
				* 시간 / 분 / 초를 이용한 타이머 카운팅 시작하게 구현 예정
				* 최대 100시간 ? 
				* 입력을 통해 카운팅 시간 설정 
				* 시작 | 정지 | 초기화 
				*/
				printf("2번\n");
				system("pause");
				break;
			}
		}
		//예외 처리
		else {
			while (getchar() != '\n') {}
			printf("잘못된 입력입니다.");
			system("pause");
		}
	}
	return 0;
}

스톱워치 기능 구현하기

			case 1:
				/*
				* 아래 기능을 포함하여 구현 예정
				* 시작 | 기록 | 정지 | 초기화
				*/
				printf("아무키나 누르면 시작 합니다.");
				system("pause");

				//clock함수를 이용
				while (1) {
					clock_t time = clock();
					//형식 변환 
					double time_double = (double)time / 1000;
					printf("%.3lf\n", time_double);
					system("cls");
					if (time_double > 10) break;
				}

				printf("1번\n");
				system("pause");
				break;

우선 해당 포스트에 진입하여 아무 키나 입력받을 시 스톱워치를 시작하고 10초까지 화면에 표시한 후 스톱워치가 종료하게까지 만들었다. 

즉, 10초 카운팅만 하는 카운터의 기능만을 구현하였다.  (프로그램이 시작된 시점부터)

 

time.h을 이용하였습니다.

  • clock_t의 단위는 1000분의 1초입니다. 
clock_t time = 1 
// time = 1을 초로 환산한다면 0.001초
  • clock() 함수 
    • 이 함수는 알기 쉽게 설명하자면 프로그램이 실행된 시점부터 현재까지의 시간을 clock_t로 반환해주는 함수입니다.

결국 지금 만든 소스코드는 프로그램이 시작된 순간부터 소비된 시간을 1000분의 1초 단위로 출력해주고 있습니다. 

다음 포스트를 작성할 때는 이 것을 잘 활용해서 원하는 시점에서의 시간을 카운팅 할 수 있도록 해보겠습니다.

 

C언어로 스톱워치/타이머 만들기2 - 기본 구현하기

Github - 그간의 행적 확인 GitHub - Gon-91/Timer Contribute to Gon-91/Timer development by creating an account on GitHub. github.com 이전 포스트 C언어로 스톱워치/타이머 만들기 - 시작 배경 효율적인 C..

blog-of-gon.tistory.com

 

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :