当前位置: 首页 > news >正文

基于ASP.NET MVC+SQLite开发的一套(Web)图书管理系统

摘要

随着互联网的快速发展,各种线下手工业务都开始转向了互联网线上操作,在21世纪的信息革命时代,信息管理系统成为日常信息记录的主流工具。

本文介绍了以VS 2019(Microsoft Visual Studio 2019)为主要的开发工具,基于.NET平台开发的一套图书管理系统,主要运用了微软的ASP.NET MVC技术,它可以在Windows下正常运行,使用SQLite作为为数据库,IIS(Internet Information Services)网络信息服务作为应用服务器。该系统主要实现的功能有:管理员对账户进行管理;对图书的添加与删除;对读者信息的管理;对借阅信息进行管理。

本站采用B/S(Browser/Server,浏览器与服务器结构)架构系统,系统采用三层架构MVC(Model View Controller),方便开发与维护。系统界面友好操作特点,UI设计美观大方,具有易操作使用等特点。

关键词: 图书管理系统;ASP.NET MVC技术;B/S;UI

前言

随着互联网技术的不断发展,信息化系统已经融入到人类生活的诸多方面,信息的保存与记录形式都转向了电子平台,其中图书的管理系统就是其中一个非常典型的信息管理系统。在学校规模的不断扩增下,图书馆的图书数量在不断日积月累的增加。图书管理涉及到大量的数据处理,在现代图书馆中,手工是无法完成的。

本设计主要就是针对学校图书管理存在的问题,目的减少手工操作图书的借还工作,提高学校图书的管理效率。之所以选择.NET MVC作为开发技术,因为它具有易学、高效、功能强大等特点,特别适合于小型管理系统的搭建。但是要完成掌握该技术,还是需要花费一些时间研究其主要工作机制。

该网站功能模块设计简单,操作容易,不论有没有相关系统的使用经验,管理员都可以很容易对网站进行操作。

第一章 绪  论

本章主要介绍基于.NET学校图书管理系统的主要背景和主要意义,本文的内容和系统意义,最后介绍了本文的组织结构。

研究背景及意义

随着科学技术的飞速发展,我国已经进入了高速信息化社会。人类的发展有几千年的历史。计算机诞生才50年,网络的飞速发展才10年。计算机和网络的使用对社会的影响迅速扩大,甚至改变了每个人的生活方式。特别是20世纪90年代以来,网络技术的飞速发展正以惊人的速度改变着我们生活的方方面面。科学技术是我国第一生产力,也是最优秀的生产力。例如:网上挂号预约,网上阅读,网上订餐,网上购物,网上在线交易,网上看新闻等,使大家深刻感受到技术的发展和信息时代前进的步伐。

为了推进学校的信息化建设,加快信息化程度的普及。以前的人工管理图书已经远远不满足当前的海量图书的信息的管理查询,在使用信息化系统后,管理员只需要手动输入书名等关键字就能迅速定位图书的位置,以及在管状态,借阅信息等。减少人工手动记录的事情,降低人工成本。并且可以更加稳定高效的,帮助学校管理图书。

主要内容

基于.NET图书管理系统采用计算机对学校的图书信息进行管理与维护。提升图书管理的便捷与效率,使管理规范了,合理了,更加自动化了,还可以海量的存储图书不同维度的信息,大量的节省资源与时间,快速的找到你所想要的资料,不用浪费过多的时间去仔细地一遍遍查找。学生们也可以随时的查阅图书信息,方便、快速的了解到图书状态。

基于. NET图书管理系统阐述了本系统的研究背景和意义、系统开发环境、需求分析、系统概要设计、系统详细设计、系统测试与维护、总结与展望。系统最重要的部分是系统的详细设计,其中包含了用户登录界面的设计,用户可以登录系统查看相应的内容。主要模块包括:图书的管理模块、读者的管理模块、借书还书管理模块。主要功能对图书,读者还有借还记录记性查找、添加、删除、修改等操作。修改密码界面是对密码进行修改使用新的密码登录系统。

学校图书管理系统意义

基于. NET图书管理系统是非常实用的。通过系统,管理员可以快速定位当前图书的在库状态,并且快捷的操作图书的借还,减少了以前人工手动录入的麻烦。

信息化是社会进程的必然趋势。学校的管理只有高效合理才能更好的提高教学质量发挥其作用。大部分乡村教学还停留在纸质时代,没有存档或者管理不善使其丢失。这种方法不适用于当代社会的发展。不满足社会的需求大大地浪费人力财力存在着许多的不可控因素。在信息化的时代,使用计算机才是正确的方式之一。计算机为基础的信息管理方式必然会替换掉我们人工的管理方式。所以学校图书管理系统是非常重要的。

本文的组织结构

本文共分为七章,每个章节的内容如下:

