| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 916 人关注过本帖
标题:编写一个模拟时钟转动的程序
取消只看楼主 加入收藏
沙漠之泉
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:9
专家分:19
注 册:2009-9-4
收藏
 问题点数:0 回复次数:1 
编写一个模拟时钟转动的程序
要求是,界面是圆形时钟型的。时针分针还有秒针其他就装饰就凭个人的喜好了,在这里拜托各位高手了。谢谢了
搜索更多相关主题的帖子: 时钟 编写 模拟 
2009-09-04 20:35
沙漠之泉
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:9
专家分:19
注 册:2009-9-4
收藏
得分:0 
这是我从网上找的一个,大家可以看一下,挺不错的。

/*开发环境:turbo c 2.0模拟时钟转动程序代码*/
#include"graphics.h"
#include"math.h"
#include"dos.h"
#define pi 3.1415926
#define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300
#define Y(a,b,c) y=a*sin(b*c*pi/180-pi/2)+240
#define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y)

void init() /*划时钟边框函数*/
{
    int i,l,x1,x2,y1,y2;
    setbkcolor(1);
    circle(300,240,200);
    circle(300,240,205);
    circle(300,240,5);
    for(i=0;i<60;i++) /*划钟点上的短线*/
    {
        if(i%5==0)
            l=15;
        else
            l=5;
        x1=200*sin(i*6*pi/180)+300;
        y1=200*cos(i*6*pi/180)+240;
        x2=(200-l)*sin(i*6*pi/180)+300;
        y2=(200-l)*cos(i*6*pi/180)+240;
        line(x1,y1,x2,y2);
    }
}


main()
{
    int x,y,i,k=1;
    int gdriver=9,gmode=2;
    unsigned char h,m,s;
    int o,p,q;
    float n;
    struct time t[1];
    struct date d[1];
    initgraph(&gdriver,&gmode,"D:\\tc\\TC201E\\BGI"); /*设置图形驱动程序的目录路径*/
    initgraph(&gdriver,&gmode,"D:\\tc\\TC201E\\BGI");
    for(i=0;i<=6;i++)
    {
        settextstyle(TRIPLEX_FONT,HORIZ_DIR,i); /*控制输出字符的字体,方向,大小*/
        cleardevice();
        settextjustify(1,1); /*在指定坐标上输出字符串*/
        outtextxy(300,80,"12") ;
        outtextxy(300,390,"6");
        outtextxy(140,230,"9");
        outtextxy(460,230,"3");
        outtextxy(380,100,"1");
        outtextxy(220,100,"11");
        outtextxy(430,160,"2");
        outtextxy(430,310,"4");
        outtextxy(380,370,"5");
        outtextxy(220,370,"7");
        outtextxy(160,160,"10");
        outtextxy(160,310,"8");
    }

    init();
    setwritemode(1); /*设置画线的输出模式*/

    if(k!=0)
    {
        getdate(d); /*获得系统日期函数*/
        o=d[0].da_year;
        p=d[0].da_mon;
        q=d[0].da_day;
        gettime(t); /*获得系统时间函数*/
        h=t[0].ti_hour;
        m=t[0].ti_min;
        s=t[0].ti_sec;
    }

    setcolor(7); /*设置时针颜色*/
    n=(float)h+(float)m/60;
    d(150,n,30); /*画出时针*/
    setcolor(14); /*设置分针颜色*/
    d(170,m,6); /*画出分针*/
    setcolor(4); /*设置秒针颜色*/
    d(190,s,6); /*画出秒针*/
    while(!kbhit()) /*控制程序按下任意键退出*/
    {
        while(t[0].ti_sec==s)
        gettime(t);
        gotoxy(44,18); /*使光标移动到指定坐标*/
        printf("\b\b\b\b\b\b\b\b\b"); /*退格,使表示时间的字符串不断变化*/
        sound(400); /*按给定的频率打开PC扬声器*/
        delay(70); /*中断程序的执行,时间为70毫秒*/
        sound(200);
        delay(30);
        nosound(); /*按给定的频率关闭PC扬声器*/
        setcolor(4);
        d(190,s,6);
        s=t[0].ti_sec;
        d(190,s,6);
        if(t[0].ti_min!=m)
        {
            setcolor(14);
            d(170,m,6);
            m=t[0].ti_min;
            d(170,m,6);
        }
        if(t[0].ti_hour!=h)
        {

            setcolor(7);
            d(150,h,30);
            h=t[0].ti_hour;
            d(150,h,30);
            sound(1000);
            delay(240);
            nosound();
            delay(140);
            sound(2000);
            delay(240);
            nosound();
        }
        if(s<10) /*用字符的形式输出时间*/
        {
            if(m<10)
                printf("%u:0%u:0%u",h,m,s);
            else
                printf("%u:%u:0%u",h,m,s);
        }
        else
        {
            if(m<10)
                printf("%u:0%u:%u",h,m,s);
            else
                printf("%u:%u:%u",h,m,s);
        }
        gotoxy(34,19); /*在指定坐标上输出日期*/
        printf("%d年%d月%d日",o,p,q);
        printf("\b\b\b\b\b\b\b\b\b");
    }

    getch();
    closegraph();
}
  
2009-09-06 16:29
快速回复:编写一个模拟时钟转动的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016158 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved