多时区时钟软件的设计与实现论文.docx
- 文档编号:2019819
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:31
- 大小:101.37KB
多时区时钟软件的设计与实现论文.docx
《多时区时钟软件的设计与实现论文.docx》由会员分享,可在线阅读,更多相关《多时区时钟软件的设计与实现论文.docx(31页珍藏版)》请在冰豆网上搜索。
多时区时钟软件的设计与实现论文
多时区时钟软件的设计与实现
摘要
进入21世纪以来,电脑用户数迅速增长,网上的跨国交流也越见频繁,由于时差的关系,不同国家的作息不同,因此需要经常进行时间的切换。
本系统主要论述如何利用VC++6.0应用程序开发环境和微软基础类库(MFC),设计与实现一个基于对话框的多时区时钟软件。
该软件主要包括时钟显示,闹钟报时以及计时器功能。
其中,时钟显示包含单时区时钟显示和多时区时钟显示,计时器可实现倒计时与正常计时。
利用MFC中与定时器相关的函数,实现计时和时钟的定时刷新;运用模运算实现不同时区的时间转换;采用多线程技术使三个时钟同时运行。
关键词:
VC++;MFC;时钟;多线程
ThedesignandrealizationofMulti_time_zoneClock
Abstract
Sincethe21stCentury,thenumberofcomputerusershasincreasedquickly,thecommunicationamongdifferentcountriesonInternetbecomesmoreandmorefrequent.Becauseofthetimedifference,everycountryhasitsowntimetable,youneedtoswitchthetimefrequently.
ThissystemhasdiscussedhowtodesignandrealizeaclockwithVisualC++6.0andMicrosoftFoundationClass.Thissoftwareprincipallycontainsthesefunctions:
thedisplayofclocks,alarmclockandtimer.Thefunctionofclockdisplaycontainsthedisplaysofsingletimezoneclocksandmultitimezoneclocks.Thetimercanrealizefunctionsofcountdownandclock.TakeuseofthefunctionsrelatedtothetimerinMicrosoftFoundationClasslibrarytoimplementtimeandregularupdateoftheclocks;thetimeconversionofdifferenttimezonecouldusemodulararithmetictorealize;andtakingadvantageofmultithreadingcouldmakethreeclocksrunatthesametime.
Keywords:
VisualC++;MFC;clock;multithreading
目录
论文总页数:
27页
1引言1
1.1课题背景及意义1
1.2课题的研究方法1
2程序功能描述1
2.1时钟显示1
2.1.1单时钟显示1
2.1.2多时钟显示1
2.2闹钟功能1
2.3计时器2
2.3.1倒计时2
2.3.2正常计时2
2.4开发环境2
2.4.1开发环境2
2.4.2VisualC++6.0简介2
3主要开发技术3
3.1MFC简介3
3.2MFC的线程3
3.2.1多线程概述3
3.2.2MFC的线程4
4程序功能实现5
4.1单时钟显示5
4.2多时钟显示10
4.3闹钟报时13
4.4计时器17
4.4.1倒计时17
4.4.2正常计时20
结论22
参考文献23
附录24
致谢26
声明27
1引言
1.1课题背景及意义
随着社会的发展,进入21世纪,个人电脑已经进入千家万户,人们已习惯于以互联网的方式交流,学习和娱乐。
网上跨国交流也越见频繁,由于时差的关系,人们在浏览国外新闻时经常需要进行时间的换算。
不同地区作息时间的不同也影响到人们的交流。
因此,一种能显示多个时区时间的时钟程序,将给人们的生活与交流带来极大地方便。
1.2课题的研究方法
通过对VC++可视化编程的学习以及各地区时间差的查询,本文主要采用MFC控件和多线程编程技术,以及三个与时间有关的函数SetTimer()、OnTimer()和KillTimer(),设计实现一个包含计时器功能和闹钟功能的多时区时钟程序。
2程序功能描述
软件主要实现三个功能:
时钟显示,闹钟以及计时器。
具体功能如下
2.1时钟显示
2.1.1单时钟显示
实现三个时区时钟(北京时间,纽约时间,伦敦时间)的单独显示。
在程序的主界面上,有一个日历,一个指针式时钟,一个时间显示框,一个确定按钮和一个取消按钮。
时钟切换:
单击菜单[时钟显示]->[单时钟]->北京时间/纽约时间/伦敦时间。
整点报时:
当时间为整点时,扬声器响相应次数。
日期显示:
在日历控件上显示相应地区的当前日期。
单击[关闭]按钮,关闭主程序。
2.1.2多时钟显示
实现三个时区时钟的同时显示及运行。
在主界面上,单击菜单[时钟显示]->[多时钟],弹出[多时钟显示]对话框。
此对话框上有三个时钟同时运行,每个时钟有一个相对应的数字时间显示。
单击{关闭}按钮,将关闭此对话框。
2.2闹钟功能
实现三个时区时钟的闹钟设置。
在主界面上单击{闹钟}菜单,将弹出[闹钟]对话框,此对话框有三个单选按钮,分别选择北京时间,纽约时间和伦敦时间,系统默认为北京时间,右边的指针式时钟以及数字时间随单选按钮而改变。
在报时设置框中设置时间后,点击[确定],则闹钟设置完成。
点击[取消],可取消报时。
2.3计时器
实现以秒为单位的倒计时和正常计时功能。
2.3.1倒计时
在主界面上单击菜单[计时器]->[倒计时],将弹出[倒计时]对话框,在编辑框中输入计时长度,单击[开始计时],编辑框置成不可用状态,倒计时开始。
在[剩余时间]栏,将显示剩余时间。
单击[重新计时],可取消倒计时,编辑框恢复可编辑状态。
2.3.2正常计时
在主界面上单击菜单[计时器]->[正常计时],将弹出[正常计时]对话框,点击[开始计时]按钮,在流逝的时间栏将显示时间数,[开始计时]按钮呈不可用状态,而[重新计时]可用。
点击[重新计时],取消计时,并将时间设为零秒,[开始计时]可用。
2.4开发环境
2.4.1开发环境
VisualC++6.0,Windows2000/XP
2.4.2VisualC++6.0简介
VisualC++是Microsoft公司推出的功能最强大、最复杂的语言产品之一,它是目前为止在W环境下进行大型软件开发的首选。
其具有如下特点。
●VisualC++的语法符合ANSIC++标准,并在此基础上针对性W操作系统增
加了一些语句。
●集成了MFC(MicrosoftFoundationClass)类库,MFC封装了WindowsAPI函数和消息,使程序员可以使用MFC高效率地开发各种应用程序。
●提供了MFCAppWizard,可方便地生成程序框架。
●提供了基于MFC的ClassWizard,通过它可以轻松地完成对各种MFC类的使
用与维护。
VisualC++6.0作为VisualStudio家族中的一员,是微软公司推出的以C++语言为基础,开发Win32应用程序(Windows95/98/2000/XP/NT)的、面向对象的可视化集成工具。
它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容。
3主要开发技术
程序主要采用MFC控件和多线程技术实现。
3.1MFC简介
MFC,微软基础类(MicrosoftFoundationClasses),是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinOS下开发人员使用的专业C++SDK(SDK,StandardSoftWareDevelopKit,专业软件开发平台),MFC就是挂在它之上的一个输助软件开发包,MFC类是微软为VC++专配的。
MFC是WinAPI与C++的结合,API,即微软提供的WinOS下应用程序的编程语言接口,是一种软件编程的规范,但不是程序开发语言本身,可以允许用户使用各种各样的第三方的编程语言来进行对WinOS下应用程序的开发,使这些被开发出来的应用程序能在WinOS下运行,比如VB,VC++,Java,Dehpi编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在WinOS的消息机制里。
MFC是一个很大的、扩展了的C++类层次结构,它能使开发Windows应用程序变得更加容易。
MFC是在整个Windows家族中都是兼容的,也就是说,无论是Windows3.x、Windows95还是WindowsNT,所使用的MFC是兼容的。
每当新的Windows版本出现时,MFC也会得到修改以便使旧的编译器和代码能在新的系统中工作。
MFC也会得到扩展,添加新的特性、变得更加容易建立应用程序。
3.2MFC的线程
3.2.1多线程概述
进程和线程都是操作系统的概念。
进程是应用程序的执行实例,每个进程是由私有的虚拟地址空间、代码、数据和其它各种系统资源组成,进程在运行过程中创建的资源随着进程的终止而被销毁,所使用的系统资源在进程终止时被释放或关闭。
线程是进程内部的一个执行单元。
系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程终止了,进程也就随之终止。
每一个进程至少有一个主执行线程,它无需由用户去主动创建,是由系统自动创建的。
用户根据需要在应用程序中创建其它线程,多个线程并发地运行于同一个进程中。
一个进程中的所有线程都在该进程的虚拟地址空间中,共同使用这些虚拟地址空间、全局变量和系统资源,所以线程间的通讯非常方便,多线程可以实现并行处理,避免了某项任务长时间占用CPU时间。
目前大多数的计算机都是单处理器(CPU)的,为了运行所有这些线程,操作系统为每个独立线程安排一些CPU时间,操作系统以轮换方式向线程提供时间片,好像这些线程都在同时运行。
3.2.2MFC的线程
MFC明确区分两种线程:
用户界面线程(Userinterfacethread)和工作者线程(Workerthread)。
用户界面线程一般用于处理用户输入并对用户产生的事件和消息作出应答。
工作者线程用于完成不要求用户输入的任务,如耗时计算。
线程的创建
1)创建用户界面线程
通过以下步骤创建一个用户界面线程:
∙从CWinThread派生一个有动态创建能力的类。
使用DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE宏来支持动态创建。
∙覆盖CWinThread的一些虚拟函数,其中,函数InitInstance是必须覆盖的,ExitIns
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多时 时钟 软件 设计 实现 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)