小闹钟程序课题设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小闹钟VC程序设计报告

一课题内容和要求

【问题描述】编一个小闹钟程序,运行后可以在指定的时间到时,在屏幕上显示提醒时间到的语句,并使得电脑发出了悠扬的乐声。

二需求分析

1显示时间功能,即时显示当前时间

2闹钟功能,能够根据用户设置的时间来提醒用户,可以通过声音或者文字提醒3时间设置功能,提供菜单设置时钟的当前时间和提醒的闹钟时间

4界面设计,可模拟真实钟表界面,也可用数字界面显示,要求美观,实用和个性化

三详细设计

该程序拥有四个源文件,分别为AlarmClock.cpp AlarmClockDlg.cpp RingDlg.cpp stdafx.cpp

如下图所示:

其作用分别为

AlarmClock.cpp : 定义应用程序的类行为

AlarmClockDlg.cpp : 实现文件

RingDlg.cpp : 实现文件

另外

stdafx.cpp : 只包括标准包含文件的源文件

AlarmClock.pch 将作为预编译头

stdafx.obj 将包含预编译类型信息

在闹钟设置面板上添加当前时间,通过文本框和标签设置需要设置的闹钟的时,分,秒。设置列表框提供闹钟的音乐供以选择。设置开关按钮决定闹钟的开始和结束

另外于MFC播放背景音乐的问题解决如下:

1.建立一个MFC的程序

2.插入资源(插入->资源->定制->(输入WAVA))

3.在resources中找到"WAVA"文件,打开有个IDR_WAVA1

4.右键->import->浏览后缀名为.wav的音频文件

5.在CMainFrame中的OnCreate函数中加入语句

PlaySound(MAKEINTRESOURCE(IDR_WAVE2),AfxGetResourceHandle(), SND_ASYNC|SND_RESOURCE|SND_NODEFAULT|SND_LOOP);

6.在该文件的上方,添加头文件#include "mmsystem.h"

7.(工程->设置->连接->库模板添加"winmm.lib")

8.编译运行即可

程序源代码

#include"stdafx.h"

#include"AlarmClock.h"

#include"AlarmClockDlg.h"

#include"afxdialogex.h"

#include"RingDlg.h"

#include

#ifdef_DEBUG

#define new DEBUG_NEW

#endif

// CAlarmClockDlg 对话框

CAlarmClockDlg::CAlarmClockDlg(CWnd* pParent/*=NULL*/)

: CDialogEx(CAlarmClockDlg::IDD, pParent)

, m_hour(0)

, m_minute(0)

, m_second(0)

, m_prompt(_T("时间到,闹钟响!"))

{

//载入图标

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

//默认响铃时长60秒

iLast = 60;

//试听状态标识为FALSE

isListening = FALSE;

//响铃状态标识为FALSE

//isRinging = FALSE; //用不到

}

void CAlarmClockDlg::DoDataExchange(CDataExchange* pDX) {

CDialogEx::DoDataExchange(pDX);

DDX_Control(pDX, IDC_STA TIC_NOW, m_static_now);

DDX_Control(pDX, IDC_STA TIC_LEFT, m_static_left);

DDX_Text(pDX, IDC_EDIT_H, m_hour);

DDV_MinMaxUInt(pDX, m_hour, 0, 23);

DDX_Text(pDX, IDC_EDIT_M, m_minute);

DDV_MinMaxUInt(pDX, m_minute, 0, 59);

DDX_Text(pDX, IDC_EDIT_S, m_second);

DDV_MinMaxUInt(pDX, m_second, 0, 59);

DDX_Control(pDX, IDC_SPIN_H, m_spin_h);

DDX_Control(pDX, IDC_SPIN_M, m_spin_m);

DDX_Control(pDX, IDC_SPIN_S, m_spin_s);

DDX_Text(pDX, IDC_EDIT_PROMPT, m_prompt);

DDV_MaxChars(pDX, m_prompt, 18);

DDX_Control(pDX, IDC_COMBO_RING, m_combo_ring); }

BEGIN_MESSAGE_MAP(CAlarmClockDlg, CDialogEx)

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_WM_CTLCOLOR()

ON_WM_TIMER()

ON_NOTIFY(NM_CLICK, IDC_SYSLINK1, &CAlarmClockDlg::OnNMClickSyslink1) ON_BN_CLICKED(IDC_BUTTON_RESET,

&CAlarmClockDlg::OnBnClickedButtonReset)

ON_EN_CHANGE(IDC_EDIT_H, &CAlarmClockDlg::SetAlarmTime)

ON_EN_CHANGE(IDC_EDIT_M, &CAlarmClockDlg::SetAlarmTime)

ON_EN_CHANGE(IDC_EDIT_S, &CAlarmClockDlg::SetAlarmTime)

ON_BN_CLICKED(IDC_BUTTON_LISTEN,

&CAlarmClockDlg::OnBnClickedButtonListen)

ON_CBN_SELCHANGE(IDC_COMBO_RING,

&CAlarmClockDlg::OnCbnSelchangeComboRing)

ON_MESSAGE(WM_NC, &CAlarmClockDlg::OnNotifyIcon)

ON_WM_SYSCOMMAND()

ON_WM_CLOSE()

// ON_WM_DESTROY()

END_MESSAGE_MAP()

// CAlarmClockDlg 消息处理程序

BOOL CAlarmClockDlg::OnInitDialog()

{

CDialogEx::OnInitDialog();

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动

相关文档
最新文档