⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 withdraw5.cpp

📁 一个模仿ATM提款机的MFC程序
💻 CPP
字号:
// Withdraw5.cpp : implementation file
//

#include "stdafx.h"
#include "ATM.h"
#include "Withdraw5.h"
#include "Ref.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CWithdraw dialog


CWithdraw::CWithdraw(CWnd* pParent /*=NULL*/)
	: CDialog(CWithdraw::IDD, pParent)
{
	//{{AFX_DATA_INIT(CWithdraw)
	m_amount = 0;
	
	//}}AFX_DATA_INIT
}


void CWithdraw::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CWithdraw)
	DDX_Control(pDX, IDC_EDIT1, m_amountedit);
	DDX_Text(pDX, IDC_EDIT1, m_amount);
	//}}AFX_DATA_MAP
	SetTimer(0,15000,NULL);
}


BEGIN_MESSAGE_MAP(CWithdraw, CDialog)
	//{{AFX_MSG_MAP(CWithdraw)
	ON_BN_CLICKED(IDC_CORRECT, OnCorrect)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CWithdraw message handlers

void CWithdraw::OnOK() 
{
	// TODO: Add extra validation here
	KillTimer(0);
	CSuggest suggestdlg;
	UpdateData(TRUE);
		if(m_amount%50==0)  //输入检测,只能输入50元的整数倍
		{
		//	
			if(m_amount>1000)   //一次取款不能超过1000元
			{
				  suggestdlg.m_suggest="一次取款不能超过1000元";
				   suggestdlg.DoModal();
			}
			else
			{
				if(CurrentAcnt *pCyrntAcnt=CurrentAcnt::searchAccount(CEnterPaswd::m_password))//搜寻检测用户密码
				{
					double remain=pCyrntAcnt->AcntBalan();				
					if(m_amount>remain-1)//余额不足
					{
						suggestdlg.m_suggest="余额不足,请酌量提取!";
						suggestdlg.DoModal();
					}
					else							//交易成功
					{
						remain-=m_amount;
						pCyrntAcnt->reloadbalance(remain-pCyrntAcnt->GetWithdrawFee(m_amount));	//收费依据属地跟属行而定		
						CPrint printdlg;			//打印凭条
						printdlg.DoModal();
						Ref Ref1;
						Ref1.Refresh(pCyrntAcnt->GetacntNo(),remain,m_amount,"取款");
						
						CDialog::OnOK();
					}
				}
				else
				{
					CPassworderror passerrordlg;	//密码错误
					passerrordlg.DoModal();
					CEnterPaswd enterpaswdlg;
					enterpaswdlg.m_password="";		//重输密码
					enterpaswdlg.DoModal();
					CDialog::OnOK();
				}
			}
			
		}
		else                                   //输入错误
		{
			suggestdlg.m_suggest="请您输入50元的整数倍";
			suggestdlg.DoModal();
		}
		m_amount=0;
		UpdateData(FALSE);
	//CDialog::OnOK();
}

void CWithdraw::OnCorrect() 
{
	// TODO: Add your control notification handler code here
	m_amountedit.SetWindowText("");
	
}

BOOL CWithdraw::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	switch(pMsg->message)
	{
	case WM_KEYUP:SetTimer(0,15000,NULL);break;
	case WM_KEYDOWN:KillTimer(0);break;
	}
	return CDialog::PreTranslateMessage(pMsg);
}

void CWithdraw::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	Beep(1000,500);
	KillTimer(0);
	CAlarm alarmdlg;
	alarmdlg.DoModal();
	CDialog::OnTimer(nIDEvent);
}

void CWithdraw::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -