C++秒表定时课设报告.docx
- 文档编号:10304795
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:18
- 大小:470.19KB
C++秒表定时课设报告.docx
《C++秒表定时课设报告.docx》由会员分享,可在线阅读,更多相关《C++秒表定时课设报告.docx(18页珍藏版)》请在冰豆网上搜索。
C++秒表定时课设报告
课程设计报告
课程名称:
编程类课程设计
课设项目:
简单秒表和定时器程序设计
专业班级:
姓名:
学号:
指导教成绩:
任务书
题目:
简单秒表和定时器程序设计
参数:
VisualC++面向对象
Windows应用程序
MicrosoftFoundationClass
数据库应用程序开发
要求:
1、具有秒表功能
2、具有定时功能
3、可拓展其他功能
日程安排:
2014-12-8---------------------布置任务
2013-12-9-------查阅资料并确定方案
2014-12-10--------------------编写程序
2014-12-11-----------写课程设计报告
2014-12-12--------------------答辩
目录
第一章概述---------------------------------------------------------------------------------------4
第二章设计思路及设计流-------------------------------------------------------------------5
第三章设计过程-------------------------------------------------------------------------------6
第四章设计成果及展示----------------------------------------------------------------------13
第五章参考文献-------------------------------------------------------------------------------14
附录程序-------------------------------------------------------------------------------------15
第一章概述
背景
秒表主要运用于对竞赛运动员完成全程运动的时间,可以精确到秒以下一个小数点。
后来,秒表也用于记录一些以记录时间长短为胜负判断依据的竞技比赛。
秒表可以准确的记录时间,并且还可以随时停止,停止之后还可以在原时间继续计时,因此受到广大用户的欢迎,秒表的程序也被广泛的加载到各种电子产品中,如电子表、计算机、手机等。
秒表虽然有机械秒表,但现在大多数产品为电子类的秒表了,所以设计一个秒表程序是非常实用的,也是非常有必要的。
程序功能介绍及系统设计介绍
(1)功能介绍
此简易秒表可以准确计时,并且可以随时停止,而且在停止后还可以在上次计时的基础上继续计时,使用很方便。
计时长度可达到24小时,这为有不同需要的使用者提供了方便。
再者,此秒表还可以设定初值,在需要时甚至可以当做时钟使用。
定时同样可以随意设置长短。
(2)系统开发介绍
本程序是开发的环境中操作系统是WindowsXP,调试软件为MicrosoftVisualC++6.0,应用MicrosoftVisualC++6.0中自带的类库MFC(MicrosoftFoundationClasses)进行开发。
这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
Microsoft的主力软件产品。
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualCvc++6.0++已成为专业程序员进行软件开发的首选工具。
虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用有很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。
所以实际中,更多的是以VisualC++6.0为平台。
VisualC++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。
其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。
这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。
进行试运行。
第二章设计思路及设
2.1设计思路
秒表的原理主要是下一位数满进制数后,上以为就增加一各单位。
各进制为:
100毫秒=1秒,60秒=1分,60分=1小时。
本人设计的秒表精确度为0.01秒,所以最后一位满100后就是1秒。
秒表还要适应大众的需要,要操作简单,避免不必要的控件,使人能够一看就能使用,即使从没用过秒表的人也能够一教就会使用,通过一个功能选择按钮实现秒表和定时的切换,同时计时时长还应该够长,24小时,以满足不同方面的使用的需要。
2.2设计流程
1、先在VisualC++6.0中建立一个MFC工程文件
2、在对话框中添加适当的编辑框、按钮、静态文件
3、设计按钮、并修改其相应的ID与Caption
4、选择和设置各控件的单击鼠标事件
5、为编辑框添加关联变量
6、添加public成员,进行成员初始化和完善控件的响应函数代码
流程:
新建工程-----添加控件------添加变量-------编写函数-------调试程序
-----修改功能------完善工程------完成课设报告
2.3流程图
秒表键定时键
开始键清零键
Y
Y
N
N
N
Y
第三章设计过程
1、打开软件
2、新建工程
在VisualC++中使用AppWizard的工程向导创建基于对话框的应用程序,工程名设置为lu
3、添加控件并设置属性
界面中有5个编辑框和5个命令按钮,一个组框。
设置控件属性,完成后如下结果,
4、添加变量
5、编写程序
(1)为“开始”按钮添加程序:
voidCMbdsDlg:
:
OnButton1()
{
if(m_function=="模式")
{
MessageBox("请选择功能!
");
}
m_sign=!
m_sign;
if(m_sign==true)
{
SetDlgItemText(IDC_BUTTON1,"暂停");
flag1=true;
flag2=false;
}
if(m_sign==false&&flag1==true)
{
SetDlgItemText(IDC_BUTTON1,"继续");
flag1=false;
flag2=true;
}
}
(2)为“清零”按钮添加程序:
voidCMbdsDlg:
:
OnButton2()
{
if(m_function=="模式")
{
MessageBox("请选择功能!
");
}
if(flag1==true&&flag2==false&&m_function!
="模式")
{
MessageBox("在计时,无法清零!
");
}
if(flag1==false&&flag2==true)
{
m_sign=false;
flag1=false;
flag2=false;
m_hour=0;
m_min=0;
m_sec=0;
m_msec=0;
SetDlgItemText(IDC_BUTTON1,"开始");
UpdateData(false);
}
}
(3)为“退出”按钮添加程序:
voidCMbdsDlg:
:
OnButton3()
{
CAboutDlgdlg;
dlg.DoModal();
OnOK();
}
(4)为“秒表”按钮添加程序:
voidCMbdsDlg:
:
OnButton4()
{
m_function="秒表";
m_sign=false;
flag1=false;
flag2=false;
m_hour=0;
m_min=0;
m_sec=0;
m_msec=0;
SetDlgItemText(IDC_BUTTON1,"开始");
UpdateData(false);
SetTimer(1,1,NULL);
}(5)为“定时”按钮添加程序:
voidCMbdsDlg:
:
OnButton5()
{
m_function="定时";
m_sign=false;
flag1=false;
flag2=false;
m_hour=0;
m_min=0;
m_sec=0;
m_msec=0;
SetDlgItemText(IDC_BUTTON1,"开始");
UpdateData(false);
SetTimer(1,1,NULL);
}(5)添加函数用以改变静态文本及编辑框内字体颜色,背景色
HBRUSHCMbdsDlg:
:
OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor)
{
HBRUSHhbr=CDialog:
:
OnCtlColor(pDC,pWnd,nCtlColor);
COLORREFbkColor=GetSysColor(COLOR_WINDOW);
bkColor=RGB(150,255,0);
staticCBrushm_Brush(RGB(85,111,181));
hbr=(HBRUSH)m_Brush;
CRectrcRect;
pWnd->GetClientRect(&rcRect);
pDC->SetBkColor(bkColor);
returnhbr;
}
(6)添加背景图片:
voidCMbdsDlg:
:
OnPaint()
{
CPaintDCdc(this);
CRectrect;//添加背景图片
GetClientRect(&rect);
CDCdcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmapbmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1);
BITMAPbitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap*pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
if(IsIconic())
{
CPaintDCdc(this);
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
dc.DrawIcon(x,y,m_hIcon);
}
else
{CDialog:
:
OnPaint();}
}
voidCMbdsDlg:
:
OnTimer(UINTnIDEvent)
{
//TODO:
Addyourmessagehandlercodehereand/orcalldefault
if(m_sign)
{
m_msec=m_msec+1;
if(m_msec>=60)
{
m_msec=0;
m_sec=m_sec+1;
}
if(m_sec>=60)
{
m_sec=0;
m_min=m_min+1;
}
if(m_min>=60)
{
m_min=0;
m_hour=m_hour+1;
}
if(m_function=="定时"&&m_sec==10&&m_msec==00)
{
m_sign=false;
MessageBox("时间到!
!
!
");
}
}
UpdateData(false);
CDialog:
:
OnTimer(nIDEvent);
}
第四章设计成果展示及结论
4.1设计成果
初始化页面
秒表选择+秒表计时
定时器选择+定时演示
4.2结论与总结
自从上了C++面向对象与可视化编程序设计课之后,我就一直想运用所学的知识进行应用程序的开发,希望能开发出属于自己的、实用的应用程序。
老师给我一周的时间,要求我们设计并制作出一个简单的秒表和定时应用程序。
在这次程序设计实践课中,我遇到了不少的问题。
首先,我在设计过程中不知道timer()函数具体如何编写,问旁边的同学,他们也不知道,参考书中也没有介绍。
于是,我只能到网上去查询,在各大网站寻找我需要的答案。
最后我在一个论坛上找到了网友们提供的解答,于是我顺利的编写好了timer()函数,并成功的运行了,确实是值得庆祝的一件事。
其次,在写定时程序时,定时中断程序我放在了“定时“按钮程序里,发现怎么都不好使,后来请教同学才明白,中断程序只有在按钮按下时才会响应,我的中断程序要等到按钮按下10秒后才响应,所以显示不出来,后来我把中断程序放在了timer里就好使了。
最后刚开始我写的程序是if(m_function=="定时"&&m_sec==10){m_sign=false;MessageBox("时间到!
!
!
");运行时发现弹出许多MessageBox,而且关不掉,后来我各种XX,还是没有发现,后来找到timer才想起来,毫秒没有设置。
改为if(m_function=="定时"&&m_sec==10&&m_msec==10){m_sign=false;MessageBox("时间到!
!
!
");便好使了。
总结
经过这次VC++MFC课程设计实践,我不仅巩固了自己所学的C++程序设计的知识,提高了自己的动手能力,而且还学会了如何去查资料,去找老师和同学帮忙,懂得了去充分的利用各种网上的资源来解决自己遇到的问题,提高自己的能力,拓展自己的知识。
参考文献
[1]黄维通VisualC++面向对象与可视化程序设计(第二版).北京:
清华大学出版社2003
[2]李博轩等.VisualC++6.0Internet开发指南.北京:
清华大学出版社,2000
[3]王华等.VisualC++编程实例与技巧.北京:
机械工业出版社,1999
[4]胡哲源.掌握VisualC++——MFC程序设计与剖析.北京:
清华大学出版社,2001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 秒表 定时 报告