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

📄 bookmanage.cpp

📁 适合MFC初学者学习
💻 CPP
字号:
//BookManage.cpp: implementation of the CBookManage class.

////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "LLL.h"
#include "BookManage.h"
#include "MyLibrarySet.h"


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

////////////////////////////////////////////////////////////////////
//Construction/Destruction
////////////////////////////////////////////////////////////////////
//构造函数,从数据库表中进行初始化
CBook::CBook(CMyLibrarySet &rs)
{
	m_uID = rs.m_ID;
	m_strnumber = rs.m_number;
	m_strtype = rs.m_type;
	m_strname = rs.m_name;
	m_strauther = rs.m_auther;
	m_strediter = rs.m_editer;
	m_strinlibrary = rs.m_inlibrary;
	m_strborrowman = rs.m_borrowman;

}

//复制构造函数
CBook::CBook(const CBook &other)
{
	m_uID = other.m_uID;
	m_strnumber = other.m_strnumber;
	m_strtype = other.m_strtype;
	m_strname = other.m_strname;
	m_strauther = other.m_strauther;
	m_strediter = other.m_strediter;
	m_strinlibrary = other.m_strinlibrary;
	m_strborrowman = other.m_strborrowman;
}

//默认构造函数
CBookManage::CBookManage()
{
	m_nMaxID = -1;
	CMyLibrarySet rs;
	rs.Open();
	while (!rs.IsEOF())
	{
		CBook *pBook = new CBook(rs);
		m_bookInfos[pBook->m_uID] = pBook;
		if ((int)pBook->m_uID > m_nMaxID)
		{
			m_nMaxID = pBook->m_uID;
		}
		rs.MoveNext();
	}
	rs.Close();
}

//析构函数
CBookManage::~CBookManage()
{
	POSITION pos = m_bookInfos.GetStartPosition();
	while (NULL != pos)
	{
		UINT uID;
		CBook * pBook = NULL;
		m_bookInfos.GetNextAssoc(pos, uID, pBook);
		delete pBook;
	}
	m_bookInfos.RemoveAll();
}

//对添加的新用户获取新的ID
UINT CBookManage::GetNewID()
{
	return ++m_nMaxID;
}

//添加用户函数,返回ID,ID=-1表示出错
UINT CBookManage::AddBook(CString strnumber, CString strtype, CString strname, 
						  CString strauther, CString strediter)
{
	//检查是否用重复的用户名
	for (POSITION pos = m_bookInfos.GetStartPosition(); NULL != pos; )
	{
		UINT uID;
		CBook * pBook;
		m_bookInfos.GetNextAssoc(pos, uID, pBook);
		if (pBook->m_strname == strname)
		{
			return -1;
		}
	}

	//防止内存分配出错
	CBook * pBook = new CBook;
	if (NULL == pBook)
	{
		return -1;
	}

	pBook->m_uID = GetNewID();
	pBook->m_strnumber = strnumber;
	pBook->m_strtype = strtype;
	pBook->m_strname = strname;
	pBook->m_strauther = strauther;
	pBook->m_strediter = strediter;
	pBook->m_strinlibrary = "是";
	pBook->m_strborrowman = "";
	//存进数据库
	CMyLibrarySet rs;
	rs.AddBook(*pBook);
	m_bookInfos[pBook->m_uID] = pBook;

	return pBook->m_uID;
}

//编辑用户信息
bool CBookManage::EditBook(CBook newBook)
{
	for (POSITION pos = m_bookInfos.GetStartPosition(); NULL != pos; )
	{
		UINT uID;
		CBook * pBook;
		m_bookInfos.GetNextAssoc(pos, uID, pBook);
	}

	CBook * pBook = m_bookInfos[pBook->m_uID];
	if (NULL == pBook)
	{
		return false;//没有找到要修改的书籍
	}


	CMyLibrarySet rs;
	if (!rs.EditBook(newBook))//执行表修改函数,错误返回fales,正确则继续进行
	{
		delete pBook;
		return false;
	}

	*pBook = newBook;
	return true;
}

bool CBookManage::DeleteBook(UINT uID)
{
	CBook * pBook = m_bookInfos[uID];

	CMyLibrarySet rs;
	if (!rs.DeleteBook(uID))
	{
		return false;
	}
	delete pBook;
	return m_bookInfos.RemoveKey(uID);
}

⌨️ 快捷键说明

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