C语言实现基于控制台的电子时钟

Yvonne ·
更新时间:2024-11-13
· 115 次阅读

使用c语言制作一个控制台的电子时钟,供大家参考,具体内容如下

学习了c语言基本语法后,在学习了time.h的库文件,让我产生了想制作一款电子时钟的念头,那好就开始动手操作吧。

使用到下面这些技术:

首先必须先导入库

/***************** 实时数字时钟(和计算机系统时间关联) ************** #include <time.h>  -- 必须的时间函数头文件 time_t -- 时间类型(time.h 定义) struct tm -- 时间结构,time.h 定义如下:(依需求选用) int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; time(&rawtime); -- 获取时间,以秒计,从1970年1月一日起算,存于rawtime                 -- 获取到当前的秒数,参数为0则函数返回值即为结果 localtime(&rawtime); -- 转为当地时间,tm 时间结构 system("cls");--命令行清屏

获取坐标的代码如下

#include <windows.h> void gotoxy(int x,int y)    //光标定位函数,需要包含windos.h头文件 {     COORD coord;     coord.X=x;     coord.Y=y;     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); }

源代码:

#include <stdio.h> #include <time.h> #include <stdlib.h> #include <conio.h> #include <windows.h> void gotoxy(int x,int y)   //光标定位函数,需要包含windos.h头文件 {     COORD coord;     coord.X=x;     coord.Y=y;     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord); } void dians(){     int x=8;     gotoxy(x*3,8);     printf(" **");     gotoxy(x*3,9);     printf(" **");     gotoxy(x*3,11);     printf(" **");     gotoxy(x*3,12);     printf(" **");     gotoxy(x*6,8);     printf(" **");     gotoxy(x*6,9);     printf(" **");     gotoxy(x*6,11);     printf(" **");     gotoxy(x*6,12);     printf(" **"); } void draw_numb(int x,int shu){ //判断0-9的数据,通过gotoxy显示出来      if(shu==0){             gotoxy(x,6);             printf("*****");             gotoxy(x,7);             printf("*   *");             gotoxy(x,8);             printf("*   *");             gotoxy(x,9);             printf("*   *");             gotoxy(x,10);             printf("*   *");             gotoxy(x,11);             printf("*   *");             gotoxy(x,12);             printf("*   *");             gotoxy(x,13);             printf("*   *");             gotoxy(x,14);             printf("*****");     }     if(shu==1){             gotoxy(x,6);             printf("  *  ");             gotoxy(x,7);             printf("  *  ");             gotoxy(x,8);             printf("  *  ");             gotoxy(x,9);             printf("  *  ");             gotoxy(x,10);             printf("  *  ");             gotoxy(x,11);             printf("  *  ");             gotoxy(x,12);             printf("  *  ");             gotoxy(x,13);             printf("  *  ");             gotoxy(x,14);             printf("  *  ");     }     if(shu==2){             gotoxy(x,6);             printf("*****");             gotoxy(x,7);             printf("    *");             gotoxy(x,8);             printf("    *");             gotoxy(x,9);             printf("    *");             gotoxy(x,10);             printf("*****");             gotoxy(x,11);             printf("*    ");             gotoxy(x,12);             printf("*    ");             gotoxy(x,13);             printf("*    ");             gotoxy(x,14);             printf("*****");     }     if(shu==3){             gotoxy(x,6);             printf("*****");             gotoxy(x,7);             printf("    *");             gotoxy(x,8);             printf("    *");             gotoxy(x,9);             printf("    *");             gotoxy(x,10);             printf("*****");             gotoxy(x,11);             printf("    *");             gotoxy(x,12);             printf("    *");             gotoxy(x,13);             printf("    *");             gotoxy(x,14);             printf("*****");     }     if(shu==4){             gotoxy(x,6);             printf("*   *");             gotoxy(x,7);             printf("*   *");             gotoxy(x,8);             printf("*   *");             gotoxy(x,9);             printf("*   *");             gotoxy(x,10);             printf("*****");             gotoxy(x,11);             printf("    *");             gotoxy(x,12);             printf("    *");             gotoxy(x,13);             printf("    *");             gotoxy(x,14);             printf("    *");     }     if(shu==5){             gotoxy(x,6);             printf("*****");             gotoxy(x,7);             printf("*    ");             gotoxy(x,8);             printf("*    ");             gotoxy(x,9);             printf("*    ");             gotoxy(x,10);             printf("*****");             gotoxy(x,11);             printf("    *");             gotoxy(x,12);             printf("    *");             gotoxy(x,13);             printf("    *");             gotoxy(x,14);             printf("*****");     }     if(shu==6){             gotoxy(x,6);             printf("*****");             gotoxy(x,7);             printf("*    ");             gotoxy(x,8);             printf("*    ");             gotoxy(x,9);             printf("*    ");             gotoxy(x,10);             printf("*****");             gotoxy(x,11);             printf("*   *");             gotoxy(x,12);             printf("*   *");             gotoxy(x,13);             printf("*   *");             gotoxy(x,14);             printf("*****");     }     if(shu==7){             gotoxy(x,6);             printf("*****");             gotoxy(x,7);             printf("    *");             gotoxy(x,8);             printf("    *");             gotoxy(x,9);             printf("    *");             gotoxy(x,10);             printf("    *");             gotoxy(x,11);             printf("    *");             gotoxy(x,12);             printf("    *");             gotoxy(x,13);             printf("    *");             gotoxy(x,14);             printf("    *");     }     if(shu==8){             gotoxy(x,6);             printf("*****");             gotoxy(x,7);             printf("*   *");             gotoxy(x,8);             printf("*   *");             gotoxy(x,9);             printf("*   *");             gotoxy(x,10);             printf("*****");             gotoxy(x,11);             printf("*   *");             gotoxy(x,12);             printf("*   *");             gotoxy(x,13);             printf("*   *");             gotoxy(x,14);             printf("*****");     }     if(shu==9){             gotoxy(x,6);             printf("*****");             gotoxy(x,7);             printf("*   *");             gotoxy(x,8);             printf("*   *");             gotoxy(x,9);             printf("*   *");             gotoxy(x,10);             printf("*****");             gotoxy(x,11);             printf("    *");             gotoxy(x,12);             printf("    *");             gotoxy(x,13);             printf("    *");             gotoxy(x,14);             printf("*****");     }     } void draws(char wei,int shu){//这里定义了6个位置 分别是小时的个位十位,分钟的个位十位和秒钟的个位十位  int x=8;         if(wei=='1'){             draw_numb(x*1,shu);    //这里调用了 draw_numb函数吧x*1是横坐标(也表示第几个位置数),shu是要显示的数据调过去          }    //x*1表示第一个位置          if(wei=='2'){             draw_numb(x*2,shu);         }         if(wei=='3'){             draw_numb(x*4,shu);         }         if(wei=='4'){             draw_numb(x*5,shu);         }         if(wei=='5'){             draw_numb(x*7,shu);         }         if(wei=='6'){             draw_numb(x*8,shu);         }         } int main() {    system("color 1b");      struct tm *curtime;     //结构tm,结构指针curtime,time.h中定义     time_t t;     //时间类型变量t,time.h中定义     clock_t start;    //结构clock_t,结构变量start,time.h中定义     double th_hour,th_min,th_sec;     do     {    dians();         t=time(0);    //获取到当前的秒数,参数为0则函数返回值即为结果         curtime=localtime(&t);    //得到当前系统时间/         if((double)curtime->tm_hour<=12)  //午前的处理/         {    gotoxy(5,3);             printf("AM ");             //if((double)curtime->tm_hour<10) draws('1',0);   //十点之前在小时数前加零             draws('1',((int)curtime->tm_hour)/10);             draws('2',((int)((double)curtime->tm_hour))%10);         }         else    //午后的处理         {    gotoxy(5,3);             printf("PM ");             //if((double)curtime->tm_hour-12<10) draws('1',0);//输入0              draws('1',(int)curtime->tm_hour/10);             draws('2',((int)((double)curtime->tm_hour))%10);         }         if((double)curtime->tm_min<10) draws('3',0);         draws('3',(int)curtime->tm_min/10);         draws('4',(int)curtime->tm_min%10);         if((double)curtime->tm_sec<10) draws('5',0);         draws('5',(int)curtime->tm_sec/10);         draws('6',(int)curtime->tm_sec%10);         start=clock();         while(clock()-start<500);  //等待延时1000ms         system("cls");     }while(!kbhit());    //按任一键退出        return 0;}

最后运行截图(完美运行)

是不是满满的成就感! 好了今天就分享到这了。



电子 C语言 控制台

需要 登录 后方可回复, 如果你还没有账号请 注册新账号