程序设计---图书管理系统客户端(优)

文章目录

    • 1、绪论
      •  1.1 课程设计的目的及意义
      •  1.2 课程设计的主要任务
    • 2、需求分析
    • 3、系统设计
      •  3.1 系统的总体设计
      •  3.2 系统的详细设计
        •  3.2.1 系统登陆模块
        •  3.2.2 图书信息管理模块
        •  3.2.3 后台数据管理模块
        •  3.2.4 学生信息管理模块
        •  3.2.5 图书借阅管理模块
        •  3.2.6 管理员信息模块
        •  3.2.6 公共类的设计
      •  3.3 数据库设计
        •  3.3.1 概念设计
        •  3.3.2 逻辑结构设计
    • 4、系统实现
      •  4.1 开发环境
      •  4.2 主要技术
      •  4.3 实现结果
        •  4.3.1 用户登陆界面
        •  4.3.2 系统主界面
        •  4.3.3 图书信息界面
        •  4.3.4 后台数据界面
        •  4.3.5 读者信息界面
        •  4.3.6 借阅管理界面
        •  4.3.7 系统配置界面
    • 5、总结

1、绪论

 1.1 课程设计的目的及意义

  随着人们生活水平的日益提高,人们对文化的需求也越来越大。在人们的业余生活中,越来越多的人乐于享受文字给生活带来的乐趣,而图书也是学生的学习过程中必不可少的,如何以一种便捷的管理方式进行图书的管理,提高管理效率,降低管理成本已成为图书管理的关键问题。

  本课设旨在研发一个图书馆的管理系统,实现图书馆的信息化管理,减少图书管理员的工作量并使其能更有效的管理书库中的图书,实现了传统的图书管理工作的信息化建设。本系统提供图书管理、后台数据查询、读者信息管理、读者借阅管理、系统维护管理等操作,方便后台管理员对所有图书进行管理。

 1.2 课程设计的主要任务

  构建图书管理系统主要分为四个阶段:

  • 第一阶段是进行系统整体功能的分析设计,设计每个模块相关的数据库,及数据库之间的相互关系,主要完成整个系统的功能架构;

  • 第二阶段是对系统的主要界面进行分析设计,包括控件的选择、关联变量的添加、模块之间的关系等主要完成系统整体框架的建立;

  • 第三阶段是为各模块的功能实现添加底层代码,包括数据库链接检测、相关错误的反馈等;

  • 第四阶段是准备相关的图标、图片、光标进行界面的美化,增强人机交互能力。

2、需求分析

  目前,高校图书馆藏书籍的增多和学校的扩招带来的大量的生源,对图书的流通的管理提出了更大的要求,迫使图书馆希望采用一种新的管理方式来管理图书馆的图书,而计算机信息技术的发展为图书管理注入了新的生机,相比于传统的管理方式,大幅的提高了体术管理的效率,对图书信息的维护起到了十分重要的作用。通过对图书管理流程的分析,一款合格的图书馆管理系统必须具备以下 3 个特点:

  • 能够对图书馆内的所有图书进行集中的管理,包括图书信息维护、分类放置,快速检索;

  • 能够大大的提高图书管理员的工作效率,简化图书借阅的工作流程;

  • 能够对学生的信息、借阅情况进行管理。

3、系统设计

 3.1 系统的总体设计

  通过对图书管理过程的研究和分析,在设计系统时,主要实现的目标如下:

  1. 实现图书的入库、信息的维护;
  2. 实现图书数据的查询;
  3. 实现学生信息的管理和维护;
  4. 实现图书的借阅和归还管理;
  5. 实现操作员对系统的维护功能;
  6. 实现系统的登陆功能。
    程序设计---图书管理系统客户端(优)_第1张图片
图3-1 图书管理系统功能结构图

程序设计---图书管理系统客户端(优)_第2张图片

图3-2 系统功能流程图

 3.2 系统的详细设计

 3.2.1 系统登陆模块

  为了防止非法人员计入系统,程序中设计了一个系统登录窗口。在程序启动时,首先显示登录窗口进行身份验证。管理员输入账号和密码进行登陆,当输入为空,或输入信息错误时提示出错,输入正确登入系统,点击取消退出登陆。

程序设计---图书管理系统客户端(优)_第3张图片

