计算机程序设计(C语言) 课程设计报告
题目:电子动画时钟
学院: 机电工程学院
专业:
班级:090109班
学号:
姓名:
指导教师:
设计日期:
一、概述
选题背景 :随着社会的进步与科技的发展,电子钟表逐渐成为了人们生活中不可缺少的一部分。设计思路:(一)功能模块设计,1、电子时钟执行主流程2、电子时钟界面显示3、电子时钟按键控制模块4、时钟动画处理模块(二)数据结构设计1、time结构体2、全局变量(三)函数功能描述1、keyhandle()2、timeupchange()3、timedownchange()4、digitclock()5、drawcursor()6、clearcursor()7、void clockhandle()8、main()(四)程序实现(五)运行结果。
二、概要设计
2、1、数据结构
此程序中,使用了C语言的time结构体与几个全局变量,1、time结构体struct time
{
unsigned char ti_min; /*分钟*/
unsigned char ti_hour; /*小时*/
unsigned char ti_hund; /*百分之一秒*/
unsigned char ti_sec; /*秒*/
};
time结构体定义在dos、h文件中,可用来保存系统的当前时间,其中各字段的值的含义如下。
1、unsigned char ti_min:保存分钟值。
2、unsigned char ti_hour:保存小时。
3、unsigned char ti_hund:保存百分之一秒,例如,ti_hund=500,表示1/500秒。
4、unsigned char ti_sec:保存秒数。
2、2、全局变量
下面对程序用到的全局变量及数组进行说明、
1、 double h,m,s: 此3个全局变量分别用来保存小时,分钟,秒数。
2、 double x,x1,x2,y,y1,y2:保存数字时钟中小时,分,秒在屏幕中显示的坐标值。
3、struct time t[1]:定义一个time结构类型的数组,此数组只有t[0]一个元素。
2、3 模块列表
1、时钟动画处理模块
时钟动画处理模块主要由clockhandle()函数来实现,程序中旧时钟指针的擦除就是借助setwritemode(mode)函数设置画线的方式来实现。如果mode=1,则表示画线时用现在特性的线所画之处原有的线性异或(XOR)操作,实际上画出的线就是原有线与现在规定的线进行异或后的结果。因此,当线的特性不变时,进行两次画线操作相当于没有画线,即在当前位置处清除了原来的画线。
2、时钟按键控制模块
在电子时钟中,按键控制模块最主要的工作就就是必须能读取用户按键,对按键值进行判断,并调用相应函数来执行相关操作。
3、
数字时钟处理模块
(1)调用digitclock(int x,int y,int clock)函数。在数字时钟r指定位置
显示时,分,秒,其中digithour(double h),int digitour(double h)与digitsec(doubles)用于完成数值的double型向int型转换。
(2)调用drawcursor(int count),clearcursor(int count)函数来完成旧光标的擦除与新光标的绘制。
2、4、程序结构图(也就就是模块之间的关系)
三、详细设计
3、1程序预处理模块。包括加载头文件,定义常量,变量,结构体数组与函数原型声