第一章:绪论。本章主要讲了课题的研究意义和主要背景,本文的内容和意义,最后会介绍本文的组织与结构。

第二章:主要介绍系统的开发环境。主要技术讲解包括:ASP .NET概述和MVC架构模式的优点;数据库SQLite介绍;Entity Framework连接数据库技术,使用Code First技术代码驱动数据库表;前端Bootstrap前端框架技术;IIS Web服务器技术介绍。

第三章:需求分析。本章主要对学校图书馆管理系统的设计与实现进行可行性分析,包括技术可行性、社会可行性、经济可行性和操作可行性。系统用例通过具体的需求分析,得到学校图书馆管理系统的基本用例图。介绍了系统的软硬件开发结构、编程环境和开发工具。

第四章:系统的概要设计。本章主要讲了系统的大概设计与本系统B/S的结构和基于Web服务器的两种模式。其次对数据库运用设计包含了数据库E-R图、数据库实体针对数据库表对后台进行各个数据的详细记载。

第五章:系统的详细设计。本章主要介绍了系统的详细设计ASP.NET结合SQL构建了学校图书馆管理系统,基于当今的客户端管理模式既有B/s模式又有系统各模块的主界面是如何实现的。

第六章:系统测试。本章主要讲了学校图书管理系统的测试和的维护简单的介绍。

第七章:总结展望。本章讲了图书管理系统的总结和整体展望,希望以后会努力争取做的更好。

第二章 系统开发环境与相关技术介绍

本章主要说明本文系统的开发环境与相关技术使用。主要的技术与开发使用环境:ASP .NET  MVC技术;Entity Framework数据库连接技术;Bootstrap前端框架技术;Visual Studio2019开发工具介绍; IIS Web服务器介绍;数据库SQLite介绍。

开发工具以及环境介绍

主要介绍了系统的开发工具与相关开发环境的使用与说明。

IIS Web服务器简介

IIS是Internet信息服务,它基于运行Microsoft Windows的web服务器,类似于Java中的Tomcat。IIS是一组环境工具,不是操作系统,而是安装在windows上的web平台。IIS是一个web服务组件,它包括web服务器、FTP服务器、NNTP服务器和SMTP服务器。它用于网页浏览、文件传输、新闻服务和邮件发送等。其结构如图2-1所示。

图2-1 IIS结构图

IIS通过各种标准语言和协议工作。Html用于创建文本、按钮、图像放置、直接交互/行为和超链接等元素。HTTP是web服务器和用户之间交换信息的基本通信协议。HTTP(HTTP over secure sockets layer)-使用传输层安全性或SSL加密通信以提高数据安全性。文件传输协议(FTP)或其安全变体FTPS可以传输文件。

Windows Server 2012已经附带IIS 8.0(Windows Server 2012 R2使用IIS 8.5)。 IIS 10随Windows Server 2016和Windows 10一起提供。

Visual Studio IDE开发环境简介

Visual studio集成开发环境是一个创新的起点,它可以用来编辑、调试和生成代码,然后发布应用程序。集成开发环境(IDE)是一个功能丰富的程序,可以应用于软件开发的许多方面。除了大多数ide提供的标准编辑器和调试器外,visual studio还包括编译器、代码完成工具、图形设计器和许多其他功能,以简化软件开发过程。其整体风格如下图2-2所示。

图2-2 IDE风格图

Visual Studio 具有一个打开的项目和若干可能会使用的关键工具窗口:

  1. 可以通过(右上方)查看、导航和管理代码文件。解决方案资源管理器可将代码文件分组为,从而帮助整理代码 。
  2. (中心)用于显示文件内容,你可能会在该窗口花费大部分时间。可在该窗口编辑代码或设计用户界面,例如带有按钮和文本框的窗口。
  3. (底部中心)是 Visual Studio 发送通知(例如,调试和错误消息、编译器警告、发布状态消息等)的位置。每个消息源都有自己的选项卡。
  4. 利用版本控制技术(如和),(右下方)可让你跟踪工作项并与他人共享代码。

SQLite 简介

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起MySQL、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2021年已经接近有21个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

项目技术详细介绍

本节将详细介绍项目中使用的相关技术知识。

ASP .NET MVC技术简介

ASP.NET 是一个微软开发框架,主要通过 HTML、CSS、JavaScript 等服务器脚本来创建网页和网站。

ASP.NET 支持三种开放模式:

Web Pages、MVC (Model View Controller) 、Web Forms:

MVC 是三个 ASP.NET 开发模型之一。

MVC 是用于创建 Web程序的一种流行框架,使用 MVC (Model View Controller) 设计:

  • Model(模型)表示应用程序核心(比如数据库记录列表)
  • View(视图)对数据(数据库记录)进行显示
  • Controller(控制器)处理输入(写入数据库记录)

