(附源码)C#(asp.net)图书借阅系统-计算机毕设 43090
C#(asp.net)图书借阅系统
摘 要
随着信息技术的不断发展,图书馆的管理与借阅模式逐渐向智能化、信息化方向转变。传统的图书管理模式已无法满足用户日益增长的需求,尤其是在信息查询、借阅流程、库存管理等方面亟需改进。基于C#(ASP.NET)的图书借阅系统应运而生,旨在为用户提供一个高效、便捷的图书借阅平台,提升图书借阅管理效率和质量。本文首先分析了用户需求及现有借阅系统的不足之处,明确系统的功能模块,并进行系统架构设计与数据库设计,选择采用C#语言和ASP.NET框架,结合SQL Server数据库储存处理数据进行系统的开发,主要服务于普通用户和管理员等用户,通过模块化设计实现了用户注册登录、系统用户管理、图书类型管理、图书借阅管理、借阅信息管理、提醒通知管理、入库信息管理、出库信息管理、系统管理、通知公告管理、资源管理、权限管理以及数据分析等核心功能,基本实现整个图书借阅流程,能够很好地满足不同用户需求。本系统的实施能够提高图书管理的效率,优化借阅流程,有效提升了用户体验,具有良好的实用性和扩展性,并为后续相关领域的研究和应用提供了参考价值。
关键词:图书借阅系统;asp.net框架;C#语言;图书信息化管理
Abstract
With the continuous development of information technology, the management and borrowing mode of libraries are gradually shifting towards intelligence and informatization. The traditional book management model is no longer able to meet the growing needs of users, especially in areas such as information retrieval, borrowing processes, and inventory management that urgently need improvement. The book borrowing system based on C # (ASP.NET) has emerged, aiming to provide users with an efficient and convenient book borrowing platform, improve the efficiency and quality of book borrowing management. This article first analyzes user needs and the shortcomings of existing borrowing systems, clarifies the functional modules of the system, and conducts system architecture and database design, choosing to use C # language and ASP The NET framework, combined with SQL Server database storage and processing data, is used for system development, mainly serving ordinary users and administrators. Through modular design, core functions such as user registration and login, system user management, book type management, book borrowing management, borrowing information management, reminder notification management, inbound information management, outbound information management, system management, notification announcement management, resource management, permission management, and data analysis are implemented, which basically realizes the entire book borrowing process and can well meet the needs of different users. The implementation of this system can improve the efficiency of library management, optimize the borrowing process, effectively enhance the user experience, and has good practicality and scalability, providing reference value for subsequent research and application in related fields.
Keywords: book borrowing system; ASP.net framework; C # language; Book information management
1 前 言
1.1 研究背景
1.2 研究意义
1.3 国内外研究现状
1.3.1 国内研究现状
1.3.2 国外研究现状
1.4 论文结构与章节安排
2 关键技术
2.1 C#语言
2.2 SQL Server数据库
2.3 ASP.NET框架
2.4 B/S模式
2.5 JavaScript
2.6 Visual Studio
3 系统分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 运行可行性
3.2 功能需求分析
3.3 系统性能分析
3.4 系统流程分析
3.4.1 程序操作流程
3.4.2 登录流程
3.4.3 注册流程
4 系统设计
4.1 总体设计
4.1.1 系统架构设计
4.1.2 功能模块设计
4.2 数据库设计
4.2.1 数据库概念结构设计
4.2.2 数据库逻辑结构设计
5 系统实现
5.1 系统环境分析
5.2 系统前台功能模块实现
5.2.1 用户登录模块
5.2.2 用户注册模块
5.2.3 前台首页模块
5.2.4 图书借阅模块
5.2.5 个人中心模块
5.3 后台管理功能模块实现
5.3.1 后台首页模块
5.3.2 系统用户模块
5.3.3 图书借阅管理模块
5.3.4 借阅信息管理模块
5.3.5 系统管理模块
5.3.6 权限管理模块
6 系统测试
6.1 测试目的
6.2 测试用例
7 结论
参考文献
致 谢
在当今数字化时代,图书馆作为知识传播的重要机构,面临着如何提升图书借阅管理效率和用户体验的挑战。随着信息技术的飞速发展,图书馆的功能和服务已经逐渐向信息化和智能化转型。传统的图书借阅模式依赖人工管理,常常面临效率低下、服务质量不高等问题。同时,随着用户需求的多样化和个性化,单一的管理模式已难以适应现代图书馆的发展。此外,现有的图书借阅系统往往功能单一、操作繁琐,难以适应用户的多样化需求。因此,亟需开发一个集成多功能、高效便捷的图书借阅系统,以提升图书馆的管理效率和用户体验。
本研究的主要目的是设计和实现一款基于C#(ASP.NET)的图书借阅系统,为用户提供一个高效、便捷的借阅平台,满足图书馆用户与管理员的基本需求。本图书借阅系统的研究与开发具有重要的理论与实践意义。本系统的实施将通过信息化管理手段,减少人工干预,提高图书借阅管理效率效率。同时可以提供友好的用户界面和便捷的功能,方便用户进行图书查询、借阅和管理,实现提醒通知功能,以及时提醒用户,提升用户借阅体验。借助系统还能够收集和分析借阅数据,提供数据分析与决策支持,帮助图书馆优化资源配置,提高馆藏管理效果。此外,本研究能够推动图书馆现代化建设,为图书馆的智能化、信息化管理提供借鉴和参考,促进对新技术的应用。
在国内,随着信息技术的快速发展,许多高校和公共图书馆逐渐采用数字化管理系统,以提升图书资源的利用效率和管理水平。很多高校图书馆已经开始构建集成化的图书借阅系统,这些系统通常包括借阅、归还、查询、预约、续借等功能。如北京大学图书馆实施的一套基于Web的图书借阅系统,不仅支持传统的借阅功能,而且整合了数据分析、管理报表等模块,便于管理人员进行决策,能让馆员更好地了解用户借阅习惯,从而维修和调整馆藏资源。本系统还引入了用户反馈机制,以定期收集用户对系统的意见与建议,持续优化用户体验。同时,随着用户需求的多样化,设计友好、易操作的界面成为研究的重要方向。一些图书馆通过用户调研和反馈,优化了系统界面和交互方式,提升了用户的借阅体验。例如,深圳市图书馆在建立综合服务平台时整合了图书借阅、电子书阅读、文化活动信息等多项服务。方便用户可通过手机APP实现在线借阅、查询以及参与各类文化活动,大大提升了图书馆的服务覆盖率和用户黏性。此外,在物联网和大数据背景下,部分图书馆开始探索智能图书借阅系统,如RFID(射频识别)技术被广泛应用于书籍管理,自动化设备的使用使借阅和归还的流程更加高效。
与国内相比,国外的图书借阅系统研究起步较早,且在技术应用和用户体验方面相对成熟。国外许多高校图书馆致力于利用大数据和人工智能技术,为用户提供个性化的书籍推荐服务。例如,麻省理工学院的图书馆利用机器学习和数据挖掘技术,构建个性化推荐系统,让学生能够根据个人兴趣得到相应书籍的推荐。此外,图书馆还通过分析用户的反馈数据,不断调整馆藏资源和服务项目,以保持与时代的同步。国外的大多公共图书馆则致力于资源共享,采用开放图书管理系统(如Koha、Evergreen),使不同图书馆之间能够有效共享图书资源,减少用户的借阅成本。像是洛杉矶公共图书馆采用的Open Library平台,实现跨图书馆的资源共享,通过该平台,用户可以在任何参与的公共图书馆借阅图书。这种共享机制提高了资源的利用效率,也增加了用户的选择空间。另外,国外图书馆普遍重视移动端应用和云计算技术的结合,让用户能够通过手机或平板电脑方便地访问借阅系统。这种布局不仅提升了用户的便利性,还为图书馆带来了更广泛的服务覆盖。
1.4论文结构与章节安排
本文共分为七章,章节内容安排如下:
第一章:引言,主要介绍图书借阅系统领域研究的背景和意义,概述研究的现状。
第二章:关键技术,主要探讨和说明实现图书借阅系统的关键技术。
第三章:系统分析,主要从图书借阅系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。
第四章:系统设计,主要对图书借阅系统功能模块、数据库进行功能设计。
第五章:系统实现,主要介绍了图书借阅系统各个用户的功能、系统界面的实现。
第六章:系统测试,主要对图书借阅系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。
第七章:结束语。总结全文研究内容,提出对图书借阅系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。
本图书借阅系统基于现代B/S架构,前端采用HTML、CSS和JavaScript实现用户界面,后端使用C#语言的ASP.NET框架搭建业务逻辑,数据库运用SQL Server进行数据存储与管理。整个开发环境基于Visual Studio,便于代码编写、调试和版本管理,服务器端采用Windows Server操作系统,客户端则可以通过主流浏览器访问系统。同时,考虑到用户的使用需求,平台设计为响应式,兼容各类设备访问,确保了用户的操作便捷性。
C#是一种现代化的编程语言,具备强类型检查和丰富的库支持,适合开发高效能的应用程序。其易读性和强大的面向对象特性,使得开发人员能够更加高效地实现复杂的业务逻辑。
SQL Server是微软的关系数据库管理系统,具备高可用性和数据安全性。本系统利用SQL Server存储用户信息、系统数据及交易记录,保证数据的一致性和完整性,同时提供了高效的数据查询能力。
ASP.NET是微软推出的Web开发框架,提供了构建动态网站和应用程序的强大工具。其提供的Web APIs和MVC模式为系统的模块化设计和快速开发奠定了基础,增强了系统的可维护性。
B/S是指基于浏览器/服务器(Browser/Server)架构,实现了客户端和服务器端的分离,用户通过浏览器访问系统,无需安装任何客户端软件,极大地提升了系统的使用便利性和推广范围。
JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
作为开发环境,Visual Studio集成了多种开发与调试工具,提供了丰富的开发支持,极大地提高了开发效率。其强大的调试功能和智能提示,帮助开发者快速定位和解决问题。
3.1可行性分析
3.1.1技术可行性
本项目采用C#语言和ASP.NET框架,具备较高的开发效率和稳定性。SQL Server作为数据库管理系统,能够支持系统所需的数据存储和管理。所选择的开发技术,本人也在学校进行过系统的学习,现有技术储备能够满足项目需求,具备一定的开发经验,因此从技术角度看,本系统的实现具备可行性。
本项目所采用C#语言、ASP.NET框架、SQL Server及Visual Studio等开发技术和工具皆可在网上免费下载安装,可以节省开发成本,而且能够由本人独立完成系统设计与开发,无需额外的开发花费。因此,本项目具有良好的经济可行性。
本项目采用B/S架构,用户端只需要通过浏览器即可访问平台,也无需配置复杂的使用和运行环境,便捷性高,方便用户快速上手操作。同时经过测试,能够保证系统的高可用性和安全性,因此,从运行的角度看,系统具备良好的可行性。
本图书借阅系统设计分为两大主要用户角色:普通用户和管理员。以下是对每个角色的功能需求的详细描述。
普通用户角色用例如下图所示。

