关键词不能为空

位置:淮南象牙塔成语大世界 > 成语造句 > c语言有滴答声音的全屏模拟时钟要求核心代码在50行以上,程...

c语言有滴答声音的全屏模拟时钟要求核心代码在50行以上,程...

作者:淮南象牙塔
日期:2021-04-19 07:08:12
阅读:

我对另外一个问题的回答,看看吧。
现在回C语言图形界面编写的小青年不多了,老青年们又不怎么上网,所以你提的问题就纠结了。
其实那个东东也不难,看看我的那个总结,在看看那个例子,再加上你自己本来就会一点,你的问题就可以解决了。
有问题就追问我吧 =_=
http://zhidao。baidu。com/question/437850564。html?oldq=1

#include
#include
#include

#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=0;i<60;i++)
{
if(i%5==0) l=15;

else l=5;

x1=200*cos(i*6*pi/180)+300;
y1=200*sin(i*6*pi/180)+240;
x2=(200-l)*cos(i*6*pi/180)+300;
y2=(200-l)*sin(i*6*pi/180)+240;

line(x1,y1,x2,y2);
}
}

main()
{
int x,y;
int gd=VGA,gm=2;
unsigned char h,m,s;

struct time t[1];
initgraph(&gd,&gm,“d:\\tc”);

init();

setwritemode(1);
gettime(t);

h=t[0]。ti_hour;
m=t[0]。ti_min;
s=t[0]。ti_sec;

setcolor(2);

d(150,h,30);

setcolor(13);

d(170,m,6);

setcolor(15);

d(190,s,6);

while(!kbhit())
{
while(t[0]。ti_sec==s)
gettime(t);
sound(100);
delay(70);
sound(200);
delay(30);
nosound();
setcolor(15);
d(190,s,6);
s=t[0]。ti_sec;
d(190,s,6);

if (t[0]。ti_min!=m)
{
setcolor(13);
d(170,m,6);
m=t[0]。ti_min;
d(170,m,6);
}

if (t[0]。ti_hour!=h)
{
setcolor(2);
d(150,h,30);
h=t[0]。ti_hour;
d(150,h,30);
sound(300);
delay(240);
nosound();
delay(140);
sound(400);
delay(240);
nosound();
}
}
getch();
closegraph();
}
1。这是用windows api写的程序。所以要求是纯c的话就没有办法了
2。其中定时用了两种方法。一种是用取消息。另一种是延时队列。这里只使用了取消息的方法。延时队列由于我机器上是vc6.0,CreateTimerQueue在本人机器上无法使用,需要新的sdk,所以没有加以验证,但取消息的方式是可行的。
3。稍稍验证了下,基本满足要求。

我在TC上调试通过了,不过时间好像过了额。。。

/*开发环境:turbo c 2.0模拟时钟转动程序代码*/
#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=0;i<60;i++) /*划钟点上的短线*/
{
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=0;i<=6;i++)
{
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();
}

    相关推荐

    聚合标签
    天塌地陷,岿然不动什么意思? 损一下这句话 人的一生说长不长 忐忑不安的反近义词 手臂的臂的组词 我想找首亲兄热弟的歌曲 以“以”字开头的成语有哪些 什么学什么练成语 忐忑得心 求形容君王的意识深远程度 决定国势大局发展此类意思的古文或名... 从事... 上古十大魔剑分别是哪些? 你有没有过奋不顾身的爱情 你特别彻底的投入然后痛彻心扉的失去... “趔趄”的“趄”的读音是什么? 请帮忙找一下历年宁波中考语文作文题,谢谢! 瞎灯黑火打一种动物 加拿大的历史? 《小石潭记》原文及翻译和注释 求一些成语 完美国际5.0武侠打架厉害吗 关于“里外”的成语? 徙木为信是什么意思 花甲用开水烫过没开壳是什么原因 城南旧事10句好句加赏析 梦幻80破血头多少钱 男女都属牛结婚会犯冲? 安闲舒适的成语是什么??? 成语乌灯黑火是什么意思,成语乌灯黑火的拼音 什么山什么水的成语,越多越好 一辈子说长不长说短不短,不就图个有人惦记吗 中医中所说的五伤七劳是指什么? 三皇五帝分别是谁 儒为表 《教学相长》原文及翻译是什么? 人在低谷得&... 堂字开头的成语接龙 关于乌的成语有哪些 什么跟着什么学什么成语 那些生蚝煮过了后,不张开壳 是不是死掉了,不能吃 “金兰之好”“琴瑟之好”“秦晋之好”有什么区别? 非淡泊无以明志 非宁静无以致远中的无以是什么意思 这张图谜底是什么? 女孩说无论发生什么都顺天而行顺其自然不争说明什么? 功亏一篑什么意思? 鲁迅先生逝世后的社会背景 宠辱不惊看庭前花开花落 去留无意望天上云卷云舒是什么意思啊 描写心情忐忑害怕的句子 谈谈“无为而治”? 带死的成语有哪些 急人之困是何意?出自于哪? 浪开头的成语有哪些 形容“飞黄腾达”的成语有哪些? 关于寻找的AABB式的词语有哪些 带有臂的成语有哪些 车和猫还有证书的成语 形容心情忐忑的成语 ()山()水中间填什么字(填颜色) 佛为心,道为骨,儒为表,大度看世界,技在手,能在身,思在脑,... 瑶族与汉族有什么区别 形容做好准备的成语有哪些? 表示火热的成语 三大阿僧祗劫是多少年? ~去留无意,闲看庭前花开花落;宠辱不惊,任凭天上云卷云舒 ... “恬淡隐逸”是什么意思? 卧的成语有哪些 接龙 中医说我:清阳不升 黑道白道有什么区别? 我们怎么干,要结合实际,结合现实(还没...