MVC 模型也提供了对 HTML、CSS 以及 JavaScript脚本的控制。

MVC 模型通过三个逻辑层来定义 Web应用程序:

  • business layer(业务层、模型逻辑)
  • display layer(显示层、视图逻辑)
  • input control(输入控件、控制器逻辑)

模型(Model)

  • 模型(Model)是程序中使用于系统数据绑定逻辑的部分。
  • 通常模型对象在数据库中存取数据。

View(视图)

  • View(视图)是程序中处理数据展示的部分。
  • 通常从模型数据中创建视图。

控制器

  • 控制器是应用程序中处理用户交互的部分。
  • 通常控制器是从视图获取数据、控制用户的输入,并向模型传送数据。

MVC的这种拆分有助于我们管理复杂的应用程序,因为您可以一次只关注一个方面。例如,您可以设计视图而不依赖于业务逻辑。同时,应用程序的设计也更加简单。

MVC 的拆分也简化了分组开发的麻烦。不同的开发技术人员可以同时开发页面、控制器逻辑和程序逻辑。

Entity Framework技术简介

Entity Framework,是.NET的ORM实体框架,可以在 SQL Server、MySQL、Oracle、等主流数据库上使用。将数据转换为业务对象与实体进行操作,使用LINQ语句查询,使用C#语言操作与检索。

Entity Framework 使用三种建模方式:主要为Code First、Model First与Data First

Code First :主要通过类描述模型,建数据库通过类来创建,其简称为POCO(Plain Old CLR Object)。POCO中的C为 .NET Framework公共语言中运行时(Common Language Runtime,CLR)中的一个对象。POCO使用尽可能简单的类,其中包含了属性、方法等,但方法不能实现持久化的逻辑,就是POCO可以含有业务逻辑。Code First 优点如下:

  • 可以创建一个更富有逻辑、更灵活的应用程序;
  • 因为没有自动生成难以修改的代码,所以我们对编码可以完全控制;
  • 只需要定义映射,其余一切交给Entity Framework来处理;
  • 可以用修改代码的方式来修改数据库;
  • 可以使用它来映射表结构到一个已存在的数据库。

Model First: 允许我们使用实体设计器在空模型中创建模型实体、它们的关系和继承层次结构,然后创建数据库。优缺点如下:

  • 无法控制实体和数据库,因为自动生成的代码难以修改,但是对于小型且简单的项目,它仍行之有效;
  • 在实体中添加额外的功能,不得不修改T4模板或者使用部分类来完成;
  • 数据库模型的更改不是最佳选择,因为是由模型定义了数据库。

Data First:我们可以从现有的数据库建立模型,使用自动生成代码,减少编写的代码量,其中限制了我们生成代码的结构。优缺点如下:

  • 如果已有DBA设计的数据来单独开发或已存在数据库,将作为首选
  • 使用EDM向导为我们创建实体、关系和继承层次结构,修改映射后还可以生成实体;
  • 要在实体中添加额外的功能,必须通过T4修改模板或者使用部分类;
  • 数据库的手动更改变为可能,如果要修改数据库表结构,只需要从数据库更新实体的模型即可。

Bootstrap技术简介

Bootstrap是最流行的HTML、CSS和JS框架,用于开发具有响应式布局和移动设备优先级的web项目。2011年,为了提高自己的内部分析和管理能力,twitter的一小群工程师利用业余时间为自己的产品构建了一套易用、美观、灵活、可扩展的前端工具bootstrap。Bootstrap是由Mark Otto和Jacob Thornton设计和构建的。在GitHub上开源之后,它很快就成为了网站上最受欢迎的Watch&Fork项目。大量工程师积极为项目贡献代码,社区出人意料地活跃,代码版本演变非常快,公文质量极高(可以说是文雅),许多基于bootstrap的网站应运而生,其主要风格是界面清新、简洁、排版利落大方。

Bootstrap 特点:简单灵活的架构,用户界面与交互接口的工具集。基于html5、css3的bootstrap,具有大量优秀特性:友好的学习文档,优秀的兼容性,响应式布局,12列格网,样式的向导文档。自设定JQuery插件,完整类库,基于Less等

BootStrap优势:Bootstrap 响应式的布局设计,让每一个网站都可以兼容各种分辨率的设备。Bootstrap的响应式布局设计,也给用户带来更好的视觉体验。

本章小结

本章主要对项目开发中使用的环境还有需要的相关技术进行的详细的介绍,这样使读者更能快速了解本项目的开发环境与相关工具。

第三章 系统需求分析

本章主要对学校图书馆管理系统的设计与实现进行可行性分析,包括技术可行性、社会可行性、经济可行性和操作可行性。系统用例通过具体的需求分析,得到学校图书馆管理系统的基本用例图。介绍了系统的软硬件开发结构、编程环境和开发工具。