图3.1普通用户用例图
系统前台普通用户具体功能说明如下所示。
- 注册登录:提供注册和登录系统的功能,普通用户可以通过注册拥有系统账户,注册信息需经管理员审核通过才可登录系统前台。
- 首页:提供系统搜索功能和系统功能导航栏,展示平台的轮播图、最新动态、热门信息、推荐信息(首页喜好推荐优先推荐根据用户已点击的类型)等内容。
- 通知公告:提供系统相关的通知公告信息,保证普通用户及时了解平台动态。
- 新闻资讯:提供新闻资讯的相关新闻、文章展示和热门资讯推荐,让普通用户快速获取最新资讯,支持点赞、收藏、评论新闻资讯。
- 图书借阅:提供图书借阅展示,支持关键字、排序搜索,普通用户可以浏览图书借阅,并点赞、收藏和评论图书借阅,详情页提供借阅功能。
- 我的账户:提供管理个人资料功能,普通用户可修改自己的账户信息和密码信息。
- 个人中心:提供个人首页、借阅信息、提醒通知、收藏、评论管理等子菜单功能链接,普通用户可根据需求对其进行管理。
管理员角色用例如下图所示。

图3.2管理员用例图
系统后台管理管理员具体功能说明如下所示。
- 登录:管理员可直接使用账号密码登录系统后台,进行管理,可对自己的个人信息和密码信息进行修改。
- 后台首页:管理员登录后台的起始界面,该界面主要展示系统重要信息概览和数据统计分析图表(包括借阅信息统计图)。
- 系统用户:管理员可管理包括普通用户和管理员等所有系统用户信息,支持用户权限管理和角色设置,可增改删查和审核封禁系统用户信息。
- 图书类型管理:管理员可管理图书类型信息,包括新增、编辑、删除和查询图书类型。
- 图书借阅管理:管理员可管理所有图书借阅的发布、下架、更新等操作,提供搜索功能,支持查看和管控其评论内容;实现借阅、入库、出库等功能。
- 借阅信息管理:管理员可管理所有借阅信息,包括查询、删除借阅信息,提供提醒、支付等操作。
- 入库信息管理:管理员可管理所有入库信息,包括查询、更新、删除入库信息。
- 出库信息管理:管理员可管理所有出库信息,包括查询、更新、删除出库信息。
- 提醒通知管理:管理员可管理所有提醒通知信息,包括查询、删除提醒通知。
- 系统管理:管理员可管理系统的轮播图信息,包括新增、编辑、删除轮播图,提供搜索功能,支持图片附带链接。
- 通知公告管理:管理员可管理平台发布的通知公告信息,包括新增、编辑、删除通知公告,提供搜索功能。
- 资源管理:管理员可管理新闻资讯和资讯分类的新增、编辑、删除等操作,提供搜索功能,支持对新闻资讯的评论管控和查看。
- 权限管理:管理员可管理系统用户组的权限信息,包括可设置和修改用户组的增改删查等权限内容。
性能需求分析是系统设计的重要组成部分,其目标是确保系统在各种负载条件下的高效、稳定和可靠。对于图书借阅系统的设计与实现,下面是系统性能分析表:
表3.1性能需求表
|
项目 |
内容 |
|
响应时间 |
系统对用户请求的响应时间需在500ms以内 |
|
并发用户数 |
系统需要支持多个并发用户同时访问 |
|
吞吐量 |
系统每秒需要处理大量请求 |
|
可用性 |
系统需要保证一定的可用性 |
|
数据安全 |
用户敏感数据需要加密存储,并支持数据库备份和恢复 |
|
数据一致性 |
系统中的数据操作需保证ACID特性,确保数据一致性 |
|
扩展性 |
系统需要支持水平扩展,能够方便地增加服务器节点以应对高请求量 |
|
可维护性 |
系统代码需要清晰易懂、结构良好,方便团队成员维护和修改 |
|
日志记录 |
系统需要记录用户操作日志、异常日志以及系统运行日志 |
|
监控报警 |
系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员 |
|
缓存设置 |
针对频繁使用的数据,系统需要进行合适的缓存 |
用户访问平台网站,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图所示。

