c语言图形时钟课程设计实验报告.docx

上传人:b****8 文档编号:9574124 上传时间:2023-02-05 格式:DOCX 页数:10 大小:90.71KB
下载 相关 举报
c语言图形时钟课程设计实验报告.docx_第1页
第1页 / 共10页
c语言图形时钟课程设计实验报告.docx_第2页
第2页 / 共10页
c语言图形时钟课程设计实验报告.docx_第3页
第3页 / 共10页
c语言图形时钟课程设计实验报告.docx_第4页
第4页 / 共10页
c语言图形时钟课程设计实验报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

c语言图形时钟课程设计实验报告.docx

《c语言图形时钟课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《c语言图形时钟课程设计实验报告.docx(10页珍藏版)》请在冰豆网上搜索。

c语言图形时钟课程设计实验报告.docx

c语言图形时钟课程设计实验报告

1.系统功能要求。

2.数据结构设计及说明。

3.程序结构(画流程图)。

4.各模块的功能。

5.试验结果(包括输入数据和输出结果)。

6.体会。

7.参考文献。

8.附录:

程序清单及源程序。

 

●系统功能要求:

在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可),时间与系统时间一致,且要随着时间的走动准确的走动。

 

●数据结构设计及说明

 

(1)图形时钟要用TC来编译,学C语言时主要用VC,用TC对我有一定的挑战性,不熟悉编译,对图形函数也没有太多接触,做这个有一定难度。

 

(2)先画出时钟基本组成,(时针分针秒针,中心点,表盘及其分隔点)。

(3)时钟表设计思想:

第一步,确定秒钟的走时。

将圆等分成60份每过一秒,秒钟要转1/60个圆,亦即一等份。

第二步,确定分钟的走时。

将圆等分成60份每过一分,分钟要转1/60个圆,亦即一等份。

分钟自己走的再加秒钟的,才是分钟此时的位置。

第三步,确定时钟的走时。

将圆等分成12等分。

每过一时,时钟走一等份。

和分钟一样,

得加上分钟,秒钟的走时,才是此刻时钟的位置。

 

(4)时钟走动与系统时间联系:

每过一秒画出秒针,并除去前一秒的秒针,分针秒针同样可用。

画线函数与时间联系使用变量。

 

(5)设置横纵坐标

x=a*cos(b*c*pi/180-pi/2)+300;

y=a*sin(b*c*pi/180-pi/2)+240;

设置表针的动态坐标点

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;

 

●程序结构(画流程图)

总流程图:

 

指针转动流程图:

●各模块的功能

功能

确定横纵坐标,确定针分针秒针函数

voiddraw(inta,intb,intc)

 

●试验结果(包括输入数据和输出结果)

 

●体会:

刚开始做时基本上什么都不懂,用TC做,我更不会。

不过参考了很多资料,到网上查,泡了几天图书馆,差不多能写出基本程序,虽然很多是借鉴别人的,不过能写成这样,我心里还是挺高兴的。

有了一点成功我就很兴奋,这是动力。

程序很奇特,很多问题都可以用程序编写,看到那些大型程序我就感觉我也能写出这样的程序。

程序设计主要靠理解与运用,有些没有学过的知识不一定要懂得彻底,只要会运用就行。

不足之处也很多,程序思路不太清晰可能有些混乱。

有很多程序设计使用并不熟练,甚至有些方法掌握不了,更容易忘记。

算法结构了解并不深入,独立自主的想法占据总体达不到要求。

需要加强练习和对知识的理解与掌握。

 

●参考文献:

《C程序设计思想与方法》

《C语言完全手册》

《C语言课程设计指导》

《XX知道图形时针》

●附录:

程序清单及源程序(使用TC)

#include

#include

#include

#definepi3.1415926

voiddraw(inta,intb,intc)

{

floatx,y;

x=a*cos(b*c*pi/180-pi/2)+300;/*确定横坐标*/

y=a*sin(b*c*pi/180-pi/2)+240;/*确定纵坐标*/

line(300,240,x,y);/*绘制时针或分针或秒针*/

}

voidinit()/*划时钟边框函数*/

{

inti,l,x1,x2,y1,y2;

circle(300,240,200);/*以(300,240)为圆心,200为半径画圆*/

circle(300,240,5);/*以(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);

}

XX文库-让每个人平等地提升自我}

main()

{

intx,y,i;

intgdriver,gmode;

unsignedcharh,m,s;

structtimet[1];

gdriver=DETECT;

initgraph(&gdriver,&gmode,"");/*初始化*/

for(i=0;i<=6;i++)

{

outtextxy(300,80,"12");

outtextxy(300,390,"6");

outtextxy(140,230,"9");

outtextxy(460,230,"3");

}

init();/*调用init()函数*/

setwritemode

(1);/*将当前线与原有的线进行异或操作*/

gettime(t);/*将计算机时间写入结构体t中*/

h=t[0].ti_hour;/*h赋初值当前时数*/

m=t[0].ti_min;/*m赋初值当前分数*/

s=t[0].ti_sec;/*s赋初值当前秒数*/

setcolor(7);

draw(150,h,30);/*画时针*/

setcolor(14);

draw(170,m,6);/*画分针*/

setcolor(4);

draw(190,s,6);/*画秒针*/

while(!

kbhit())

{

while(t[0].ti_sec==s)

gettime(t);

setcolor(4);

draw(190,s,6);/*清除前面画的秒针*/

s=t[0].ti_sec;

draw(190,s,6);/*画秒针*/

if(t[0].ti_min!

=m)

{

setcolor(14);

draw(170,m,6);/*清除前面画的分针*/

m=t[0].ti_min;

draw(170,m,6);/*画分针*/

}

if(t[0].ti_hour!

=h)

{

setcolor(7);

draw(150,h,30);/*清除前面画的时针*/

h=t[0].ti_hour;

draw(150,h,30);/*画时针*/

}

}

getch();

closegraph();/*退出图形界面*/

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1