您的位置:首页 > 编程语言 > C语言/C++

用C/C++写的简易电子钟

2020-03-01 23:35 1156 查看

先来看看简易电子钟的效果图

程序所包含的函数如下表所示

函数名 输入 输出
main
NumDisplay num,x,y
SetPosition x,y
SeparateNum num NumGroup
DotDisplay x,y

整个程序都不是特别难,下面就直接上流程图和代码了(代码的Dev-C++中编译的)

#include <windows.h>
#include <stdio.h>

void NumDisplay(int num,int x,int y); //数显函数
void SetPosition(int x,int y); //设置输出位置函数
int *SeparateNum(int num); //将两位数分开的函数
void DotDisplay(int x,int y); //时钟点显示函数

static int NumGroup[2]; //设置一个静态变量存放分开的两位数

int main()
{
SYSTEMTIME sys;
while(1)
{
GetLocalTime(&sys);   //获得系统的时间
NumDisplay(sys.wHour,0,1);
DotDisplay(14,2);
NumDisplay(sys.wMinute,16,1);
DotDisplay(32,2);
NumDisplay(sys.wSecond,35,1);
Sleep(1*1000);      //延时1s
}
return 0;
}

void NumDisplay(int num,int x,int y)
{
int *num_group,i;
num_group=SeparateNum(num);
for(i=0;i<2;i++) //时、分、秒都是两位,所以两次循环分别打印
{
if(i==0) num=num_group[0];
else num=num_group[1];
switch(num)
{
case 0:
SetPosition(x+i*7,y);  printf("######");
SetPosition(x+i*7,y+1);printf("#    #");
SetPosition(x+i*7,y+2);printf("#    #");
SetPosition(x+i*7,y+3);printf("#    #");
SetPosition(x+i*7,y+4);printf("#    #");
SetPosition(x+i*7,y+5);printf("#    #");
SetPosition(x+i*7,y+6);printf("######");
break;
case 1:
SetPosition(x+i*7,y);  printf("  #   ");
SetPosition(x+i*7,y+1);printf("  #   ");
SetPosition(x+i*7,y+2);printf("  #   ");
SetPosition(x+i*7,y+3);printf("  #   ");
SetPosition(x+i*7,y+4);printf("  #   ");
SetPosition(x+i*7,y+5);printf("  #   ");
SetPosition(x+i*7,y+6);printf("  #   ");
break;
case 2:
SetPosition(x+i*7,y);  printf("######");
SetPosition(x+i*7,y+1);printf("     #");
SetPosition(x+i*7,y+2);printf("     #");
SetPosition(x+i*7,y+3);printf("######");
SetPosition(x+i*7,y+4);printf("#     ");
SetPosition(x+i*7,y+5);printf("#     ");
SetPosition(x+i*7,y+6);printf("######");
break;
case 3:
SetPosition(x+i*7,y);	 printf("######");
SetPosition(x+i*7,y+1);printf("     #");
SetPosition(x+i*7,y+2);printf("     #");
SetPosition(x+i*7,y+3);printf("######");
SetPosition(x+i*7,y+4);printf("     #");
SetPosition(x+i*7,y+5);printf("     #");
SetPosition(x+i*7,y+6);printf("######");
break;
case 4:
SetPosition(x+i*7,y);  printf("#    #");
SetPosition(x+i*7,y+1);printf("#    #");
SetPosition(x+i*7,y+2);printf("#    #");
SetPosition(x+i*7,y+3);printf("######");
SetPosition(x+i*7,y+4);printf("     #");
SetPosition(x+i*7,y+5);printf("     #");
SetPosition(x+i*7,y+6);printf("     #");
break;
case 5:
SetPosition(x+i*7,y);  printf("######");
SetPosition(x+i*7,y+1);printf("#     ");
SetPosition(x+i*7,y+2);printf("#     ");
SetPosition(x+i*7,y+3);printf("######");
SetPosition(x+i*7,y+4);printf("     #");
SetPosition(x+i*7,y+5);printf("     #");
SetPosition(x+i*7,y+6);printf("######");
break;
case 6:
SetPosition(x+i*7,y);  printf("######");
SetPosition(x+i*7,y+1);printf("#     ");
SetPosition(x+i*7,y+2);printf("#     ");
SetPosition(x+i*7,y+3);printf("######");
SetPosition(x+i*7,y+4);printf("#    #");
SetPosition(x+i*7,y+5);printf("#    #");
SetPosition(x+i*7,y+6);printf("######");
break;
case 7:
SetPosition(x+i*7,y);  printf("######");
SetPosition(x+i*7,y+1);printf("     #");
SetPosition(x+i*7,y+2);printf("     #");
SetPosition(x+i*7,y+3);printf("     #");
SetPosition(x+i*7,y+4);printf("     #");
SetPosition(x+i*7,y+5);printf("     #");
SetPosition(x+i*7,y+6);printf("     #");
break;
case 8:
SetPosition(x+i*7,y);  printf("######");
SetPosition(x+i*7,y+1);printf("#    #");
SetPosition(x+i*7,y+2);printf("#    #");
SetPosition(x+i*7,y+3);printf("######");
SetPosition(x+i*7,y+4);printf("#    #");
SetPosition(x+i*7,y+5);printf("#    #");
SetPosition(x+i*7,y+6);printf("######");
break;
case 9:
SetPosition(x+i*7,y);  printf("######");
SetPosition(x+i*7,y+1);printf("#    #");
SetPosition(x+i*7,y+2);printf("#    #");
SetPosition(x+i*7,y+3);printf("######");
SetPosition(x+i*7,y+4);printf("     #");
SetPosition(x+i*7,y+5);printf("     #");
SetPosition(x+i*7,y+6);printf("######");
break;
default:
printf("out of range!");
}
}
}

void DotDisplay(int x,int y)
{
SetPosition(x,y);printf("#");
SetPosition(x,y+3);printf("#");
}

void SetPosition(int x,int y)
{
HANDLE winHandle;//句柄
COORD pos = {x,y};
winHandle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(winHandle,pos);  //设置光标位置
}

int *SeparateNum(int num)
{
NumGroup[0]=num/10;
NumGroup[1]=num%10;
return NumGroup;
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
感觉敲键盘很帅 发布了6 篇原创文章 · 获赞 0 · 访问量 274 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: