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

📄 usereg.cpp

📁 各个银行
💻 CPP
字号:
// USEREG.cpp : implementation file
//

#include "stdafx.h"
#include "BankSystem.h"
#include "USEREG.h"
#include "BankSystemDlg.h"
#include "ADOConn.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CUSEREG dialog


CUSEREG::CUSEREG(CWnd* pParent /*=NULL*/)
	: CDialog(CUSEREG::IDD, pParent)
{
	//{{AFX_DATA_INIT(CUSEREG)
	m_year = 0;
	m_tel = _T("");
	m_pwd = _T("");
	m_name = _T("");
	m_money = 0.0f;
	m_id = _T("");
	m_addr = _T("");
	//}}AFX_DATA_INIT
}


void CUSEREG::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUSEREG)
	DDX_Control(pDX, IDC_BANKSELECT, m_bankselect);
	DDX_Control(pDX, IDC_TYPESELECT, m_type);
	DDX_Control(pDX, IDC_MESSAGE, m_messageshow);
	DDX_Control(pDX, IDC_CUNTYPE, m_cuntype);
	DDX_Text(pDX, IDC_YEARNUM, m_year);
	DDX_Text(pDX, IDC_USERTEL, m_tel);
	DDX_Text(pDX, IDC_USERPWD, m_pwd);
	DDX_Text(pDX, IDC_USERNAME, m_name);
	DDX_Text(pDX, IDC_USERMONEY, m_money);
	DDX_Text(pDX, IDC_USERID, m_id);
	DDX_Text(pDX, IDC_USERADDR, m_addr);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUSEREG, CDialog)
	//{{AFX_MSG_MAP(CUSEREG)
	ON_BN_CLICKED(IDC_SURE, OnSure)
	ON_BN_CLICKED(IDC_PRINT, OnPrint)
	ON_CBN_SELCHANGE(IDC_CUNTYPE, OnSelchangeCuntype)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUSEREG message handlers

