使用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(x3,8);
printf(“ **”);
gotoxy(x
3,9);
printf(“ “);
gotoxy(x*3,11);
printf(“
“);
gotoxy(x3,12);
printf(“ *
“);

  1. gotoxy(x*6,8);
  2. printf(" **");
  3. gotoxy(x*6,9);
  4. printf(" **");
  5. gotoxy(x*6,11);
  6. printf(" **");
  7. gotoxy(x*6,12);
  8. 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(x1,shu); //这里调用了 draw_numb函数吧x1是横坐标(也表示第几个位置数),shu是要显示的数据调过去
} //x1表示第一个位置
if(wei==’2’){
draw_numb(x
2,shu);
}
if(wei==’3’){
draw_numb(x4,shu);
}
if(wei==’4’){
draw_numb(x
5,shu);
}
if(wei==’5’){
draw_numb(x7,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中定义

  1. double th_hour,th_min,th_sec;
  2. do
  3. { dians();
  4. t=time(0); //获取到当前的秒数,参数为0则函数返回值即为结果
  5. curtime=localtime(&t); //得到当前系统时间/
  6. if((double)curtime->tm_hour<=12) //午前的处理/
  7. { gotoxy(5,3);
  8. printf("AM ");
  9. //if((double)curtime->tm_hour<10) draws('1',0); //十点之前在小时数前加零
  10. draws('1',((int)curtime->tm_hour)/10);
  11. draws('2',((int)((double)curtime->tm_hour))%10);
  12. }
  13. else //午后的处理
  14. { gotoxy(5,3);
  15. printf("PM ");
  16. //if((double)curtime->tm_hour-12<10) draws('1',0);//输入0
  17. draws('1',(int)curtime->tm_hour/10);
  18. draws('2',((int)((double)curtime->tm_hour))%10);
  19. }
  20. if((double)curtime->tm_min<10) draws('3',0);
  21. draws('3',(int)curtime->tm_min/10);
  22. draws('4',(int)curtime->tm_min%10);
  23. if((double)curtime->tm_sec<10) draws('5',0);
  24. draws('5',(int)curtime->tm_sec/10);
  25. draws('6',(int)curtime->tm_sec%10);
  26. start=clock();
  27. while(clock()-start<500); //等待延时1000ms
  28. system("cls");
  29. }while(!kbhit()); //按任一键退出
  30. return 0;}`

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

更多相关文章

  1. ASP中格式化时间短日期补0变两位长日期的方法
  2. Qt on Android:将Qt调试信息输出到logcat中
  3. Android(安卓)JNI 调用
  4. Android系统源码阅读(10):Android(安卓)应用程序的消息处理机制
  5. 学习笔记:Android(安卓)SQLite,并实现SQLite基本CRUD操作的Demo
  6. Android下 读写文件
  7. 数据存储与ContentProvider
  8. 实例演示字符串函数
  9. 写给Android开发者的Kotlin入门

随机推荐

  1. Linux基础之无线网卡配置连接测试相关操
  2. 人邮社专访刘遄老师:不做技术的搬运工
  3. linux下搭建oracle 12c客户端
  4. linux解决端口号被占用
  5. linux中常用时间和字符串之间相互转化
  6. Linux下CPU显示信息解释
  7. Git: 合并几个commit为一个commit
  8. Ubuntu 12.04安装Bochs 2.6.2, 调试linux
  9. 如果后台的SVN服务器IP地址更改了,如何修
  10. linux中的nm命令简介