图3.3程序操作流程图
用户访问平台的网站,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图所示。

图3.4登录流程图
未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、电子邮件等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如下图所示。

图3.5注册流程图
本图书借阅系统的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中Web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。
系统架构图如下图所示。

图4.1系统架构图
功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。根据前文功能需求分析,在系统的功能方面,本图书借阅系统分成了普通用户模块和管理员模块等两大功能模块,每个模块登录进去对应相应的功能,具体的功能模块图如下图所示。

图4.2系统功能模块图
E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本图书借阅系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.3系统总E-R图
在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。
表access_token (登陆访问时长)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID |
|
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 |
|
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
|
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] |
|
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 |
|
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
|
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
|
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 |
|
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址:[0,255]用于跳转到发布该文章的网站 |
|
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 |
|
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主体内容 |
|
|
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面图 |
|
|
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分类ID:[0,10000] |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000]决定分类显示的先后顺序 |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
分类名称:[2,16] |
|
|
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
|
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该分类的作用 |
|
|
6 |
icon |
text |
65535 |
0 |
Y |
N |
分类图标: |
|
|
7 |
url |
varchar |
255 |
0 |
Y |
N |
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授权ID: |
|
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用户组: |
|
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模块名: |
|
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: |
|
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
页面标题: |
|
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路径: |
|
|
7 |
parent |
varchar |
64 |
0 |
Y |
N |
父级菜单 |
|
|
8 |
parent_sort |
int |
10 |
0 |
N |
N |
0 |
父级菜单排序 |
|
9 |
position |
varchar |
32 |
0 |
Y |
N |
位置: |
|
|
10 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
|
11 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
|
12 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
|
13 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
|
14 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
|
15 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: |
|
|
16 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: |
|
|
17 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: |
|
|
18 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: |
|
|
19 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: |
|
|
20 |
option |
text |
65535 |
0 |
Y |
N |
配置: |
|
|
21 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
22 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
book_borrowing_id |
int |
10 |
0 |
N |
Y |
图书借阅ID |
|
|
2 |
book_number |
varchar |
64 |
0 |
Y |
N |
图书编号 |
|
|
3 |
book_name |
varchar |
64 |
0 |
Y |
N |
图书名称 |
|
|
4 |
book_type |
varchar |
64 |
0 |
Y |
N |
图书类型 |
|
|
5 |
author_name |
varchar |
64 |
0 |
Y |
N |
作者名称 |
|
|
6 |
number_of_books |
double |
9 |
2 |
Y |
N |
0.00 |
图书数量 |
|
7 |
cover_photo |
varchar |
255 |
0 |
Y |
N |
封面图片 |
|
|
8 |
billing_unit |
varchar |
64 |
0 |
Y |
N |
计费单位 |
|
|
9 |
borrowing_price |
double |
9 |
2 |
Y |
N |
0.00 |
借阅价格 |
|
10 |
borrowing_agreement |
text |
65535 |
0 |
Y |
N |
借阅协议 |
|
|
11 |
book_introduction |
longtext |
2147483647 |
0 |
Y |
N |
图书简介 |
|
|
12 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
|
13 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
14 |
collect_len |
int |
10 |
0 |
N |
N |
0 |
收藏数 |
|
15 |
comment_len |
int |
10 |
0 |
N |
N |
0 |
评论数 |
|
16 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
17 |
borrowing_information_limit_times |
int |
10 |
0 |
N |
N |
0 |
借阅限制次数 |
|
18 |
inventory_information_limit_times |
int |
10 |
0 |
N |
N |
0 |
入库限制次数 |
|
19 |
outbound_information_limit_times |
int |
10 |
0 |
N |
N |
0 |
出库限制次数 |
|
20 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
21 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
book_type_id |
int |
10 |
0 |
N |
Y |
图书类型ID |
|
|
2 |
book_type |
varchar |
64 |
0 |
Y |
N |
图书类型 |
|
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
borrowing_information_id |
int |
10 |
0 |
N |
Y |
借阅信息ID |
|
|
2 |
book_number |
varchar |
64 |
0 |
Y |
N |
图书编号 |
|
|
3 |
book_name |
varchar |
64 |
0 |
Y |
N |
图书名称 |
|
|
4 |
book_type |
varchar |
64 |
0 |
Y |
N |
图书类型 |
|
|
5 |
billing_unit |
varchar |
64 |
0 |
Y |
N |
计费单位 |
|
|
6 |
borrowing_price |
double |
9 |
2 |
Y |
N |
0.00 |
借阅价格 |
|
7 |
ordinary_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
|
8 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
9 |
borrowing_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
借阅数量 |
|
10 |
borrowing_days |
double |
9 |
2 |
Y |
N |
0.00 |
借阅天数 |
|
11 |
borrowing_date |
date |
10 |
0 |
Y |
N |
借阅日期 |
|
|
12 |
total_amount |
double |
9 |
2 |
Y |
N |
0.00 |
合计金额 |
|
13 |
sign_the_agreement |
varchar |
64 |
0 |
Y |
N |
签订协议 |
|
|
14 |
borrowing_agreement |
text |
65535 |
0 |
Y |
N |
借阅协议 |
|
|
15 |
pay_state |
varchar |
16 |
0 |
N |
N |
未支付 |
支付状态 |
|
16 |
pay_type |
varchar |
16 |
0 |
Y |
N |
支付类型: 微信、支付宝、网银 |
|
|
17 |
reminder_notification_limit_times |
int |
10 |
0 |
N |
N |
0 |
提醒限制次数 |
|
18 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
19 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
20 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
|
21 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
|
22 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
code_token_id |
int |
10 |
0 |
N |
Y |
||
|
2 |
token |
varchar |
255 |
0 |
Y |
N |
||
|
3 |
code |
varchar |
255 |
0 |
Y |
N |
验证码 |
|
|
4 |
expire_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
失效时间 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
collect_id |
int |
10 |
0 |
N |
Y |
收藏ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
收藏人ID: |
|
3 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
4 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
5 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
6 |
title |
varchar |
255 |
0 |
Y |
N |
标题: |
|
|
7 |
img |
varchar |
255 |
0 |
Y |
N |
封面: |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
comment_id |
int |
10 |
0 |
N |
Y |
评论ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评论人ID: |
|
3 |
reply_to_id |
int |
10 |
0 |
N |
N |
0 |
回复评论ID:空为0 |
|
4 |
content |
longtext |
2147483647 |
0 |
Y |
N |
内容: |
|
|
5 |
nickname |
varchar |
255 |
0 |
Y |
N |
昵称: |
|
|
6 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
9 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
10 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
11 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
hits_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
inventory_information_id |
int |
10 |
0 |
N |
Y |
入库信息ID |
|
|
2 |
book_number |
varchar |
64 |
0 |
Y |
N |
图书编号 |
|
|
3 |
book_name |
varchar |
64 |
0 |
Y |
N |
图书名称 |
|
|
4 |
book_type |
varchar |
64 |
0 |
Y |
N |
图书类型 |
|
|
5 |
inventory_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
入库数量 |
|
6 |
storage_date |
date |
10 |
0 |
Y |
N |
入库日期 |
|
|
7 |
storage_remarks |
text |
65535 |
0 |
Y |
N |
入库备注 |
|
|
8 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
10 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
|
11 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
|
12 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
notice_id |
mediumint |
8 |
0 |
N |
Y |
公告id: |
|
|
2 |
title |
varchar |
125 |
0 |
N |
N |
标题: |
|
|
3 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文: |
|
|
4 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
ordinary_users_id |
int |
10 |
0 |
N |
Y |
普通用户ID |
|
|
2 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
3 |
user_age |
varchar |
64 |
0 |
Y |
N |
用户年龄 |
|
|
4 |
user_gender |
varchar |
64 |
0 |
Y |
N |
用户性别 |
|
|
5 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
|
6 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
outbound_information_id |
int |
10 |
0 |
N |
Y |
出库信息ID |
|
|
2 |
book_number |
varchar |
64 |
0 |
Y |
N |
图书编号 |
|
|
3 |
book_name |
varchar |
64 |
0 |
Y |
N |
图书名称 |
|
|
4 |
book_type |
varchar |
64 |
0 |
Y |
N |
图书类型 |
|
|
5 |
outbound_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
出库数量 |
|
6 |
outbound_date |
date |
10 |
0 |
Y |
N |
出库日期 |
|
|
7 |
outbound_remarks |
text |
65535 |
0 |
Y |
N |
出库备注 |
|
|
8 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
10 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
|
11 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
|
12 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
praise_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
status |
bit |
1 |
0 |
N |
N |
1 |
点赞状态:1为点赞,0已取消 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
reminder_notification_id |
int |
10 |
0 |
N |
Y |
提醒通知ID |
|
|
2 |
book_number |
varchar |
64 |
0 |
Y |
N |
图书编号 |
|
|
3 |
book_name |
varchar |
64 |
0 |
Y |
N |
图书名称 |
|
|
4 |
book_type |
varchar |
64 |
0 |
Y |
N |
图书类型 |
|
|
5 |
ordinary_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
|
6 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
7 |
borrowing_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
借阅数量 |
|
8 |
borrowing_days |
double |
9 |
2 |
Y |
N |
0.00 |
借阅天数 |
|
9 |
reminder_time |
datetime |
19 |
0 |
Y |
N |
提醒时间 |
|
|
10 |
reminder_content |
text |
65535 |
0 |
Y |
N |
提醒内容 |
|
|
11 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
12 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
13 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
|
14 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
|
15 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
schedule_id |
smallint |
5 |
0 |
N |
Y |
日程ID:[0,32767] |
|
|
2 |
content |
varchar |
255 |
0 |
Y |
N |
日程内容 |
|
|
3 |
scheduled_time |
datetime |
19 |
0 |
Y |
N |
计划时间 |
|
|
4 |
user_id |
int |
10 |
0 |
N |
N |
用户id |
|
|
5 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 |
|
|
6 |
update_time |
datetime |
19 |
0 |
Y |
N |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
score_id |
int |
10 |
0 |
N |
Y |
评分ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评分人: |
|
3 |
nickname |
varchar |
64 |
0 |
Y |
N |
昵称: |
|
|
4 |
score_num |
double |
5 |
2 |
N |
N |
0.00 |
评分: |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
8 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
9 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
slides_id |
int |
10 |
0 |
N |
Y |
轮播图ID: |
|
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
标题: |
|
|
3 |
content |
varchar |
255 |
0 |
Y |
N |
内容: |
|
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
链接: |
|
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
轮播图: |
|
|
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击量: |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
upload_id |
int |
10 |
0 |
N |
Y |
上传ID |
|
|
2 |
name |
varchar |
64 |
0 |
Y |
N |
文件名 |
|
|
3 |
path |
varchar |
255 |
0 |
Y |
N |
访问路径 |
|
|
4 |
file |
varchar |
255 |
0 |
Y |
N |
文件路径 |
|
|
5 |
display |
varchar |
255 |
0 |
Y |
N |
显示顺序 |
|
|
6 |
father_id |
int |
10 |
0 |
Y |
N |
0 |
父级ID |
|
7 |
dir |
varchar |
255 |
0 |
Y |
N |
文件夹 |
|
|
8 |
type |
varchar |
32 |
0 |
Y |
N |
文件类型 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
user_id |
int |
10 |
0 |
N |
Y |
用户ID:[0,8388607]用户获取其他与用户相关的数据 |
|
|
2 |
state |
smallint |
5 |
0 |
N |
N |
1 |
账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
|
3 |
user_group |
varchar |
32 |
0 |
Y |
N |
所在用户组:[0,32767]决定用户身份和权限 |
|
|
4 |
login_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
上次登录时间: |
|
5 |
phone |
varchar |
11 |
0 |
Y |
N |
手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 |
|
|
6 |
phone_state |
smallint |
5 |
0 |
N |
N |
0 |
手机认证:[0,1](0未认证|1审核中|2已认证) |
|
7 |
username |
varchar |
16 |
0 |
N |
N |
用户名:[0,16]用户登录时所用的账户名称 |
|
|
8 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] |
|
|
9 |
password |
varchar |
64 |
0 |
N |
N |
密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 |
|
|
10 |
|
varchar |
64 |
0 |
Y |
N |
邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 |
|
|
11 |
email_state |
smallint |
5 |
0 |
N |
N |
0 |
邮箱认证:[0,1](0未认证|1审核中|2已认证) |
|
12 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
|
13 |
open_id |
varchar |
255 |
0 |
Y |
N |
针对获取用户信息字段 |
|
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
group_id |
mediumint |
8 |
0 |
N |
Y |
用户组ID:[0,8388607] |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000] |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
名称:[0,16] |
|
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该用户组的特点或权限范围 |
|
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
register |
smallint |
5 |
0 |
Y |
N |
0 |
注册位置: |
|
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
5 系统实现
考虑到图书借阅系统主要面对部分人群,网站的访问量不大。系统处理、统计分析工作简单,Internet information service(IIS)服务器能够满足中小型网络用户的数据处理,通过互联网Internet 接入及SQL Server 2008以上的数据库应用的需求点。系统具体开发环境如下表所示:
表5.1系统环境表
|
项目 |
开发环境 |
|
操作系统 |
Windows 11、Windows 10、Windows 8、Windows 7 |
|
开发语言 |
C# |
|
使用框架 |
asp.net |
|
体系结构 |
三层B/S体系结构 |
|
开发工具 |
visual studio、vs code、Dreamweaver、Notepad++ |
|
数据库 |
SQL Server 2008以上 |
|
数据库管理工具 |
Navicat |
|
.net版本 |
.NET 4.0或更高版本 |
|
部署工具 |
visual studio |
|
本地服务器 |
Internet information service |
用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。界面设计如下图所示。

