跪求C语言编写的时钟(能修改时钟时间,且时钟是指针式的 只编写修改时间的部分也行)

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 06:27:50
跪求C语言编写的时钟(能修改时钟时间,且时钟是指针式的 只编写修改时间的部分也行)

跪求C语言编写的时钟(能修改时钟时间,且时钟是指针式的 只编写修改时间的部分也行)
跪求C语言编写的时钟(能修改时钟时间,且时钟是指针式的 只编写修改时间的部分也行)

跪求C语言编写的时钟(能修改时钟时间,且时钟是指针式的 只编写修改时间的部分也行)
////////////////////////////////////////////

// 程序名称:钟表模拟程序(表针形式)

// 编译环境:Visual C++ 6.0,EasyX 2011惊蛰版

// 程序编写:BestAns <BestAns@qq.com>

// 最后更新:2010-10-30

//

#include
 
<graphics.h>

#include
 
<conio.h>

#include
 
<math.h>


#define

PI

3.1415926536


void
 
DrawHand
(
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 
=
 
int
(
120
 
*
 
sin
(
a_sec
));

y_sec 
=
 
int
(
120
 
*
 
cos
(
a_sec
));


x_min 
=
 
int
(
100
 
*
 
sin
(
a_min
));

y_min 
=
 
int
(
100
 
*
 
cos
(
a_min
));


x_hour
=
 
int
(
70
 
*
 
sin
(
a_hour
));

y_hour
=
 
int
(
70
 
*
 
cos
(
a_hour
));




// 画时针


setlinestyle
(
PS_SOLID
,
 NULL
,
 
10
);


setcolor
(
WHITE
);


line
(
320
 
+
 x_hour
,
 
240
 
-
 y_hour
,
 
320
 
-
 x_hour 
/
 
7
,
 
240
 
+
 y_hour 
/
 
7
);




// 画分针


setlinestyle
(
PS_SOLID
,
 NULL
,
 
6
);


setcolor
(
LIGHTGRAY
);


line
(
320
 
+
 x_min
,
 
240
 
-
 y_min
,
 
320
 
-
 x_min 
/
 
5
,
 
240
 
+
 y_min 
/
 
5
);




// 画秒针


setlinestyle
(
PS_SOLID
,
 NULL
,
 
2
);


setcolor
(
RED
);


line
(
320
 
+
 x_sec
,
 
240
 
-
 y_sec
,
 
320
 
-
 x_sec 
/
 
3
,
 
240
 
+
 y_sec 
/
 
3
);

}


void
 
DrawDial
()

{


// 绘制一个简单的表盘


circle
(
320
,
 
240
,
 
2
);


circle
(
320
,
 
240
,
 
60
);


circle
(
320
,
 
240
,
 
160
);


outtextxy
(
296
,
 
310
,
 
"BestAns"
);




// 绘制刻度


int
 x
,
 y
;


for
 
(
int
 i
=
0
;
 i
<
60
;
 i
++)


{




=
 
320
 
+
 
int
(
145
 
*
 
sin
(
PI 
*
 
2
 
*
 i 
/
 
60
));




=
 
240
 
+
 
int
(
145
 
*
 
cos
(
PI 
*
 
2
 
*
 i 
/
 
60
));






if
 
(

%
 
15
 
==
 
0
)




bar
(

-
 
5
,
 y 
-
 
5
,
 x 
+
 
5
,
 y 
+
 
5
);



else
 
if
 
(

%
 
5
 
==
 
0
)




circle
(
x
,
 y
,
 
3
);



else




putpixel
(
x
,
 y
,
 WHITE
);


}

}


void
 
main
()

{


initgraph
(
640
,
 
480
);


// 初始化 640 x 480 的绘图窗口




DrawDial
();





// 绘制表盘




setwritemode
(
R2_XORPEN
);

// 设置 XOR 绘图模式




// 绘制表针


SYSTEMTIME
 
ti
;




// 定义变量保存当前时间


while
(!
kbhit
())




// 按任意键退出钟表程序


{



GetLocalTime
(&
ti
);


// 获取当前时间



DrawHand
(
ti
.
wHour
,
 ti
.
wMinute
,
 ti
.
wSecond
);

// 画表针



Sleep
(
1000
);



// 延时 1 秒



DrawHand
(
ti
.
wHour
,
 ti
.
wMinute
,
 ti
.
wSecond
);

// 擦表针(擦表针和画表针的过程是一样的)


}




closegraph
();




// 关闭绘图窗口

}

 其了就是用了easyx