일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 실습으로 다지는 c#
- 충남 천안
- 알고리즘
- 소스 코드
- c#
- 클래스 다이어그램
- 유튜브 동영상 강의
- 파이썬
- c언어
- 실습
- 안드로이드 앱 개발
- Windows Forms
- 산책하기 좋은 곳
- 표준 입출력
- 소켓 통신
- 동영상 강의
- C++
- 추천
- 무료 동영상 강의
- 언제나휴일
- 프로젝트
- 언제나 휴일
- 동영상
- 표준 라이브러리 함수
- 원격 제어 프로그램
- 졸업 작품
- 네트워크 프로그래밍
- 졸업 작품 소재
- 캡슐화
- 강의
Archives
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
디지털 시계 본문
유트브 동영상 강의
소개
이번에는 디지털 시계 소스 코드입니다. 먼저 0부터 9까지 출력할 정보를 3차원 배열로 정의한 후에 시, 분, 초를 출력하는 함수를 정의합니다.
그리고 콘솔 커서의 위치를 이동하는 gotoxy 함수를 정의합니다. 그리고 time 함수를 이용하여 1초가 지났는지 주기적으로 확인하여 1초가 지나면 현재 시각을 구한 후에 출력합니다.
소스 코드
#include <Windows.h>
#include <stdio.h>
#include <time.h>
#include <conio.h>
#pragma warning(disable:4996)
char*digits[10][5][4] =//0~9까지 출력할 정보
{
{
{ "■","■","■","■" },
{ "■"," "," ","■" },
{ "■"," "," ","■" },
{ "■"," "," ","■" },
{ "■","■","■","■" }
},
{
{ " "," "," ","■" },
{ " "," "," ","■" },
{ " "," "," ","■" },
{ " "," "," ","■" },
{ " "," "," ","■" }
},
{
{ "■","■","■","■" },
{ " "," "," ","■" },
{ "■","■","■","■" },
{ "■"," "," "," " },
{ "■","■","■","■" }
},
{
{ "■","■","■","■" },
{ " "," "," ","■" },
{ "■","■","■","■" },
{ " "," "," ","■" },
{ "■","■","■","■" }
},
{
{ "■"," ","■"," " },
{ "■"," ","■"," " },
{ "■","■","■","■" },
{ " "," ","■"," " },
{ " "," ","■"," " }
},
{
{ "■","■","■","■" },
{ "■"," "," "," " },
{ "■","■","■","■" },
{ " "," "," ","■" },
{ "■","■","■","■" },
},
{
{ "■"," "," "," " },
{ "■"," "," "," " },
{ "■","■","■","■" },
{ "■"," "," ","■" },
{ "■","■","■","■" }
},
{
{ "■","■","■","■" },
{ "■"," "," ","■" },
{ "■"," "," ","■" },
{ " "," "," ","■" },
{ " "," "," ","■" }
},
{
{ "■","■","■","■" },
{ "■"," "," ","■" },
{ "■","■","■","■" },
{ "■"," "," ","■" },
{ "■","■","■","■" }
},
{
{ "■","■","■","■" },
{ "■"," "," ","■" },
{ "■","■","■","■" },
{ " "," "," ","■" },
{ " "," "," ","■" }
}
};
int sx[6] = { 0,10,24,34,48,58 };//시분초를 출력할 x좌표
char *colons[5] = { " ","■"," ","■"," " };
int sx2[6] = { 20,44 };//콜론을 출력할 좌표
void gotoxy(int x, int y)
{
COORD Pos = { x,y };
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
//dn자리에 정수 n을 출력하는 함수
void DrawNum(int dn, int n)
{
int y, x;
for (y = 0; y<5; y++)
{
for (x = 0; x<4; x++)
{
gotoxy(sx[dn] + x * 2, y);
printf("%s", digits[n][y][x]);
}
printf("\n");
}
}
//콜론을 출력하는함수 n이 0이면 시와 분사이, 1이면 분과 초사이
void DrawColon(int n)
{
int y = 0;
for (y = 0; y<5; y++)
{
gotoxy(sx2[n], y);
printf("%s\n", colons[y]);
}
}
//시간을 출력하는함수
void DrawTime(int h, int m, int s)
{
DrawNum(0, h / 10);//시의 앞자리
DrawNum(1, h % 10);//시의 뒷자리
DrawColon(0);//콜론
DrawNum(2, m / 10);//분의 앞자리
DrawNum(3, m % 10);//분의 뒷자리
DrawColon(1);//콜론
DrawNum(4, s / 10);//초의 앞자리
DrawNum(5, s % 10);//초의 뒷자리
}
int main(void)
{
time_t now, before;
struct tm nt;
gotoxy(0, 8);
printf("아무키나 누르면 프로그램 종료");
now = before = time(0); //초 단위 시간을 구함
localtime_s(&nt, &now); //지역 시각을 구함
DrawTime(nt.tm_hour, nt.tm_min, nt.tm_sec);//현재 시각을 출력
while (kbhit() == 0)
{
now = time(0);//초단위 시간을 구함
if (now != before)//다르면
{
before = now;//현재 초단위 시간을 기억
localtime_s(&nt, &now);//지역 시각을 구함
DrawTime(nt.tm_hour, nt.tm_min, nt.tm_sec);//현재 시각을 출력
}
}
return 0;
}
'C & C++ > C언어 예제 및 소스' 카테고리의 다른 글
삽입 정렬 (Insertion Sort) (1) | 2024.01.02 |
---|---|
선택 정렬 (Selection Sort) 알고리즘 (0) | 2024.01.01 |
버블 정렬 (Bubble Sort) 알고리즘 (1) | 2023.12.31 |
순차 정렬(Sequential Sort) 알고리즘 (1) | 2023.12.30 |
1/100 초 단위의 시계 (0) | 2023.12.28 |
년도 입력하면 달력 출력하기 (1) | 2023.12.27 |
1월 1일 요일 입력받아 달력 출력 (3) | 2023.12.26 |
년도와 일수 입력받아 날짜 계산하기 (0) | 2023.12.24 |