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

📄 netaccount.cpp

📁 银行系统的网上用户操作模块.用户可以以网页的形式注册银行帐号,并进行转帐操作.
💻 CPP
字号:
// NetAccount.cpp : 实现文件
//

#include "stdafx.h"
#include "BankService.h"
#include "NetAccount.h"
#include ".\netaccount.h"


// CNetAccount 对话框

IMPLEMENT_DYNAMIC(CNetAccount, CDialog)
CNetAccount::CNetAccount(CWnd* pParent /*=NULL*/)
	: CDialog(CNetAccount::IDD, pParent)
	, m_NetAccount(_T(""))
	, m_NetPwd(_T(""))
	, m_BankAccount(_T(""))
	, m_BankPwd(_T(""))
	, m_UserName(_T(""))
	, m_UserID(_T(""))
{
}

CNetAccount::~CNetAccount()
{
}

void CNetAccount::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT1, m_NetAccount);
	DDX_Text(pDX, IDC_EDIT2, m_NetPwd);
	DDX_Text(pDX, IDC_EDIT3, m_BankAccount);
	DDX_Text(pDX, IDC_EDIT4, m_BankPwd);
	DDX_Text(pDX, IDC_EDIT5, m_UserName);
	DDX_Text(pDX, IDC_EDIT6, m_UserID);
}


BEGIN_MESSAGE_MAP(CNetAccount, CDialog)
	ON_BN_CLICKED(IDC_Create_NetAcc, OnBnClickedCreateNetacc)

END_MESSAGE_MAP()


// CNetAccount 消息处理程序

void CNetAccount::OnBnClickedCreateNetacc()
{
	// TODO: 在此添加控件通知处理程序代码
	
//	m_NetAccount="acfa";
//	m_NetPwd="123";
//	m_BankAccount="1";
//	m_BankPwd="123";
//	m_UserName="CHB";
//	m_UserID="12345678";
//	UpdateData(false);

	//更新输入数据
	UpdateData();

	//查询银行账户是否存在
	CString strQuery="SELECT * FROM bankbook WHERE bankbook.accnum=\'" +m_BankAccount.Trim()+ "\' AND bankbook.password=\'" +m_BankPwd.Trim()+ "\' AND bankbook.uname=\'" +m_UserName.Trim()+ "\' AND bankbook.uid=\'" +m_UserID.Trim()+ "\'";
	pRst.CreateInstance("ADODB.Recordset");
	pRst->Open(_bstr_t(strQuery),_variant_t((IDispatch*)pConn,true),adOpenStatic,adLockOptimistic,adCmdText);

	//查询要申请的网上用户名是否已经注册
	CString strQuery2="SELECT * FROM NetBankBook WHERE NetBankBook.UserID=\'"+m_NetAccount.Trim()+"'";
	pRst2.CreateInstance("ADODB.Recordset");
	pRst2->Open(_bstr_t(strQuery2),_variant_t((IDispatch*)pConn,true),adOpenStatic,adLockOptimistic,adCmdText);

	//判断银行帐号是否存在
	if(pRst->rsEOF)
	{
		AfxMessageBox("银行帐号信息错误");
		return;
	}

	//判断网上帐号是否存在
	if(!pRst2->rsEOF)
	{
		AfxMessageBox("网上用户名已存在");
		return;
	}
	
	//全部信息合理,添加注册信息
	try
	{
		pRst2->AddNew();
		pRst2->put_Collect(_variant_t("UserID"),_variant_t(m_NetAccount.Trim()));
		pRst2->put_Collect(_variant_t("Password"),_variant_t(m_NetPwd.Trim()));
		pRst2->put_Collect(_variant_t("accnum"),_variant_t(m_BankAccount.Trim()));
		pRst2->put_Collect(_variant_t("accpwd"),_variant_t(m_BankPwd.Trim()));
		
		//生成口令卡
		randEx(99,36);
		CString pwdcard=Array2Str();
		DrawTableRect();
		pRst2->put_Collect(_variant_t("pwdcard"),_variant_t(pwdcard.Trim()));

		pRst2->Update();
	}
	catch(_com_error &e)
	{
		MessageBox(e.ErrorMessage()); 
		return ;
	}
	//AfxMessageBox("帐号创建成功!");

}

void CNetAccount::randEx(unsigned long MAX,unsigned long NUM) 
{
	unsigned long k=0;
	unsigned long j=0;
	time_t t;

	srand((unsigned) time(&t));//设置rand函数所用的启始种子值,以期每次产生的随机数序列均不相同。
	for (k=0;k<=NUM;k++)//定制随机数数量。
	{
		RandArray[k]=rand()%MAX;//定制随机数在0至最大值之间。
		if(RandArray[k]<10)
			RandArray[k]=RandArray[k]+10;
	}
}

//口令卡数组转换为字符串的函数
CString CNetAccount::Array2Str()
{
	int i;
	CString deal[ARRAYSIZE];
	CString rtnstr="";
	for(i=0;i<ARRAYSIZE;i++)
	{
		deal[i].Format("%d ",RandArray[i]);
		rtnstr=rtnstr+deal[i];
	}
	return rtnstr;
}

//口令卡的绘图函数
void CNetAccount::DrawTableRect()
{
	CDC* pDC=GetDC();
	int i,j;
#define XORG 300
#define YORG 65
	int x=XORG;
	int y=YORG+3;
	
	CString Mainstr="口令卡";
	pDC->TextOutA(x,y-18,Mainstr,Mainstr.GetLength());

	pDC->Rectangle(x,y,x+210,y+210);
	for(i=0;i<=6+1;i++)
	{
		pDC->MoveTo(x,y);
		pDC->LineTo(x+210,y);
		y=y+30;
	}
	
	y=YORG+3;
	for(i=0;i<=6+1;i++)
	{
		pDC->MoveTo(x,y);
		pDC->LineTo(x,y+210);
		x=x+30;
	}

	x=XORG+10;
	y=YORG+10;

	CString str;
	for(j=0;j<6;j++)
	{
		x=x+30;
		str.Format("%d",j+1);
		pDC->TextOutA(x,y,str,str.GetLength());
	}

	x=XORG+10;
	for(j=0;j<6;j++)
	{
		y=y+30;
		str.Format("%d",j+1);
		pDC->TextOutA(x,y,str,str.GetLength());
	}
	
	COLORREF color=RGB(0,128,0);
	pDC->SetTextColor(color);

	x=XORG+10;
	y=YORG+30+10;
	for(i=0;i<6;i++)
	{
		for(j=0;j<6;j++)
		{
			x=x+30;
			str.Format("%d",RandArray[i*6+j]);
			pDC->TextOutA(x,y,str,str.GetLength());
		}
		y=y+30;
		x=XORG+10;
	}

	ReleaseDC(pDC);
	
}

⌨️ 快捷键说明

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