可行性分析

主要介绍系统在技术上、经济上、操作上的可行性分析。

技术可行性

根据该系统所要用到的功能进行设计:它包含用户管理模块、图书管理模块、读者的管理模块、图书的借阅记录管理模块等,从技术的角度研究系统的可行性。本系统采用的是.NET下的ASP.NET MVC技术和Entity Framework 技术。.NET已经是一个成熟、稳定的开发平台。数据库采用的是SQLite, 整体性能良好。在Bootstrap的前端框架下实现页面的自适应布局,是一个不错的解决方案,所以技术上是完全可行的。

经济可行性

经济可行性研究主要是本金和利润解析,包含计划项目的开发成本,预计开发成本将超过项目计划的全部利润。观察软件的经济效益能否与开发设计所需的投资相比较,是否合适。同时,检查软件是否能给用户带来足够的经济效益。学校图书馆管理系统就是为了提高办公效率,节省人力和时间。这个系统是完全可行的。软件的开发不需要大量的成本,节省了大量的人工成本,同时提高了相对办公效率。

操作可行性

由于计算机技术的飞速发展,已经应用到生活中,给人们带来方便。这使得人们的工作效率和可操作性有了更高的标准。在管理方面,计算机是社会发展的趋势。不足为奇的是,各种多功能、智能化的软件不仅可以减少人工操作的费时费力,而且可以提高工作效率,减少人工失误。学校图书馆管理系统的界面设计简洁大方。用户可以通过登录界面,输入关键信息,快速查找图书信息。该系统操作简单,易于理解,可见开发该软件是非常可行的。

系统用例设计分析

系统功能需求是系统开发的必备事情。通过分析具体需求,了解学校图书干了系统的基本用例图,如图3-1所示:

图3-1 系统用例图

管理员:登录;管理用户信息;图书管理;读者管理;借还书管理等。

功能详细介绍:

  • 登录注册模块,主要是用户将用户信息录入到注册页面,然后通过验证,保存该用户的信息到数据库的过程。在登录时。则要检查用户填写的用户名和密码是否与数据库中的记录正确,返回匹配成功后则登录成功。
  • 个人信息管理模块,用户登录后,可以到用户信息页面进行维护个人信息,更新用户基本信息,修改密码等。
  • 图书管理模块,只要是通过用户输入的关键字,进行全文搜索图书,把用户需要的图书展示给用户,体现系统的快捷方便性。并且可以增加与删除图书功能。
  • 读者管理模块,通过用户输入的关键字,进行全文搜索读者,并且可以增加与删除读者数据功能。
  • 借还书管理模块,通过用户输入的关键字,进行全文搜索借还的记录,并且提供借书与还书操作等。

系统业务流程需求分析

首先,进入开始菜单,用户输入用户名和密码。系统检查用户输入的用户名和密码是否合法。如果用户合法进入系统,如果用户输入的用户名和密码不合法,则返回用户名和密码输入界面重新输入,直到用户名和密码正确输入系统,然后成功进入系统主库管理界面,可以对图书进行增、删、改、查等操作,读者管理界面,可以对读者进行新增,删除,查询等。借还书界面可以查询库内在借图书与已还图书,并且可以借书与还书操作。整体设计流程图如图3-2所示:

图3-2添加综合测评信息流程图

安全需求

随着互联网的快速发展,安全问题日益突出。然而,由于关注点的不同,绝大多数网站开发公司对网站安全代码的设计并不十分重视。发现了网站安全的缺陷和漏洞。通常的修复方法只是停留在页面的修复上。按照网站代码转化的具体漏洞原则,很难解决网站建设的源头问题。

网站结构设计是网站开发的重要组成部分。网站内容设计完成后,网站的目标和内容的主题也确定了。结构设计就是如何将网站的内容划分成清晰、合理、层次分明的体系,如栏目划分及其关系、网页层次及其关系、链接地址路径设置、网站功能在网页上的分配等。所有这些都只是前台的结构设计,而前台结构设计的实现需要后台开发者强有力的支持,后台也应该有良好的结构设计,这样才能保证前台的结构设计得以实现。理清网页的内容及栏目结构的组成,使网站链接结构、布局导航线路层次清晰;内容与结构要突出网站的主题。

本次系统也考虑到了以下几点因素:

  • 登录验证操作,对于非法用户不予登录。
  • 注册信息验证操作,使用正则表达式进行匹配验证信息。
  • 权限分配管理,不同用户具备不同的操作该系统的权限。

系统软硬件配置需求

主要介绍系统的硬件需求。

计算机系统硬件配置

  • 内存:2G及以上
  • 硬盘:100GB以上
  • 显存:512MB以上
  • 分辨率:1024×768

计算机系统软件配置

操作系统:Windows 7及以上版本系统

安装软件:.NET Framework 4.5

