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

📄 admingldialog.cpp

📁 一个小型的图书管理系统,用到了access数据库,其中有三种权限的用户登陆这个系统,每种用户将拥有不同的权限,用户密码和帐户打开程序中的access便可知道.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// AdminGLDialog.cpp : implementation file
//

#include "stdafx.h"
#include "Book.h"
#include "AdminGLDialog.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAdminGLDialog dialog


CAdminGLDialog::CAdminGLDialog(CWnd* pParent /*=NULL*/)
	: CDialog(CAdminGLDialog::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAdminGLDialog)
	m_bookclass = _T("");
	m_bookpublish = _T("");
	m_stuclass = _T("");
	m_zhquanxian = _T("");
	m_zhxqx = _T("");
	m_bookauthor = _T("");
	m_bookname = _T("");
	m_bookno = 0;
	m_booknumber = 0;
	m_bookvalue = 0.0;
	m_bookborrow = 0;
	m_stuname = _T("");
	m_stuno = 0;
	m_zhmima = _T("");
	m_zhmmqr = _T("");
	m_zhname = _T("");
	m_zhxmima = _T("");
	m_zhxname = _T("");
	m_zhxnewname = _T("");
	m_zhxnewmmqr = _T("");
	m_publishdate = 0;
	//}}AFX_DATA_INIT
}


void CAdminGLDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAdminGLDialog)
	DDX_Control(pDX, IDC_BUTTONZHXEMP, m_zhxemp);
	DDX_Control(pDX, IDC_BUTTONZHEMPTY, m_zhempty);
	DDX_Control(pDX, IDC_LISTSHOWSTUDENT, m_studentlist);
	DDX_Control(pDX, IDC_LISTSHOWBOOK, m_booklist);
	DDX_Control(pDX, IDC_BUTTONZHDEL, m_zhdel);
	DDX_Control(pDX, IDC_BUTTONZHCHG, m_zhchg);
	DDX_Control(pDX, IDC_BUTTONZHADD, m_zhadd);
	DDX_Control(pDX, IDC_BUTTONSTSHOW, m_stshow);
	DDX_Control(pDX, IDC_BUTTONSTDEL, m_stdel);
	DDX_Control(pDX, IDC_BUTTONSTADD, m_stadd);
	DDX_Control(pDX, IDC_BUTTONBKSHOW, m_bkshow);
	DDX_Control(pDX, IDC_BUTTONBKQK, m_bkqk);
	DDX_Control(pDX, IDC_BUTTONBKDELETE, m_bkdelete);
	DDX_Control(pDX, IDC_BUTTONBKADD, m_bkadd);
	DDX_CBString(pDX, IDC_COMBOBOOKCLASS, m_bookclass);
	DDX_CBString(pDX, IDC_COMBOBOOKPUBLISH, m_bookpublish);
	DDX_CBString(pDX, IDC_COMBOSTCLASS, m_stuclass);
	DDX_CBString(pDX, IDC_COMBOZHQX, m_zhquanxian);
	DDX_CBString(pDX, IDC_COMBOZHXQX, m_zhxqx);
	DDX_Text(pDX, IDC_EDITAUTHOR, m_bookauthor);
	DDX_Text(pDX, IDC_EDITBOOKNAME, m_bookname);
	DDX_Text(pDX, IDC_EDITBOOKNO, m_bookno);
	DDX_Text(pDX, IDC_EDITBOOKNUMBER, m_booknumber);
	DDV_MinMaxInt(pDX, m_booknumber, 0, 10000);
	DDX_Text(pDX, IDC_EDITBOOKVALUE, m_bookvalue);
	DDV_MinMaxDouble(pDX, m_bookvalue, 0., 10000.);
	DDX_Text(pDX, IDC_EDITBORROWED, m_bookborrow);
	DDX_Text(pDX, IDC_EDITSTNAME, m_stuname);
	DDX_Text(pDX, IDC_EDITSTNO, m_stuno);
	DDX_Text(pDX, IDC_EDITZHMIMA, m_zhmima);
	DDX_Text(pDX, IDC_EDITZHMMQR, m_zhmmqr);
	DDX_Text(pDX, IDC_EDITZHNAME, m_zhname);
	DDX_Text(pDX, IDC_EDITZHXMIMA, m_zhxmima);
	DDX_Text(pDX, IDC_EDITZHXNAME, m_zhxname);
	DDX_Text(pDX, IDC_EDITZHXNEWMM, m_zhxnewname);
	DDX_Text(pDX, IDC_EDITZHXNEWMMQR, m_zhxnewmmqr);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKERPUBLISHDATE, m_publishdate);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAdminGLDialog, CDialog)
	//{{AFX_MSG_MAP(CAdminGLDialog)
	ON_BN_CLICKED(IDC_BUTTONBKADD, OnButtonbkadd)
	ON_BN_CLICKED(IDC_BUTTONBKQK, OnButtonbkqk)
	ON_BN_CLICKED(IDC_BUTTONBKDELETE, OnButtonbkdelete)
	ON_BN_CLICKED(IDC_BUTTONBKSHOW, OnButtonbkshow)
	ON_BN_CLICKED(IDC_BUTTONSTADD, OnButtonstadd)
	ON_BN_CLICKED(IDC_BUTTONSTDEL, OnButtonstdel)
	ON_BN_CLICKED(IDC_BUTTONSTSHOW, OnButtonstshow)
	ON_BN_CLICKED(IDC_BUTTONZHADD, OnButtonzhadd)
	ON_BN_CLICKED(IDC_BUTTONZHCHG, OnButtonzhchg)
	ON_BN_CLICKED(IDC_BUTTONZHDEL, OnButtonzhdel)
	ON_BN_CLICKED(IDC_BUTTONZHEMPTY, OnButtonzhempty)
	ON_BN_CLICKED(IDC_BUTTONZHXEMP, OnButtonzhxemp)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAdminGLDialog message handlers
