百韵网 >>  正文

用C语言做数字时钟每走一秒响一次,求大神告诉源代码 要做一个用C语言编程的数字钟有闹钟和计时功能,求大神讲解一下...

来源:www.baiyundou.net   日期:较早时间

“响一次”需要牵涉到图形编程中的音乐播放问题,需要自己下载图形编程相关库文件,具体实现请自己在TODO里添加播放音乐的代码

数字时钟的实现很简单,运用time.h相关函数即可

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
time_t oldt=-1;
struct tm *p;
bool Printdate()
{
time_t t=time(NULL);
if(t!=oldt)
{
oldt=t;
p=localtime(&t);
system("cls");
printf("%d/%d/%d 周",1900+p->tm_year,1+p->tm_mon,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec); 
switch(p->tm_wday)
{
       case 1:printf("一");break;
       case 2:printf("二");break;
       case 3:printf("三");break;
       case 4:printf("四");break;
       case 5:printf("五");break;
       case 6:printf("六");break;
       case 7:printf("日");break;
 }  
printf(" %d:%02d:%02d     ", p->tm_hour, p->tm_min,  p->tm_sec);
return 1;
}
return 0;
}
main()
{
while(1)
    if(Printdate())
    {
    /*************TODO*************/
    /**For example: printf("\a");**/
    }
return 0;
}


要做一个用C语言编程的数字钟有闹钟和计时功能,求大神讲解一下它的工作原理~

一楼的说法有误,C、C++都不支持多线程,
我之前写过C#的,在csdn 搜 solief ,
C最好的方式像一楼说的,获取时间和设置睡眠 可以实现闹钟功能,不过不能暂停或者取消
如果要实现计时,开始和结束获取时间做差即可,与睡眠有冲突

或者你采用一直获取系统时间,再和目标时间比较的方法,就不会有上面的缺点,不过效率差,系统消耗大

C入门不错,但如果真想发展,学 python 、C++、C# 这类的吧

1、用sleep延时刷新并获取系统时间来显示。
2、例程:
#include #include #include #define PI 3.1415926 //屏幕中心的坐标(640X480模式下)#define mid_x 320 #define mid_y 240 int main() { int graphdriver=DETECT,graphmode; int end_x,end_y; struct time curtime; float th_hour,th_min,th_sec; initgraph(&graphdriver,&graphmode,"C:\\TC2"); //初始化VGA屏幕模式setbkcolor(BLACK); //使用黑色的背景色while(!kbhit(0)) //若有键盘输入,则跳出,即是结束程序{ setcolor(GREEN); //把画笔设为绿色circle(mid_x,mid_y,180); //钟的外圆circle(mid_x,mid_y,150); //钟的内圆circle(mid_x,mid_y,1); //画出钟的圆心gettime(&curtime); //取得系统当前时间th_sec=(float)curtime.ti_sec*0.1047197551; //把秒针的角度化为弧度,为以后绘制时方便,下同th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0; //分针的弧度th_hour=(float)curtime.ti_hour*0.5235987755+th_min/12.0; //时度的弧度,注意整时是12等分的,所时乘的是3.14/180*5//计算出时针的尾的坐标(时针长70)end_x=mid_x+70*sin(th_hour); end_y=mid_y-70*cos(th_hour); setcolor(RED); line(mid_x,mid_y,end_x,end_y); //用红色线画出时针//计算出分针坐标(分针长110)end_x=mid_x+110*sin(th_min); end_y=mid_y-110*cos(th_min); setcolor(RED); line(mid_x,mid_y,end_x,end_y); //用红色画出分针end_x=mid_x+140*sin(th_sec); end_y=mid_y-140*cos(th_sec); setcolor(RED); line(mid_x,mid_y,end_x,end_y); //同上,画出秒针,长为140//画出钟盘上的刻度,刻度长20line(140,240,160,240); //9点对应的大刻度line(320,60,320,80); //12点对应的大刻度line(500,240,480,240); //3点的刻度line(320,420,320,400); //6点的刻度line(410,395.7,400,378.4); //5点line(475.7,330,458.4,320); //4点line(475.7,150,458.4,160); //2点line(410,84.3,400,101.6); //1点line(230,84.3,240,101.6); //11点line(164.3,150,181.6,160); //10点line(164.3,330,181.6,320); //8点line(230,395.7,240,378.4); //7点sleep(BLUE); //这里应该是打错,停止一秒,应为sleep(1000)cleardevice(); //清除屏幕上的显示} closegraph(); //关闭VGA屏幕,即返回文本方式return 0; }

