말그대로 메인입니다.. ¶
#include <windows.h>
#include "now_time.h"
#include "alarmsetting.h"
#include "cho.h"
void main() {
while(1) {
now_time a;
a.print_now_time();
system("cls");
cho b;
b.setwatch();
system("cls");
alarmsetting c;
c.alm_set();
}
}
시간을 표시합니다 ¶
/***********************************************************
* ////////현재시각표시//////////
*
* 아 진짜 고생 많이했다 ㅋㅋㅋㅋ
* 숫자 크기 정하느라 황금비율 찾아봤다능... ;;( 1 : 1.618 이니까 5:8 이라능...)
* 숫자 디자인 한참 고민했다능... ;;
* 숫자 띄우느라 애먹었다능... ;;
* 내 노력을 알아달라능...ㅡ,.ㅜ;;
* By 컴공의 자랑
***********************************************************/
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include "now_time.h"
using namespace std;
typedef enum { NOCURSOR, SOLIDCURSOR, NORMALCURSOR } CURSOR_TYPE;
extern int ah;
extern int am;
extern int as;
void gotoxy(int x, int y)
{
COORD Cur;
Cur.X=x;
Cur.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),Cur);
}
void setcursortype(CURSOR_TYPE c)
{
CONSOLE_CURSOR_INFO CurInfo;
switch (c) {
case NOCURSOR:
CurInfo.dwSize=1;
CurInfo.bVisible=FALSE;
break;
case SOLIDCURSOR:
CurInfo.dwSize=100;
CurInfo.bVisible=TRUE;
break;
case NORMALCURSOR:
CurInfo.dwSize=20;
CurInfo.bVisible=TRUE;
break;
}
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&CurInfo);
}
void now_time::print_now_time()
{
char arr[10][8][16]={ // digit 노가다
{{" ■■■ "},
{"■ ■"},
{"■ ■"},
{"■ ■"}, // 디자인 수정의 편의성을 위해 세로로 길게 씀.
{"■ ■"},
{"■ ■"},
{"■ ■"},
{" ■■■ "}},
{{" ■ "},
{" ■■ "},
{"■ ■ "},
{" ■ "},
{" ■ "},
{" ■ "},
{" ■ "},
{"■■■■■"}},
{{" ■■■ "},
{"■ ■"},
{"■ ■"},
{" ■"},
{" ■ "},
{" ■ "},
{" ■ "},
{"■■■■■"}},
{{" ■■■ "},
{"■ ■"},
{" ■"},
{" ■■ "},
{" ■"},
{" ■"},
{"■ ■"},
{" ■■■ "}},
{{" ■ "},
{" ■■ "},
{" ■ ■ "},
{"■ ■ "},
{"■■■■■"},
{" ■ "},
{" ■ "},
{" ■ "}},
{{"■■■■■"},
{"■ "},
{"■ "},
{" ■■■ "},
{" ■"},
{"■ ■"},
{"■ ■"},
{" ■■■ "}},
{{" ■■■ "},
{"■ "},
{"■ "},
{"■■■■ "},
{"■ ■"},
{"■ ■"},
{"■ ■"},
{" ■■■ "}},
{{"■■■■■"},
{"■ ■"},
{" ■"},
{" ■ "},
{" ■ "},
{" ■ "},
{" ■ "},
{" ■ "}},
{{" ■■■ "},
{"■ ■"},
{"■ ■"},
{" ■■■ "},
{"■ ■"},
{"■ ■"},
{"■ ■"},
{" ■■■ "}},
{{" ■■■ "},
{"■ ■"},
{"■ ■"},
{" ■■■■"},
{" ■"},
{" ■"},
{" ■"},
{" ■■■ "}
}
};
setcursortype(NOCURSOR); //커서를 숨긴다.
time_t a;
tm* b;
int h,m,s;
while(1){
char key;
if(kbhit())
{
key=getch();
if(key=='1')
break;
}
system("cls");
gotoxy(24,2); // 땡땡( : ) 입력
cout<<"□";
gotoxy(24,5);
cout<<"□";
gotoxy(52,2);
cout<<"□";
gotoxy(52,5);
cout<<"□";
time(&a); //시스템 시간 받아오기
b=localtime(&a);
h = b->tm_hour; //시
m = b->tm_min; //분
s = b->tm_sec; //초
if((ah == h)&&(am==m)&&(as==s))
{
printf("\a\a\a");
}
int h10 = h/10; //시,분,초 각각의 10, 1의 자리 구하기
int h1 = h%10;
int m10 = m/10;
int m1 = m%10;
int s10 = s/10;
int s1 = s%10;
for(int x=0;x<8;x++){ //위에서부터 한줄씩, 총 6줄 1초마다 출력
gotoxy(0,x);
cout<<arr[h10][x];
gotoxy(12,x);
cout<<arr[h1][x];
gotoxy(28,x);
cout<<arr[m10][x];
gotoxy(40,x);
cout<<arr[m1][x];
gotoxy(56,x);
cout<<arr[s10][x];
gotoxy(68,x);
cout<<arr[s1][x];
}
Sleep(1000); //요게 1초씩 대기함 ( 말그대로 sleep!!. 밀리세컨드 이기 때문에 1000이라 씀)
}
}
초시계 의 몸통~ ¶
#include "cho.h"
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <windows.h>
cho::cho()
{
chk=0;
clock2=0;
prog_exit=false;
}
cho::~cho()
{
}
void cho::setwatch()
{
std::cout<<"0 : 00 : 00";
char key=getch();
while(1)
{
if(prog_exit) break; //모드전환에 의한
if(chk==0) //0으로 멈춰 있는 상태
{
if(key=='1') // 모드 전환
{
prog_exit=true;
}
if(key=='3') //스탑워치 출발
{
chk=1;
Fulls=GetTickCount();
while(1)
{
clock=GetTickCount()-Fulls+clock2;
rs=clock/1000;
s=rs%60;
m=clock/60000;
rms=clock%1000;
ms=rms/10;
system("cls");
std::cout<<m<<" : "<<std::setw(2)<<std::setfill('0')<<s<<" : "<<std::setw(2)<<std::setfill('0')<<ms<<std::endl;
if(kbhit())
{
key=getch();
break;
}
}
}
}
if(chk==1) //스탑워치출발하고 있을때
{
if(key=='3') //일시정지
{
chk=2;
system("cls");
std::cout<<m<<" : "<<std::setw(2)<<std::setfill('0')<<s<<" : "<<std::setw(2)<<std::setfill('0')<<ms<<std::endl;
key=getch();
}
if(key=='1') // 모드 전환
{
prog_exit=true;
}
}
if(chk==2) //일시정지 상태일때
{
if(key=='2')
{
clock=0;
system("cls");
std::cout<<"0 : 00 : 00";
key=getch();
chk=0;
}
if(key=='1') // 모드 전환
{
prog_exit=true;
}
if(key=='3') // 일시정지 시점부터 다시시작
{
Fulls=GetTickCount();
while(1)
{
clock2=(GetTickCount()-Fulls)+clock;
rs=clock2/1000;
s=rs%60;
m=clock2/60000;
rms=clock2%1000;
ms=rms/10;
system("cls");
std::cout<<m<<" : "<<std::setw(2)<<std::setfill('0')<<s<<" : "<<std::setw(2)<<std::setfill('0')<<ms<<std::endl;
if(kbhit())
{
chk=1;
clock=clock2;
key=getch();
break;
}
}
}
if(key=='1') // 모드 전환
{
prog_exit=true;
}
}
}
}