Internet Explorer 8.0
SQLite 3.0

IIS7以上版本

本章小结

本章主要对本系统的需求经行了细致的分析,并通过流程图详细展现了该系统的操作流程,通过不同模块的功能介绍,让程序实现更加清晰自己的工作范围与实现意义。并且说明系统的运行配置与运行环境。

第四章 系统概要设计

本章主要讲了系统的概要设计,该系统采取B/S架构基于WEB服务器的形式。其次对数据库进行设计,包括数据库E-R图、数据库实体、数据库表设计等。

概述

系统采取B/S架构(浏览器Browser /服务器结构Server)访问,部署在IIS Web服务器上两,是一个比较适用于公共网络环境下的一个模型结构。如果用户连到系统的办公网络或者系统的局域网,就能够在随时的访问与使用。本系统的工作原理如图4-1所示:

图4-1  系统工作原理图

客户端首先会发出一个请求到Web服务器,然后Web服务器收到请求,将数据传送到数据库进行检索,检索完成后,Web服务器再返回信息到客户端。

系统结构

本系统是一个基于B/S架构的Web系统,其具体功能如图4-2所示:

图4-2系统功能图

学校图书管理系统用户分为管理员、普通用户。管理员功能是管理包含所有用户信息、图书管理、读者管理、借书管理、还书管理等。普通用户可以是学生与老师,拥有的权限包括个人信息的维护与更新,图书的检索,借书记录的查询功能等。

数据库设计

主要介绍系统的数据库设计。

数据库E-R图

概念模型的设计是对国家实际信息进行抽象,实现信息的主体建模,是数据库设计的重要工具。数据库概念模型设计可以通过图形来描述现实世界的概念模型。

数据库实体ER图设计

概念设计的目标是设计一个能反映任何组织结构信息的数据库系统概念模型。数据库系统的概念模型独立于数据库系统、数据库管理系统和计算机系统的思维结构。

概念模型的规划方法主要是对需求进行分析,用概念数据模型表达数据与数据之间的关系,规划数据库系统的概念模型,以了解用户的信息需求和处理需求。概念设计的目的是准确描述应用范围的消息形式,支持用户的各种应用,这样不仅可以简单地旋转到数据库系统的思维结构中,而且可以被用户理解。数据库系统的概念模型是面向现实世界的数据模型,不能直接用于数据库系统的实现。在此期间,用户可以参与和评价数据库系统,有利于保证数据库系统的设计满足用户的要求。本系统的ER图如图4-3所示:

图4-3 E-R图

数据库设计表

此系统需要后台数据库,下面介绍了数据库的各个表的详细信息。

用户信息表如表4-1所示:

表4-1 用户信息表

字段名

说   明

类  型

长  度

可否为空

主键

UserID

编号

Int

8

UserName

用户名

Varchar

50

Password

用户密码

Varchar

50

DisplayName

显示用户名

Varchar

50

EmailAddress

邮箱地址

Varchar

50

读者信息表如表4-2所示:

表4-2 读者信息表

字段名

说   明

类  型

长  度

可否为空

主键

ReaderID

编号

Int

8

ReaderName

名称

Varchar

50

PhoneNum

电话号码

Varchar

50

Gender

性别

Varchar

50

EmailAddress

邮箱地址

Varchar

50

Balance

余额

Double

8

EnableBorrowNum

可借书数量

Int

8

CreateBy

创建人

Varchar

50

CreateTime

创建时间

DateTime

50

图书信息表如表4-3所示:

表4-3图书信息表

字段名

说   明

类  型

长  度

可否为空

主键

BookID

编号

Int

8

BookName

图书名称

Varchar

50

Author

作者

Varchar

50

Publish

出版社

Varchar

50

Type

类型

Varchar

50

Amount

数量

Varchar

50

CurrentAmount

剩余数量

Varchar

50

Introduction

介绍

Varchar

50

CreateBy

创建人

Varchar

50

CreateTime

创建时间

DateTime

50

借阅信息表如表4-4所示:

表4-4借阅信息表

字段名

说   明

类  型

长  度

可否为空

主键

BorrowID

编号

Int

8

Status

状态

Varchar

50

BorrowTime

借书时间

DateTime

50

ReturnTime

还书时间

DateTime

50

BorrowOper

借书操作人

Varchar

50

BackOper

还书操作人

Float

8

BookId

图书编号

Int

8

ReaderId

读者编号

Int

8

CreateBy

创建人

Varchar

50

CreateTime

创建时间

DateTime

50

字典信息表如表4-4所示:

表4-4字典信息表

字段名

说   明

类  型

长  度

可否为空

主键

Id

编号

Int

8

Type

类型

Varchar

50

Code

编码

Varchar

50

DisplayName

展示名称

Varchar

50

Remark

备注

Varchar

