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

📄 clientinquiremachine.cpp

📁 模拟银行信用卡的业务流程
💻 CPP
字号:
// ClientInquireMachine.cpp : implementation file
//

#include "stdafx.h"
#include "CreditCardManagement.h"
#include "ClientInquireMachine.h"

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

/////////////////////////////////////////////////////////////////////////////
// CClientInquireMachine dialog


CClientInquireMachine::CClientInquireMachine(CWnd* pParent /*=NULL*/)
	: CDialog(CClientInquireMachine::IDD, pParent)
{
	//{{AFX_DATA_INIT(CClientInquireMachine)
	m_wXiaofeizongshu = 0;
	m_wInshukajibiaoshi = _T("");
	m_wInyonghuming = _T("");
	m_wInmima = _T("");
	//}}AFX_DATA_INIT
}


void CClientInquireMachine::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CClientInquireMachine)
	DDX_Control(pDX, IDC_LIST2, m_wXinyongkaxinxi);
	DDX_Control(pDX, IDC_LIST1, m_wYonghuxiaofeixinxi);
	DDX_Text(pDX, IDC_EDIT4, m_wXiaofeizongshu);
	DDV_MinMaxLong(pDX, m_wXiaofeizongshu, 0, 10000000);
	DDX_Text(pDX, IDC_EDIT1, m_wInshukajibiaoshi);
	DDV_MaxChars(pDX, m_wInshukajibiaoshi, 5);
	DDX_Text(pDX, IDC_EDIT2, m_wInyonghuming);
	DDV_MaxChars(pDX, m_wInyonghuming, 20);
	DDX_Text(pDX, IDC_EDIT3, m_wInmima);
	DDV_MaxChars(pDX, m_wInmima, 20);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CClientInquireMachine, CDialog)
	//{{AFX_MSG_MAP(CClientInquireMachine)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CClientInquireMachine message handlers

