#include"graphics.h"
#include"math.h"
#include"dos.h"
#define pi 3.1415926
#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 init() /*划时钟边框函数*/
{
int i,l,x1,x2,y1,y2
setbkcolor(1)
circle(300,240,200)
circle(300,240,205)
circle(300,240,5)
for(i=0i<60i++) /*划钟点上的短线*/
{
if(i%5==0)
l=15
else
l=5
x1=200*sin(i*6*pi/180)+300
y1=200*cos(i*6*pi/180)+240
x2=(200-l)*sin(i*6*pi/180)+300
y2=(200-l)*cos(i*6*pi/180)+240
line(x1,y1,x2,y2)
}
}
main()
{
int x,y,i,k=1
int gdriver=9,gmode=2
unsigned char h,m,s
int o,p,q
float n
struct time t[1]
struct date d[1]
initgraph(&gdriver,&gmode,"c:\\tc")
initgraph(&gdriver,&gmode,"c:\\tc")
for(i=0i<=6i++)
{
settextstyle(TRIPLEX_FONT,HORIZ_DIR,i) /*控制输出字符的字体,方向,大小*/
cleardevice()
settextjustify(1,1) /*在指定坐标上输出字符串*/
outtextxy(300,80,"12")
outtextxy(300,390,"6")
outtextxy(140,230,"9")
outtextxy(460,230,"3")
outtextxy(380,100,"1")
outtextxy(220,100,"11")
outtextxy(430,160,"2")
outtextxy(430,310,"4")
outtextxy(380,370,"5")
outtextxy(220,370,"7")
outtextxy(160,160,"10")
outtextxy(160,310,"8")
}
init()
setwritemode(1)/*设置画线的输出模式*/
if(k!=0)
{
getdate(d) /*获得系统日期函数*/
o=d[0].da_year
p=d[0].da_mon
q=d[0].da_day
gettime(t) /*获得系统时间函数*/
h=t[0].ti_hour
m=t[0].ti_min
s=t[0].ti_sec
}
setcolor(7)/*设置时针颜色*/
n=(float)h+(float)m/60
d(150,n,30) /*画出时针*/
setcolor(14) /*设置分针颜色*/
d(170,m,6)/*画出分针*/
setcolor(4) /*设置秒针颜色*/
d(190,s,6) /*画出秒针*/
while(!kbhit()) /*控制程序按下任意键退出*/
{
while(t[0].ti_sec==s)
gettime(t)
gotoxy(44,18) /*使光标移动到指定坐标*/
printf("\b\b\b\b\b\b\b\b\b") /*退格,使表示时间的字符串不断变化*/
sound(400) /*按给定的频率打开PC扬声器*/
delay(70) /*中断程序的执行,时间为70毫秒*/
sound(200)
delay(30)
nosound()/*按给定的频率关闭PC扬声器*/
setcolor(4)
d(190,s,6)
s=t[0].ti_sec
d(190,s,6)
if(t[0].ti_min!=m)
{
setcolor(14)
d(170,m,6)
m=t[0].ti_min
d(170,m,6)
}
if(t[0].ti_hour!=h)
{
setcolor(7)
d(150,h,30)
h=t[0].ti_hour
d(150,h,30)
sound(1000)
delay(240)
nosound()
delay(140)
sound(2000)
delay(240)
nosound()
}
if(s<10)/*用字符的形式输出时间*/
{ if(m<10)
printf("%u:0%u:0%u",h,m,s)
else
printf("%u:%u:0%u",h,m,s)
}
else
{ if(m<10)
printf("%u:0%u:%u",h,m,s)
else
printf("%u:%u:%u",h,m,s)
}
gotoxy(34,19)/*在指定坐标上输出日期*/
printf("%d年%d月%d日",o,p,q)
printf("\b\b\b\b\b\b\b\b\b")
}
getch()
closegraph()
}
#include<math.h>#include<dos.h>
#include<graphics.h>
#include<conio.h>
#include<time.h>
#define PI 3.141592653589793
int h,m,s,i,l,mon,y,d
struct time t
struct date data
draw()
{
gettime(&t)//取得时间信息到t
s=t.ti_sec//秒
h=t.ti_hour//时
m=t.ti_min//分
getdate(&data)//取得日期信息到data
y=data.da_year//年
mon=data.da_mon//月
d=data.da_day//日
//画出钟的外圆(即是轮廓)
setcolor(11)
circle(300,200,152)
setcolor(3)
circle(300,200,157)
//画出60个分钟刻度
for(i=0i<60i+=1)
{
if(i%5==0) l=140
else l=145
line(300+150*sin(i*PI/30),200-150*cos(i*PI/30),
300+l*sin(i*PI/30),200-l*cos(i*PI/30))
}
//画秒针
setcolor(19)
line(300,200,300+140*sin(s*PI/30),200-140*cos(s*PI/30))
//画分针
setcolor(3)
line(300,200,300+110*sin(m*PI/30),200-110*cos(m*PI/30))
//画时针
setcolor(11)
line(300,200,300+90*sin(((float)h+(float)m/60)*PI/6),200-90*cos(((float)h+(float)m/60)*PI/6))
//标注钟盘上的"3"、"6"、"9"、"12"
settextstyle(3,0,2)
outtextxy(430,190,"3")
outtextxy(295,320,"6")
outtextxy(160,190,"9")
outtextxy(293,60,"12")
}
main()
{
int gd=DETECT,gm
initgraph(&gd,&gm,"")//初始化屏幕模式
setbkcolor(8)
while(!kbhit()) //若有键盘输入则跳出(结束程序)
{
draw()//绘制钟
settextstyle(3,0,5)
setcolor(9)
outtextxy(60,170,"my clock")
gotoxy(35,17)
//打印出数字形式的时间(hh:mm:ss)
if(h<10) printf("0")printf("%d:",h)
if(m<10) printf("0")printf("%d:",m)
if(s<10) printf("0")printf("%d",s)
gotoxy(33,18)
printf("%d:",y)
//打印出日期(mm:dd)
if(mon<10) printf("0")printf("%d:",mon)
if(d<10) printf("0")printf("%d",d)
sound(200)//让喇叭以200HZ叫一声
delay(70)//延时0.07秒,即是声音延续0.07秒
nosound()//停止声音
sleep(1)//停止一秒
cleardevice()//清屏
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)