版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、时钟显示设计1 功能: 实现时钟的实时显示与定时2 基本要求:( 1)画出表盘时钟,时、分、秒针填充不同的颜色(自选)。( 2)数字同步显示时间信息。( 3)整点报时。( 4)通过键盘输入闹铃时间,实现闹铃功能。3 相关知识:图形操作、按键操作、时间函数等4 功能扩充:1 )实现秒表功能2)给出其它国家的时钟同步信息精选文档错误!未定义书签。错误!未定义书签。错误!未定义书签。一、题目介绍:二、小组成员信息:三、总体设计: 四、模块划分:五、算法说明:六、各模块函数功能及流程图: 七、程序测试:八、结论:九、体会及建议:十、参考文献: 附录:源程序清单 15题目介绍:时钟显示设计可以实现时钟的
2、实时显示与定时,并且具有整点报时与闹铃的 功能,具有动态效果,能够激发学生学习 c语言的兴趣与热情。在设计过程中会 遇到没有学过的知识,这需要自己查阅资料来完成,所以还是有一定难度的。总体设计:本程序设计分为三步:1是对时钟程序做全面的分析,即对程序要使用的编写方法功能,运行方式进行分析,并做 出正确的解决方案。2是程序的编写。由于该程序所涉及的信息比较广泛,所以程序的编写也有些复杂。程序编写是一项困难的任务, 完成此项目必须运用大量的知识,而且要有清晰的思路和较强的语言组织能力。3是对程序的检查和系统的调用。当程序运行时,会显示出一个时钟, 并且具有一定的功能。模块划分:1计算时 分 秒针的
3、弧度值和末端位置,2画时针,分针,秒针,3绘制表盘,刻度,4设定闹钟,整分钟报时功能,5画表针,擦表针。算法说明:主函数:运用for,if等语句,执行对应的函数。Void DrawDial函数:画表盘。Void DrawHand函数:画时针,分针,秒针。各模块函数功能及流程图:画表针、擦表针程序测试:时钟界面显示(具有表盘、刻度、指针、现在时刻、闹钟时刻等)闹钟时刻二。点D分Patek Philippe请按F1后输入闹钟小时,按F2后输入闹钟分钟现在时刻:16点18分5U秒雨包二定: 想名言束程序请按空格!整分钟报时(当秒针指到刻度12时,时钟会自动报时)闹钟时刻点0分现在时刻点2。分。秒 闹
4、钟设定工请按门后输入闹钟小时,按包后输入靳分钟 想结束程序请按空格!按F1键后输入闹钟的小时按F2键输入闹钟的分钟到闹钟预定时刻时闹钟会自动响铃一分钟闹钟时刻点21分现在时刻点21分17秒 闹钟设定:请核F1后软上闹钟小时,按F2后输入同伊分钟 想结束程序请按空格!可以随时更换闹钟时刻ek Philippe闹钟时刻点23分请按F1后输入闹钟小时,技口后输入闹钟分钟现在时刻:16点23分33秒 同包二定: 幅结束程序请按空格!八、结论:时钟显示设计属于动画设计类, 它具有动态效果,经过两周的学习与钻研, 不断地把时钟 显示优质化,使之具有整分钟报时与闹铃功能, 虽然在这个过程中遇到了不少困难,
5、但通过查 资料基本上能够解决。附录:源程序清单#include <graphics.h>#include <conio.h>#include <math.h>#include <time.h>#include <stdlib.h>#include <windows.h>#include <stdio.h>#define PI 3.1415926536#define D 2*3.1415926/60 void DrawHand(int hour, int minute, int second)/时、分、秒针的弧/
6、时、分、秒针double a_hour, a_min, a_sec;度值int x_hour, y_hour, x_min, y_min, x_sec, y_sec;的末端位置/计算时、分、秒针的弧度值a_sec = second * 2 * PI / 60;a_min = minute * 2 * PI / 60 + a_sec / 60;a_hour= hour * 2 * PI / 12 + a_min / 12;/计算时、分、秒针的末端位置 x_sec = int(120 * sin(a_sec);x_min = int(100 * sin(a_min);x_hour= int(70
7、* sin(a_hour);/画时针setlinestyle(PS_SOLID, 10);setcolor(WHITE);y_sec = int(120 * cos(a_sec);y_min = int(100 * cos(a_min);y_hour= int(70 * cos(a_hour);line(320 + x_hour, 240 - y_hour, 320 - x_hour / 7, 240 + y_hour / 7);/画分针 setlinestyle(PS_SOLID, 6);setcolor(BLUE);line(320 + x_min, 240 - y_min, 320 -
8、x_min / 5, 240 + y_min / 5);/画秒针setlinestyle(PS_SOLID, 2);setcolor(YELLOW);line(320 + x_sec, 240 - y_sec, 320 - x_sec / 3, 240 + y_sec / 3); void DrawDial()/绘制一个简单的表盘circle(320, 240, 2);circle(320, 240, 60);circle(320, 240, 160);outtextxy(280, 310, "Patek Philippe");/绘制刻度int x, y;for (int
9、i=0; i<60; i+)x = 320 + int(145 * sin(PI * 2 * i / 60);y = 240 + int(145 * cos(PI * 2 * i / 60);if (i % 15 = 0)bar(x - 5, y - 5, x + 5, y + 5);else if (i % 5 = 0)circle(x, y, 3);elseputpixel(x, y, YELLOW);void main() int Yhour=0,Yminute=0;int kk=300;charq9='1',2,'3','4',
10、39;5','6',7,8,'9',s2,*pi;pi=q;int x1,y1,w;loopl: initgraph(640, 480);/初始化640 x 480 的绘图窗口DrawDial();/ 绘制表盘setwritemode(R2_XORPEN);/ 设置 XOR 绘图模式/绘制表针setcolor(LIGHTGRAY);outtextxy(314,100,"12");x1=315+(int)(140*sin(55*D);y1=240-(int)(140*cos(55*D);outtextxy(x1,y1,"11&
11、quot;);x1=318+(int)(135*sin(50*D);y1=240-(int)(135*cos(50*D);outtextxy(x1,y1,"10");for(w=0;w<9;w+)if(w=2|w=8)x1=318+(int)(130*sin(w+1)*5*D);y1=230-(int)(130*cos(w+1)*5*D);elsex1=318+(int)(130*sin(w+1)*5*D);y1=230-(int)(130*cos(w+1)*5*D);outtextxy(x1,y1,*(pi+w);SYSTEMTIME ti;/定义变量保存当前时间w
12、hile(1)/ 死循环 GetLocalTime(&ti);/ 获取当前时间outtextxy(0,420,”现在时亥 h");sprintf(s,"%d",ti.wHour);outtextxy(70,420,s);outtextxy(90,420," 点)sprintf(s,"%d",ti.wMinute);outtextxy(110,420,s);outtextxy(130,420," 分)sprintf(s,"%d",ti.wSecond);outtextxy(150,420,s);ou
13、ttextxy(170,420," 秒)outtextxy(0,10,”闹钟时亥J :");sprintf(s,"%d",Yhour);outtextxy(70,10,s);outtextxy(90,10," 点)sprintf(s,"%d",Yminute);outtextxy(110,10,s);outtextxy(130,10," 分)setcolor(BROWN);outtextxy(120,450,"想结束程序请按空格!");outtextxy(200,420,"闹钟设定:请
14、按F1后输入闹钟小时,按F2后输入闹钟分钟");DrawHand(ti.wHour, ti.wMinute, ti.wSecond);/ 画表针Sleep(1000);/ 延时 1 秒setcolor(0);sprintf(s,"%d",ti.wHour);outtextxy(70,420,s);sprintf(s,"%d",ti.wMinute);outtextxy(110,420,s);sprintf(s,"%d",ti.wSecond);outtextxy(150,420,s);if(ti.wSecond=0) Beep(523,300);整分钟报时if(ti.wHour=Yhour&&ti.wMinute=Yminute)Beep(kk,300);kk=kk+30;if(kk=600) kk=300;/ if(ti.wMinute=0) Beep(523,300);Beep(523,300);Beep(523,300);if(GetAsyncKeyState(VK_SPACE) break;if(GetAsyncKeyState(VK_F1) c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 盐矿开采过程中的地下水动态及调控考核试卷
- 供应链安全应急预案制定与模拟演练方案设计考核试卷
- 家用纺织品产品生命周期管理考核试卷
- 面神经课件教学课件
- 雷雨前课件教学课件
- 美丽海岛课件教学课件
- 墨子培训课件
- 淮阴工学院《机械设计》2021-2022学年第一学期期末试卷
- 淮阴工学院《光学》2021-2022学年第一学期期末试卷
- 24春联课件教学课件
- 江苏省南京市六校2024-2025学年高一上学期期中联合调研考试 数学 含答案
- 第25课《刘姥姥进大观园》(导学案)(学生版) 2024-2025学年九年级语文上册同步课堂(统编版)(学生专用)
- 嵌入式课程设计实训
- 第三单元综合卷-2024-2025学年统编版语文五年级上册
- 土方开挖和回填专项施工方案
- 中型直升机交易协议(2024年)版
- 专题08 向量的运算(上海中考特色题型)30题(解析版)
- 2024年新人教版数学七年级上册教学课件 4.1 第1课时 单项式
- 2023中国人工智能系列白皮书-大模型技术(2023版)
- D500-D505 2016年合订本防雷与接地图集
- GB/T 6807-2001钢铁工件涂装前磷化处理技术条件
评论
0/150
提交评论