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

📄 libraryview.cpp

📁 一个图书管理程序 其中数据库部分需要自己设置 具体设置请参看源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	Cbook m_bookSet;
	m_bookSet.m_strFilter = "";
	Book_List(m_bookSet, m_BookListCtrl);

	// 查询所有借书证
	Ccard m_cardSet;
	m_cardSet.m_strFilter = "";
	Card_List(m_cardSet, m_CardListCtrl);
}


void ClibraryView::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	Book_List(m_bookSet, m_BookListCtrl);
	//如果是匿名登陆 不显示卡号信息
	if(!anonymous)
		Card_List(m_cardSet, m_CardListCtrl);
}



void ClibraryView::OnCardEnd()
{
	CCardDrop cardDropDlg;
	if(!this->anonymous)
		cardDropDlg.DoModal();
	Card_List(m_cardSet, m_CardListCtrl);
}



void ClibraryView::OnCardApply()
{
	CCardApply cardapplyDlg;
	if(!this->anonymous)
		cardapplyDlg.DoModal();
	Card_List(m_cardSet, m_CardListCtrl);
}

void ClibraryView::Onlogout()
{
	LoginDialog LoginDialog;
	bool LoginSuccess;
	bool Anonymous;
	CString tmp;
	
	CMainFrame *pMainWnd = (CMainFrame *)AfxGetMainWnd();

	if (this->anonymous)
	{
		// 显示登陆对话框
		while (true)
		{
			if ((LoginDialog.DoModal()) == IDOK)
			{
				if (LoginDialog.m_CheckAnonymous)  // 匿名登陆
				{
					// 设置主框架标题
					pMainWnd->SetWindowText((CString)("图书馆管理系统 - 匿名"));
					Anonymous = true;
					AdministratorID = "";
					break;
				}

				// 构造查询语句查询对应的管理员及其密码
				tmp = (CString)("id = '") + LoginDialog.m_administratorID + (CString)("' and password = '")
					+ LoginDialog.m_password + (CString)("'");
				m_pSet->m_strFilter = tmp;
				m_pSet->Requery();

				LoginSuccess = !m_pSet->IsEOF();   // 若管理员不存在或密码错误,则m_pSet->IsEOF() = true

				if (LoginSuccess)
				{
					// 设置主框架标题
					pMainWnd->SetWindowText((CString)("图书馆管理系统 - ") + LoginDialog.m_administratorID);
					this->anonymous = false;
					AdministratorID = LoginDialog.m_administratorID;
					break;
				}
				else
					MessageBox(_T("管理员不存在或密码错误!"), _T("错误"), MB_OK | MB_ICONERROR);
			}
			else
				return;
		}
		// 借书卡列表控件无效
		GetDlgItem(IDC_STATIC_CARD)->EnableWindow(TRUE);
		GetDlgItem(IDC_LIST_CARD)->EnableWindow(TRUE);
		m_cardSet.m_strFilter = (CString)"";
		Card_List(m_cardSet, m_CardListCtrl);
	}
	else
	{
		if (MessageBox(_T("确认要注销吗?"), _T("确认"), MB_OKCANCEL | MB_ICONQUESTION) == IDOK)
		{
			// 设置主框架标题
			this->anonymous=true;
			pMainWnd->SetWindowText((CString)("图书馆管理系统 - 匿名"));
			AdministratorID = "";
			m_CardListCtrl.DeleteAllItems();
			// 借书卡列表控件无效
			GetDlgItem(IDC_STATIC_CARD)->EnableWindow(FALSE);
			GetDlgItem(IDC_LIST_CARD)->EnableWindow(FALSE);
		}
	}
}


void ClibraryView::OnBookBorrow()
{
	CBookBorrowDlg bookBorrowDlg;
	if(!this->anonymous)
		bookBorrowDlg.DoModal();
	Book_List(m_bookSet, m_BookListCtrl);
}

void ClibraryView::OnBookReturn()
{
	CBookReturnDlg bookReturnDlg;
	if(!this->anonymous)
		bookReturnDlg.DoModal();
	Book_List(m_bookSet, m_BookListCtrl);
}
void ClibraryView::OnBookIn()
{
	CBookinDlg bookinDlg;
	if(!this->anonymous)
		bookinDlg.DoModal();
	Book_List(m_bookSet, m_BookListCtrl);
}
void ClibraryView::OnBookDelete()
{
	BookDeleteDlg bookdelete;
	if(!this->anonymous)
		bookdelete.DoModal();
		
	Book_List(m_bookSet, m_BookListCtrl);
}
void ClibraryView::OnQueryBook()
{
	BookQueryDlg bookquery;
		bookquery.DoModal();
}
void ClibraryView::OnExit()
{
	if (MessageBox(_T("确实要退出吗?"), _T("确认"), MB_OKCANCEL | MB_ICONQUESTION) == IDOK)
		exit(0);
}

