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

📄 jieshu.cpp

📁 “图书馆书籍检索与借阅管理系统”软件旨在为在校学生提供一个功能全面、使用方便的个人数据库系统
💻 CPP
字号:
// JieShu.cpp : implementation file
//

#include "stdafx.h"
#include "work.h"
#include "JieShu.h"
#include "CommonData.h"

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

/////////////////////////////////////////////////////////////////////////////
// CJieShu dialog


CJieShu::CJieShu(CWnd* pParent /*=NULL*/)
	: CDialog(CJieShu::IDD, pParent)
{
	//{{AFX_DATA_INIT(CJieShu)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CJieShu::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CJieShu)
	DDX_Control(pDX, IDC_JTIAOMA_EDIT, m_JTiaoMa_Edit);
	DDX_Control(pDX, IDC_JNUMBER_EDIT, m_JNumber_Edit);
	//}}AFX_DATA_MAP
}


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

/////////////////////////////////////////////////////////////////////////////
// CJieShu message handlers

void CJieShu::OnOK() 
{
	// TODO: Add extra validation here

	_RecordsetPtr m_pRecordset;
	m_pRecordset.CreateInstance("ADODB.Recordset");
	CString tiaoma,number,BIsReturned,BPreDate;
	m_JTiaoMa_Edit.GetWindowText(tiaoma);
	m_JNumber_Edit.GetWindowText(number);
	//看用户是否有未处理的违章
	CString QueryString="SELECT * FROM WeiZhang_Infor WHERE BSNumber='"+number+"'";
	m_pRecordset->Open((_bstr_t)QueryString,_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
		CString IsOK;
		IsOK=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("IsOK"));
		while(!m_pRecordset->adoEOF)
		{
			if(IsOK=="0")
			{
				MessageBox("该用户有未处理的违章记录!");
				m_pRecordset->Close();
				return;
			}
		}
	}
	m_pRecordset->Close();

	//执行操作3:若该书若被预约:若是被该用户预约的,则删除该预约记录;否则不能借
	QueryString="SELECT * FROM Book_Borrow_Infor WHERE BNTiaoMa='"+tiaoma+"'";
	m_pRecordset->Open((_bstr_t)QueryString,_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
		while(!m_pRecordset->adoEOF)
		{
			CString pdate,num;
			num=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BSNumber"));
			pdate=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BPreDate"));
			if(num==number&&pdate!="3000-1-1")//本人预约的书籍
			{
				 m_pRecordset->Delete(adAffectCurrent);  // 参数adAffectCurrent为删除当前记录
				 m_pRecordset->Update();
				 break;
			}
			if(num!=number&&pdate!="3000-1-1")//别人预约的书籍
			{
				MessageBox("该书为别人预约书籍!");
				m_pRecordset->Close();
				CDialog::OnOK();
				return;
			}
			m_pRecordset->MoveNext();
		}
	}
	m_pRecordset->Close();


	//该读者是否可以预约:欠款或借书、预约书之和达最大量5
	int booknumber=0;
	QueryString="SELECT * FROM Book_Borrow_Infor WHERE BSNumber='"+number+"'";
	m_pRecordset->Open((_bstr_t)QueryString,_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
	
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
		while(!m_pRecordset->adoEOF)
		{
			BPreDate=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BPreDate"));
			BIsReturned=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BIsReturned"));
			if(BIsReturned=="-1"||BPreDate!="3000-1-1")
			{
				booknumber++;
			}

			m_pRecordset->MoveNext();
		}
	}
	if(booknumber>=5)
	{
		MessageBox("该用户所借和所预约的书数量已达最大量……");
		m_pRecordset->Close();
		return;
	}
	m_pRecordset->Close();

	//执行借操作1:将要在Book_Borrow_Infor表中插入记录
	QueryString="SELECT * FROM Book_Borrow_Infor WHERE BSNumber='"+number+"'";
	m_pRecordset->Open((_bstr_t)QueryString,_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
	
	m_pRecordset->AddNew();
	CTime BBorrowDate=CTime::GetCurrentTime(),BReturnDate;
	CTimeSpan t(30,0,0,0);
	BReturnDate=BBorrowDate+t;
	int year,month,day;
	year=BBorrowDate.GetYear();month=BBorrowDate.GetMonth();day=BBorrowDate.GetDay();
	CString time;
	time.Format("%d-%d-%d",year,month,day);
	m_pRecordset->PutCollect("BNTiaoMa",(LPCTSTR)tiaoma);
	m_pRecordset->PutCollect("BBorrowDate",(LPCTSTR)time);
	m_pRecordset->PutCollect("BIsReturned","0");
	m_pRecordset->PutCollect("BPreDate","3000-1-1");
	m_pRecordset->PutCollect("BSNumber",(LPCTSTR)number);
	year=BReturnDate.GetYear();month=BReturnDate.GetMonth();day=BReturnDate.GetDay();
	time.Format("%d-%d-%d",year,month,day);
	m_pRecordset->PutCollect("BReturnDate",(LPCTSTR)time);
	m_pRecordset->Update();

	m_pRecordset->Close();

	//执行操作2:修改Book_Infor中的BCanBorrowDate字段
	QueryString="SELECT * FROM Book_Infor WHERE BNTiaoMa='"+tiaoma+"'";
	m_pRecordset->Open((_bstr_t)QueryString,_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
	m_pRecordset->MoveFirst();
	m_pRecordset->PutCollect("BCanBorrowDate",(LPCTSTR)time);
	m_pRecordset->Update();

	m_pRecordset->Close();

	MessageBox("借书成功");

	CDialog::OnOK();
}

⌨️ 快捷键说明

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