BOOL CAdminGLDialog::OnInitDialog() 
{
	CDialog::OnInitDialog();
	booksource=new CBookDataSouce(&theApp.m_DB);//给图书表分配空间
	studentsource=new CStdDataSource(&theApp.m_DB);//给学生表分配空间
	dlsource=new CDLDateSouce(&theApp.m_DB);//给登录表分配空间
	unsigned i;
	CODBCFieldInfo info;
	m_booklist.SetBkColor(RGB(200,250,230));//设置列表框的背景颜色
	m_booklist.SetTextBkColor(RGB(200,250,230));//设置列表框中文字的背景颜色
	m_booklist.SetTextColor(RGB(0,0,255));
	m_studentlist.SetBkColor(RGB(200,250,230));
	m_studentlist.SetTextBkColor(RGB(1200,250,230));
	m_studentlist.SetTextColor(RGB(0,0,255));
	booksource->Open();//打开图书表
	m_booklist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//设置列表控件的样式
	for(i=0;i<booksource->m_nFields;i++)//给列表控件加入标签项
	{
		booksource->GetODBCFieldInfo(i,info);
		m_booklist.InsertColumn(i,info.m_strName,LVCFMT_LEFT,84);
	}
	booksource->Close();

	studentsource->Open();
	m_studentlist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	for(i=0;i<3;i++)
	{
		studentsource->GetODBCFieldInfo(i,info);
		m_studentlist.InsertColumn(i,info.m_strName,LVCFMT_LEFT,135);
	}
	studentsource->Close();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CAdminGLDialog::OnButtonbkadd() //添加书籍按钮
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(!BookNoUsed(m_bookno))
	{
		AfxMessageBox("该书号已经存在!");
		return;
	}
	if(m_bookno<=0)
	{
		AfxMessageBox("书号应为正数!");
		return;
	}
	if(m_bookname=="")
	{
		AfxMessageBox("书名不能为空!");
		return;
	}
	if(m_bookclass=="")
	{
		AfxMessageBox("类别不能为空!");
		return;
	}
	if(m_bookpublish=="")
	{
		AfxMessageBox("出版社不能为空!");
		return;
	}
	if(m_bookauthor=="")
	{
		AfxMessageBox("作者不能为空!");
		return;
	}
	if(m_bookvalue<=0)
	{
		AfxMessageBox("价格应为正数!");
		return;
	}
	if(m_booknumber<=0)
	{
		AfxMessageBox("总数量应大于零!");
		return;
	}
	if(m_bookborrow<0)
	{
		AfxMessageBox("借出数量不能为负数!");
		return;
	}
	if(m_bookborrow>m_booknumber)
	{
		AfxMessageBox("借出数量不能大于总数量!");
		return;
	}
	if(AddBooks())
	{
		AfxMessageBox("添加书籍成功!");
	}
	else
		AfxMessageBox("添加书籍失败!");
	UpdateData(FALSE);
}

