• 大小: 95KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: C/C++
  • 标签: mfc  数据库  

资源简介

用mfc做的一个图书馆管理系统,使用的数据库是mysql,可以直接运行,要自己连接odbc,压缩文件附带使用说明, 如果你是刚入门的菜鸟,这绝对是你的最佳选择。

资源截图

代码片段和文件信息

// BookBorrowDlg.cpp : implementation file
//

#include “stdafx.h“
#include “Library.h“
//以下头文件是手动添加的
#include “BookRS.h“
#include “BorrowRS.h“
#include “CardRS.h“
#include “StoreBookRS.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;
}
//如果有书过期,或者借书总数超过12本,也返回
if (AnyBookExpired(m_strCardNum)){
CDialog::OnOK();
return;
}

//判断该书是否允许外借(是否有预约等情况)
if (!AllowedToBorrow(m_strBookNum))
{
CDialog::OnOK();
return;
}
//以上情况都没有问题,才允许外借图书
if (BorrowBook(m_strCardNumm_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;
}

if (!m_cardSet.m_flag.IsEmpty()){
//正常使用中的卡号flag字段为NULL值
AfxMessageBox(“您的卡号已经注销或挂失“);
return false;
}


//以上情况均不存在表明是正常使用中的卡号
return true;


}

bool CBookBorrowDlg::AnyBookExpired(const CString &cardNum)
{

int nBooks=0;//用来记录借书总数
if (!m_borrowSet.IsOpen()){
m_borrowSet.Open();
}
m_borrowSet.m_strFilter.Format(“cno=%s and Return_date is null“cardNum);
m_borrowSet.Requery();
CTime  today=CTime::GetCurrentTime();//得到今天的日期
CTimeSpan diffDays;
while (!m_borrowSet.IsEOF()){
nBooks++;//总借书数+1
diffDays=today-m_borrowSet.m_Borrow_date;//计算今天与借书时间的间隔
//超过30天(近似一个月),则报错返回
if (diffDays.GetDays()>30){
AfxMessageBox(“您有书过期了“);
return TRUE;
}
m_borrowSet.MoveNext();
}
//借书总数不能超过12本
if (nBooks>12){
AfxMessageBox(“您借书总数超额了“);
return TRUE;
}
return FALSE;
}

bool CBookBorrowDlg::AllowedToBorrow(const CString &bookNum)
{
if (!m_storeBookSet.IsOpen()){
m_storeBookSet

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4947  2006-09-21 14:34  用ODBC方法实现图书流通管理功能案例\Library\BookBorrowDlg.cpp

     文件       1744  2006-09-18 20:57  用ODBC方法实现图书流通管理功能案例\Library\BookBorrowDlg.h

     文件       2552  2007-06-11 21:33  用ODBC方法实现图书流通管理功能案例\Library\BookReturnDlg.cpp

     文件       1449  2006-09-21 15:34  用ODBC方法实现图书流通管理功能案例\Library\BookReturnDlg.h

     文件       2238  2010-06-03 10:09  用ODBC方法实现图书流通管理功能案例\Library\BookRS.cpp

     文件       1580  2006-09-16 14:55  用ODBC方法实现图书流通管理功能案例\Library\BookRS.h

     文件       1341  2010-06-03 10:09  用ODBC方法实现图书流通管理功能案例\Library\BorrowRS.cpp

     文件       1314  2006-09-16 14:55  用ODBC方法实现图书流通管理功能案例\Library\BorrowRS.h

     文件       1224  2006-09-25 14:59  用ODBC方法实现图书流通管理功能案例\Library\CardLostDlg.cpp

     文件       1275  2006-09-25 14:59  用ODBC方法实现图书流通管理功能案例\Library\CardLostDlg.h

     文件       2497  2006-09-25 14:44  用ODBC方法实现图书流通管理功能案例\Library\CardNewDlg.cpp

     文件       1552  2006-09-25 14:38  用ODBC方法实现图书流通管理功能案例\Library\CardNewDlg.h

     文件       1361  2006-09-19 19:25  用ODBC方法实现图书流通管理功能案例\Library\CardRS.cpp

     文件       1308  2006-09-16 14:56  用ODBC方法实现图书流通管理功能案例\Library\CardRS.h

     文件      36832  2010-05-17 22:57  用ODBC方法实现图书流通管理功能案例\Library\Library.aps

     文件      10940  2010-06-03 10:26  用ODBC方法实现图书流通管理功能案例\Library\Library.clw

     文件       4227  2006-09-16 14:53  用ODBC方法实现图书流通管理功能案例\Library\Library.cpp

     文件       6577  2006-09-25 16:03  用ODBC方法实现图书流通管理功能案例\Library\Library.dsp

     文件        537  2006-09-16 16:17  用ODBC方法实现图书流通管理功能案例\Library\Library.dsw

     文件       1367  2006-09-16 14:53  用ODBC方法实现图书流通管理功能案例\Library\Library.h

     文件     279552  2010-06-03 10:26  用ODBC方法实现图书流通管理功能案例\Library\Library.ncb

     文件      62976  2010-06-03 10:26  用ODBC方法实现图书流通管理功能案例\Library\Library.opt

     文件       5427  2010-06-03 10:26  用ODBC方法实现图书流通管理功能案例\Library\Library.plg

     文件      21773  2006-09-25 14:58  用ODBC方法实现图书流通管理功能案例\Library\Library.rc

     文件       1762  2006-09-16 14:53  用ODBC方法实现图书流通管理功能案例\Library\LibraryDoc.cpp

     文件       1486  2006-09-16 14:53  用ODBC方法实现图书流通管理功能案例\Library\LibraryDoc.h

     文件       2609  2006-09-16 14:53  用ODBC方法实现图书流通管理功能案例\Library\LibraryView.cpp

     文件       1907  2006-09-16 14:53  用ODBC方法实现图书流通管理功能案例\Library\LibraryView.h

     文件       3379  2006-09-25 15:02  用ODBC方法实现图书流通管理功能案例\Library\MainFrm.cpp

     文件       1623  2006-09-25 15:01  用ODBC方法实现图书流通管理功能案例\Library\MainFrm.h

............此处省略32个文件信息

评论

共有 条评论