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

📄 bookborrowdlg.cpp

📁 用MFC写的小型的图书馆系统 如 图书入库
💻 CPP
字号:
// BookBorrowDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Library.h"
//以下头文件是手工添加的
#include "BookRS.h"
#include "BorrowRS.h"
#include <afxdb.h> //手工添加以支持数据库

#include "CardRS.h"
//以上头文件是手工添加

#include "BookBorrowDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CBookBorrowDlg dialog


CBookBorrowDlg::CBookBorrowDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBookBorrowDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBookBorrowDlg)
	m_strBookNum = _T("");
	m_strCardNum = _T("");
	//}}AFX_DATA_INIT
}


void CBookBorrowDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBookBorrowDlg)
	DDX_Text(pDX, IDC_BOOK_NUM, m_strBookNum);
	DDX_Text(pDX, IDC_CARD_NUM, m_strCardNum);
	//}}AFX_DATA_MAP
}


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

/////////////////////////////////////////////////////////////////////////////
// CBookBorrowDlg message handlers

void CBookBorrowDlg::OnOK() 
{
   UpdateData();//将编辑框中的数据更新到成员变量m_strCardNum和m_strBookNum中
	
	//如果卡号不存在,则拒绝借书
	if (!IsValidCard(m_strCardNum)){
		CDialog::OnOK();//调用基类CDialog的OnOK函数来关闭对话框
		return;
	}
	//判断该书是否允许外借
	if (!AllowedToBorrow(m_strBookNum))
	{
		CDialog::OnOK();
		return;
	}
	//以上情况都没有问题,才允许外借图书
	if (BorrowBook(m_strCardNum,m_strBookNum)){
		AfxMessageBox("借书成功");
	}else{
		AfxMessageBox("借书失败");
	}	
	CDialog::OnOK();
}

bool CBookBorrowDlg::IsValidCard(const CString &cardNum)
{
	if (!m_cardSet.IsOpen()){
		m_cardSet.Open();
	}

	//指定查询条件Cno为用户卡号
	m_cardSet.m_strFilter.Format("cno=%s",cardNum);
	m_cardSet.Requery();
	//结果集为空则表明卡号不存在
	if (m_cardSet.IsEOF()){
		AfxMessageBox("该卡号不存在");
		return false;
	}
	
	//以上情况均不存在表明是正常使用中的卡号
	return true;
}

bool CBookBorrowDlg::AllowedToBorrow(const CString &bookNum)
{   
	if (!m_bookset.IsOpen()){
      m_bookset.Open();
	}
	m_bookset.m_strFilter.Format("bno=%s ",bookNum);
	m_bookset.Requery();
	//结果集为空则表明该书不存在
    if (m_bookset.IsEOF()){
		AfxMessageBox("该书不存在");
		return false;
	}
   if (m_bookset.m_stock==0){
		AfxMessageBox("该书已经借走");
		return false;
	}
     return true;
}

bool CBookBorrowDlg::BorrowBook(const CString &cardNum, const CString &bookNum)
{
    //将book表中的藏书总量-1
	if (!m_bookset.IsOpen()){
		m_bookset.Open();
	}	

	m_bookset.m_strFilter.Format("bno=%s",bookNum);
        m_bookset.Requery();
	m_bookset.Edit();
	m_bookset.m_stock=m_bookset.m_stock-1;
	m_bookset.Update();

	//在borrow表中增加一条借书记录
	if (!m_borrowSet.IsOpen()){
		m_borrowSet.Open();
	}	
	m_borrowSet.AddNew();
	m_borrowSet.m_bno=bookNum;
	m_borrowSet.m_cno=cardNum;
	m_borrowSet.m_borrow_date=CTime::GetCurrentTime();
	m_borrowSet.Update();
	m_borrowSet.Requery();
	return true;


}

⌨️ 快捷键说明

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