BOOL CUSEREG::OnInitDialog() 
{
	CDialog::OnInitDialog();
	ADOConn Conn;
	Conn.OnInitADOConn();
	IsReg=0;
	if(theApp.IsonID!="")//防止重复开户
	{    IsReg=1;
         userID=theApp.IsonID;
		 m_name=theApp.IsonName;
		 m_id=theApp.IsonPID;
         m_addr=theApp.IsonAddr;
         m_tel=theApp.IsonTel;
		 GetDlgItem(IDC_USERNAME)->SetWindowText(m_name);
		 GetDlgItem(IDC_USERNAME)->EnableWindow(false);
		 GetDlgItem(IDC_USERID)->SetWindowText(m_id);
		 GetDlgItem(IDC_USERID)->EnableWindow(false);
         GetDlgItem(IDC_USERADDR)->SetWindowText(m_addr);
		 GetDlgItem(IDC_USERADDR)->EnableWindow(false);
		 GetDlgItem(IDC_USERTEL)->SetWindowText(m_tel);
		 GetDlgItem(IDC_USERTEL)->EnableWindow(false);

	  }
	 GetDlgItem(IDOK)->ShowWindow(SW_HIDE);//隐藏完成
	 GetDlgItem(IDC_PRINT)->ShowWindow(SW_HIDE);//隐藏打印
	// GetDlgItem(IDC_YEARNUM)->EnableWindow(false);

	_RecordsetPtr pRst1,pRst2;
	pRst1.CreateInstance(_uuidof(Recordset));
    pRst2.CreateInstance(_uuidof(Recordset));
    Conn.OnInitADOConn();

	CString sql1,sql2;
	sql1.Format("select bankName from bankInfo");
	sql2.Format("select MoneyName from MoneyOP");
	try
	{
		pRst1=Conn.Execute((_bstr_t)sql1);
		pRst2=Conn.Execute((_bstr_t)sql2);
	}
	catch(_com_error &e)
	{
		AfxMessageBox(e.Description());
	}
	while(!pRst1->adoEOF)
	{
		CString sName;
		_variant_t v=pRst1->GetCollect("bankName");
		sName=v.bstrVal;
		m_bankselect.AddString(sName);
		pRst1->MoveNext();
	}
		while(!pRst2->adoEOF)
	{
		CString sName;
		_variant_t v=pRst2->GetCollect("MoneyName");
		sName=v.bstrVal;
		m_type.AddString(sName);
		pRst2->MoveNext();
	}
		pRst1->Close();
		
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CUSEREG::OnSelchangeCuntype() 
{
  int iPos1=m_cuntype.GetCurSel();//当前选中的行。
   if(iPos1!=-1)
      m_cuntype.GetLBText(iPos1,sCun);
   if(sCun=="活期")
   {
   GetDlgItem(IDC_YEARNUM)->EnableWindow(false);
   }
   else
	   GetDlgItem(IDC_YEARNUM)->EnableWindow(true);
}

int CUSEREG::haveCard(CString sCode)
{
	
	ADOConn Conn;
    Conn.OnInitADOConn();
    CString sql;
	_RecordsetPtr pRst;
	sql.Format("select * from cardInfo where cardId=\'%s\'",sCode);
    pRst=Conn.GetRecordset((_bstr_t)sql);
	if(pRst->adoEOF)
	return 0;
	else
    return 1;
}
int CUSEREG::haveUser(CString UserID)
{
	ADOConn Conn;
    Conn.OnInitADOConn();
    CString sql;
	_RecordsetPtr pRst;
	sql.Format("select * from userInfo where userID=\'%s\'",UserID);
    pRst=Conn.GetRecordset((_bstr_t)sql);
	if(pRst->adoEOF)
	return 0;
	else
    return 1;
}
void CUSEREG::OnSure() 
{
  //sCun=sBank=sType="";
 this->UpdateData(TRUE); 
 
 int iPos2=m_bankselect.GetCurSel();
 int iPos3=m_type.GetCurSel();

 if(iPos2!=-1)
	  m_bankselect.GetLBText(iPos2,sBank);
 if(iPos3!=-1)
	 m_type.GetLBText(iPos3,sType);
   if(m_name=="")
   {
       AfxMessageBox("名字不能为空");
	   GetDlgItem(IDC_USERNAME)->SetFocus();
	   return;
   }
   if(m_id=="")
   {
       AfxMessageBox("身份证不能为空");
	   GetDlgItem(IDC_USERID)->SetFocus();
	   return;
   }
   if(m_money==0)
   {
       AfxMessageBox("存款金额不能为空");
	   GetDlgItem(IDC_USERMONEY)->SetFocus();
	   return;
   }
  if(sCun=="")
   {
       AfxMessageBox("存款类型不能为空");
	   GetDlgItem(IDC_CUNTYPE)->SetFocus();
	   return;
   }
  if(sCun=="死期")
  {
	  if(m_year==0)
	  {
         AfxMessageBox("填写存款期限");
		 return;
	  }
  }
  if(m_pwd=="")
  {
     AfxMessageBox("密码不能为空");
	 return;
  }
	 if(sBank=="")
   {
       AfxMessageBox("银行不能为空");
	   GetDlgItem(IDC_BANKSELECT)->SetFocus();
	   return;
   }
	  if(sType=="")
   {
       AfxMessageBox("存款货币不能为空");
	   GetDlgItem(IDC_TYPESELECT)->SetFocus();
	   return;
   }
	  
 GetDlgItem(IDOK)->ShowWindow(!SW_HIDE);//显示完成
 GetDlgItem(IDC_SURE)->ShowWindow(SW_HIDE);//隐藏确定 
GetDlgItem(IDC_PRINT)->ShowWindow(!SW_HIDE);//显示打印 
 
//生成卡号并显示到message上
ADOConn Conn;
Conn.OnInitADOConn();
_RecordsetPtr pRst;
pRst.CreateInstance(_uuidof(Recordset));
CString sql;
sql.Format("select * from bankInfo");
pRst=Conn.Execute((_bstr_t)sql);

//找到所属银行和前4位代码
while (!pRst->adoEOF)
{

	_variant_t v=pRst->GetCollect("bankName");
    sName=v.bstrVal;
	if(sName==sBank)
	{
		v=pRst->GetCollect("bankId");
		bID=v.bstrVal;
     break;
	}
	pRst->MoveNext();
}
char CH_CODE[]="0123456789";
int SIZE_CODE=4;
int SIZE_USERID=3;
srand((unsigned)time(NULL));

while(1)
{
  for(int i=0;i!=SIZE_CODE;++i)
  {
    int x=rand()%(sizeof(CH_CODE)-1);
	sCardCode+=CH_CODE[x];
  }
   sCode=bID+sCardCode;//sCode 为用户的最后的卡号
   if(haveCard(sCode))
		 continue;
	 else break;
 
}
while(1)
{
  for(int i=0;i!=SIZE_USERID;++i)
  {
    int x=rand()%(sizeof(CH_CODE)-1);
	userID+=CH_CODE[x];
  }
   if(haveUser(userID))
		 continue;
	 else break;
 
}
if(theApp.IsonID!="")//防止重复开户
{
         userID=theApp.IsonID;
}

//MessageBox(sCode);
Money.Format("%f",m_money);
Year.Format("%d",m_year);
sInfo="姓名:"+m_name+"  "+userID+"\r\n";
sInfo+="卡号"+sCode+"\r\n"+"密码:"+m_pwd+"\r\n";
sInfo+="金额:"+Money+"\r\n";
if(sCun=="活期")
	sInfo+="币种:"+sType+"\r\n"+" 类型:"+sCun+"\r\n";
else
    sInfo+="币种:"+sType+"\r\n"+" 类型:"+sCun+"\r\n"+"期限"+Year+"年\r\n";
sInfo+="银行:"+sBank+"\r\n";
//查找出利率
sql.Format("select * from MoneyOP");

    pRst=Conn.Execute((_bstr_t)sql);

CString sTy;
_variant_t v;
while(!pRst->adoEOF)
{ 
	v=pRst->GetCollect("MoneyName");
    sTy=v.bstrVal;
	    if(sTy==sType)
		{
           if(sCun=="活期")
           v=pRst->GetCollect("Live");
           else if(sCun=="死期")
           v=pRst->GetCollect("dead");
		   break;
		}
           pRst->MoveNext();
}	

curr=v.dblVal;
Cur.Format("%f",curr);


sInfo+="年利率:"+Cur+"\r\n";

//显示所有信息
 GetDlgItem(IDC_MESSAGE)->SetWindowText(sInfo);
 

}

void CUSEREG::OnOK() 
{
	CString Time;
   CTime t=CTime::GetCurrentTime();
   int iYear,iMonth,iDay,iHour,iMin;
   iYear=t.GetYear();
   iMonth=t.GetMonth();
   iDay=t.GetDay();
   iHour=t.GetHour();
   iMin=t.GetMinute();
   Time.Format("%d/%d/%d/%d/%d",iYear,iMonth,iDay,iHour,iMin);
	// 保存到数据库上
	ADOConn Conn;
	_RecordsetPtr pRst;
	pRst.CreateInstance(_uuidof(Recordset));
	Conn.OnInitADOConn();
CString sql,Loss,sql1;
Loss="使用中";
sql.Format("insert into cardInfo(cardId,cardPwd,curType,saveType,balance,IsReportLoss,yearCurr,year,cardOwer,regtime,optime)\
		   values(\'%s\',\'%s\',\'%s\',\'%s\',\'%f\',\'%s\',\'%f\',\'%d\',\'%s\',\'%s\',\'%s\')",sCode,m_pwd,sType,sCun,m_money,Loss,curr,m_year,userID,Time,Time);

sql1.Format("insert into userInfo(userID,userName,userPId,userTel,userAddr,bankId) \
			values(\'%s\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\')",userID,m_name,m_id,m_tel,m_addr,bID);

    pRst=Conn.Execute((_bstr_t)sql);
    if(IsReg==0)
    pRst=Conn.Execute((_bstr_t)sql1);

	CDialog::OnOK();
}

void CUSEREG::OnPrint() 
{
	// 打印到记事本上
	CString  sPath="c://user.txt";
	CFile   file;
	file.Open(sPath,CFile::modeCreate|CFile::modeWrite);
	file.Write(sInfo,sInfo.GetLength());
	file.Close();
	::ShellExecute(NULL,"open",sPath,NULL,NULL,SW_SHOWNORMAL);
}

⌨️ 快捷键说明

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