void ClibraryView::OnQueryuser()
{
	BookBorrowed bookborrowed;
	bookborrowed.DoModal();
}

void ClibraryView::OnAppAbout()
{
	// TODO: 在此添加命令处理程序代码
	Info info;
	info.DoModal();
}

void ClibraryView::OnBatchin()
{
	Cbook m_bookSet;
	char buf[200];
	CString book[9];
	CString FilePathName,str,year,price,total,stock;
	int i;
	double d;
	CFileDialog OpenBookListFile(true, (CString)"list", NULL, 
		OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, (CString)"List File (*.list)|*.list||", NULL, sizeof(OPENFILENAME));
	
	if(OpenBookListFile.DoModal()==IDOK)
	FilePathName=OpenBookListFile.GetPathName();
	ifstream in(FilePathName);

	if(!m_bookSet.IsOpen())
		m_bookSet.Open();
	
	in.getline(buf,200);
	str=(CString)buf;
	int f=((!str.IsEmpty())?1:0);
	
	while(!str.IsEmpty())
	{
		i=str.Find((CString)",");
		book[0]=str.Mid(1,i-1); 
		str.Delete(0,i+1);
		for(int j=1;j<9;j++)
		{
			i=str.Find((CString)",");
			book[j]=str.Left (i); 
			str.Delete(0,i+1);
		}

		m_bookSet.m_strFilter.Format((CString)"bno like '%s'",book[0]);
		m_bookSet.Requery();
		if(!m_bookSet.IsEOF())
		{
			m_bookSet.Edit();
			m_bookSet.m_total+=atoi((LPSTR)(LPCTSTR)book[7]);
			m_bookSet.m_stock+=atoi((LPSTR)(LPCTSTR)book[8]);
			m_bookSet.Update();

		}
		else
		{
			m_bookSet.AddNew();
			m_bookSet.m_bno=book[0];
			m_bookSet.m_category=((!book[1].IsEmpty())?book[1]:(CString)"无");
			m_bookSet.m_title=((!book[2].IsEmpty())?book[2]:(CString)"无");
			m_bookSet.m_press=((!book[3].IsEmpty())?book[3]:(CString)"无");
		
			_AtlSimpleFloatParse(book[4], d);
			m_bookSet.m_year=(long)d;
	
			m_bookSet.m_author=((!book[5].IsEmpty())?book[5]:(CString)"无");	
		
			_AtlSimpleFloatParse(book[6], d);
			m_bookSet.m_price=d;

			_AtlSimpleFloatParse(book[7], d);
			m_bookSet.m_total=(long)d;
			_AtlSimpleFloatParse(book[8], d);
			m_bookSet.m_stock = (long)d;
		
	
			m_bookSet.Update();
		}
		str.Empty();
		in.getline(buf,200);
		str=(CString)buf;
	}
	m_bookSet.Close();
	if(f)
		AfxMessageBox((CString)"入库成功");
	
	
	return;
	
}



//匿名登陆时选项不可选
void ClibraryView::OnUpdateCardApply(CCmdUI *pCmdUI)
{
	if (this->anonymous)
		pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdateLogOut(CCmdUI *pCmdUI)
{
	if (this->anonymous)
		pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdateBookBorrow(CCmdUI *pCmdUI)
{
	if (this->anonymous)
		pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdateCardEnd(CCmdUI *pCmdUI)
{
	if (this->anonymous)
		pCmdUI->Enable(FALSE);
}

void ClibraryView::OnUpdateBookIn(CCmdUI *pCmdUI)
{
	if (this->anonymous)
		pCmdUI->Enable(FALSE);
}

void ClibraryView::OnUpdateBookReturn(CCmdUI *pCmdUI)
{
	if (this->anonymous)
		pCmdUI->Enable(FALSE);
}


void ClibraryView::OnUpdatelogout(CCmdUI *pCmdUI)
{
	if (AdministratorID == "")
		pCmdUI->SetText(_T("登陆(&L)"));
	else
		pCmdUI->SetText(_T("注销"));
}


void ClibraryView::OnUpdateBookDelete(CCmdUI *pCmdUI)
{
	if (this->anonymous)
		pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdateBatchin(CCmdUI *pCmdUI)
{
	if (this->anonymous)
		pCmdUI->Enable(FALSE);
}


static bool _AtlSimpleFloatParse(LPCTSTR lpszText, double &d)
{
	ATLASSERT(lpszText != NULL);
	while (*lpszText == ' '|| *lpszText == '\t')
		lpszText++;

	TCHAR chFirst = lpszText[0];
	d = _tcstod(lpszText,(LPTSTR*)&lpszText);
	if (d == 0.0 && chFirst != '0')
		return FALSE;    // could not convert

	while (*lpszText == ' '|| *lpszText == '\t')
		lpszText++;

	if (*lpszText != '\0')
		return FALSE;    // not terminated properly
	return TRUE;   
}



⌨️ 快捷键说明

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