先来看看简易电子钟的效果图
程序所包含的函数如下表所示
函数名 | 输入 | 输出 |
---|---|---|
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*