为了账号安全,请及时绑定邮箱和手机立即绑定

c语言——做一个简单的计时器/时钟

标签:
C

闲来无事看到桌面右下角的时钟,就想仿照做一个数字时钟,小白在此,仅供消遣,大神勿喷O(∩_∩)O~

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <time.h>

int h,m,s,e,d=0;
void updata();
void display();
void delay();
void gotoxy(int x,int y);

void gotoxy(int x,int y)       //将光标移动到坐标为(x,y)的地方
{
    CONSOLE_SCREEN_BUFFER_INFO    csbiInfo;
    HANDLE    hConsoleOut;
    hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);
    csbiInfo.dwCursorPosition.X = x;
    csbiInfo.dwCursorPosition.Y = y;
    SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);
}
/*这是功能实现的关键,必须要能在同一个位置显示才行( ⊙ o ⊙ )啊~*/

void updata()            //更新秒、分、时
{

    if (s==60)
    {
        s=0;
        m++;
    }
    if (m==60)
    {
        m=0;
        h++;
    }

    if (h==24)
    {
        h=0;
        d++;
        exit (0);
    }
}

void delay()    
 /*这里就是控制更新时间间隔为1s啦,考虑整个程序运行的时间,最后感觉sleep(9)误差小一些即延迟900ms,童鞋也可自测(*^__^*) 嘻嘻……*/
{
    int i;
    int j;

        for(i=0;i<=100;i++)
        {
            Sleep(9);
            //for(j=0;j<10000000;j++);
            switch(i/10)
            {
                case 0 : printf("\b\b\b0%d)",i);break;
                case 1 :
                case 2 :
                case 3 :
                case 4 :
                case 5 :
                case 6 :
                case 7 :
                case 8 :
                case 9 :printf("\b\b\b%d)",i);break;
                case 10:printf("\b\b\b00)");s++;break;
            }
        }
        printf("\n\t\t╠点击屏幕暂停,按任意键继续\t\t\t    ╣");
        printf("\n\t\t╚─────────────────────────╝");
}

void display()                   //显示时间
{
    gotoxy(18,3);          //成败在此一举~~~~
    if(h<10) printf("\t\t      0%d\:",h);
    else printf("\n\t\t╠\t\t%d\:",h);
    if(m<10) printf("0%d\:",m);
    else printf("%d\:",m);
    if(s<10) printf("0%d",s);
    else printf("%d",s);
    printf("(00)");

}

int main(void)
{
    printf("\t\t╔┄┄┄┄┄┄┄┄┄*****计时器*****┄┄┄┄┄┄┄┄╗");
    printf("\n\t\t╠**************************************************╣");
    printf("\n\t\t╠时间输入:(时 分 秒)                               ╣");
    printf("\n\t\t╠                                                  ╣");
    gotoxy(18,3);
    scanf("%d%d%d",&h,&m,&s);
    while(1)
    {
        display();
        delay();
        updata();
    }
    return 0;
}

okay~小小地兴奋一下下,弄外面这个框框真的很费神啊╮(╯╰)╭
那就到此结束啦,给自己立个flag,继续学习,有朝一日再来喷自己~~(^ω^)

点击查看更多内容
18人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消