相关要点总结:

15584366592:用C语言做数字时钟每走一秒响一次,求大神告诉源代码
郑廖答:数字时钟的实现很简单,运用time.h相关函数即可 include<stdio.h>#include<stdlib.h>#includetime_t oldt=-1;struct tm *p;bool Printdate(){time_t t=time(NULL);if(t!=oldt){oldt=t;p=localtime(&t);system...

15584366592:用C语言编写AT89C51单片机程序,设计一个智能数字钟。
郑廖答:uchar table1[]={31,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年 uchar table2[]={31,31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年 void delay(uint); //延时函数 void timer0(); //...

15584366592:怎么用C语言编程数字时钟
郑廖答:1、以下例程实现时钟的实时显示基本要求: 1) 自行设计界面,模拟表盘式时钟。要求界面美观,清晰。2)数字同步显示时间信息。2、例程:include<graphics.h> #include<math.h> #include<dos.h> #define PI 3.1415926 //...

15584366592:用C语言 编写一个 整点声音报时时钟:
郑廖答:(1)用数字逻辑集成块实现;(2)时间以24小时为一个周期,显示时、分、秒;(3)计时过程具有报时功能,当时间到达整点前5秒进行蜂鸣报时;(4)为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。c51单片机 ...

15584366592:c语言怎么样编写一个时钟程序
郑廖答:c语言时钟程序代码如下:include<windows.h> include<math.h> define ID_TIMER 1//计时器ID define TWOPI (2*3.14159)LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,...

15584366592:C语言 单片机 数字钟
郑廖答:void time0() interrupt 1 {num++;TH0=(65536-50000)/256;TL0=(65536-50000)%256;} void display(){if(num==20){num=0;sec++;if(sec==60){sec=0;min++;if(min==60){min=0;hour++;if(hour==24){hour...

15584366592:89c51单面机c语言时钟控制器编程
郑廖答:89c51单面机c语言时钟控制器编程、、、就是在数码管上每隔一秒钟显示该秒对应的数字、、当显示第60秒时、、蜂鸣器响一下、、、依次循环就是一个简易的分秒计时器用c语言怎么编程啊那... 89c51单面机c语言时钟控制器编程、、、就是...

15584366592:怎么使用C语言制作一个时钟?
郑廖答:define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y) /*宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换*/ / 那么就是当执行d(200,12,6)时 相当于写了3句话 首先X(a...

15584366592:...30秒内,每一秒响一下,30秒时间到了,蜂鸣器长鸣 求程序
郑廖答:Beep = 1;} void main(){ TMOD = 0x01;TH0 = 0x3C;TL0 = 0xB0;//50ms中断一次 EA = 1;ET0 = 1;TR0 = 1;while(1){ if(flag30s)Beep = 0;//30s到蜂鸣器一直响 if(flag1s)//1s到,蜂鸣器响一下 ...

15584366592:用c语言怎么制作一个数字倒计时
郑廖答:要在C语言中制作一个数字倒计时,你可以使用循环和延迟函数来实现。下面是一个简单的示例代码,可以帮助你开始:include <stdio.h> include <unistd.h> int main() { int seconds = 10; // 设置倒计时的秒数 while...

(编辑:本站网友)
相关推荐
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图
@ 百韵网