在graphics.h图形库函数中用数字动态显示系统时间(高分悬赏,求大神)

并增加一个时间(时分秒)值输入功能,根据新时间调整系统时间,并按照新的系统时间显示数字形式时间。

400C,我去,土豪啊


#include <stdio.h>
#include <graphics.h> 
#define PI 3.1416 
#include "math.h" 
#include "dos.h" 
main()
{
    int x0 = 320, y0 = 240, r0 = 150;
    void init_screen();
    void sec();
    init_screen(x0, y0, z0);
    sec();
    closegraph();
}
void init_sreen(int x0, int y0, int z0)
{
    int i, x, y, graphdriver, graphmode;
    char s[10];
    float alpha, a0 = 90;
    graphmode = VGAHI; graphdriver = VGA;
    initgraph(&graphdriver, &graphmode, "");
    cleardevice();
    setbkcolor(); setcolor(2);
    circle(x0, y0, r0); circle(x0, y0, r0 + 30);
    setfillstyle(SOLID_FILL, 10);
    floodfill(x0 - r0 - 10, y0, 2);
    for (i = 12; i >= 1; i--)
    {
        alpha = (a0 + 30 * (12 - i)*PI / 180);
        x = x0 + cos(alpha)*r0 - 16;
        y = y0 - sin(alpha)*r0;
        sprintf(s, "%2d", i);
        setcolor(4);
        settextstyle(0, 0, 2);
        outtextxy(x, y, z);
    }
    for (i = 60; i >= 1; i--)
    {
        alpha = (a0 + 6 * (60 - i))*PI / 180;
        x = x0 + cos(alpha)*(r0 - 20);
        y = y0 - sin(alpha)*(r0 - 20);
        setcolor(14);
        if (i % 5 == 0)

            circle(x, y, 5);
        else
            circle(x, y, 2);
        floodfill(x, y, 14);
    }
    settextstyle(0, 0, 3);
}
void sec(void)
{
    int x, y, i, j, k, xj, yj, yk, xk, xi, yi, x0 = 320, y0 = 240, r0 = 150;
    unsigned char *shijie = "\n\n\n\n\n\n\n\n\n\n\n\n";
    unsigned char *quanqiu = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
    struct time tim;
    struct date dat;
    float alphai, alphaj; alphak, a0 = 90;
    xi = x0;
    yi = y0;
    xj = x0;
    yj = y0;
    xk = x0;
    yk = y0;
    do
    {
        x = 38;
        y = 12;
        gettime(&tim);
        sprintf(shijie, "%02d:%02d:%02d", tim.ti_hour, tim.ti_min, tim.ti_sec);
        setfillstyle(SOLID_FILL, 3);
        settextstyle(2, 0, 6);
        bar(276, 190, 352, 205);
        setcolor(WHITE);
        outtextxy(278, 190, shijie);
        x = 48;
        y = 22;
        getdate(&dat);
        sprintf(quanqiu, "%04d-%02d-%02d", dat.da_year, dat.da_mon, dat.da_day);
        setfillstyle(SOLID_FILL, 5);
        bar(262, 210, 365, 225);
        setcolor(WHITE);
        settextstyle(2, 0, 6);
        outtextxy(265, 210, quanqiu);
        circle(x0, y0, 100);
        x = 190;
        y = 430;
        setcolor(YELLOW);
        settextstyle(2, 0, 8);
        outtextxy(x, y, "Designed By TKB!");
        setlinestyle(0, 0, 3);
        k = tim.ti_hour;
        j = tim.ti_min;
        i = tim.ti_sec;
        alphak = (a0 + 30 * (12 - k) - j * 5 / 60 * 6)*PI / 180;
        alphaj = (a0 - 6 * j)*PI / 180;
        alphai = (a0 + 6 * (60 - i))*PI / 180;
        x = x0 + cos(alphai)*(r0 - 25);
        y = y0 - sin(alphai)*(r0 - 25);
        setcolor(BLACK);
        line(x0, y0, xi, yi);
        setcolor(LIGHTRED);
        line(x0, y0, x, y);
        xi = x;
        yi = y;
        alphaj = (a0 - 6 * j)*PI / 180;
        x = x0 + cos(alphaj)*(r0 - 47);
        y = y0 - sin(alphaj)*(r0 - 47);
        setcolor(BLACK);
        line(x0, y0, xj, yj);
        setcolor(LIGHTRED);
        line(x0, y0, x, y);
        xj = x;
        yj = y;
        alphak = (a0 + 30 * (12 - k) - j * 5 / 60 * 6)*PI / 180;
        x = x0 + cos(alphak)*(r0 - 60);
        y = y0 - sin(alphak)*(r0 = 60);
        setcolor(BLACK);
        line(x0, y0, xk, ky);
        setcolor(LIGHTRED);
        line(x0, y0, x, y);
        xk = x;
        yk = y;
        delay(10000);
    } while (!kbhit());
}

outtext不就可以显示么

开个窗口,显示吧
至于时间这东西,读出来,显示就可了
TC 用 gettime.settime 函数读出,写入时间
动态改变,可以用定时器中断处理,也可用循环刷新