void CAdminGLDialog::OnButtonbkqk()//添加书籍中的清空按钮 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	m_bookno=0;
	m_bookname="";
	m_bookclass="";
	m_bookpublish="";
	m_bookauthor="";
	m_bookvalue=0;
	m_booknumber=0;
	m_bookborrow=0;	
	UpdateData(FALSE);
}

void CAdminGLDialog::OnButtonbkdelete()//删除书籍按钮
{
	// TODO: Add your control notification handler code here
	int i=0;
	BOOL flag=true;//判断是否选中列表控件中行的标志
	CString temp;
	booksource->Open();
	if(AfxMessageBox("确实要删除此数据吗?", MB_YESNO)==IDYES)//显示一个询问对话框
	{	
		for(int i=0;i<booksource->GetRecordCount();i++)//遍历整个图书表
		{
		   if(m_booklist.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)//选中列表控件中的一行
		   {
			   if(atoi(m_booklist.GetItemText(i,7))>0)//如果想要删除的书籍已经有人借阅
			   {
				   AfxMessageBox("已经有人借了此书不能删除!");
				   booksource->Close();
				   return;
			   }
			   booksource->Delete();//删除选中的书籍
			   booksource->Requery();//刷新快照
			   flag=false;
			   break;
		   }
		   if(!booksource->IsEOF())
		       booksource->MoveNext();
		}
		if(flag)
		{
			AfxMessageBox("请在列表中选中要删除的数据!");
		}
	}
	booksource->Close();
	if(!flag)
		ShowList(1);//刷新列表控件
	UpdateData(FALSE);
}

void CAdminGLDialog::OnButtonbkshow()//删除书籍中的显示按钮 
{
	// TODO: Add your control notification handler code here
	ShowList(1);	
}

void CAdminGLDialog::OnButtonstadd()//添加用户按钮 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(!StudentNoUsed(m_stuno))
	{
		AfxMessageBox("该学号已经存在!");
		return;
	}
	if(m_stuname=="")
	{
		AfxMessageBox("姓名不能为空!");
		return;
	}
	if(m_stuclass=="")
	{
		AfxMessageBox("专业不能为空!");
		return;
	}
	AddStudent();
	AfxMessageBox("添加用户成功!");
	UpdateData(FALSE);
}

void CAdminGLDialog::OnButtonstdel()//删除用户
{
	// TODO: Add your control notification handler code here
	int i=0;
	BOOL flag=true;
	CString temp;
	studentsource->Open();
	if(AfxMessageBox("确实要删除此数据吗?", MB_YESNO)==IDYES)
	{	
		for(int i=0;i<studentsource->GetRecordCount();i++)
		{
		   if(m_studentlist.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
		   {
			    if(studentsource->m_column4!=0)//如果想要删除的用户有借的书没有还
				{
				   AfxMessageBox("该用户有书没还,不能删除!");
				   studentsource->Close();
				   return;
				}
				studentsource->Delete();
				studentsource->Requery();
				flag=false;
				break;
		   }
		   if(!studentsource->IsEOF())
				studentsource->MoveNext();
		}
		if(flag)
		{
			AfxMessageBox("请在列表中选中要删除的数据!");
		}
	}
	studentsource->Close();
	if(!flag)
		ShowList(2);
	UpdateData(FALSE);
}

void CAdminGLDialog::OnButtonstshow()//显示用户
{
	// TODO: Add your control notification handler code here
	ShowList(2);
}

⌨️ 快捷键说明

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