图5.1用户登录界面设计
登录关键代码如下:
public class ValidateAuthorizeAttribute : ValidateAuthorityBase
{
protected override ReturnData ValidateTicket(string encryptTicket, System.Web.Http.Controllers.HttpActionContext actionContext)
{
ReturnData returnData = LoginHelper.Decrypt(encryptTicket);
if (returnData.code != 200)
{
return returnData;
}
UserLoginInfo userInfo = returnData.result as UserLoginInfo;
#region 验证登录状态
bool loginStatus = false;
if (CommonHelper.IsLoged())
{
UserLoginInfo userInfoFromSession = CommonHelper.GetUserLoginInfoFromSession();
if (userInfo.user_id == userInfoFromSession.user_id)
{
loginStatus = true;
}
}
else
{
loginStatus = LoginHelper.ValidateUserInfo(userInfo.user_id,
userInfo.username, userInfo.password);
if (loginStatus)
{
CommonHelper.SetUserSession(userInfo);
}
}
if (loginStatus == false)
{
return ReturnData.Error(30000, "登录失效,请重新登录!");
}
#endregion
return ReturnData.Success();
}
}
用户注册时,系统要求用户提供必要的信息,例如用户名、密码、电子邮件地址等。这些信息通常由用户在注册表单中输入,并通过前端验证确保格式的正确性。注册过程完成后,系统会为新用户创建一个账户。这包括分配一个唯一的用户ID和设置初始的权限或者角色。界面设计如下图所示。

