📄 bookmanage.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 + -