
C语言课程设计(电子时钟).doc
23页沈阳理工大学程序设计专用纸摘 要就钟表的演变历史而言,它大致可以分为3个演变阶段,第一,从大型钟向小型钟演变;第二,从小型钟向袋表过渡;第三,从袋表象腕表发展每一阶段的发展都和当时的技术发明有着十分紧密的联系,同时它也是各个不同时期的科学家和钟表工匠智慧的结晶钟和表通常是以内机的大小来区别的按国际惯例,机芯直径超过50mm、厚度超过12mm的为钟;直径37~50mm、厚度4~6mm者,称为怀表;直径37mm以下为手表;最坚固、最精密的机械之一现代钟表的原动力有机械力和电力两种机械钟表是一种用重锤或弹簧的释放能量为动力,推动一系列齿轮运转,借助调速器调节轮系转速,以指针指示时刻和计量时间的计算器 在生活进步的今天,电子时钟正成为人们生活的一部分,特别是应用在如火车站之类的公共场所,其用途不言而喻 关键词: 模拟系统; 电子时钟; 时间修改.目 录 一. 设计过程1. 程序功能 ............................................................................... 32. 程序设计 ………………………………………………... 3 1)设计思路 …………………………………………... 3 2)数据结构 …………………………………………... 3 3)主函数 …………………………………………... 4 4)流程图 ……………………………………………... 4 3. 程序运行及分析 ………………………………………... 8 4. 运行结果 …………………………………………….. 9二. 源代码 ………………………………………………………. 10 1. 程序预处理 ……………………………………………….. 112. 主函数 …………………………………………... 113. 时钟动画处理模块 …………………………………………... 144.时钟按键控制模块 ………………………………………….. 15 5.数字时钟处理模块 ………………………………………….. 19三. 设计总结 ………………………………………………... 22四. 参考文献 ……………………………………………………. 23 课程设计(电子时钟)一.设计过程1. 程序功能随着社会的进步和科技的发展,电子时钟逐渐成为人们生活中不可缺少的一部分,下面介绍一种电子时钟的设计和实现。
其基本功能模块图如图2.程序设计电子时钟 界面显示模块按键控制模块时钟动画处理模式数字时钟模块 1) 设计思路程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性在电子时钟程序中,重点和难点在于时、分、秒针坐标值得计算和时钟指针的运行控制,旨在了解C语言图形模式下的编程,了解系统的绘图机数据结构等方面的知识利用几个模块现实时钟的运转,并可在界面进行时间的更改 2)数据结构此程序中,使用了C语言的time结构体和几个全局变量,结构如下:1).time结构体struct time { unsigned char ti_min;/*分钟*/ unsigned char ti_hour;/*小时*/ unsigned char ti_hund;/*百分之一秒*/ unsigned char ti_sec;/*秒*/}2).全局变量double h,m,s;double x,x1,x2,y,y1,y2;struct time t[1]; 3)主函数1) keyhandle()2)timeupchange()3) timedownchange()4) digitclock()5)drawcuesor()6) clearcursor()7) void clockhandle()8) main()4)流程图 :电子时钟执行主流程图:进入图形模式绘制主窗体界面绘制电子时钟界面绘制帮主界面调用clockhandle()时钟处理程序 退出程序结束开始进入图形模式main()函数定义变量driver,mode=0,i,j;j=431i<=470定义圆心坐标(0,0,3)i+=39设置颜色setcolor(15); i=0,m=0,h=0;开始i<=11 N x=100*sin(h*60+m) Y i++;h++; i=0;m=0;i<=59 Nx=100*sin(m/30*PI)+451 Y m++;j++; setcolor(4); return0; 结束clockhandle()函数开始keyhandle()函数:定义变量k=0,count;count=2k!=Escti_[0] sec..&&Multiplex定义颜色setcolor(12)setcolor(15)Mutiplerkey=UP Nkey=DOWN Y时间上移设置 Nkey=TAB break时间下移设置 N Y setcolor(15)breakbreak调用时间函数结束digitclock函数:char buffer l[10]clock==60 是否 clock=0sprintf(buffer,”%d”,clock)3.程序运行及分析: 1) main()函数主要实现了对电子时钟的初始化工作,及clockhandle()函数的调用。
main(){ int driver,mode=0,i,j; driver=DETECT;/*自动检测显示设备*/ initgraph(&driver,&mode,"");/*初始化图形系统*/ setlinestyle(0,0,3);/*设置当前画线宽度和类型:设置三点宽度实线*/ setbkcolor(0);/*用调色板设置当前背景颜色*/ setcolor(9);/*设置当前画线颜色*/2) 时钟的处理模块主要由clockhndle()函数来实现,借助setwritemode(mode)函数设置画线的方式来实现的setwritemode(1); for(count=2;k!=Esc;) {/*开始循环,直至用户按下Esc键结束循环*/3) 此程序对按键进行处理、判断,调用函数来实现void clockhandle() { int k=0,count; setcolor(15); gettime(t);/*取得系统时间,保护在time结构类型的数组变量中*/int keyhandle(int key,int count){ switch(key) {case UP:timeupchange(count-1); break;4) 调用下面函数,处理时分秒的位置。
修改时间 void digitclock(int x,int y,int clock){char buffer1[10];int digithour(double h)int digitmin(double m)int digitsec(double s) void drawcursor(int count) {switch(count)void clearcursor(int count) {switch(count)4.运行结果 运行初始状态:运行修改后:二. 源码分析:1. 程序预处理#include