图5.2用户注册界面设计
注册关键代码如下:
public object Register(JObject obj)
{
var username = obj["username"].ToString();
if (DapHelper.Exists(TableName, "and username=@username", new Dictionary<string, object>
{
{ "username" , username}
}, DBName.Db))
{
return ReturnData.Error("该账号已存在");
}
var pwd = obj["password"];
var password = EncryptHelper.MD5(obj["password"].ToString());
Dictionary<string, object> dics = GetDics();
dics["password"] = password;
dics["user_group"] = obj["user_group"].ToString();
DapHelper.Add(TableName, dics, DBName.Db);
return ReturnData.Success();
}
普通用户登录系统前台后,首先进入前台首页界面,该界面主要展示网站的主要信息和功能入口,包括轮播图、最新动态、热门信息、推荐信息(首页喜好推荐优先推荐根据用户已点击的类型)等内容。界面设计如下图所示。

图5.3前台首页界面设计
图书借阅模块主要提供图书借阅展示,支持关键字、排序搜索,普通用户可以浏览图书借阅,并点赞、收藏和评论图书借阅,详情页提供借阅功能。界面设计如下图所示。

图5.4图书借阅详情页界面设计
当用户点击“借阅”可进入图书借阅申请界面,可输入并提交借阅信息,已提交的借阅信息可在自己的个人中心进行管控。界面设计如下图所示。

