欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#实战项目~智能图书管理系统

程序员文章站 2022-05-13 20:23:40
...

智能图书管理系统

引言1.1目的

如今,学校的现代化管理下,学校的智能图书管理显得至关重要。其中图书管理内容也成为学校管理的一部分。因此,我们需要一个比较完善的智能图书管理,为用户提供可借阅的重要信息和可查询的内容。我们小组设计的智能图书管理,不仅可以对学生或者老师的借阅信息进行智能查询管理,管理员还可以对系统的基础数据进行管理,对借阅信息进行维护等功能。友好的人机交互模式,清晰简明的UI界面,安全高效的操作,管理信息起来能够有条不紊,轻松获取我们想要的信息。我们的智能图书管理系统采用面向对象方法的思想,前台采用C#程序语言编写界面,后台访问SQL SERVER数据库的模式来实现。

2.实现功能

学生管理子系统在学生方面,学生通过账号密码登录后,新增功能,人脸识别!进行登录,进去后,有借阅图书,归还图书,预约图书,续借图书等功能。需在文本框中填写相关资料,进行提交。学生也可通过学生管理子系统查询个人信息,
教师管理子系统方面与学生管理子系统功能大致一致。 在管理员子系统方面,管理员可以通过管理员权限查询、增加、删除、修改所有个人和图书信息。
本系统包括4个主要界面,里面包含七个功能模块:图书管理模块(包含库存管理,库存管理与图书管理相联系,下面重点介绍图书管理)、读者(师生)管理模块、系统管理模块、借阅管理模块、密码管理模块、问题反馈区、登录与退出模块等七个功能模块。(具体的关键代码可以查看上面模块实现的内容)
(1)第一个主要界面:Form1,它是包括系统管理模块、登录与退出模块。登录表界面窗口实现的功能。从管理员,教师,学生这三者中登录。附加智能人脸识别登录和用户注册。注册用户有学生注册和教师注册两个类型,填写好表单,提交成功即可。但是提交的密码会用MD5加密算法加密。
图8—3—1登陆界面
C#实战项目~智能图书管理系统
图8—3—2注册页面智能人脸识别的功能实现,调用百度云智能的人脸识别函数,实现智能人脸识别,人脸识别库有学生,老师,管理员。
C#实战项目~智能图书管理系统
图8—3—3人脸识别界面百度云人脸识别库的用户组如下:
C#实战项目~智能图书管理系统
C#实战项目~智能图书管理系统
C#实战项目~智能图书管理系统

(2)借阅管理包括师生借书、师生还书和师生预约,还有师生续借四个方面个方面内容 ,前两项要对用户的身份进行验证,合法用户才有权限操作。借书时先对师生信息查询,查看是否存在输入的师生。要判断书是否被预借,如被预借,则不能借书。如果以上条件都成立,则进行借书操作,并将相应的信息写入数据库中对应的表。还书模块相对借书模块来说要简单一些, 判断的条件要少。师生还书流程如图 图书预约即预先网上借书,也就是通常所说的预约借书。只要在预约借书界 面输入想要预借书籍提交就可以实现,只是某本书被预借之后别入就不能借了。流程图与借阅图书相差无几。在此就不在画出来。图书续借即在原的基础上,把借书的初始时间改为现在时间,即延长借书时间。①第二个主要界面:Form2,它是包括借阅管理模块、师生管理模块、问题答疑区模块。
图8—3—4学生操作界面

C#实战项目~智能图书管理系统

②第三个主要界面:Form3,它是包括借阅管理模块、师生管理模块、问题答疑区模块。
图8—3—5教师操作界面

C#实战项目~智能图书管理系统

(3)图书管理包括图书添加、修改、删除、查询图书信息等内容。只有系统管理员才有图书添加、修改、删除权限。在添加书籍信息时 ,首先检测不能为空值的项是否录入了数据, 将书籍信息录入到数据库时,要对书籍的编号进行判断是否唯一 ,如果不唯一,返回录入界面要求重新输入书号。图书的查询可按图书编号查找、图书名称精确查 找、图书名称模糊查找、作者、出版社、查看全部等查询方式查询 。在书籍信息修改和删除模块中,首先要检索到相应的书籍信息才可以进行相应的操作,只有已经返回的书籍才可以进行修改或删除。在修改图书信息时, 操作流程和添加图书信息大致相似 ,不同的是无需判断书号是否唯一,因为修改时不能修改图书的编号,只能修改其它的信息。师生管理包括师生信息删除和师生查询几个方面内容,进行师生管理操作,最开始是检测用户的合法性。第四个主要界面:Form4,它是包括图书管理模块、问题答疑区模块。
图8—3—6管理员操作界面
C#实战项目~智能图书管理系统
(4)本系统还设计了问题答疑区主要是可以用来进行学习问题的提问,以及操作的提问等,师生可以向管理员提问 , 管理员也可以通过问题答疑区给师生回复问题及解决问题,还可发布信息,例如通知某些及时还书。问题答疑区不是本系 统的设计重点 ,所以就只简单地介绍一下 。
图8—3—7用户客服聊天界面
C#实战项目~智能图书管理系统
图8—3—8管理员客服聊天界面

C#实战项目~智能图书管理系统
我们使用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)

C#实战项目~智能图书管理系统

(2)教师个人信息表teachers(教师号TNO,姓名TNAME, ,电话TTEL,家庭住址TADDRESS,备注信息TNOTE)
C#实战项目~智能图书管理系统

(3)用户表yonghu(用户编号YNO,用户密码YMIMA,用户类别LEIBIE)
C#实战项目~智能图书管理系统

(4)图书表books(书号LISBN,书名LNAME,作者LAUTHOR,出版社LBOOK_CONCERN,单价LPRICE,状态LCONDITION)
C#实战项目~智能图书管理系统

----身份验证模式
图书管理系统由于是涉及大量的图书信息的系统,因此相关数据的安全就特别重要。因此对该系统的数据安全进行了如下设计:
在数据库中,我们是利用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站小视频

智能图书管理系统