C语言编写的整点报时时钟.docx
《C语言编写的整点报时时钟.docx》由会员分享,可在线阅读,更多相关《C语言编写的整点报时时钟.docx(13页珍藏版)》请在冰豆网上搜索。
C语言编写的整点报时时钟
计算机技能实习报告
整点声音报时时钟
整点声音报时时钟:
a.具有指针式表盘界面(方形或圆形);
b.具有时针+分针+秒针并正确旋转;
c.时钟时间须与系统时间相一致,秒针具有“滴答”声音效果,并实现整点报时。
参考资料:
a.C语言程序设计(谭浩强-清华大学出版社)b.C语言程序设计教程(谭浩强,张基温-高等教育出版社)c.专业李老师提供的时钟界面设计源程序等等。
时钟源程序:
#include
#include
#include
#definepi3.1415926
#defineX(a,b,c)x=a*cos(b*c*pi/180-pi/2)+300;
#defineY(a,b,c)y=a*sin(b*c*pi/180-pi/2)+240;
#defined(a,b,c)X(a,b,c);Y(a,b,c);line(300,240,x,y)
intx1,y1,x2,y2;
voidinit()
{inti,l,x1,x2,y1,y2;
chars[10];
floatf;
setbkcolor(0);
setcolor
(2);
circle(300,240,180);
circle(300,240,200);
circle(300,240,5);
for(i=12;i>=1;i--)
{f=(30*(i-12)*pi/180);
x1=300+sin(f)*(180-6)-16;
y1=240-cos(f)*(180-6);
sprintf(s,"%2d",i);
setcolor(13);
settextstyle(0,0,2);
outtextxy(x1,y1,s);
}
for(i=0;i<60;i++)
{
if(i%5==0)
{setcolor(5);
setlinestyle(0,0,3);
l=15;}
else
{setcolor(14);
l=5;}
x1=160*cos(i*6*pi/180)+300;
y1=160*sin(i*6*pi/180)+240;
x2=(160-l)*cos(i*6*pi/180)+300;
y2=(160-l)*sin(i*6*pi/180)+240;
line(x1,y1,x2,y2);
}
}
main()
{
intx,y;
intgd=VGA,gm=2;
unsignedcharh,m,s;
structtimet[1];
initgraph(&gd,&gm,"d:
\\tc");
init();
setwritemode
(1);
gotoxy(30,20);
printf("madebyliyunzhan");
gettime(t);
/*h=t[0].ti_hour;*/
if(t[0].ti_hour>12)
t[0].ti_hour=t[0].ti_hour-12;
if(t[0].ti_hour<4)
h=abs(t[0].ti_hour-3);
m=t[0].ti_min;
s=t[0].ti_sec;
setcolor(7);
d(80,h,30);
setcolor(14);
d(110,m,6);
setcolor(4);
d(150,s,6);
while(!
kbhit())
{while(t[0].ti_sec==s)
gettime(t);
sound(400);
delay(70);
sound(200);
delay(30);
nosound();
setcolor(4);
d(150,s,6);
s=t[0].ti_sec;
d(150,s,6);
if(t[0].ti_min!
=m)
{
setcolor(14);
d(110,m,6);
m=t[0].ti_min;
d(110,m,6);
}
if(t[0].ti_hour!
=h)
{setcolor(7);
d(80,h,30);
h=t[0].ti_hour;
d(80,h,30);
sound(1000);
delay(240);
nosound();
delay(140);
sound(2000);
delay(240);
nosound();
}
}
getch();
closegraph();
}
时钟源程序运行截图:
修改后的源程序:
#include
#include
#include
#definepi3.1415926
#defineX(a,b,c)x=a*cos(b*c*pi/180-pi/2)+300;
#defineY(a,b,c)y=a*sin(b*c*pi/180-pi/2)+240;
#defined(a,b,c)X(a,b,c);Y(a,b,c);line(300,240,x,y)
intx1,y1,x2,y2;
voidinit()
{inti,l,x1,x2,y1,y2;
chars[10];
floatf;
setbkcolor(5);
setcolor(9);
bar(100,50,500,430);
circle(300,240,180);
circle(300,240,80);
circle(300,240,145);
circle(300,240,5);
for(i=12;i>=1;i--)
{f=(30*(i-12)*pi/180);
x1=300+sin(f)*(180-6)-16;
y1=240-cos(f)*(180-6);
sprintf(s,"%2d",i);
setcolor(13);
settextstyle(0,0,2);
outtextxy(x1,y1,s);
}
for(i=0;i<60;i++)
{
if(i%5==0)
{setcolor
(2);
setlinestyle(0,0,3);
l=15;}
else
{setcolor(12);
l=5;}
x1=160*cos(i*6*pi/180)+300;
y1=160*sin(i*6*pi/180)+240;
x2=(160-l)*cos(i*6*pi/180)+300;
y2=(160-l)*sin(i*6*pi/180)+240;
line(x1,y1,x2,y2);
}
}
main()
{
intx,y;
intgd=VGA,gm=2;
unsignedcharh,m,s;
structtimet[1];
initgraph(&gd,&gm,"d:
\\tc");
init();
setwritemode
(1);
gotoxy(30,20);
printf("madebylikai");
gettime(t);
/*h=t[0].ti_hour;*/
if(t[0].ti_hour>12)
t[0].ti_hour=t[0].ti_hour-12;
if(t[0].ti_hour<4)
h=abs(t[0].ti_hour-3);
m=t[0].ti_min;
s=t[0].ti_sec;
setcolor(7);
d(80,h,30);
setcolor(14);
d(110,m,6);
setcolor(4);
d(150,s,6);
while(!
kbhit())
{while(t[0].ti_sec==s)
gettime(t);
sound(400);
delay(70);
sound(200);
delay(30);
nosound();
setcolor(4);
d(150,s,6);
s=t[0].ti_sec;
d(150,s,6);
if(t[0].ti_min!
=m)
{
setcolor(14);
d(110,m,6);
m=t[0].ti_min;
d(110,m,6);
}
if(t[0].ti_hour!
=h)
{setcolor(7);
d(80,h,30);
h=t[0].ti_hour;
d(80,h,30);
sound(1000);
delay(240);
nosound();
delay(140);
sound(2000);
delay(240);
nosound();
}
}
getch();
closegraph();
}
修改后时钟源程序运行截图:
C语言程序设计实习心得:
在一个周时间的学习中,我们在专业老师的带领下进行了C语言程序实践学习。
在这之前,我们已经对C语言这门课程学习了一个学期,对其有一定的了解,但是也仅仅是停留在了解的范围,对里面的很多东西还是很陌生,更多的在运用起来还是会感到很棘手。
由于时间的关系,我们这次的实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是C语言灵活,简洁,更需要通过编程的实践来真正掌握它。
对于程序设计语言的目的,可以概括为学习语法规定、掌握程序设计方法,提高程序开发能力等等,这些都必须通过充分的实际上机操作才能完成。
通过C语言实训,让我了解到很多C语言的特点,例如C语言的特点有:
1.简洁紧凑、灵活方便,C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C语言可以象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.运算符丰富:
运算符包含的范围很广泛,共有种34个运算符。
C语言把括号、赋值、强制类型转换等都作为运算符处理。
从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3.数据结构丰富:
C的数据类型有:
整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。
能用来实现各种复杂的数据类型的运算。
并引入了指针概念,使程序效率更高。
另外C语言具有强大的图形功能,支持多种显示器和驱动器。
且计算功能、逻辑判断功能强大。
4.C是结构式语言:
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5.C语法限制不太严格、程序设计自由度大,一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。
而C语言允许程序编写者有较大的自由度。
6.C语言允许直接访问物理地址,可以直接对硬件进行操作因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
7.C语言程序生成代码质量高,程序执行效率高,一般只比汇编程序生成的目标代码效率低10へ20%。
8.C语言适用范围大,可移植性好,C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX,也适用于多种机型。
C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。
通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决。
不过,通过几天的实训,逐渐积攒了一些经验,对于简单的程序有些错误可以很快就看出来。
这次实训有很大的收获,让我对C语言有了更深的认识,平时在课堂上学到的东西可以自己动手编写,将其转化成一些实用的技能。
C语言是一个有序的学习,学了最基本的替换,然后扩展到循环,嵌套,条理很清楚,不是一个零散的知识,实际上所有的课程都如此,不过通过实训我也知道了自己的不足,存在的很多问题。
通过一个周的C语言实习,我加深了对课堂教授内容的理解,学习了基础知识后,通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就自然而然地掌握C语言的语法规定,发现原来的理解偏差。
学习C语言,利用学到的知识编写C语言程序,解决实际问题,把C语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题,只有通过上机才能检验自己是否掌握C语言,自己编写的程序是否能够正确的解题,通过解决这些问题,可以逐步提高自己对C语言的理解和程序开发能力。