500

本章小结

本章首先介绍了系统的概述系统的整体结构数据库的设计采取数据模型进行建模使用数据库实体。数据库的设计对系统是特别重要的,所以我们在经行数据库设计的时候一定要,重点分析业务的需求,既能满足用户的需求,又能易于理解的开发。

第五章 系统的详细设计

本章主要讲了系统的详细设计基于ASP.NET MVC的实现过程,包括用户界面,主要代码说明。

用户登录注册界面

首先进入主界面,进入系统前需要进行登录,你可以输入登录的用户名和密码,输入完成后可以登录系统,如果还没有账户可以通过注册页面进行用户注册,登录后即可对数据进行查询。界面设计的比较简单大方。如图5-1系统登录页面,5-2用户注册页面:

图5-1系统登录页面

图5-2系统注册页面

后台主要代码展示如下:

public ActionRes Login(RegisterAndLoginViewModel Loginuser)
{try{if (ModelSta.IsValid){var _user = userService.Find(Loginuser.UserViewModel.UserName);if (_user != null && Loginuser.UserViewModel.Password == _user.Password){Session.Add("user", _user);Session["userName"] = _user.DisplayName;return RedirectToAction("Index", "Book");}else{ModelState.AddModelError("", "用户名或者密码不匹配!");}}}catch (Exception e){LogHelper.WriteLog(typeof(UserController), e);throw e;}return View("LoginAndRegister", Loginuser);
}

图书管理页面

登录系统之后,点击左侧菜单,进入图书管理页面。可以对图书进行关键字搜索,添加,修改删除等操作。如图5-3所示:

图5-3 图书管理页面

后台主要代码展示如下:

