- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
小学期课程的设计的报告
沈阳师范大学科信软件学院
小学期课程设计报告
课题名称: 模拟时钟转动程序
姓 名: 屈河清
学 号:
专业年级: 软件10级7班
2011年6月30日
一、系统功能简介:
改程序能够模拟机械时钟的指针行走,读取系统时间并准确运行,同时有数字时钟同步显示。具有设置闹钟,提示闹钟已设置,关闭闹钟和报时功能。
二、总体设计:
编写一个模拟时钟程序,此程序在屏幕左边有一个指针式钟面,右上方有一个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致,下方区域当设定时间时会出现提示,用菜单选项设定闹钟,取消闹钟和实现报时功能。时钟显示时间与机器系统时间相同。
本题主要涉及到的知识点有:时钟指针运动算法、屏幕重绘方法、定时器消息、菜单命令、对话框、画笔/画刷、显示文字,声音播放等。指针运动算法和屏幕重绘方法是本程序主要难点所在。
不论何种指针,每次转动均以π/30弧度(一秒的角度)为基本单位,且都以表盘中心为转动圆心。计算指针端点(x, y)的公式如下:
x =圆心x坐标 + 指针长度 * cos (指针方向角)
y =圆心y坐标 + 指针长度 * sin (指针方向角)
注意,指针长度是指自圆心至指针一个端点的长度(是整个指针的一部分),由于指针可能跨越圆心,因此一个指针需要计算两个端点。
三个指针的运动是相关联的,秒针转一圈引起分针运动一格,分针转一圈引起时针运动一格,因此应该使用一个定时器消息来处理指针的运动。若用三个定时器消息分别处理时针、分针和秒针的运动,就会使问题复杂化且不易实现三个指针联动的正确规律。采用一个定时器消息可以很容易实现指针联动算法。
用GetCurrentTime函数获取系统时间并赋初值,然后用定时器让其1秒一更新,实现指针的走动。
用PlaySound函数播放声音,最后加入图片和图标美化程序。
三、详细设计:
1、用AppWizard生成一个名为Clock的单文档(SDI)程序框架。
2、在ClockView.cpp中添加#include math.h,#
include MMSystem.h #pragma comment(lib,winmm.lib)和#define PI 3.1415926以备后用。
3、为了简化菜单,删除系统原有的“文件”、“编辑”等菜单项。编辑项目的菜单资源,在主框架窗口的主菜单(IDR_MAINFRAME)中添加一个名为“闹钟”的下拉菜单。并在菜单属性项中设定“设定闹钟”菜单的ID标号为ID_SET,“关闭闹钟”菜单的ID标号为ID_CLOSE。添加一个非弹出“报时”菜单,菜单的ID标号为ID_BAOSHI。
4、利用ClassWizard为视图类添加菜单命令处理函数。进入ClassWizard的Message Maps选项卡,选择Class Name项为CClockView类,在Object IDs列表框中分别选择新添加的菜单选项的ID,在Messages列表框中选择COMMAND,按下Add Function按钮添加成员函数。ClassWizard会为“设置闹钟”、“关闭闹钟”和“报时”菜单选项添加相应的消息响应函数OnSet( )、OnClose ( )和OnBaoshi ( )。
5、使用Developer Studio菜单的Insert / Resource…选项调出Insert Source对话框,为项目添加新的对话框资源。在对话框属性中,修改对话框名为“设置闹钟”。在对话框中增加用来输入时、分、秒的编辑框控件,如下图所示。
通过控件属性,将时、分、秒的编辑控件的ID分别改为IDC_HOUR、IDC_MINUTE和IDC_SECOND。
6、设计好这个对话框模板后,利用ClassWizard自动建立对话框类。进入ClassWizard后,它会发现已建立的对话框模板资源,并弹出一个对话框询问是否要为该对话框模板建立类。按下“OK”按钮,会弹出New Class对话框,在Name栏填写对话框类的名称CSetDlg后按“OK”按钮,即可为对话框创建一个对应的类。
7、利用ClassWizard为对话框类添加与各控件对应的数据成员。选择MemberVariables选项卡,确保Class Name项为对话框CSetAlarmDlg类,然后在选项卡下方的窗口中选择各控件的ID并按下“Add Variable…”按钮,为其添加对应成员变量,如表所示。
Control IDs Variable Type Member variable
name Variable
Range IDC_HOUR Int m_Hour 0-23 IDC_
您可能关注的文档
- 实验十三GUI布局管理和常用组件.doc
- 实验六植物种子生命力快速测定.ppt
- 实验十三选一表决器的设计.ppt
- 实验十二4实验十二基于Multisim逻辑电平测试器设计.doc
- 实验十八信号分析和处理.doc
- 实验一photoshop报纸广告.doc
- 实验四PKI技术之证书的应用.doc
- 实验四PCR技术在动物传染病诊断中作用.ppt
- 实验四用状态机实现ADC采样电路设计.doc
- 实验四过程函数触发器与程序包.doc
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
最近下载
- 山东省泰安市泰山区2023-2024学年上学期期中考试七年级英语试题.docx VIP
- 财务管理实务 财务管理实务 实训指导书.doc
- 2024年新人教版九年级上册化学全册教案.docx
- 上海通用汽车GVDP整车开发流程.pdf VIP
- 苏教版四年级上册同步奥数培优 第十四讲 智巧问题.pdf VIP
- 2024年江苏省苏州高新区招聘“两新”组织党建专职党务工作者6人历年【综合基础知识500题】高频考点模拟试题及参考答案解析.docx VIP
- 2024年武汉市东湖生态旅游风景区管理委员会公开招聘机关派遣制工作人员9人笔试备考试题及答案解析.docx VIP
- 人教版普通高中地理选择性必修2区域发展.pdf
- 人体解剖学常考重要知识点.doc
- 2023年江苏苏州相城区招考聘用两新组织党建专职党务工作者23人笔试历年难易错点考题荟萃附带答案详解.docx VIP
文档评论(0)