使用C语言编写的时钟程序,TC下通过,VC需要有graphics包,这个包可以去easyx下载,下载地址为:http://www.easyx.cn/downloads/,下载下来安装就可以了。
以下是源代码
#include<stdio.h> #include <graphics.h> #include <conio.h> #include <math.h> #define PI 3.14159 #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 Draw(int hour, int minute, int second) { double a_hour, a_min, a_sec; // 时、分、秒针的弧度值 int x_hour, y_hour, x_min, y_min, x_sec, y_sec; // 时、分、秒针的末端位置 // 计算时、分、秒针的弧度值 a_sec = second * 2 * PI / 60; a_min = minute * 2 * PI / 60 + a_sec / 60; a_hour= hour * 2 * PI / 12 + a_min / 12; // 计算时、分、秒针的末端位置 x_sec = 320 + (int)(120 * sin(a_sec)); y_sec = 240 - (int)(120 * cos(a_sec)); x_min = 320 + (int)(100 * sin(a_min)); y_min = 240 - (int)(100 * cos(a_min)); x_hour= 320 + (int)(70 * sin(a_hour)); y_hour= 240 - (int)(70 * cos(a_hour)); // 画时针 setlinestyle(PS_SOLID, NULL, 10); setcolor(WHITE); line(320, 240, x_hour, y_hour); // 画分针 setlinestyle(PS_SOLID, NULL, 6); setcolor(LIGHTGRAY); line(320, 240, x_min, y_min); // 画秒针 setlinestyle(PS_SOLID, NULL, 2); setcolor(RED); line(320, 240, x_sec, y_sec); } void main() { int i,l,x1,x2,y1,y2; initgraph(640, 480); // 初始化 640 x 480 的绘图窗口 // 绘制一个简单的表盘 circle(320, 240, 2); circle(320, 240, 160); outtextxy(296, 300, "Quan");// 设置 XOR 绘图模式 for(i=0;i<60;i++) /*划钟点上的短线*/ { if(i%5==0) l=15; else l=5; x1=160*sin(i*6*PI/180)+320; y1=160*cos(i*6*PI/180)+240; x2=(160-l)*sin(i*6*PI/180)+320; y2=(160-l)*cos(i*6*PI/180)+240; line(x1,y1,x2,y2); } setwritemode(R2_XORPEN); // 设置 XOR 绘图模式 // 绘制表针 SYSTEMTIME ti; // 定义变量保存当前时间 while(!kbhit()) // 按任意键退出钟表程序 { GetLocalTime(&ti); Draw(ti.wHour, ti.wMinute, ti.wSecond); // 画表针 Sleep(1000); // 延时 1 秒 Draw(ti.wHour, ti.wMinute, ti.wSecond); // 擦表针(擦表针和 } closegraph(); }
效果图片:
(转载请注明出处:http://blog.csdn.net/waitig1992)