public ViewRes Index(string sortOrder, string keyword,  string CurrentFilter, int? page)
{ViewBag.CurrentSort = sortOrder;ViewBag.keyword = keyword;List<SelectListItem> items = Common.getBookTypeItems();this.ViewData["list"] = items;ViewBag.AmountSortParm = String.IsNullOrEmpty(sortOrder) ? "Amount_desc" : "";ViewBag.TypeSortParm = String.IsNullOrEmpty(sortOrder) ? "Type_Asc" : "";ViewBag.CurrAmountSortParm = String.IsNullOrEmpty(sortOrder) ? "CurrAmount_desc" : "";ViewBag.AddTimeSortParm = sortOrder == "Date" ? "date_desc" : "Date";IBookDal ibookDao = RepositoryFactory.BookRepository;var books = ibookDao.FindBookList(keyword);switch (sortOrder){case "CurrAmount_desc":books = boks.OrderByDescending(s => s.currAmount).ToList();break;case "Date":books = boks.OrderBy(s => s.addTime).ToList();break;case "date_desc":books = boks.OrderByDescending(s => s.addTime).ToList();break;default:books = books.OrderByDescending(s => s.addTime).ToList();       }

读者管理页面

管理员可以对读者数据进行关键字查询,增加图书,编辑读者,删除读者等操作。如图5-4所示:

图5-4读者管理界面

前台主要代码如下:

<tr><td><label class="lyear-checkbox checkbox-primary"><input type="checkbox" name="ids[]" value="1"><span></span></label></td><td>@Html.DisplayFor(modelItem => ite.readerName)</td><td>@Html.DisplayFor(modelItem => ite.phoneNum)</td><td>@Html.DisplayFor(modelItem => ite.Gender)</td><td>@Html.DisplayFor(modelItem => ite.email)</td><td>@Html.DisplayFor(modelItem => ite.balance)</td><td class="text-center">@Html.DisplayFor(modelItem => item.enableBorrowNum)</td><td><div class="btn-group">@Html.ActionLink("编辑", "Edit", new { id = item.readerId }, new { @class = "btn btn-sm btn-default mdi mdi-pencil", data_toggle = "modal", data_target = "#gridSystemModal" })@Html.ActionLink("查看", "Details", new { id = item.readerId }, new { @class = "btn btn-sm btn-default mdi mdi-eye", data_toggle = "modal", data_target = "#gridSystemModal" })@Html.ActionLink("删除", "Delete", new { id = item.readerId }, new { @class = "btn btn-sm btn-default mdi mdi-window-close", data_toggle = "modal", data_target = "#gridSystemModal" })</div></td>
</tr>

后台主要代码如下:

public ActionResult Index(string keyword, int page = 1)
{var viewData = db.readers.OrderByDescending(o=>o.createTime);if (!string.IsNullOrEmpty(keyword)) {viewData.Where(o => o.readerName.Contains(keyword));}return View(viewData.ToPagedList(page,5) );
}[HttpPost][ValidateAntiForgeryToken]public ActionResult Index(FormCollection Collection){string readerName = Collection["readerName"];List<Reader> readers = new List<Reader>();IReaderDal iRedaerDal = RepositoryFactory.ReaderRepository;var _list = iRedaerDal.FindList(a => a.readerName.Contains(readerName), "readerName", true).ToList();return View(_list.ToPagedList(1,5));          }
public ActionResult Details(int? id)
{if (id == null){return new HttpStatusCodeResult(HttpStatusCode.BadRequest);}Reader reader = db.readers.Find(id);if (reader == null){return HttpNotFound();}return View(reader);
}

借还书管理页面

本系统主要对图书的借还记录进行操作管理,方便查询历史记录,用户可以通过界面输入关键字进行查找在借状态的图书,获取当前图书的在管状态等。如图5-5所示:

图5-5借书管理界面

还书界面如图5-6所示:

图5-6还书管理界面

前台主要代码如下:

<tr><td><label class="lyear-checkbox checkbox-primary"><input type="checkbox" name="ids[]" value="1"><span></span></label></td><td>@Html.DisplayFor(modelItem => ite.book.bookName)</td><td>@Html.DisplayFor(modelItem => ite.reader.readerName)</td><td>@Html.DisplayFor(modelItem => ite.status)</td><td>@Html.DisplayFor(modelItem => ite.burrowTime)</td><td>@Html.DisplayFor(modelItem => item.borrowOper)</td><td>@Html.DisplayFor(modelItem => item.backOper)</td><td><div class="btn-group">@Html.ActionLink("还书", "Return", new { id = item.bookId }, new { @class = "btn btn-sm btn-default mdi mdi-keyboard-return", data_toggle = "modal", data_target = "#gridSystemModal" })@Html.ActionLink("查看", "Details", new { id = item.bookId }, new { @class = "btn btn-sm btn-default mdi mdi-eye", data_toggle = "modal", data_target = "#gridSystemModal" })@Html.ActionLink("删除", "Delete", new { id = item.bookId }, new { @class = "btn btn-sm btn-default mdi mdi-window-close", data_toggle = "modal", data_target = "#gridSystemModal" })</div></td>
</tr>

后台主要代码片段:

public ActionResult Return(int? id)
{IBorrowItemDal BorrowItemDal = RepositoryFactory.BorrowRepository;var borrowitems = db.borrowItems.Include(b => b.book).Include(b => b.reader);BorrowItem borrowitem = db.borrowItems.Find(id);if (borrowitem == null){LogHelper.WriteLog(typeof(BorrowItemController), "HttpNotFound");return HttpNotFound();}try{BorrowItemDal.returnBookAndReader(borrowitem.bookId, borrowitem.readerId);borrowitem.status = Status.已还;if (Session["userName"] != null){borrowitem.backOper = Session["userName"].ToString();}else{return RedirectToAction("Login", "User");}borrowitem.sjBackTime = DateTime.Now;db.Entry(borrowitem).State = System.Data.Entity.EntityState.Modified;db.SaveChanges();}catch (Exception e){LogHelper.WriteLog(typeof(BorrowItemController), e);}return RedirectToAction("Index", "BorrowItem");
}

本章小结

本章讲了系统的详细设计采用ASP.NET MVC技术的实现的功能,更新说明。从前后端的代码可以看到,使用MVC三层架构模式开发,使系统变得更加灵活开发,添加和删除时,只需要到相应模块进行修改即可。前台的界面设计的要使用户容易使用,内容要简单,图文并茂效果较好。

第六章 系统测试和维护

系统测试

测试描述:

  • 发现和确认系统有缺陷,而不是验证系统是没问题的。
  • 确认软件生命周期中的每个阶段的产品是否正确。
  • 确认最终交付的产品是否满足用户的需求。

测试用例:

用户登录界面测试

  • 输入:用户名 密码
  • 期望的结果:用户名Admin 密码123456 登录不报错

图书查询测试

  • 输入:输入关键字“西游记”书名
  • 期望结果:查询到书名为西游记的图书

图书添加测试

  • 输入:图书名,作者,出版社,数量
  • 期望结果:添加成功,在图书首页展示添加的书籍信息

系统的维护

每个体系开发出来以后都要实施后期维护,清除执行过程中突发的异常,维护职员要定期对系统实行修复和完善,让系统顺应用户的要求。对系统软件实行定时的更新。维护有5大类:分别是系统应用程序的维护,数据库的维护工作,代码发生错误的维护,硬件破坏的维护,任何一个系统的维护都是很复杂的很困难的,当出现疑问是会变得很复杂,因此维护一定要完善。

在维护方面比大型的系统维护更加的方便,但是还存在着很多的问题需要解决,所以一定要好好地学习认真的完成科学的维护工作。

本章小结

本章讲了学校图书管理系统测试和维护。如果发现错误要及修改,定期的维护可以保障软件的运行更加的稳定,测试用例的使用使系统功能更加的完善,没有Bug。

第七章 总结与展望

本文总结

通过本系统的设计,我更加了解对于Web开发网站的过程,在开发过程中,不能急于求快,要准确深透的理解系统的需求然后再进行开发,这样才能避免开发中遇到难题时,不知道如何下手,这样也会大大会挫败我们的积极性。在经行开发时,最好每个层都分别编写单元测试类,这样可以避免,进行系统整合时,产生不知道的错误。

在设计前台页面的时候,要尽量做到美观,而且具有良好的互动性,使用Ajax,Jquery,Bootstrap等技术进行设计,可以很好的达到系统体验的互动性。注意代码安全,对录入的用户信息经行校验,并对密码做加密处理,在录入时不能轻易被别人读取。

在最后整合系统时,要经行全面的测试,以防产生一些莫名的错误,例如url保护,对不同权限的用户经行限制权限。

之所以选择ASP .NET技术作为开发平台,我在这里总结下他的优越性,它遵循W3C标准XHTML标准。总之,这是我们经常考虑的兼容性问题。在ASP。Net,我们不需要考虑太多的兼容性问题,因为ASP。Net与IE和Firefox兼容。在基于B/S模式的开发过程中,浏览器的兼容性一直是开发人员头疼的问题。ASP。Net从实际情况出发考虑了这些技术问题,并介绍了开发人员遇到的困难。

在这次毕业设计的过程中,我体会到,如果我想开发一个管理软件,不仅需要合适的专业技能和常识,更需要严谨细致的能力。只要思路清晰,编程就会更有意义,否则就没用了。同时,您应该善于捕捉微妙的观点,因为这通常是导致程序死亡的原因。这次毕业设计培养了我的细心和耐心,确立了我在自然科学方面的地位。对我今后的工作和学习有很好的帮助和指导作用,也深刻地认识到其中有许多不完善之处,还需求不停地研习来充分巩固自我,只要这样才能学到知识更好的发展。通过沟通我理解了不论任何方面的编程研习进程是相同的,只有通过不停的实践积累经验不是一挥而就的。想想这几个月是艰辛的,也是收成的几个月。了解了准确的管理方法,积累了经验 。

后续工作展望

学校图书馆管理系统在设计和实施上还存在许多不足,许多地方还不够完善。除了学习专业知识,还要学会灵活运用,灵活运用,积极向师生请教,我还需要学习更多关于ASP .NET的技术知识,只有这样才可以使系统开发的更加功能强大,易操作。我相信只有努力更加刻苦的学习才能让知识更加丰富。也希望我的毕业设计可以在实际生活中真正得到客户使用,我会积极的扩充自己专业知识并且多做课外实践,让学到的技术有所运用到工作生活中。以后,我会努力追求完美,收集更多的需求来完善该系统。

http://www.lryc.cn/news/585024.html

相关文章:

  • 游戏开发日记
  • 微软语音合成标记语言SSML文档结构和事件(详细文档和实例)
  • Unity Demo——3D平台跳跃游戏笔记
  • WHQL认证失败怎么办?企业如何高效申请
  • LeetCode 148 排序链表解析:高效归并排序实现
  • 基于Springboot+UniApp+Ai实现模拟面试小工具二:后端项目搭建
  • 【数据结构与算法】203.移除链表元素(LeetCode)图文详解
  • doker和网站部署
  • LeetCode--43.字符串相乘
  • Kotlin 常用语法糖完整整理
  • 九联UNT403AS_S905L3SB当贝固件优盘刷机包下载
  • 9、鸿蒙Harmony Next开发:栅格布局 (GridRow/GridCol)
  • AI产品经理面试宝典第7天:核心算法面试题-上
  • 在 Spring Boot 中使用 WebMvcConfigurer
  • AI技术正以前所未有的速度重塑职业生态与行业格局,尤其在自动化测试领域,AI驱动的测试框架通过智能化、低代码化重构传统测试流程。
  • python solr数据导出脚本
  • 分割网络Segformer
  • 界面组件DevExpress WPF中文教程:Grid - 如何检查节点?
  • mongodb 开源同步工具介绍
  • Windows 应用程序的 UI 框架:WPF、WinUI 3 和 UWP的差异区别
  • Django--02模型和管理站点
  • 【三】ObservableCollection 与 List 的区别
  • 【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔(四)
  • (二)OpenCV——边缘增强与检测
  • 大数据在UI前端的应用创新:基于用户反馈的产品迭代优化系统
  • PPT处理控件Aspose.Slides教程:使用 C# 将 PPTX 转换为 EMF
  • 游戏的程序员会不会偷偷改自己账号的数据?
  • TypeScript---class类型
  • 工业通信升级新选择:耐达讯CCLINKIE转Modbus TCP网关
  • 猿人学js逆向比赛第一届第十九题