图5.5借阅图书申请界面设计
提交借阅信息关键代码如下:
[HttpGet]
[HttpPost]
public virtual ReturnData add()
{
return baseService.Add();
}
个人中心模块主要为普通用户提供个人首页、借阅信息、提醒通知、收藏、评论管理等子菜单功能链接,普通用户可根据需求对其进行管理;具体包括可查询和确认借阅信息,支付借阅账单;可查收提醒通知信息;可查看和删除已收藏的系统信息;可跟踪和管控已发表的评论内容。界面设计如下图所示。

图5.6个人中心界面设计
管理员登录后台的起始界面,该界面主要提供系统重要信息概览,展示数据统计分析图表(包括借阅信息统计图)等内容。界面设计如下图所示。

图5.7后台首页界面设计
管理员可管理包括普通用户和管理员等所有系统用户信息,支持用户权限管理和角色设置,可增改删查和审核封禁系统用户信息。界面设计如下图所示。

图5.8系统用户界面设计
系统用户管理关键代码:
[HttpGet]
[HttpPost]
public virtual ReturnData add()
{
return baseService.Add();
}
[HttpGet]
[HttpPost]
public object del()
{
return baseService.DeleteData();
}
[HttpGet]
[HttpPost]
public ReturnData set()
{
return baseService.Set();
}
管理员可管理所有图书借阅的发布、下架、更新等操作,提供搜索功能,支持查看和管控其评论内容;实现借阅、入库、出库等功能。界面设计如下图所示。

图5.9图书借阅管理界面设计
发布图书借阅信息关键代码如下:
[HttpGet]
[HttpPost]
public virtual ReturnData add()
{
return baseService.Add();
}
例如,当管理员点击“入库”操作,可记录更新图书入库信息。界面设计如下图所示。