图3-3 登陆流程图

 3.2.2 图书信息管理模块

  管理员通过输入图书的相关信息进行书籍的登记,也可以修改图书的相关信息和删除图书的信息记录。为了方便管理员操作,程序利用表格显示所有信息。
  添加一个图书信息后将会显示在表格中;如果想要修改信息,双击表格中的数据,信息将会在上方的编辑框和组合框中出现,单击修改按钮即可完成信息的修改;点击删除会提示是否删除对话框,确认后可删除书籍信息。
程序设计---图书管理系统客户端(优)_第4张图片

图3-4 图书信息管理

 3.2.3 后台数据管理模块

  主要由一个树结构控件和一个列表视图控件组成,管理员可在树结构中点击相应的类别分类,快速的对馆内的所有图书进行检索,达到快速管理书籍的目的。
  右方的只读编辑框显示当前统计书籍的数量及分布情况。

程序设计---图书管理系统客户端(优)_第5张图片

图3-5 后台数据管理

 3.2.4 学生信息管理模块

  主要实现对学生信息的实时管理,管理员可通过输入学生的信息从而录入数据库,达到学生的信息注册功能,可以对信息进行增删改查,进行查找时,可通过多个条件的输入进行查找,每个编辑框中的数据内容都可以成为查询条件,更加方便管理员对学生信息的维护及更新,双击数据表格时,数据将会显示在上方的编辑框中,快速的实现数据的更改。
  学生的信息有简单的限制条件,ID号为10位的十进制数所组成且不能相重复,对于已经分配的ID号,即使删除相应的学生信息,也不会再次分配给其他的学生所使用。
程序设计---图书管理系统客户端(优)_第6张图片

图3-6 学生信息管理

 3.2.5 图书借阅管理模块

  主要功能是查找、出借和归还等功能,查找语句设置的是模糊查找,可通过输入完整的学号、姓名、书籍ID等来查找出借书籍的记录,在不知道完整信息的情况下,系统的查询采取了模糊查询的语句,实现字段查询相似的所有数据,方便跟踪书籍的状态;
  出借功能由当前登陆系统的管理员操作,输入借阅学生的ID和书籍的ID可以从其他的表中自动查询对应的学生姓名和书籍的名称,出借时间和归还时间由两个时间控件进行控制,通过点击控件选择相应的时间即可,管理员的名字由当前登陆的管理员所决定,登陆成功则已经进行了绑定。
  归还功能类似出借功能,通过输入学生的ID和书籍的ID即可实现图书的归还操作,这时会删除相应的数据库中的数据,并且在总数据库中记录下所有的信息。

程序设计---图书管理系统客户端(优)_第7张图片

图3-7 图书借阅管理

 3.2.6 管理员信息模块

  此信息模块由系统管理员所操作,其余人员不具备实际的操纵权限,在系统当中即是权限为‘高’的人员具有该模块的访问权限。
  主要的功能是对管理员的信息进行管理,包括管理员信息的更新、添加新的管理员、更改相关管理员的全系等,如果更新了当前正在登陆状态的管理员信息会强制登出系统,并使用更新后的数据进行系统的再次登陆。

 3.2.6 公共类的设计

  为了方便对程序中多次使用的函数、变量的管理,设计了一个公共类CPublic,用于存储程序中的所有全局函数及全局变量,增大程序的可读性。
  包括了登陆时需要记录的管理员的信息,数据库的接口变量,链接数据库所使用的的API函数。

 3.3 数据库设计

 3.3.1 概念设计

  系统所使用的的数据库为MySQL,使用API函数和SQL语句进行连接。
主要设计四个表用于系统信息的存取管理。

程序设计---图书管理系统客户端(优)_第8张图片

图3-8 E-R图

 3.3.2 逻辑结构设计

  ①表 bookinfo 有6个字段:namepressauthorpriceremarkkindbookID ,分别表示书籍名称书籍出版社作者价格、备注、分类、书籍ID号(唯一,用于标识一本书)。

表3-1 图书信息表bookinfo

程序设计---图书管理系统客户端(优)_第9张图片

  ②表 data 有5个字段:booknamenametimeftimelmanager ,分别表示书籍名称借阅者姓名开始借阅时间结束归还时间操作管理员

表3-2 借阅管理表data

