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

📄 borrowdlg.cpp

📁 图书管理系统,数据结构思想,用 C++编写,经测试,可用
💻 CPP
字号:
// BorrowDlg.cpp : implementation file
//

#include "stdafx.h"
#include "library.h"
#include "BorrowDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CBorrowDlg dialog


CBorrowDlg::CBorrowDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBorrowDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBorrowDlg)
	m_BookID = _T("");
	m_UserID = _T("");
	m_BookName = _T("");
	m_BorrowNum = 0;
	m_UserName = _T("");
	//}}AFX_DATA_INIT
}


void CBorrowDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBorrowDlg)
	DDX_Control(pDX, IDC_BORROW_VIEW, m_BorrowView);
	DDX_Text(pDX, IDC_BOOKID, m_BookID);
	DDX_Text(pDX, IDC_USERID, m_UserID);
	DDX_Text(pDX, IDC_BOOK_NAME, m_BookName);
	DDX_Text(pDX, IDC_BORROW_NUM, m_BorrowNum);
	DDX_Text(pDX, IDC_USER_NAME, m_UserName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBorrowDlg, CDialog)
	//{{AFX_MSG_MAP(CBorrowDlg)
	ON_BN_CLICKED(IDC_BORROW, OnBorrow)
	ON_NOTIFY(NM_CLICK, IDC_BORROW_VIEW, OnClickBorrowView)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBorrowDlg message handlers

void CBorrowDlg::OnBorrow() 
{
	// TODO: Add your control notification handler code here
	//完成借书操作
	UpdateData();
	
	if(CheckValid())
	{
		SaveData();
		TextShow();
		ListShow();
	}
	
}

BOOL CBorrowDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	//初始化浏览列表
	InitListView();
	//纪录管理员ID
	CLibraryApp *myApp=(CLibraryApp*)AfxGetApp();
	m_ManagerID=myApp->m_LoginID;
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

BOOL CBorrowDlg::CheckValid()
{
	//检查输入的合法性
	if(m_UserID.IsEmpty() || m_BookID.IsEmpty())
	{
		AfxMessageBox("请输入借书证号和书号!");
		return false;
	}

	m_UserSet.Open();
	m_UserSet.m_strFilter="userid='"+m_UserID+"'";
	m_UserSet.Requery();
	if(m_UserSet.GetRecordCount()==0)
	{
		AfxMessageBox("您的借书证号输入有误,请重新输入!");
		GetDlgItem(IDC_USERID)->SetFocus();
		m_UserSet.Close();
		return false;
	}

	m_BookSet.Open();
	m_BookSet.m_strFilter="bookid='"+m_BookID+"'";
	m_BookSet.Requery();
	if(m_BookSet.GetRecordCount()==0)
	{
		AfxMessageBox("您的书号输入有误,请重新输入!");
		GetDlgItem(IDC_BOOKID)->SetFocus();
		m_UserSet.Close();
		m_BookSet.Close();
		return false;
	}
	if(m_BookSet.m_borrowed)
	{
		AfxMessageBox("此书已借出,请重新输入!");
		GetDlgItem(IDC_BOOKID)->SetFocus();
		m_UserSet.Close();
		m_BookSet.Close();
		return false;
	}

	return true;

}

void CBorrowDlg::TextShow()
{
	//显示基本数据
	m_UserName=m_UserSet.m_username;
	m_BookName=m_BookSet.m_bookname;
	m_BorrowNum=m_UserSet.m_borrownum;
	UpdateData(false);

}

void CBorrowDlg::InitListView()
{
	//初始化浏览列表
	m_BorrowView.DeleteAllItems();
	m_BorrowView.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_BorrowView.InsertColumn(0,"借书证号");
	m_BorrowView.InsertColumn(1,"姓名");
	m_BorrowView.InsertColumn(2,"书号");
	m_BorrowView.InsertColumn(3,"书名");
	m_BorrowView.InsertColumn(4,"管理员号");
	m_BorrowView.InsertColumn(5,"借出日期");
	m_BorrowView.InsertColumn(6,"应还日期");

	m_BorrowView.SetColumnWidth(0,100);
	m_BorrowView.SetColumnWidth(1,70);
	m_BorrowView.SetColumnWidth(2,90);
	m_BorrowView.SetColumnWidth(3,120);
	m_BorrowView.SetColumnWidth(4,80);
	m_BorrowView.SetColumnWidth(5,90);
	m_BorrowView.SetColumnWidth(6,90);


}

void CBorrowDlg::ListShow()
{
	//在列表中显示用户的借书纪录
	int i=0;

	m_BorrowSet.m_strFilter="userid='"+m_UserSet.m_userid+"'";
	m_BorrowSet.Requery();
	m_BorrowSet.MoveFirst();

	m_BorrowView.DeleteAllItems();
	while(!m_BorrowSet.IsEOF())
	{
		m_BorrowView.InsertItem(i,m_BorrowSet.m_userid);
		m_BorrowView.SetItemText(i,1,m_UserSet.m_username);
		m_BorrowView.SetItemText(i,2,m_BorrowSet.m_bookid);
		m_BookSet.m_strFilter="bookid='"+m_BorrowSet.m_bookid+"'";
		m_BookSet.Requery();
		m_BorrowView.SetItemText(i,3,m_BookSet.m_bookname);
		m_BorrowView.SetItemText(i,4,m_BorrowSet.m_manageid);
		m_BorrowView.SetItemText(i,5,m_BorrowSet.m_borrowtime.Format("%Y-%m-%d"));
		m_BorrowView.SetItemText(i,6,m_BorrowSet.m_returntime.Format("%Y-%m-%d"));

		m_BorrowSet.MoveNext();
		i++;
	}

	m_UserSet.Close();
	m_BookSet.Close();
	m_BorrowSet.Close();

	m_BookID.Empty();
	UpdateData(false);

}

void CBorrowDlg::OnClickBorrowView(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	//当鼠标单击列表中的记录时,在基本数据区中显示相应数据
	POSITION pos;
	pos=m_BorrowView.GetFirstSelectedItemPosition();
	if(pos!=NULL)
	{
		int nItem=m_BorrowView.GetNextSelectedItem(pos);
		m_UserID=m_BorrowView.GetItemText(nItem,0);
		m_UserName=m_BorrowView.GetItemText(nItem,1);
		m_BookID=m_BorrowView.GetItemText(nItem,2);
		m_BookName=m_BorrowView.GetItemText(nItem,3);
		m_BorrowView.SetHotItem(nItem);
		
		UpdateData(false);
	}
	
	*pResult = 0;
}

void CBorrowDlg::SaveData()
{
	//将数据保存到数据库
	//设置借书期限是一个月
	CTimeSpan m_BorrowSpan(30,0,0,0);

	m_BorrowTime=CTime::GetCurrentTime();
	m_ReturnTime=m_BorrowTime+m_BorrowSpan;

	//保存数据到borrow表
	m_BorrowSet.Open();
	m_BorrowSet.AddNew();
	m_BorrowSet.m_userid=m_UserSet.m_userid;
	m_BorrowSet.m_bookid=m_BookSet.m_bookid;
	m_BorrowSet.m_manageid=m_ManagerID;
	m_BorrowSet.m_borrowtime=m_BorrowTime;
	m_BorrowSet.m_returntime=m_ReturnTime;
	m_BorrowSet.Update();

	//保存数据到user表
	m_UserSet.Edit();
	m_UserSet.m_borrownum+=1;
	m_UserSet.Update();

	//保存数据到book表
	m_BookSet.Edit();
	m_BookSet.m_borrowed=true;
	m_BookSet.Update();

}

⌨️ 快捷键说明

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