资源简介
用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语言端口扫描源码
相关资源
- 基于MFC的TCP调试助手源码95706
- 基于mfc的多线程文件传输
- MFC数字钟(基于VC6.0)
- VC++MFC小游戏实例教程(实例)+MFC类库
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- 基础qt数据库读取和显示
- Qt查询SQLite数据库
- mfc 调用redis
- MFC视频播放器源码(支持avi/wma/mp3等格
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- 宠物管理系统课程设计(源码+数据库
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
- MFC文档_视图_框架_模板结构体系深入
- 简单员工管理系统(适合初学MFC)
- VC操作SQLSERVER数据库
- c 操作sqlite数据库.cpp
- 简单职工管理系统(控制台源码+txt数
- MFC五子棋游戏
- MFC UDP编程
- MFC的异步网络通讯应用程序
- C++MFC模块讲解,黑发程序员课程整理
- 一个简单而强大的基于MFC的web server源
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- MFCaccess.rar
- VC++MFC课程设计的学生成绩管理系统
- MFC 日历控件 万年历 Calendar自绘
- CrystalDiskInfo-HDD/SSD硬盘信息,SMART信息
评论
共有 条评论