C#实战项目~智能图书管理系统
智能图书管理系统
引言1.1目的
如今,学校的现代化管理下,学校的智能图书管理显得至关重要。其中图书管理内容也成为学校管理的一部分。因此,我们需要一个比较完善的智能图书管理,为用户提供可借阅的重要信息和可查询的内容。我们小组设计的智能图书管理,不仅可以对学生或者老师的借阅信息进行智能查询管理,管理员还可以对系统的基础数据进行管理,对借阅信息进行维护等功能。友好的人机交互模式,清晰简明的UI界面,安全高效的操作,管理信息起来能够有条不紊,轻松获取我们想要的信息。我们的智能图书管理系统采用面向对象方法的思想,前台采用C#程序语言编写界面,后台访问SQL SERVER数据库的模式来实现。
2.实现功能
学生管理子系统在学生方面,学生通过账号密码登录后,新增功能,人脸识别!进行登录,进去后,有借阅图书,归还图书,预约图书,续借图书等功能。需在文本框中填写相关资料,进行提交。学生也可通过学生管理子系统查询个人信息,
教师管理子系统方面与学生管理子系统功能大致一致。 在管理员子系统方面,管理员可以通过管理员权限查询、增加、删除、修改所有个人和图书信息。
本系统包括4个主要界面,里面包含七个功能模块:图书管理模块(包含库存管理,库存管理与图书管理相联系,下面重点介绍图书管理)、读者(师生)管理模块、系统管理模块、借阅管理模块、密码管理模块、问题反馈区、登录与退出模块等七个功能模块。(具体的关键代码可以查看上面模块实现的内容)
(1)第一个主要界面:Form1,它是包括系统管理模块、登录与退出模块。登录表界面窗口实现的功能。从管理员,教师,学生这三者中登录。附加智能人脸识别登录和用户注册。注册用户有学生注册和教师注册两个类型,填写好表单,提交成功即可。但是提交的密码会用MD5加密算法加密。
图8—3—1登陆界面
图8—3—2注册页面智能人脸识别的功能实现,调用百度云智能的人脸识别函数,实现智能人脸识别,人脸识别库有学生,老师,管理员。
图8—3—3人脸识别界面百度云人脸识别库的用户组如下:
(2)借阅管理包括师生借书、师生还书和师生预约,还有师生续借四个方面个方面内容 ,前两项要对用户的身份进行验证,合法用户才有权限操作。借书时先对师生信息查询,查看是否存在输入的师生。要判断书是否被预借,如被预借,则不能借书。如果以上条件都成立,则进行借书操作,并将相应的信息写入数据库中对应的表。还书模块相对借书模块来说要简单一些, 判断的条件要少。师生还书流程如图 图书预约即预先网上借书,也就是通常所说的预约借书。只要在预约借书界 面输入想要预借书籍提交就可以实现,只是某本书被预借之后别入就不能借了。流程图与借阅图书相差无几。在此就不在画出来。图书续借即在原的基础上,把借书的初始时间改为现在时间,即延长借书时间。①第二个主要界面:Form2,它是包括借阅管理模块、师生管理模块、问题答疑区模块。
图8—3—4学生操作界面
②第三个主要界面:Form3,它是包括借阅管理模块、师生管理模块、问题答疑区模块。
图8—3—5教师操作界面
(3)图书管理包括图书添加、修改、删除、查询图书信息等内容。只有系统管理员才有图书添加、修改、删除权限。在添加书籍信息时 ,首先检测不能为空值的项是否录入了数据, 将书籍信息录入到数据库时,要对书籍的编号进行判断是否唯一 ,如果不唯一,返回录入界面要求重新输入书号。图书的查询可按图书编号查找、图书名称精确查 找、图书名称模糊查找、作者、出版社、查看全部等查询方式查询 。在书籍信息修改和删除模块中,首先要检索到相应的书籍信息才可以进行相应的操作,只有已经返回的书籍才可以进行修改或删除。在修改图书信息时, 操作流程和添加图书信息大致相似 ,不同的是无需判断书号是否唯一,因为修改时不能修改图书的编号,只能修改其它的信息。师生管理包括师生信息删除和师生查询几个方面内容,进行师生管理操作,最开始是检测用户的合法性。第四个主要界面:Form4,它是包括图书管理模块、问题答疑区模块。
图8—3—6管理员操作界面
(4)本系统还设计了问题答疑区主要是可以用来进行学习问题的提问,以及操作的提问等,师生可以向管理员提问 , 管理员也可以通过问题答疑区给师生回复问题及解决问题,还可发布信息,例如通知某些及时还书。问题答疑区不是本系 统的设计重点 ,所以就只简单地介绍一下 。
图8—3—7用户客服聊天界面
图8—3—8管理员客服聊天界面
我们使用SQL Server.NET 数据提供程序 (System.Data.SqlClient 命名空间)提供一组对象来建立数据集的表和 SQL Server 数据库中的表之间的联系;
SQL Server .NET 数据提供程序具有自己的一套访问 SQL Server 数据源的协议,对访问 SQL Server 数据库提供了特殊的优化,可以直接访问 SQL SERVER 而不需添加 OLEDB 或 ODBC,因此是轻量级的,效率更高。关键代码如下:
见附录代码示例一。
部分测试结果:
<1>数据库上各个表的数据,下面所列的图在vs2017中截取。
(1) 学生表students(学号SNO,姓名SNAME ,电话STEL,家庭住址SADDRESS,备注信息SNOTE)
(2)教师个人信息表teachers(教师号TNO,姓名TNAME, ,电话TTEL,家庭住址TADDRESS,备注信息TNOTE)
(3)用户表yonghu(用户编号YNO,用户密码YMIMA,用户类别LEIBIE)
(4)图书表books(书号LISBN,书名LNAME,作者LAUTHOR,出版社LBOOK_CONCERN,单价LPRICE,状态LCONDITION)
----身份验证模式
图书管理系统由于是涉及大量的图书信息的系统,因此相关数据的安全就特别重要。因此对该系统的数据安全进行了如下设计:
在数据库中,我们是利用Windows 身份验证模式。当用户通过 Microsoft Windows 用户帐户进行连接时,SQL Server 使用 Windows 操作系统中的信息验证帐户名和密码。这是默认的身份验证模式,比混合模式更为安全。Windows 身份验证使用 Kerberos 安全协议,根据强密码的复杂性验证提供密码策略强制实施,提供帐户锁定支持,并支持密码过期。
在登录界面中,利用了基于共享**的身份验证、基于生物学特征的身份验证。
1。登录管理
登录管理中,我们既可以利用用户名和密码进行登录,又可以利用调取百度智能云中人脸识别进行登录。两种登录方式结合起来极大方便用户。一、是在百度智能云中找到图片中的人脸;分析人脸的特征;在进行人脸对比;匹配成功则进行登录界面。二、对系统中的敏感信息进行加密存放。对系统中用户的登录信息采用 MD5加密算法将用户的登录密码进行加密存放,在进行系统登录过程中将用户输入的密码进行 MD5 加密然后与数据库存放的数据进行对比,一致则允许登录进入系统。
2.权限管理
根据数据库角色进行数据访问角色的划分,并在 SQL SERVER 管理平台中对数据访问角色的相应数据访问权限进行精确的划分。将数据库访问角色定义为 Library Writer,并赋予读写权限,并将该用户限制在图书管理子系统中,并且该用户只能读写图书信息记录表等相关表数据;对图书借阅报表信息的数据库访问角色定义为 Library Reporter,并赋予只读权限,并且只能访问借阅报表相关的数据表。
在权限管理中,我们有两种身份,师生,管理员。师生只能访问各自的个人信息,是不能对别人的越界查询的。而在管理员的身份下,既可查询到个人信息,又可以对师生的个人信息进行管理。比如进行增删查改等操作。
部分源代码
public partial class School : Form
{
public School()
{
InitializeComponent();
}
private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
axWindowsMediaPlayer1.URL = openFileDialog1.FileName;
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
//AboutJZ代码
namespace C39.Form2Class
{
class AboutJZ
{
public static void AboutSchool()
{
School school = new School();
school.Show();
}
}
}
//Tips代码
namespace C39.Form2Class
{
class Tips
{
//public static void Satisfy(int n,int value)
public static void Satisfy(int n)
{
switch(n)
{
case 1:
Console.WriteLine("你太给力了!!!");
break;
case 2:
Console.WriteLine("你再给点力吧!!!");
break;
case 3:
Console.WriteLine("你再给,再给点力!!!");
break;
default:
Console.WriteLine("你太不给力了!!!");
break;
}
}
}
}
**在C#中如何连接本地的SQL数据库。发现它有固定格式。于是我有些记了下来,再向数据库中导入其中数据。在数据库中的逻辑数据中,逻辑设计的ER图和逻辑关系参照了书本的图解。发现也挺有趣的。顿时也不觉得枯燥了。接下来到了设计数据宝典,这个也是参照书上的内容。突然觉得数据库这本书还蛮好用的。后面也在web课上学了更简单创建数据库,用vs来创建,十分方便。
后期我们还加了人脸识别登录功能,利用百度智能云上的人脸识别函数,进行人脸识别验证,一开始出现好多错误,后面逐步摸索,最终实现了人脸识别功能。还有加入TCP/IP基本通讯功能,也是不断完善它一些附加功能。
好好加油吧!骚年!!!
**
附上B站小视频
智能图书管理系统
推荐阅读
-
C#实现图书管理系统
-
C#实现图书管理系统
-
Spring Boot+Spring Cloud+Vue+Element项目实战 手把手教你开发权限管理系统 徐丽健著 清华大学出版社
-
java+mysql实现图书馆管理系统实战
-
Java 实战项目之精品养老院管理系统的实现流程
-
Java 实战项目之教材管理系统的实现流程
-
Java 实战项目之学生信息管理系统的实现流程
-
Java 实战项目之毕业设计管理系统的实现流程
-
JSP小项目实战---客户信息管理系统
-
客户管理模块(文件上传-图片/删除-修改客户/条件查询客户)| CRM客户关系管理系统项目实战三(Struts2+Spring+Hibernate)解析+源代码