摘要。就钟表的演变历史而言,它大致可以分为3个演变阶段,第一,从大型钟向小型钟演变;第二,从小型钟向袋表过渡;第三,从袋表象腕表发展。每一阶段的发展都和当时的技术发明有着十分紧密的联系,同时它也是各个不同时期的科学家和钟表工匠智慧的结晶。
钟和表通常是以内机的大小来区别的。按国际惯例,机芯直径超过50mm、厚度超过12mm的为钟;直径37~50mm、厚度4~6mm者,称为怀表;直径37mm以下为手表;最坚固、最精密的机械之一。现代钟表的原动力有机械力和电力两种。
机械钟表是一种用重锤或弹簧的释放能量为动力,推动一系列齿轮运转,借助调速器调节轮系转速,以指针指示时刻和计量时间的计算器。
在生活进步的今天,电子时钟正成为人们生活的一部分,特别是应用在如火车站之类的公共场所,其用途不言而喻。
关键词: 模拟系统; 电子时钟; 时间修改。
目录 一。 设计过程。
1. 程序功能3
2. 程序设计3
1)设计思路3
2)数据结构3
3)主函数4
4)流程图4
3. 程序运行及分析8
4. 运行结果9
二。 源**10
1. 程序预处理11
2. 主函数11
3. 时钟动画处理模块14
4.时钟按键控制模块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)流程图 :
电子时钟执行主流程图:
main()函数。ny
nyclockhandle()函数。
keyhandle()函数: ny
nnydigitclock函数:
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<>
#include<>
#include<>
#include<>
#define pi 3.1415926/*定义变量*/
#define up 18432/*上移键:修改时间*/
#define down 20480/*下移键:修改时间*/
#define esc 283/*esc键:退出系统*/
#define tab 3849/*tab键:移动光标*/
*函数声明*/
int keyhandle(int,int); 键盘按键判断,并调用相关函数处理*/
int timeupchange(int); 处理上移按键*/
int timedownchange(int);/处理下移按键*/
int digithour(double); 将double型小时数转换成int型 */
int digitmin(double);/将double型分钟数转换成int型*/
int digitsec(double);/将double型秒钟数转换成int型*/
void digitclock(int,int,int);/在指定位置显示时钟或分钟或秒钟数*/
void drawcursor(int);/绘制一个光标*/
void clearcursor(int);/消除前一个光标*/
void clockhandle();时钟处理*/
double h,m,s;/*全局变量:小时,分,秒*/
double x,x1,x2,y,y1,y2;/*全局变量:坐标值*/
struct time t[1]; 定义一个time结构类型的数组*/
2. 主函数main()
main()
int driver,mode=0,i,j;
driver=detect;/*自动检测显示设备*/
initgraph(&driver,&mode,""初始化图形系统*/
setlinestyle(0,0,3);/设置当前画线宽度和类型:设置三点宽度实线*/
setbkcolor(0);/用调色板设置当前背景颜色*/
setcolor(9);/设置当前画线颜色*/
line (82,430,558,430);
line (70,62,70,418);
line (82,50,558,50);
line (570,62,570,418);
line (70,62,570,62);
line (76,56,297,56);
line (340,56,564,56);/画主体框架的边直线*/
/* arc(int x,int y,int stangle,int endangle,int radius */
arc (82,62,90,180,12);
arc (558,62,0,90,12);
setlinestyle(0,0,3);
arc(82,418,180,279,12);
C语言课程课程设计
课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学...
C语言课程设计
目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...