student_borrow.cpp

来自「图书管理系统 语言:C,SQL 功能:实现图书管理的数字化」· C++ 代码 · 共 163 行

CPP
163
字号
// Student_borrow.cpp : implementation file
//

#include "stdafx.h"
#include "Library.h"
#include "Student_borrow.h"

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

/////////////////////////////////////////////////////////////////////////////
// Student_borrow dialog


Student_borrow::Student_borrow(CWnd* pParent /*=NULL*/)
	: CDialog(Student_borrow::IDD, pParent)
{
	//{{AFX_DATA_INIT(Student_borrow)
	m_sid_temp = _T("");
	m_isbn_temp = _T("");
	//}}AFX_DATA_INIT
}


void Student_borrow::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Student_borrow)
	DDX_Text(pDX, IDC_EDIT1, m_sid_temp);
	DDX_Text(pDX, IDC_EDIT2, m_isbn_temp);
	//}}AFX_DATA_MAP
}


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

/////////////////////////////////////////////////////////////////////////////
// Student_borrow message handlers

void Student_borrow::OnOK() 
{
	// TODO: Add extra validation here
	
	//CDialog::OnOK();
	UpdateData(TRUE);
	if(m_sid_temp.IsEmpty()||m_isbn_temp.IsEmpty())
	{
	   MessageBox("请输入完整信息!");
	   return;
	}
	CString str="Sid='"+m_sid_temp+"'";
	student_set.m_strFilter=str;
	student_set.Open();//打开数据集合
	int recount=student_set.GetRecordCount();
	if(recount==0)
	{
		MessageBox("无此学生记录!");
		student_set.m_strFilter="";
		UpdateData(FALSE);
		student_set.Close();
		return;
	}
	else
	{
		CString str2="ISBN='"+m_isbn_temp+"'";
		book_set.m_strFilter=str2;
		book_set.Open();
		int recount2=book_set.GetRecordCount();
		if(recount2==0)
		{
			MessageBox("无此图书记录!");
			book_set.m_strFilter="";
			student_set.m_strFilter="";//
			UpdateData(FALSE);
			book_set.Close();
			student_set.Close();
			
			return;
			
		}
		else//既有此学生又有此图书的情况
		{
			borrow_set.Open();
			//int recount3=borrow_set.GetRecordCount();
			while(!borrow_set.IsEOF())//判断是否为结尾
			{	
				if(m_sid_temp==borrow_set.m_Sid)
				{
					CTime t1=borrow_set.m_Senttime.GetTime();
					CTime t2=CTime::GetCurrentTime();
					if(t1<t2)//超期不能借阅图书
					{
						MessageBox("该读者有图书超期未还,不能借阅图书!");
						borrow_set.m_strFilter="";
						student_set.m_strFilter="";//
						book_set.m_strFilter="";
					
						borrow_set.MoveFirst();
						borrow_set.Requery();
						UpdateData(FALSE);
						book_set.Close();
						student_set.Close();
						borrow_set.Close();
						return;
					}				
				}
				borrow_set.MoveNext();				
			}
			borrow_set.MoveFirst();
			borrow_set.Requery();
		 
			if(book_set.m_B_left_count>=1)//如果还有库存
			{
				book_set.Edit();
				book_set.m_ISBN=book_set.m_ISBN;
				book_set.m_Bname=book_set.m_Bname;
				book_set.m_Bauthor=book_set.m_Bauthor;
				book_set.m_Bpublisher=book_set.m_Bpublisher;
				book_set.m_Bprice=book_set.m_Bprice;
				book_set.m_B_total_count=book_set.m_B_total_count;
				book_set.m_B_borrow_count++;
				book_set.Update();//增加和更新都要执行一个此操作
				book_set.MoveFirst();
    			book_set.Requery();
				book_set.m_strFilter="";

				borrow_set.AddNew();
				CTime t2=CTime::GetCurrentTime();
				borrow_set.m_Sid=m_sid_temp;
				borrow_set.m_ISBN=m_isbn_temp;
				borrow_set.m_Borrowtime=t2;
				borrow_set.Update();//增加和更新都要执行一个此操作
				borrow_set.MoveFirst();
    			borrow_set.Requery();
				borrow_set.m_strFilter="";
				
				MessageBox("借阅操作已成功!");
				}
			else
				MessageBox("没有库存!");

			UpdateData(FALSE);
			borrow_set.Close();
			book_set.Close();
			student_set.Close();
			return;
		}
	}
}

void Student_borrow::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

⌨️ 快捷键说明

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