就像家裡看的時鐘那樣有時針秒針~
會用到TURBO C的繪圖功能
拜託各位幫忙一下謝謝
2006-06-24 10:31:04 · 2 個解答 · 發問者 阿吉 1 in 電腦與網際網路 ➔ 程式設計
那種圓形的時鐘~
有1-12然後時針秒針分針~
2006-06-24 15:48:21 · update #1
graphics.h
有錯誤耶
我之前也有找到類似的
也是這個原因
能否告知如何處裡呢謝
2006-06-27 20:39:26 · update #2
利用chang-zai的程式在改一下
因為要畫圖所以加上graphics.h
#include
#include
#include
#include
#include
#include
#include
int ghdriver,ghmode;
void screen_init(){
clrscr();
ghdriver = DETECT;
initgraph(&ghdriver,&ghmode,"c:\\tc\\bgi");
settextstyle(0,0,0);
settextjustify(1,1);
}
int main(void)
{
time_t timep;
struct tm *p;
float H;
char *T;
screen_init();
do{
time(&timep);
p=localtime(&timep);
sprintf(T,"%d:%d:%d",p-> tm_hour,p-> tm_min,p-> tm_sec);
outtextxy(200,220,T);
//以上兩行..顯示於時鐘中間的時間 hh:mm:ss
outtextxy(200+92*sin(3.14),200+92*cos(3.14),"12"); //時鐘上的12
outtextxy(200+92*sin(3.14/2),200+92*cos(3.14/2),"03"); // 時鐘上的03
outtextxy(200+92*sin(0),200+92*cos(0),"06");//時鐘上的06
outtextxy(200+92*sin(3*3.14/2),200+92*cos(3*3.14/2),"09");//時鐘上的09
circle(200,200,100);
H = (p->tm_hour%12) *30 + ((p->tm_min * 60 + p->tm_sec)/3600.0)*30;
//H : 用來計算時針的位置
line(200,200,200+90*sin((180-p->tm_sec*6)*3.14/180),200+80*cos((180-p->tm_sec*6)*3.14/180));
//秒針
line(200,200,200+50*sin((180-H)*3.14/180),200+50*cos((180-H)*3.14/180));
//時針
line(200,200,200+80*sin((180-p->tm_min*6)*3.14/180),200+80*cos((180-p->tm_min*6)*3.14/180));
//分針
delay(1000);//delay 1 sec
clrscr();
}while(!kbhit());
closegraph();
return 0;
}
2006-06-27 13:41:48 補充:
若是要補齊其他的數字(我只顯示4個)請用下列指令做更改就行了outtextxy(200+92*sin(0),200+92*cos(0),"06");其中sin() 及 cos()裡的放的就是你數字想放的位置另外tc的 0(0°)在下面,π(180°)在上面,2/π(90°)在右邊如想放數字 01則:outtextxy(200+92*sin(5*3.14/6),200+92*cos(5*3.14/6),"01" );//因為01正常是在時鐘150°的位置
2006-06-28 16:41:27 補充:
你先試著到C:\TC\LIB>下KEY:tlib cs.lib+graphics.lib然後進入TC 按alt+O 選linker → libraries裡的graphics library打'x' 試試看
2006-06-27 09:23:28 · answer #1 · answered by ? 2 · 0⤊ 0⤋
這個可以嗎??試看看
#include
#include
#include
int main(void)
{
time_t timep;
struct tm *p;
while(1)
{
time(&timep);
p=localtime(&timep);
printf("%d:%d:%d:\n",p-> tm_hour,p-> tm_min,p-> tm_sec);
system("cls");
}
system("pasuse");
return 0;
}
2006-06-24 11:22:17 · answer #2 · answered by Chang-zai 2 · 0⤊ 0⤋