图5.10更新入库信息界面设计
编辑更新入库信息关键代码如下:
[HttpGet]
[HttpPost]
public ReturnData set()
{
return baseService.Set();
}
管理员可管理所有借阅信息,包括查询、删除借阅信息,提供提醒、支付等操作。可向用户发送提醒通知,更新支付状态。界面设计如下图所示。

图5.11借阅信息管理界面设计
借阅信息管理关键代码如下:
[HttpGet]
[HttpPost]
public object get_obj()
{
return baseService.GetObj();
}
[HttpGet]
[HttpPost]
[AllowAnonymous]
public virtual object get_list()
{
return baseService.GetList();
}
[HttpGet]
[HttpPost]
public ReturnData set()
{
return baseService.Set();
}
管理员可管理系统的轮播图信息,包括新增、编辑、删除轮播图,提供搜索功能,支持图片附带链接。界面设计如下图所示。

图5.12系统管理界面设计
系统管理关键代码如下:
[HttpGet]
[HttpPost]
public virtual ReturnData add()
{
return baseService.Add();
}
[HttpGet]
[HttpPost]
public object del()
{
return baseService.DeleteData();
}
管理员可管理系统用户组的权限信息,包括可设置和修改用户组的增改删查等权限内容。界面设计如下图所示。

图5.13权限管理界面设计
权限管理关键代码如下:
[HttpGet]
[HttpPost]
public ReturnData set()
{
return baseService.Set();
}
通过前面章节的介绍,可以看到本图书借阅系统已经完成了,但是能不能投入使用还是未知,因为在每个项目正式使用之前必须对开发的项目进行测试,如果不进行测试一旦投入使用可能会出现很多未可知的问题,比如使用人数太多导致系统瘫痪,比如某一功能存在bug信息填写错误等等,这些错误将给使用者带来很多的困扰,甚至造成更大的损失,因此测试是项目投入使用的最后一步,为用户提供一个运行顺畅、完美的项目也就是进行最后测试的目的。
在系统的功能验证阶段,主要对包括用户注册、用户登录、图书借阅添加、图书借阅搜索、图书借阅查看、借阅信息提交以及提醒通知发送等功能进行测试,具体测试用例如下所示。
- 用户注册功能测试用例
表6.1 用户注册测试用例表
|
用例名称 |
测试步骤 |
测试结果 |
|
用户注册 |
1. 输入有效注册信息,包括用户名、密码和联系方式。 |
注册成功,系统保存用户信息。 |
|
2. 点击注册按钮进行提交。 |
跳转至登录页面。 |
|
|
3. 检查是否成功注册并跳转至登录页面。 |
用户成功注册,可以登录使用。 |
- 用户登录功能测试用例
表6.2用户登录测试用例表
|
用例名称 |
测试步骤 |
测试结果 |
|
用户登录 |
1. 输入正确用户名和密码。 |
登录成功,系统验证通过。 |
|
2. 点击登录按钮进行验证。 |
跳转至用户首页。 |
|
|
3. 检查是否成功登录并跳转至用户首页。 |
用户成功登录,进入用户首页。 |
- 图书借阅添加功能测试用例
表6.3图书借阅添加测试用例表
|
用例名称 |
测试步骤 |
测试结果 |
|
图书借阅添加 |
1. 管理员进入后台图书借阅管理界面,点击添加按钮。 |
显示图书借阅添加页面。 |
|
2. 正确填写并提交相关信息。 |
信息填写完整准确。 |
|
|
3. 检查是否提交成功,并检查图书借阅是否成功添加至平台。 |
图书借阅成功添加至平台。 |
- 图书借阅搜索功能测试用例
表6.4图书借阅搜索测试用例表
|
用例名称 |
测试步骤 |
测试结果 |
|
图书借阅搜索 |
1. 在搜索框输入关键词,如图书借阅名称。 |
显示相关图书借阅列表。 |
|
2. 点击搜索按钮进行搜索。 |
匹配关键词的图书借阅显示在搜索结果中。 |
|
|
3. 检查是否显示相关图书借阅列表。 |
用户看到与搜索关键词匹配的图书借阅。 |
- 图书借阅查看功能测试用例
表6.5图书借阅查看测试用例表
|
用例名称 |
测试步骤 |
测试结果 |
|
图书借阅搜索 |
1. 点击图书借阅。 |
显示所有图书借阅列表。 |
|
2. 进入详情页浏览。 |
展示图书借阅详情页。 |
|
|
3. 检查是否显示图书借阅是否正常展示。 |
图书借阅展示正常。 |
- 借阅信息提交功能测试用例
表6.6借阅信息提交测试用例表
|
用例名称 |
测试步骤 |
测试结果 |
|
借阅信息提交 |
1. 用户进入前台我的订单界面。 |
显示借阅信息提交页面。 |
|
2. 点击售后申请,正确填写并提交相关信息。 |
信息填写完整准确。 |
|
|
3. 检查是否提交成功,并检查借阅信息信息是否成功添加至平台。 |
借阅信息信息成功添加至平台,可在个人中心借阅信息中查看。 |
- 提醒通知发送功能测试用例
表6.7提醒通知发送测试用例表
|
用例名称 |
测试步骤 |
测试结果 |
|
提醒通知发送 |
1. 管理员进入后台提醒通知管理界面,点击添加按钮。 |
显示提醒通知发送页面。 |
|
2. 正确填写并提交相关信息。 |
信息填写完整准确。 |
|
|
3. 检查是否提交成功,并检查提醒通知是否成功添加至平台。 |
提醒通知成功添加至平台。 |
6.3测试分析
经过对用户注册、用户登录、图书借阅添加、图书借阅搜索、图书借阅查看、借阅信息提交和提醒通知发送等功能的测试,系统表现稳定,用户注册流程顺畅,登录验证准确,图书借阅添加、搜索、查看功能有效,实现提交图书借阅信息,流程顺利,提醒通知发送成功。各项功能符合预期,用户可以顺利注册登录,选择所需图书借阅进行浏览,可以成功提交借阅信息提交至平台,同时相关人员可以对根据图书借阅信息及时向用户发送提醒通知。系统运行良好,用户体验良好,功能完善。
本研究主要围绕如何基于C#和ASP.NET框架设计和实现一款图书借阅系统进行了深入探讨,以提升图书借阅管理效率和用户借阅体验。通过对用户需求的全面分析,明确了普通用户与管理员的功能需求,实现了包括注册、登录、后台首页(数据分析)、系统用户、图书类型管理、图书借阅管理、借阅信息管理、提醒通知管理、入库信息管理、出库信息管理、系统管理、通知公告管理、资源管理以及权限管理等多元完备的功能,确保系统能够提供良好的用户体验和高效的管理工具。
本图书借阅系统在设计开发过程中,首先进行市场调研,分析用户需求和现存问题,确定平台的功能模块。接着,使用C#语言和ASP.NET框架进行系统开发,同时搭建SQL Server数据库以实现数据存储与管理。整个开发过程依托于Visual Studio集成环境,采用B/S架构实现前后端的有效分离与资源共享。最终,在经过多次测试和用户反馈后,确保系统具备良好的用户体验,操作简便,能够为普通用户提供便捷的图书信息浏览及借阅体验,同时为管理员提供强大且直观的管理功能。
随着技术的不断进步和市场需求的变化,图书借阅系统将面临更多的机遇与挑战。在后续的研究与开发中,可以增加社交分享、留言反馈等模块,完善系统功能;也可以引入智能技术,实现用户个性化推荐和智能客服的能力,以增强用户体验。此外,随着支付技术和移动技术的发展,支持更多的支付方式,开发移动端应用将是提升用户满意度的重要因素。通过不断的创新与改进,图书借阅系统可以在未来的发展中占据更为重要的市场地位,创造更大的价值。
[1]沈煜皓.信息潮下图书管理新象[J].文化产业,2025,(01):62-64.
[2]路厚旺.基于物联网技术的智慧图书馆服务创新研究[J].采写编,2024,(11):151-153.
[3]Wang W .Retraction Note: Optimization of book information search in intelligent library system management based on cellular network[J].Optical and Quantum Electronics,2024,56(10):1706-1706.
[4]吴智鹏.基于移动客户端的公共图书借阅系统开发研究[J].造纸装备及材料,2024,53(09):138-140.
[5]单雨欣.高校图书馆电子资源管理系统设计[J].软件,2024,45(09):160-162.
[6]王云英.基于分布式多层数据库的图书管理系统设计[J].信息与电脑(理论版),2024,36(13):82-84+88.
[7]林辉,杨小容.基于微信小程序的图书管理系统[J].电子设计工程,2024,32(12):136-140.DOI:10.14022/j.issn1674-6236.2024.12.028.
[8]李超然.面向智能书架的RFID图书信息化管理系统开发[D].黑龙江大学,2024.DOI:10.27123/d.cnki.ghlju.2024.000482.
[9]郭亚丽.基于物联网的智能图书馆管理系统应用[J].中国战略新兴产业,2024,(14):51-53.
[10]Quanfeng L ,Ibrahim H .University Library Lending System Model Based on Fractional Differential Equations[J].Applied Mathematics and Nonlinear Sciences,2022,8(1):1841-1848.
[11]张栩铭,宋雨轩,李仁德.区块链技术在图书借阅系统中的探索与应用[J].新世纪图书馆,2022,(05):57-65.DOI:10.16810/j.cnki.1672-514X.2022.05.010.
[12]杨艳红.信息化背景下图书借阅系统的构建研究[J].赤峰学院学报(自然科学版),2022,38(03):39-42.DOI:10.13398/j.cnki.issn1673-260x.2022.03.005.
[13]杨永明,徐海霞.RFID的图书馆自助借阅系统的身份识别实现[J].物联网技术,2022,12(03):74-76.DOI:10.16667/j.issn.2095-1302.2022.03.022.
[14]尹慧,段华琼.基于C语言的图书管理系统的设计与实现[J].信息与电脑(理论版),2021,33(23):116-118.
[15]刘雍,王哲河,焦赛美,等.基于C语言的图书管理系统设计研究[J].信息与电脑(理论版),2021,33(20):87-89.
[16]王晶.基于数字化技术的现代图书管理研究[J].湖北开放职业学院学报,2021,34(18):98-99.
[17]常佳宁.基于ASP.NET的图书管理系统设计[J].中国科技信息,2021,(14):73-74.
[18]倪楚乔.基于ASP.NET的网上图书销售系统[J].信息与电脑(理论版),2021,33(12):99-102.
[19]罗斯琰,李洁,钟楚阳,等.高校图书借阅系统问题分析与标准化研究——以中国计量大学为例[J].科技资讯,2020,18(29):19-22+25.DOI:10.16661/j.cnki.1672-3791.2005-9812-4268.
[20]徐昌豪,邓舒婷.基于ASP.NET手机图书管理系统实现的研究[J].电脑知识与技术,2020,16(08):73-76.DOI:10.14004/j.cnki.ckt.2020.0893.
这次毕业设计能够完成,最重要的就是来自指导老师的帮助,是导师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开导师的帮助。在此,我对导师由衷的表示感谢,
其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。
最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。
再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。
由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。
请关注点赞+私信博主,免费领取项目源码
更多推荐
所有评论(0)