資源簡介
用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個文件信息
- 上一篇:基于視頻車輛測速代碼
- 下一篇:C語言端口掃描源碼
評論
共有 條評論