void CClientInquireMachine::OnOK() 
{
	// 客户按刷卡机查询
	m_pCCIMS=&CCIMS;  //指向数据库指针,定义见头文件
	char filter[100];
	UpdateData(TRUE); //接收用户输入信息
	int nItem;
    m_wYonghuxiaofeixinxi.DeleteAllItems();
    for(int dc=0;dc<4;dc++){ m_wYonghuxiaofeixinxi.DeleteColumn(0);}
    m_wXinyongkaxinxi.DeleteAllItems();
    for(dc=0;dc<5;dc++){ m_wXinyongkaxinxi.DeleteColumn(0);}
    //初始化CListCtrl_End
    //显示列
    //刷卡机标识+信用卡号+消费额+消费时间
    LV_COLUMN lvcolumn;
    lvcolumn.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;
    lvcolumn.fmt=LVCFMT_CENTER;
    lvcolumn.cx=75;
    lvcolumn.iSubItem=0;
    lvcolumn.pszText="刷卡机标识";
    m_wYonghuxiaofeixinxi.InsertColumn(0,&lvcolumn);
    lvcolumn.iSubItem=1;
    lvcolumn.pszText="信用卡号";
    m_wYonghuxiaofeixinxi.InsertColumn(1,&lvcolumn);
    lvcolumn.iSubItem=2;
    lvcolumn.pszText="消费额";
    m_wYonghuxiaofeixinxi.InsertColumn(2,&lvcolumn);
    lvcolumn.iSubItem=3;
    lvcolumn.pszText="消费时间";
    m_wYonghuxiaofeixinxi.InsertColumn(3,&lvcolumn);
	m_pCCIMS=&CCIMS; //以下对数据库进行操作
    m_pCCIMS->m_strFilter="[账户文件].[身份证号]=[用户文件].[身份证号]";
	m_pCCIMS->m_strFilter+="and";
    wsprintf(filter,"[用户文件].[用户名]='%s'",m_wInyonghuming);
	m_pCCIMS->m_strFilter+=filter;
	m_pCCIMS->m_strFilter+="and";
    wsprintf(filter,"[用户文件].[密码]='%s'", m_wInmima);
	m_pCCIMS->m_strFilter+=filter;
    m_pCCIMS->Open();  //取数据库中所需要的值
	if(m_pCCIMS->IsEOF()) //取值未成功,既无该用户
	{
		MessageBox("无该用户或用户名和密码不匹配");
		m_pCCIMS->Close();
	}else  //有该用户
	{
		 CString ss=m_pCCIMS->m_column1;//记录身份证号
		 CString *zz;
		 zz=new CString[100];
		 int z=0;
		 while(!m_pCCIMS->IsEOF())
		 {
		  zz[z]=m_pCCIMS->m_column7;//记录该用户的所有帐号
		 m_pCCIMS->MoveNext();
		 z=z+1;
		 }
		 m_pCCIMS->Close();
		 m_pCCIMSs=&CCIMSs; //对刷卡机文件操作的指针
		 wsprintf(filter,"[刷卡机文件].[刷卡机标识]='%s'",m_wInshukajibiaoshi);
         m_pCCIMSs->m_strFilter=filter;
         m_pCCIMSs->Open();
		 if(m_pCCIMSs->IsEOF())//无该刷卡机
		 {
			 MessageBox("该刷卡机不存在");
			 m_pCCIMSs->Close();
		 }else//有此刷卡机
		 {
			 CString shuakaji=m_pCCIMSs->m_column1;
			 m_pCCIMSs->Close();
		     m_pCCIMSxf=&CCIMSxf;//对消费文件操作的指针
		     wsprintf(filter,"[消费文件].[身份证号]='%s'",ss);
		     m_pCCIMSxf->m_strFilter=filter;
		     m_pCCIMSxf->m_strFilter+="and";
		     wsprintf(filter,"[消费文件].[刷卡机标识]='%s'",shuakaji);
		     m_pCCIMSxf->m_strFilter+=filter;
             m_pCCIMSxf->Open();
		     if( m_pCCIMSxf->IsEOF())//用户无消费记录
			 {
			   MessageBox("没有该用户的消费记录");
			   m_pCCIMSxf->Close();
			 }else//用户有消费记录
		 {
			long e=0;//记录消费总额变量
			while(! m_pCCIMSxf->IsEOF())
			{
				   //显示
				   LV_ITEM lvitem;
	               lvitem.mask=LVIF_TEXT|LVIF_IMAGE|LVIF_STATE;
	               lvitem.state=0;
	               lvitem.stateMask=0;
				   //插入刷卡机标识
                   nItem=m_wYonghuxiaofeixinxi.InsertItem(0,m_pCCIMSxf->m_column8);
				   //插入信用卡号
                   m_wYonghuxiaofeixinxi.SetItemText(nItem,1,m_pCCIMSxf->m_column2);
				   //插入消费额
				   CString temp;
	               temp.Format("%d",m_pCCIMSxf->m_column3);
                   m_wYonghuxiaofeixinxi.SetItemText(nItem,2,temp);
				   //插入消费时间
				   CString s=m_pCCIMSxf->m_column6.Format("%A,%B%d,%Y");
                   m_wYonghuxiaofeixinxi.SetItemText(nItem,3,s); 
				   e=e+m_pCCIMSxf->m_column3;
				   //显示
				   m_pCCIMSxf->MoveNext();
			}
			m_wXiaofeizongshu=e;
			 }
		    m_pCCIMSxf->Close();
	        //显示银行标识+账号+信用卡号+是否透支+是否挂失
		    LV_COLUMN lvcolumn;
	        lvcolumn.mask=LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;
            lvcolumn.fmt=LVCFMT_CENTER;
	        lvcolumn.cx=75;
            lvcolumn.iSubItem=0;
	        lvcolumn.pszText="银行标识";
	        m_wXinyongkaxinxi.InsertColumn(0,&lvcolumn);
            lvcolumn.iSubItem=1;
	        lvcolumn.pszText="帐号";
	        m_wXinyongkaxinxi.InsertColumn(1,&lvcolumn);
	        lvcolumn.iSubItem=2;
	        lvcolumn.pszText="信用卡号";
	        m_wXinyongkaxinxi.InsertColumn(2,&lvcolumn);
	        lvcolumn.iSubItem=3;
	        lvcolumn.pszText="是否透支";
	        m_wXinyongkaxinxi.InsertColumn(3,&lvcolumn);
		    lvcolumn.iSubItem=4;
			lvcolumn.pszText="是否挂失";
			m_wXinyongkaxinxi.InsertColumn(4,&lvcolumn);
		    int i=0;
		    while(i<z)
			{
		       m_pCCIMSx=&CCIMSx;
		       m_pCCIMSx->m_strFilter.Empty();
		       m_pCCIMSx->Open();
		       if( (m_pCCIMSx->IsEOF())&&(i==z))//i==z 表最后一个帐号
			   {
			      MessageBox("没有该用户的消费记录");
			      m_pCCIMSx->Close();
			   }else
			   {
         	     while(! m_pCCIMSx->IsEOF())
				 {
				    if(m_pCCIMSx->m_column5==zz[i])
					{		 
				       //显示信用卡各属性
				       LV_ITEM lvitem;
	                   lvitem.mask=LVIF_TEXT|LVIF_IMAGE|LVIF_STATE;
	                   lvitem.state=0;
	                   lvitem.stateMask=0;
				       //插入银行标识
                       nItem=m_wXinyongkaxinxi.InsertItem(0, m_pCCIMSx->m_column1);
				       //插入帐号
                       m_wXinyongkaxinxi.SetItemText(nItem,1, m_pCCIMSx->m_column5);
				       //插入信用卡号
                       m_wXinyongkaxinxi.SetItemText(nItem,2, m_pCCIMSx->m_column2);
				       //插入是否透支
				       CString temp;
	                   if (m_pCCIMSx->m_column3==0) temp="否";
				       else temp="是";
                       m_wXinyongkaxinxi.SetItemText(nItem,3,temp);
				       //插入是否挂失
				       if (m_pCCIMSx->m_column4==0) temp="否";
				       else temp="是";
                       m_wXinyongkaxinxi.SetItemText(nItem,4,temp); 
					}
				     m_pCCIMSx->MoveNext();
				 }
			   }
		       i=i+1;
			}
		    m_pCCIMSx->Close();
            
            UpdateData(FALSE);//把值传出
		  }
	 } 
 }

⌨️ 快捷键说明

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