C语言 用devc++编写一个模拟时钟,最简单那种就行,但要能在devc++上运行。

作者&投稿:汝力 (若有异议请与网页底部的电邮联系)
C语言 用Devc++编一个图形时钟,要求能在devc++上运行的,简简单单的就可以了。~


//图形库是EGE,下载后配置一下#include #include "graphics.h"#include #include #include #define x0 210.0#define y0 210.0#define r 200.0POINT pt[60],pt_s[60],pt_m[60],pt_h[60],pt1[60];using namespace std;int main(){initgraph(420,420);setfillcolor(0xffccff);setcolor(0xffccff);fillellipse(x0,y0,10,10);int s=45,m,h,n=0;while(n=60){s=0;}}for(int i=0;i12){n=st.wHour-12;}else{n=st.wHour;}m=(n*60+st.wMinute)/12;line(x0,y0,pt_h[m].x,pt_h[m].y);Sleep(1000);setcolor(0x0);line(x0,y0,xs,ys);fillellipse(x0,y0,10,10);}closegraph();return 0;}

#include
#include
using namespace std;
class Clock{
public:
Clock(short h=0,short m=0,short s=0):h(h),m(m),s(s){
}
void displayTime();
private:
short h;
short m;
short s;
};void Clock::displayTime(){
while(true){
cout<<h<<':'<<m<<':'<<s<<" ";
Sleep(1000);//一秒更新一次
cout<<'';
if(!(s=++s%60))
if(!(m=++m%60))
h=++h%24;
}
} int main()
{
Clock A(12,20,30);//初始时间
A.displayTime();//更新函数
return 0;
}
/*
12:20:3

#include<iostream>
#include<windows.h>
using namespace std;
class Clock{
    public:
        Clock(short h=0,short m=0,short s=0):h(h),m(m),s(s){
        }
        void displayTime();
    private:
        short h;
        short m;
        short s;
};void Clock::displayTime(){
    while(true){
        cout<<h<<':'<<m<<':'<<s<<"   ";
        Sleep(1000);//一秒更新一次 
        cout<<'';
        if(!(s=++s%60))
            if(!(m=++m%60))
                h=++h%24;
    }
} int main()
{
    Clock A(12,20,30);//初始时间
    A.displayTime();//更新函数
    return 0;
}
/*
12:20:30 
*/


EGE代码:
#include <ege.h>
#include <time.h>
#include <math.h>
#include <stdio.h>

#define for if (0); else for

ege::ege_point getpos(ege::ege_point center, float rad, float r)
{
ege::ege_point pos;
pos.x = sin(rad) * r + center.x;
pos.y = -cos(rad) * r + center.y;
return pos;
}

void draw()
{
float pi2 = ege::PI * 2;
ege::ege_point center;
center.x = 200, center.y = 200;
float r = 150;
ege::settextjustify(ege::CENTER_TEXT, ege::CENTER_TEXT);
ege::setfont(24, 0, "Courier New");
ege::setbkmode(TRANSPARENT);

ege::ege_enable_aa(true);
ege::setfillcolor(EGEARGB(0xff, 0x40, 0x40, 0x40));
ege::setcolor(EGEARGB(0xff, 0x80, 0x00, 0xf0));
ege::ege_fillellipse(center.x - r * 1.2f, center.y - r * 1.2f,
r * 1.2f * 2.0f, r * 1.2f * 2.0f);

ege::setcolor(ege::WHITE);
for (int num = 1; num <= 12; ++num)
{
char str[8];
ege::ege_point p = getpos(center, float(num * pi2 / 12), r);
sprintf(str, "%d", num);
ege::outtextxy((int)p.x, (int)p.y, str);
}
time_t t_now;
time(&t_now);
tm* t = localtime(&t_now);
ege::setcolor(EGEARGB(0xff, 0x0, 0x0, 0xff));
ege::setlinewidth(10.0f);
{
float h = float(t->tm_hour + t->tm_min / 60.0);
char str[8];
ege::ege_point p = getpos(center, float(h * pi2 / 12), r * 0.5f);
ege::ege_line(p.x, p.y, center.x, center.y);
}
ege::setcolor(EGEARGB(0xff, 0xff, 0x0, 0xff));
ege::setlinewidth(5.0f);
{
float m = float(t->tm_min + t->tm_sec / 60.0);
char str[8];
ege::ege_point p = getpos(center, float(m * pi2 / 60), r * 0.9f);
ege::ege_line(p.x, p.y, center.x, center.y);
}
ege::setcolor(EGEARGB(0xff, 0xff, 0xff, 0));
ege::setfillcolor(EGEARGB(0xff, 0xff, 0xff, 0));
ege::setlinewidth(1.0f);
{
float s = float(t->tm_sec);
char str[8];
ege::ege_point p = getpos(center, float(s * pi2 / 60), r * 1.0f);
ege::ege_line(p.x, p.y, center.x, center.y);
ege::ege_fillellipse(center.x - r * 0.05f, center.y - r * 0.05f,
r * 0.1f, r * 0.1f);
}
{
char str[32];
sprintf(str, "%d/%02d/%02d %2d:%02d:%02d",
t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
t->tm_hour, t->tm_min, t->tm_sec);
ege::setcolor(EGERGB(0xff, 0xff, 0));
ege::outtextxy((int)center.x, (int)(center.y + r * 1.4f), str);
}
}

void mainloop()
{

for ( ; ege::is_run(); ege::delay_fps(60) )
{
ege::cleardevice();
draw();
}
}

int main()
{
ege::setinitmode(ege::INIT_ANIMATION);
ege::initgraph(400, 480);
ege::randomize();
mainloop();
ege::closegraph();
return 0;
}