使用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);  //等待延时1000mssystem("cls");}while(!kbhit());               //按任一键退出   return 0;}

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

**

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

**

[C语言] 制作一个控制台的电子时钟相关推荐

  1. Qt制作一个简单的电子时钟

    电子时钟 新建桌面应用程序,项目名LCDClock,类名Clock,基类QDialog,取消产生界面文件 当前项目添加C++类DigitalClock,基类QLCDNumber 编辑digitalcl ...

  2. html手抄报怎么制作软件,如何用word制作一个精美的电子板报

    使用word完全可以制作出一个精美的电子板报.何使用microsoft office word制作电子板报,喜欢的朋友可以过来学习一下 工具:板报素材.板报文字.word软件[此处使用MS offic ...

  3. html插入flash时钟,教你利用Flash制作一个会走动的时钟(时针,分针,秒针)

    其实制作时钟的方法很多,在此小编利用Flash也制作一个时钟,就当是学习CS3语言的编程技巧吧.下面是具体的实现步骤. 工具/原料 Adobe Flash CS3 方法/步骤 1.新建一Flash文档 ...

  4. ESP32制作一个拟辉光管时钟

    拟辉光管时钟 60 多年过去了,尽管辉光管已经停产,有很多工程师仍然对它情有独钟.我用 8 块液晶显示屏制作了一个拟辉光管时钟,感受复古元素的美感,表达对过去经典的敬意. 项目起源 看过<命运石 ...

  5. 用c语言制作一个简单的答题系统

    首先制作一个答题系统需要有一个题库,其次要有完整的出题系统,然后要能够进行答题和判断答案对错,最后就是统计答案正确率了. 实现创建一个题库并不难,仅需要使用数组保存题目与标准答案就行了,使用strcp ...

  6. C语言 - 制作一个可以容纳一千人的本地通讯录

    本章目录 前言 一.菜单制作 二.创建通讯录 1.创建人员信息结构体 2.创建完整通讯录结构体 3.初始化通讯录 4.存放数据 5.判断空间容量 三.各功能的实现 1.增加人员信息的功能 2.按名字查 ...

  7. 使用51单片机和DS1302时钟芯片做一个简易的电子时钟

    简易的电子时钟实验 一.前言 二.DS1302模块介绍 三.驱动DS1302的代码 3.1 初始化DS1302时钟芯片 3.2 读取DS1302时钟芯片的时间 3.3 设置DS1302时钟芯片的时间 ...

  8. python数码时钟代码_用python写一个程序,以电子时钟格式打印时间,每隔一秒刷新一次...

    1. 写一个程序,以电子时钟格式打印时间: 时间格式为: HH:MM:SS 时间每隔一秒刷新一次 代码如下 import time def showtime(): s = time.localtime ...

  9. c语言电子万年历大作业,C语言实现一个简单的电子万年历

    最近帮朋友做一些C语言的练习题,期间遇到了个比较有意思的题目,意在考察模块化程序设计,大致要求如下: 电子万年历: 1.编写函数int isleapyear(int year);判某年是否为闰年,如该 ...

最新文章

  1. java httpclient 302_httpclient如何处理302重定向
  2. access后台链接mysql_ASP.NET连接 Access数据库的几种方法
  3. POJ 2516 -- Minimum Cost (最小费用最大流, 必须分开建图)
  4. 调试 高通_高通平台调整通话音量
  5. js swipe 图片滑动控件实现 任意尺寸适用任意屏幕
  6. 深度学习2.0-39.RNN训练难题-梯度弥散与梯度爆炸
  7. 入驻蚂蚁金服财富号的基金公司,学“乖”了
  8. linux yum jemalloc,Redis安装报错error:jemalloc/jemalloc.h:No such file or directory解决方法
  9. NET Framework安装不成功解决办法
  10. sketchup生成面域插件_什么插件这么神奇,SketchUp一秒搞定99%异形建模
  11. http://blog.csdn.net/pizi0475/article/details/48286579 -------------(Collada 快速入门)
  12. ZYNQ OV7725和OV5640摄像头速度测试
  13. 看懂卫星遥感数据RPC文件
  14. TypeScript-基础类型学习
  15. 语雀实现收藏网页的功能(借助印象笔记)
  16. 【R-CNN目标检测系列】三、IoU与非极大抑制
  17. 模拟贷款,设计贷款类Loan,Loan类包括贷款年利率(annualInterestRate),贷款年限(numberOfYears)、贷款额(loanAmount)......
  18. Unity之Animation
  19. vim vimdiff diff 使用及命令
  20. Android 之路20---Java基础14

热门文章

  1. 基金 、社保和QFII等机构的重仓股排名评测
  2. R语言 逻辑回归模型与混淆矩阵
  3. 剑指offer_递归与循环---跳台阶
  4. matlab极性电容叫什么,有极性电容和无极性电容原理区别
  5. ZBar源码分析(十一)
  6. 《狂人日记》 词语解释 | 经典语录
  7. OpenCV学习笔记(六)—— OpenCV for Android打开相机
  8. mysql重新设置主键生成策略为auto_increment时报错:resulting in dup
  9. 【整、借、学、变】四字谈起
  10. 【深度学习】3-从模型到学习的思路整理