模拟时钟程序设计

  • 格式:doc
  • 大小:125.42 KB
  • 文档页数:29

下载文档原格式

  / 29
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要

模拟电子时钟主要就是对电子时钟4个功能模块的组成进行编程。对电子时钟的界面显示模块,时钟动画处理模块,数字时钟处理模块。界面显示模块主要调用了C语言图形系统函数和字符屏幕处理函数画出时钟程序的主面。按键控制处理模块第一是读取用户按键的键值。第二是通过对键盘按键值的判断,执行相应的操作。时钟动画处理模块是通过对相关条件的判断和时钟指针坐标值的计算,完成时,分,秒指针的擦除和重绘。以及最后的数字处理模块是实现数字时钟的显示和数字时钟的修改。关键词:C语言;电子时钟;WIN-TC;

目录(参考一)

第一章综述 (4)

1.1 课题的现实意义 (4)

1.2 软件环境 (4)

1.3 硬件环境 (4)

1.4 项目人员分工 (4)

第二章系统设计流程图 (5)

2.1 系统流程图 (5)

2.2 主要功能表 (5)

第三章系统分析和设计 (8)

3.1 图形的绘制和输出 (8)

3.2 文本的输出显示 (8)

3.3 计算函数的调用 (8)

3.4 程序的运行和退出 (10)

第四章系统测试 (11)

4.1 系统测试 (11)

4.2 调试 (11)

4.3 错误原因分析一 (11)

4.4 错误原因分析二 (11)

第五章用户使用说明书 (14)

5.1 运行WIM-TC程序进入系统界面 (14)

5.2 系统的使用 (14)

5.3 退出程序 (14)

第六章工作总结 (15)

第七章源代码 (16)

参考文献 (28)

第一章综述

1.1课题的现实意义:

随着社会的进步和科技的发展,电子钟表业成为了我们生活中不可缺少的一部分。特别是应用在如火车站之类的公共场所,其用途不言而喻。在此,我们介绍一个电子时钟的设计和实现,模拟windows自带的时钟。

1.2软件环境:

WINTC;C语言,Windows开发环境;

1.3硬件环境:

学校台式电脑

1.4项目人员分工:

界面设计--------刘丹,程序设计--------林帅键

界面设计:在颜色搭配的发面,其中也遇到了一点小麻烦,就是在搭配秒针颜色的时,运行的时候秒针走的所有路径都会留下痕迹,开始的时候秒针的颜色只能选择深灰色,其他的颜色都会出现路径走时痕迹的出现,这时候就应该考虑到在编写程序中这个数字代号是否已经被其他的名称所使用了。

程序设计:程序应该分模块编译才能提高效率。弄懂程序流程图,可以在最短时间发现错误。

实验报告的部分处理:对实验数据报告的整体思路的流程的粗矿处理和填写。

PPT的大体制作:在PPT中主要是根据对我们这次模拟时钟的主要思路,从而我们也是编写程序的主要步骤,在其中我们也注明了一些在模拟时钟出现的一些错误的原因。

第二章系统设计流程图

2.1系统设计原理图

程序流程图如下所示

2.2 主要功能表如下所示

(图2)

界面显示模块:电子时钟界面显示在调用时钟运行处理之前完成,在这里主要调用C语言图形系统函数和字符屏幕处理函数画出时钟程序的主界面,主界面包括类似windows自带的电子时钟的界面和帮助界面两部分。按键控制模块:按键控制模块主要完成两部分功能。第一,读取用户按键的键值。第二,通过对键盘按键值的判断,执行相应的操作,如光标、修改时间。

时钟动画处理模块:它通过对相关条件的判断和时钟指针指标值的计算,完成时、分、秒指针的擦除和重绘,以达到模拟时钟运转的功能。

数字时钟处理模块:主要实现了数字时钟的显示和数字时钟的修改。其中,在数字时钟的修改中,用户可先按T ab键定位需要修改内容的位置,然后通过按光标上移或下移键来修改当前时间。

第三章系统分析与设计

3.1 图形的绘制与输出函数

(1)图形方式的初始化通过函数initgraph来完成。其调用格式为:Innitgraph(*gdriver, *gmode,*path);函数initgraph是通过从磁盘上装入一个图形驱动程序来初始化图形系统,并将系统设置为图形方式。其中3个参数含义如下:gdriver是一个整型值,用来指定要装入的图形驱动程序。gmode是一个整型值,用来设置图形显示模式。path是一个字符串,用来指明图形驱动所在的路径。如果路径为C:\TC,则写在参数中则为“C:\\TC”.

(2)line函数:用来指定两个点之间画一条直线,其调用格式为:

line(int x1, int y1, int x2 , int y2);其中(x1,y1)和(x2,y2)分别为直线的两个端点坐标。

(3)arc函数:用来画圆弧,其调用格式为:

arc(int x, int y, int angs, int ange, int r);其中(x,y)为圆弧所在的圆心的坐标,angs,ange分别为圆弧的起始角和终止角,单位为“度”,r圆弧的半径

(4)circle函数:该函数用来指定圆心和半径画圆。其调用格式为:circle(int x, int y, int r);其中x,y为指定圆心的坐标,r为圆的半径。(5)cleardevice():清屏使用该函数,它的作用就是清除全屏幕,并将当前点位置设置与屏幕的左上角(0,0)。执行后原先的视图不再存在。(6)closegraph():其作用是释放所有图形系统的分配存储区,恢复到调用initgraph之前状态。

(7)setlinestyle():该函数用于设置当前绘图所用的线型与宽度,这些设置

仅限于对直线类图形有效。其调用格式为:setlinestyle(int sty, int pat, int b);

其3个参数的含义如下:sty用来定义所画直线类型,pat用于用户自定义类型,b指定所画直线粗细。

(8)setbkcolor():该函数用来设置背景色,其功能是设置绘图时的背景颜色。其调用格式如下:setbkcolor(int color),其中参数color代表所取颜色,可以为整型常数,也可以为符号常数。

(9)setcolor(int color):该函数用来设置前景色,即绘图用的颜色,其调用格式与“setbkcolor”相同。

3.2 文本的输出显示

其中调用outtextxy函数,outtextxy函数用来在(X,Y)位置输出一个字符串。其调用格式为:

outtextxy(int x, int y , char *text );其中参数(x,y)为指定位置坐标,text为待输出的字符串。

3.3计算函数的调用

调用clockhandle()函数:

(1)程序中旧时钟指针的去除是借助setwritemode(mode)函数设置画线的方式来实现的。如果mode=1,则表示画线是用当前特性

的线与所画之处的线进行异或操作,实际上画出的线是原有线与现

在规定的线进行异或后的结果。因此,当线的特性不变,进行两次

画线操作相当于没画线,即在当前位置处清除了原来的画线。(2)bioskey()为直接使用BIOS服务的键盘接口函数。其原型为:int bioskey(int cmd),cmd的值决定执行什么操作,当cmd=0时,