程序设计---图书管理系统客户端(优)_第10张图片

  ③表 student 有7个字段:namecollegegradecardbookID timef timel` ,分别表示学生姓名所属学院年级卡号(唯一,用于表示一个学生)、书籍ID开始借阅时间结束归还时间(如果该学生没有进行借书、则该三个字段为null)。

表3-3 学生信息管理表student
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210615215859938.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L01UWVNZUzE5OTkwMjEy,size_16,color_FFFFFF,t_70#pic_center)

  ④表 user 有4个字段:namepasswordgradeuserid ,分别表示管理员姓名登陆密码管理等级登陆ID

表3-4 管理员信息表usert

在这里插入图片描述

4、系统实现

 4.1 开发环境

  程序调试编译软件:Microsoft Visual Studio Community 2019 X64 环境

  数据库操作软件:Navicat

  系统环境:Windows10 X86 系统

 4.2 主要技术

  C++MFC 应用程序开发;

  MySQL 数据库。

 4.3 实现结果

 4.3.1 用户登陆界面

  登陆时先连接数据库,接收管理员的输入并检查数据的有效性,查询成功则记录登陆账号的信息,根据权限等级开放系统功能。

表4-1 管理员登陆界面主要控件属性表

程序设计---图书管理系统客户端(优)_第11张图片

 const char* sql= "select * from user";
	mysql_query(&mysql, sql);
	res = mysql_store_result(&mysql);
	while(column = mysql_fetch_row(res))
	{
		if (column[3] == c_user && column[1] == c_password)
		{
			temp = 1;
			CPublic::x = column[2];
			CPublic::m = column[0];
			mysql_close(&mysql);
			if (column[2] == "高")
			{
				mysql_free_result(res);
				EndDialog(2);
			}
			else
			{
				mysql_free_result(res);
				EndDialog(1);
			}
		}
	}
	mysql_close(&mysql);
	if(temp==0)
		MessageBox(TEXT("用户名或者密码不正确"), TEXT("提示"), 64);

程序设计---图书管理系统客户端(优)_第12张图片

图4-1 管理员登陆界面

 4.3.2 系统主界面

  主要提供系统的功能选择,界面有系统的菜单信息图书信息后台数据读者信息借阅管理系统配置等六大功能,由CImageListCToolBar 两个控件进行实现,根据管理员的功能选择打开不同的子窗口,显示具体功能。

表4-2 系统主界面主要控件属性表

程序设计---图书管理系统客户端(优)_第13张图片

BOOL Cdemo5Dlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	m_Menu.LoadMenu(IDR_MENU1);
	SetMenu(&m_Menu);
	HICON m_hicon = AfxGetApp()->LoadIconW(IDI_ICON6);
	SetIcon(m_hicon,true);
	SetWindowText(TEXT("图书管理系统"));
	m_ImageList.Create(32, 32, ILC_COLOR24 | ILC_MASK, 1, 1);
	m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON2));
	m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON3));
	m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON4));
	m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON5));
	m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON7));
	m_ImageList.Add(AfxGetApp()->LoadIconW(IDI_ICON8));
	UINT array[6];
	for (int i = 0; i < 6; i++)
		array[i] = 1000 + i;
	m_toolbar.Create(this);
	m_toolbar.SetButtons(array, 6);
	m_toolbar.SetButtonText(0, TEXT("图书信息"));
	m_toolbar.SetButtonText(1, TEXT("后台数据"));
	m_toolbar.SetButtonText(2, TEXT("读者信息"));
	m_toolbar.SetButtonText(3, TEXT("借阅管理"));
	m_toolbar.SetButtonText(4, TEXT("系统配置"));
	m_toolbar.SetButtonText(5, TEXT("未知功能"));
	m_toolbar.GetToolBarCtrl().SetButtonWidth(60, 120);
	m_toolbar.GetToolBarCtrl().SetImageList(&m_ImageList);
	m_toolbar.SetSizes(CSize(80, 70), CSize(50, 50));
	RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST, 0);
	return TRUE;  
}

	void Cdemo5Dlg::OnPaint()
{
		CPaintDC dc(this); 
		SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;
		dc.DrawIcon(x, y, m_hIcon);
		CDC   dcBmp;			
		dcBmp.CreateCompatibleDC(&dc);		
		CBitmap   bmpBackground;
		bmpBackground.LoadBitmap(IDB_BITMAP2);					
		BITMAP   m_bitmap;						 
		bmpBackground.GetBitmap(&m_bitmap);		      
		CBitmap* pbmpOld = dcBmp.SelectObject(&bmpBackground);	 
		dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &dcBmp, 0, 0, m_bitmap.bmWidth, m_bitmap.bmHeight, SRCCOPY);
}

程序设计---图书管理系统客户端(优)_第14张图片

图4-2 系统主界面

 4.3.3 图书信息界面

  主要实现图书的管理功能,连接数据库表bookinfo 对图书进行增加、删除、修改等操作,点击图书信息时,在编辑框中展现所有的图书信息,主要用CComboBoxCListCtrl 等功能实现。

表4-3 图书信息界面主要控件属性表

程序设计---图书管理系统客户端(优)_第15张图片

BOOL CBookInfo::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	m_kind.SetWindowTextW(TEXT("无"));
	m_kind.AddString(TEXT("文科"));
	m_kind.AddString(TEXT("理科"));
	m_kind.AddString(TEXT("工科"));
	m_kind.AddString(TEXT("社科"));
	CRect rect;
	m_output.GetClientRect(rect);
	m_output.SetExtendedStyle(LVS_EX_GRIDLINES);
	m_output.InsertColumn(0, TEXT("书籍名称"), LVCFMT_CENTER, rect.Width() / 7);
	m_output.InsertColumn(1, TEXT("出版社"), LVCFMT_CENTER, rect.Width() / 7);
	m_output.InsertColumn(2, TEXT("作者"), LVCFMT_CENTER, rect.Width() / 7);
	m_output.InsertColumn(3, TEXT("价格"), LVCFMT_CENTER, rect.Width() / 7);
	m_output.InsertColumn(4, TEXT("备注"), LVCFMT_CENTER, rect.Width() / 7);
	m_output.InsertColumn(5, TEXT("种类"), LVCFMT_CENTER, rect.Width() / 7);
	m_output.InsertColumn(6, TEXT("书籍ID"), LVCFMT_CENTER, rect.Width() / 7);
	LoadBookINFO();
	return TRUE;  
} 
 
void CBookInfo::OnBnClickedBookMod()
{
	UpdateData(true);
	std::string  sql, bookname, bookpress, bookauthor, bookprice, bookremark, bookkind, bookID;
	CString kind;
	bookname = CW2A(m_bookname);
	bookpress = CW2A(m_press);
	bookauthor = CW2A(m_author);
	bookprice = CW2A(m_price);
	bookremark = CW2A(m_remark);
	bookID = CW2A(m_bookid);
	m_kind.GetWindowTextW(kind);
	bookkind = CW2A(kind);
	sql = "update bookinfo set name='"+bookname+"',press='"+ bookpress +"',author='"+bookauthor+"',price='"+bookprice+"',remark='"+bookremark+"',kind='"+bookkind+"' where bookID='" + bookID + "'";
	mysql_query(&mysql, "set names gbk");
	mysql_query(&mysql, sql.c_str());
	mysql_close(&mysql);
	UpdateData(false);
	LoadBookINFO();
}

程序设计---图书管理系统客户端(优)_第16张图片

图4-3 图书信息界面

 4.3.4 后台数据界面

  连接数据库bookinfo 表,可根据具体的分类实现书籍的快速查找和统计功能,查看书籍的分布情况,主要用CImageListCTreeCtrl 等控件实现。

表4-4 后台数据界面主要控件属性表

程序设计---图书管理系统客户端(优)_第17张图片

BOOL CStageData::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	{
		CRect rect;
		m_listinfo.GetClientRect(rect);
		m_listinfo.SetExtendedStyle(LVS_EX_GRIDLINES);
		m_listinfo.InsertColumn(0, TEXT("书籍名称"), LVCFMT_CENTER, rect.Width() / 3);
		m_listinfo.InsertColumn(1, TEXT("出版社"), LVCFMT_CENTER, rect.Width() / 3);
		m_listinfo.InsertColumn(2, TEXT("书籍ID"), LVCFMT_CENTER, rect.Width() / 3);
	}
	m_list.Create(32, 32, ILC_COLOR32, 3, 3);
	{
		m_list.Add(AfxGetApp()->LoadIconW(IDI_LIBRARY));
		m_list.Add(AfxGetApp()->LoadIconW(IDI_ARTS));
		m_list.Add(AfxGetApp()->LoadIconW(IDI_ENGINEER));
		m_list.Add(AfxGetApp()->LoadIconW(IDI_SCIENCE));
		m_list.Add(AfxGetApp()->LoadIconW(IDI_SOCIAL));
		m_list.Add(AfxGetApp()->LoadIconW(IDI_LIBRARY2));
		m_list.Add(AfxGetApp()->LoadIconW(IDI_LIBRARY3));
		m_tree.SetImageList(&m_list, TVSIL_NORMAL);
	}
	hRoot = m_tree.InsertItem(TEXT("一号图书馆"), 0, 0);
	hCataItem[0] = m_tree.InsertItem(_T("文科"), 1, 1, hRoot, TVI_LAST);
	hCataItem[1] = m_tree.InsertItem(_T("理科"), 2, 2, hRoot, TVI_LAST);
	hCataItem[2] = m_tree.InsertItem(_T("工科"), 3, 3, hRoot, TVI_LAST);
	hCataItem[3] = m_tree.InsertItem(_T("社科"), 4, 4, hRoot, TVI_LAST);
	m_tree.InsertItem(TEXT("二号图书馆"), 5, 5);
	m_tree.InsertItem(TEXT("三号图书馆"), 6, 6);
	return TRUE;  
}
void CStageData::OnDblclkTreeData(NMHDR* pNMHDR, LRESULT* pResult)
{
	HTREEITEM hItem = m_tree.GetSelectedItem();
	CString kind = m_tree.GetItemText(hItem);
	{
		m_listinfo.DeleteAllItems();
		std::string  sql, kind_;
		kind_ = CW2A(kind);
		sql = "select name,press,bookID from bookinfo where kind='" + kind_ + "'";
		mysql_query(&mysql, "set names gbk");
		mysql_query(&mysql, sql.c_str());
		res = mysql_store_result(&mysql);
		int row = 0;
		while (column = mysql_fetch_row(res))
		{
			m_listinfo.InsertItem(row, TEXT(""));
			m_listinfo.SetItemText(row, 0, (CString)column[0]);
			m_listinfo.SetItemText(row, 1, (CString)column[1]);
			m_listinfo.SetItemText(row, 2, (CString)column[2]);
			row++;
		}
		mysql_free_result(res);
	}
	*pResult = 0;
}

程序设计---图书管理系统客户端(优)_第18张图片

图4-4 后台数据界面

 4.3.5 读者信息界面

  连接数据库student 表,用于学生读者的信息管理,可实现对学生信息的增删改查工作,点击列表单元将信息显示在编辑框中,更容易的编辑读者的信息,可根据任意的信息进行数据的查询。

表4-5 读者信息界面主要控件属性表

程序设计---图书管理系统客户端(优)_第19张图片

void CStudent::OnBnClickedRegister()
{
	UpdateData(true);
	if (IsEmpty())
	{
		MessageBox(TEXT("输入信息不全"), TEXT("error"));
		return;
	}
	std::string  sql, sname, sid, scollege, sgrade;
	sname = CW2A(m_sname);
	sid = CW2A(m_sid);
	scollege = CW2A(m_scollege);
	sgrade = CW2A(m_sgrade);
	sql = "insert into student values ('"	+ sname + "','" + scollege + "'," + sgrade + ",'" + sid + "',' ',now(),now())";
	mysql_query(&mysql, "set names gbk");
	mysql_query(&mysql, sql.c_str());
	LoadStudentInfo();
} 
void CStudent::OnBnClickedQuery()
{
	UpdateData(true);
	m_student.DeleteAllItems();
	std::string  sql, sname, sid, scollege, sgrade;
	sname = CW2A(m_sname);
	sid = CW2A(m_sid);
	scollege = CW2A(m_scollege);
	if(m_sgrade.IsEmpty())
		sgrade = "0";
	else
		sgrade = CW2A(m_sgrade);
	sql = "select * from student where name='"+ sname + "' or college='" + scollege + "' or grade=" + sgrade + " or card='" + sid + "'";
	mysql_query(&mysql, "set names gbk");
	mysql_query(&mysql, sql.c_str());
	res = mysql_store_result(&mysql);
	int row = 0;
	while (column = mysql_fetch_row(res))
	{
		m_student.InsertItem(row, TEXT(""));
		m_student.SetItemText(row, 0, (CString)column[0]);
		m_student.SetItemText(row, 1, (CString)column[1]);
		m_student.SetItemText(row, 2, (CString)column[2]);
		m_student.SetItemText(row, 3, (CString)column[3]);
		m_student.SetItemText(row, 4, (CString)column[4]);
		m_student.SetItemText(row, 5, (CString)column[5]);
		m_student.SetItemText(row, 6, (CString)column[6]);
		row++;
	}
	mysql_free_result(res);
}

程序设计---图书管理系统客户端(优)_第20张图片

图4-5 学生信息界面

 4.3.6 借阅管理界面

  连接数据库datastudentbookinfo 表,可实现图书的借阅、归还、查询功能,借阅时间和归还时间可由管理员自行选择,学生的姓名和书籍的名称由相应的ID 在表中查询后再添加进data 表中;在归还一本书时同时更新student 表中的学生的借阅信息;查询可根据输入的信息进行自动的匹配查询。

表4-6 借阅界面主要控件属性表

程序设计---图书管理系统客户端(优)_第21张图片

void CDataSelect::OnBnClickedButton1()
{
	UpdateData(true);
	if (IsEmpty())
		return;
	else
	{
		mysql_query(&mysql, "set names gbk");
		std::string  sql, sqlb, sqls, sqlstu, bookid, studentid, timef, timel, manager;
		bookid = CW2A(m_idbook);
		studentid = CW2A(m_idstedent);
		timef = CW2A(strf);
		timel = CW2A(strl);
		manager = CW2A(m_manager);
		if(true)
		{
			sqlb = "select name from bookinfo where bookID='" + bookid + "'";
			sqls = "select name from student where card='" + studentid + "'";
			sqlstu = "update student set bookID='"+ bookid+"',timef='" + timef + "',timel='" + timel + "' where card='" + studentid + "'";
			mysql_query(&mysql, sqlstu.c_str());
			mysql_query(&mysql, sqlb.c_str());
			res = mysql_store_result(&mysql);
			column = mysql_fetch_row(res);
			mysql_query(&mysql, sqls.c_str());
			res = mysql_store_result(&mysql);
			column = mysql_fetch_row(res);
		}
		sql = "insert into data values ('" + bookid + "','"+ studentid + "','" + timef + "','" + timel + "','" + manager + "')";
		mysql_query(&mysql, sql.c_str());
		mysql_free_result(res);
		DataSelectInfo();
	}
}
void CDataSelect::OnBnClickedDataSelect()
{
	UpdateData(true);
	mysql_query(&mysql, "set names gbk");
	std::string sql = "select * from data where name=";
	std::string str = CW2A(m_input);
	sql += "'" + str + "'";
	mysql_query(&mysql, sql.c_str());
	res = mysql_store_result(&mysql);
	int row = 0;
	while (column = mysql_fetch_row(res))
	{
		m_dataface.InsertItem(row, TEXT(""));
		m_dataface.SetItemText(row++, 0, (CString)column[0]);
		m_dataface.SetItemText(row++, 1, (CString)column[1]);
		m_dataface.SetItemText(row++, 2, (CString)column[2]);
		m_dataface.SetItemText(row++, 3, (CString)column[3]);
		m_dataface.SetItemText(row++, 4, (CString)column[4]);
	}
	mysql_free_result(res);
}

程序设计---图书管理系统客户端(优)_第22张图片

图4-6 借阅管理界面

 4.3.7 系统配置界面

  根据登陆的管理员的账号管理等级进行匹配,只有等级为“高” 的才有权限进行管理,主要功能有对管理员的信息进行增删改,也可赋予其他管理员设置的权限。

表4-7 系统界面主要控件属性表

程序设计---图书管理系统客户端(优)_第23张图片

BOOL COperator::OnInitDialog()
{
	CDialogEx::OnInitDialog();
	m_limits.AddString(TEXT("低"));
	m_limits.AddString(TEXT("中"));
	m_limits.AddString(TEXT("高"));
	CRect rect;
	m_list.GetClientRect(rect);
	m_list.InsertColumn(0, TEXT("姓名"), LVCFMT_CENTER, rect.Width() / 3);
	m_list.InsertColumn(1, TEXT("密码"), LVCFMT_CENTER, rect.Width() / 3);
	m_list.InsertColumn(2, TEXT("管理等级"), LVCFMT_CENTER, rect.Width() / 3);
	LoadOperatorINFO();
} 
bool COperator::Query(std::string str)
{
	std::string sql = "select * from user where name='" + str + "'";
	mysql_query(&mysql, "set names gbk");
	if (!mysql_query(&mysql, sql.c_str()))
	{
		mysql_close(&mysql);
		MessageBox(TEXT("查无此用户"), TEXT("error"));
		return false;
	}
	else
	{
		return true;
	}
}

程序设计---图书管理系统客户端(优)_第24张图片

图4-7 操作员信息界面

5、总结

  需要源码可联系。。。

你可能感兴趣的:(项目练手,c++,mysql,c语言)