怎样用vc代码设置一个程序的闹钟提醒功能

怎样用vc代码设置一个程序的闹钟提醒功能,第1张

利用Visual C++设计一个闹钟程序,定时事件提醒等。本题目涉及使用设备上下文进行绘图和定时器的应用。

功能要求:

1.表盘界面的显示,显示当前时间。

2.设置交互界面,用以设置时间信息和选择提示事件。

3.用户可以输入特定时间和选择播放声音或闪动指示灯来提醒用户。

4.具有秒表功能。

设计提示:

1.应用程序框架设计。

2.程序菜单设计。

3.程序对话框设计。

4.表盘绘图程序设计。

5.事件定时提醒功能设计。

#include<graphics.h>

#include<conio.h>

#include<math.h>

#include<dos.h>

#include<stdio.h>

void main()

{

int gd=DETECT,gm

int x=320,y=240,r=200,i,h,m,s,thetamin,thetasec

struct time t

char n[12][3]={"3","2","1","12","11","10","9","8","7","6","5","4"}

initgraph(&gd,&gm,"C:\Win-TC\bgi")//图形驱动器路径,根据自己的系统更换!

circle(x,y,210)

setcolor(4)

settextstyle(4,0,5)

for(i=0i<12i++)

{

if(i!=3)

outtextxy(x+(r-14)*cos(M_PI/6*i)-10,y-(r-14)*sin(M_PI/6*i)-26,n[i])

else

outtextxy(x+(r-14)*cos(M_PI/6*i)-20,y-(r-14)*sin(M_PI/6*i)-26,n[i])

}

gettime(&t)

printf("The current time is: %2d:%02d:%02d.%02d\n",t.ti_hour, t.ti_min,

t.ti_sec, t.ti_hund)

while(!kbhit())

{

setcolor(5)

setfillstyle(1,5)

circle(x,y,10)

floodfill(x,y,5)

gettime(&t)

if(t.ti_min!=m)

{

setcolor(0)

line(x,y,x+(r-60)*cos(thetamin*(M_PI/180)),y-(r-60)*sin(thetamin*(M_PI/180

)))

circle(x+(r-80)*cos(thetamin*(M_PI/180)),y-(r-80)*sin(thetamin*(M_PI/180))

,10)

line(x,y,x+(r-110)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-110)*sin(M_PI/6*h

-((m/2)*(M_PI/180))))

circle(x+(r-130)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-130)*sin(M_PI/6*h-(

(m/2)*(M_PI/180))),10)

}

if(t.ti_hour>12)

t.ti_hour=t.ti_hour-12

if(t.ti_hour<4)

h=abs(t.ti_hour-3)

else

h=15-t.ti_hour

m=t.ti_min

if(t.ti_min<=15)

thetamin=(15-t.ti_min)*6

else

thetamin=450-t.ti_min*6

if(t.ti_sec<=15)

thetasec=(15-t.ti_sec)*6

else

thetasec=450-t.ti_sec*6

setcolor(4)

line(x,y,x+(r-110)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-110)*sin(M_PI/6*h

-((m/2)*(M_PI/180))))

circle(x+(r-130)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-130)*sin(M_PI/6*h-(

(m/2)*(M_PI/180))),10)

line(x,y,x+(r-60)*cos(thetamin*(M_PI/180)),y-(r-60)*sin(thetamin*(M_PI/180

)))

circle(x+(r-80)*cos(thetamin*(M_PI/180)),y-(r-80)*sin(thetamin*(M_PI/180))

,10)

setcolor(15)

line(x,y,x+(r-70)*cos(thetasec*(M_PI/180)),y-(r-70)*sin(thetasec*(M_PI/180

)))

delay(1000)

setcolor(0)

line(x,y,x+(r-70)*cos(thetasec*(M_PI/180)),y-(r-70)*sin(thetasec*(M_PI/180

)))

}

}

//我已通过Turbo C++3.0编译,给分!

用C语言实现的闹钟程序

#include

#include

#include

#include

#include

void

main()

{

int

gd=DETECT,gm

int

x=320,y=240,r=200,i,h,m,s,thetamin,thetasec

struct

time

t

char

n[12][3]={"3","2","1","12","11","10","9","8","7","6","5","4"}

initgraph(&gd,&gm,"g:\\tc\\bgi")//图形驱动器路径,根据自己的系统更换。

circle(x,y,210)

setcolor(4)

settextstyle(4,0,5)

for(i=0i<12i++)

{

if(i!=3)

outtextxy(x+(r-14)*cos(M_PI/6*i)-10,y-(r-14)*sin(M_PI/6*i)-26,n[i])

else

outtextxy(x+(r-14)*cos(M_PI/6*i)-20,y-(r-14)*sin(M_PI/6*i)-26,n[i])

}

gettime(&t)

printf("The

current

time

is:

%2d:%02d:%02d.%02d\n",t.ti_hour,

t.ti_min,

t.ti_sec,

t.ti_hund)

while(!kbhit())

{

setcolor(5)

setfillstyle(1,5)

circle(x,y,10)

floodfill(x,y,5)

gettime(&t)

if(t.ti_min!=m)

{

setcolor(0)

line(x,y,x+(r-60)*cos(thetamin*(M_PI/180)),y-(r-60)*sin(thetamin*(M_PI/180

)))

circle(x+(r-80)*cos(thetamin*(M_PI/180)),y-(r-80)*sin(thetamin*(M_PI/180))

,10)

line(x,y,x+(r-110)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-110)*sin(M_PI/6*h

-((m/2)*(M_PI/180))))

circle(x+(r-130)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-130)*sin(M_PI/6*h-(

(m/2)*(M_PI/180))),10)

}

if(t.ti_hour>12)

t.ti_hour=t.ti_hour-12

if(t.ti_hour<4)

h=abs(t.ti_hour-3)

else&n

bsp

h=15-t.ti_hour

m=t.ti_min

if(t.ti_min<=15)

thetamin=(15-t.ti_min)*6

else

thetamin=450-t.ti_min*6

if(t.ti_sec<=15)

thetasec=(15-t.ti_sec)*6

else

thetasec=450-t.ti_sec*6

setcolor(4)

line(x,y,x+(r-110)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-110)*sin(M_PI/6*h

-((m/2)*(M_PI/180))))

circle(x+(r-130)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-130)*sin(M_PI/6*h-(

(m/2)*(M_PI/180))),10)

line(x,y,x+(r-60)*cos(thetamin*(M_PI/180)),y-(r-60)*sin(thetamin*(M_PI/180

)))

circle(x+(r-80)*cos(thetamin*(M_PI/180)),y-(r-80)*sin(thetamin*(M_PI/180))

,10)

setcolor(15)

line(x,y,x+(r-70)*cos(thetasec*(M_PI/180)),y-(r-70)*sin(thetasec*(M_PI/180

)))

delay(1000)

setcolor(0)

line(x,y,x+(r-70)*cos(thetasec*(M_PI/180)),y-(r-70)*sin(thetasec*(M_PI/180

)))

}

}

该程序已在Turbo

C++3.0中通过编译.

首先,你应该设置一个时钟,每隔一段时间检测有没有闹钟事件符合设定的条件!如果有,则根据事件类型去执行!

至于播放音乐,你需要用到音频处理函数(简单的音频处理函数,仅能处理wav格式的,而不能处理mp3格式!)

事件提醒,你可以d出一个对话框,或者,在屏幕上打印提醒文字等等!

如有具体细节问题,可以与我讨论(我已做出过)。

newpzl@163.com(在20060112之前,或者我放假回家了。)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12118024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存