当前位置:文档之家› c语言程序设计—时钟旋转模型

c语言程序设计—时钟旋转模型

计算机物理建模课程设
计报告
题目:时钟旋转模拟
学院:理学院
专业:物理学
班级:2010126156
姓名:黄帅
指导教师:杨先卫
设计日期:2012年4月30日
一.选题背景:在现代社会里,科学技术高度发展,特别是计算机技术开发突飞猛进,大量的网络设计,计算机程序设计应运而生,并且在多方面领域得到广泛的应用。

现在利用C语言程序来解释一些物理现象,通过学习语言,我们了解了C语言的语言编程的过程。

下面是利用C语言程序来模拟时钟旋转。

二.设计思想:程序在C语言环境下,调用大量库函数,图形函数,数学函数,还有for语句do while等循环语句
三. 主要解决问题的方法及技术关键.
1、主要问题及解决方法:
主要调用到graphics.h,math.h,dos.h等重要库函数,运用循环体等进行编译。

2.技术关键
掌握for语句do while等循环语句的运用,及图形函数,数学函数等函数的应用。

三、程序流程
开始——初始化图形设计——设置窗体的背景色、前景色及画笔——画出时钟的框架、标题及分秒的刻度——调用时钟处理程序——获取当前时间并显示——调用消息处理函数刷新窗口显示——判断修改是增
加还是减少——退出(Esc)
四.程序清单:
#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*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:\\wintc\\bgi"); init();
setwritemode(1);
gettime(t);
h=t[0].ti_hour;
m=t[0].ti_min;
s=t[0].ti_sec;
setcolor(7);
d(150,h,30);
setcolor(14);
d(170,m,6);
setcolor(4);
d(190,s,6);
while(!kbhit())
{while(t[0].ti_sec==s)
gettime(t);
sound(400);
delay(70);
sound(200);
delay(30);
nosound();
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();
}
}
getch();
closegraph();
}
六、设计结果说明
1、设计优点:整个程序过程简单明了,容易理解,而
且操作简单。

并且运用了简单的C语言知识,巩固C语
言运用的目的。

2、设计不足:由于对C语言了解的得还不够深入,
所以程序的某些地方还有些不足,要想效果更加好,还需
加以修改。

七 .在设计过程中的感受:
首先经过两周的编程实习,并在后一段的报告总结,我对
C语言这门科有新的认识,本人实在是获益不浅!要想编
写一个准确、高效并有使用价值的程序,一定先要对课本
知识熟悉,还要掌握必要的上机操作能力,写程序其实很
容易而关键在于调试程序。

这次设计,让我重新掌握了C语
言,而且还得到了用C语言解决实际问题的宝贵经验。

其次, 通过此次编程我也发现了自己在学习中的错误和不足,复习了以前学过的知识。

同时也学到了一些没学过的知识,让我从中收益非浅,也为期末考试准备了一下!更重要的是培养了独立思考问题和解决问题的能力,熟悉了一些基本操作和解决问题的方法!
再则, 因为初次接触等原因此次设计遇到了许多问题,我深刻体会到老师发挥的重要作用,C语言程序对我们来说比较难,在匆忙的学习中更是难上加难,似乎觉得自己仅是个匆匆过客,但在老师的帮助下我学会了如何调试,如何查找系统没有提示的错误,最后终于排除万难把程序搞定,体会到原来编程也挺有意思的快感.我想没有老师的帮助我很难在短期内把程序设计做的这样好,在此特地感谢老师的帮助。

相关主题