ASP.NET某中学图书馆系统的设计与实现

2024-04-27 10:12

本文主要是介绍ASP.NET某中学图书馆系统的设计与实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

图书馆管理系统是典型的管理信息系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者,要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序具有功能完备,易使用等特点。

此图书馆系统以局域网图书馆的需求为背景,分为管理员、老师、学生三种用户。在不同的身份下有不同的功能实现,管理员主要实现图书添加、图书管理、用户管理等功能;老师主要实现借书登记、还书登记;学生身份主要实现的功能包括:个人信息查询、借阅情况、借阅历史查询、超期催还、个人密码修改等功能。此外,电子图书下载和留言板功能不需要身份登录可直接使用。

本系统使用ASP.NET +SQL Server2000进行开发,系统运行结果证明,该图书管理系统可以满足借阅者、图书馆管理员两方面的需要。本文将对该系统的设计过程和功能做详细介绍。

关键字图书管理系统;借阅;下载;ASP.net;C# ;SQL Server2000

2.1运行环境的选择

由于本系统是针对学院图书管理而开发的,对运行环境的要求不是太高,服务器端在Windows 2000 或者XP 下安装使用,容易操作且维护简单。客户端可以在Windows 98及以上版本运行使用。

2.2 数据库的选择

在多种数据库软件中,选择了相对来说比较易用的SQL server 2000作为后台数据库。 Microsoft SQL server是一个高性能的关系型数据库管理系统,它具有客户机/服务器体系结构,能够满足大规模分布式计算环境的需要。

2.3 开发工具的选择

在多种编程软件中,选择了当前比较流行的ASP.NET作为编程工具。ASP.NET 是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.NET供许多比现在的Web开发模式强大的的优势。ASP.NET是把基于通用语言的程序在服务器上运行。

2.4 B/S模式

浏览器/服务器(Browser/Server)结构,简称 B/S 结构,它是对C/S 结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier 结构。B/S结构,主要是利用了不断成熟的 WWW 浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和 ActiveX 技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。显然 B/S 结构应用程序相对于传统的 C/S 结构应用程序是巨大的进步。

5.1系统首页实现

首页画面是为了给用户一个良好的印象,意在让用户直接能理解网站的性质和功能。用户能很快找到自己所需要的信息和服务,容易操作和实现。。系统的首页如图3:

图3 图书馆系统首页

用户可以通过不同的链接进入不同的页面。

5.2 借阅者服务模块的实现

5.2.1 图书查询功能的实现

在本系统中,任何人都有权限使用查询功能,不做任何限制。 由于实现的查询功能有多种,如按图书编号、图书名称等字段进行完全体配查找和部分体配的模糊查找。图书查询界面如图4所示:

图4 图书查询界面

点击确定以后跳转页面显示查询结果,如图5:

图5  查询结果图

具体代码如下:

public void BindGrid()

        {   //从文件Web.config中读取连接字符串

            string strConn = ConfigurationManager.AppSettings["dsn"];

            //连接本地计算机的LMS数据库

            SqlConnection cn= new SqlConnection (strConn);

            //根据提交上来的表单创建SQL语句

            string booklist="select * from book ";

            string strSearchText=Request.Form ["strSearchText"];

            string match_flag=Request.Form ["match_flag"];

            if(match_flag=="0")//完全匹配

            {

                if (Request.Form ["strSearchType"].ToString ()=="01") //书目编号

                {

                   booklist=booklist + "where bid="+ strSearchText;

                }

                else if (Request.Form ["strSearchType"].ToString ()=="02") //题名

                {

                   booklist=booklist + "where bname='"+ strSearchText +"'";

                }

                else if (Request.Form ["strSearchType"].ToString ()=="03") //作者

                {

                   booklist=booklist + "where bauthor='"+ strSearchText +"'";

                }              ……

                else

                {   Response.Write ("类型选择错误");

                   Response.End() ;

                }

            }

            else if(match_flag=="1")//模糊匹配

            {

                if (Request.Form ["strSearchType"].ToString ()=="01") //书目编号

                {

                   booklist=booklist + "where bid ="+ strSearchText;

                }

                else if (Request.Form ["strSearchType"].ToString ()=="02") //题名

                {

                   booklist=booklist + "where bname like '%"+ strSearchText +"%'";

                }

                ……

                else

                {   Response.Write ("类型选择错误");

                   Response.End() ;

                }

            }

            //创建SqlDataAdapter对象,调用视图

            SqlDataAdapter da=new SqlDataAdapter (booklist,cn);

            //创建并填充DataSet

            DataSet ds=new DataSet ();

            da.Fill (ds);

            dgd_booklist.DataSource =ds;

            dgd_booklist.DataBind ();

            cn.Close ();

5.2.2 借阅信息查询

当用户在图书查询页面找到自己需要的借阅书籍的书目编号,点击查看是否在馆。图书详细信息界面如图6所示:

图6 图书详细信息截面

当书籍在馆的时间就可以在管理员那进行借书登记。

5.2.3 借阅者个人资料维护功能的实现

当用户进入读者信息查询页面,界面如图7所示:

图7 读者信息查询界面

用户输入正确的用户名和密码就进入维护页面。此功能实现当前借阅者部份资料的修改,但借书证号和身份类别这样的信息不允许修改,这是图书馆管理员模块的功能。只能对密码进行修改。

也可以查询自己的借阅情况,借阅历史,超期催还。如图8:

图8 读者个人资料维护

5.3 电子图书下载功能的实现

当读者需要下载电子图书的时间进入电子图书下载页面,不用登录支持所有用户下载。双击需要下载的电子图书的下载按纽即可以下载电子图书到本地计算机。如图9:

图9 电子图书下载

主要代码如下:

<a href="down\大纲.doc">

<asp:Label ID="down1" runat="server" Text="下载"></asp:Label>

<a href="down\sql2K.exe"><asp:Label ID="down2" runat="server" Text="下载"></asp:Label>

5.4 留言板功能的实现

如果读者对图书馆有什么意见和建议,可以进入留言板页面写下意见和建议。

如图10:

图 10 留言板

5.5 图书馆管理员模块的实现

5.5.1 图书馆图书借阅、归还功能的实现

当读者把借阅的图书拿到老师那进行图书借阅登记时,老师进入图书馆服务界面如图11:

图11 图书馆服务登录界面

登录以后进入借阅登记界面如图12所示:

图12 图书借阅登记界面

填入读者的帐号和密码,需要借阅的书目编号。登记完成图书借阅。

具体代码如下:

     protected void btn_submit_Click(object sender, System.EventArgs e)

        {

    //利用Command对象调用存储过程

                SqlCommand cm=new SqlCommand  ("borrowinformadd",cn);

                //将命令类型转为存储类型

                cm.CommandType =CommandType.StoredProcedure ;

                //往存储过程中添加参数

                cm.Parameters .Add ("@IUID",SqlDbType.VarChar);

                cm.Parameters .Add ("@IBID",SqlDbType.Int );

                cm.Parameters .Add ("@IBeginDate",SqlDbType.DateTime );

                cm.Parameters .Add ("@IEndDate",SqlDbType.DateTime  );

                cm.Parameters .Add ("@IState",SqlDbType.Int );

                //给存储过程的参数付值

                cm.Parameters ["@IUID"].Value =tbx_uid.Text .ToString ();

                try

                {

                   cm.Parameters ["@IBID"].Value =Convert.ToInt32 (tbx_bid.Text .ToString ()) ;

                }

                catch

                {

                   Response.Write ("输入图书编号有误!");

                   Response.End() ;

                }

                cm.Parameters ["@IBeginDate"].Value =System.DateTime .Now .ToString();

                //当前日期再加一个月为归还日期

                cm.Parameters ["@IEndDate"].Value =System.DateTime .Now .AddMonths (1).ToString();

                cm.Parameters ["@IState"].Value =0;

                cm.ExecuteNonQuery ();

                //关闭连接

                cn.Close();

                lbl_message.Text =tbx_bid.Text .ToString ()+"书目借阅成功";

            }

        }

        public void ctv_uid_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)

        {//从文件Web.config中读取连接字符串

            string strconn= ConfigurationSettings.AppSettings["dsn"];

            //连接本地计算机的LMS数据库

            SqlConnection cn= new SqlConnection (strconn);

            cn.Open ();

            //构造SQL语句,该语句在Users表中检查用户名和密码是否正确

            string mysql= "select * from Users where Uid='"+tbx_uid.Text +"'and Upassword='"+tbx_upassword.Text +"'";

            //创建Command对象

            SqlCommand cm=new SqlCommand  (mysql,cn);

            //执行ExecuteReader ()方法

            SqlDataReader dr=cm.ExecuteReader ();

            if(dr.Read ())

            {

                args.IsValid =true;//用户名密码正确

            }

            else

            {

                args.IsValid =false;//用户名密码输入错误

            }

            //关闭连接

            cn.Close();

        }

        public void ctv_bid_ServerValidate(object source,

System.Web.UI.WebControls.ServerValidateEventArgs args)

        {//从文件Web.config中读取连接字符串

            string strconn= ConfigurationSettings.AppSettings["dsn"];

            //连接本地计算机的LMS数据库

            SqlConnection cn= new SqlConnection (strconn);

            cn.Open ();

            //创建Command对象

            SqlCommand cm=new SqlCommand  ("BookInLibCheck",cn);

            cm.CommandType =CommandType.StoredProcedure ;

            cm.Parameters .Add ("@BID",SqlDbType.Int );

            try

            {

                cm.Parameters ["@BID"].Value =Convert.ToInt32 (tbx_bid.Text .ToString ()) ;

            }

            catch

            {

                Response.Write ("输入书目编号有误,请返回!");

                Response.End() ;

            }

            //执行ExecuteReader ()方法

            SqlDataReader dr=cm.ExecuteReader ();

            if(dr.Read ())

            {

                args.IsValid =true;//图书在馆可借

            }

            else

            {

                args.IsValid =false;//图书不在馆

            }

            cn.Close();

当读者还书的时间,到老师那进行图书归还登记,图书归还登记界面如图13所示:

图13 图书归还登记界面

输入书目号,完成图书归还。

5.5.2 图书馆管理员图书管理功能的实现

管理员需要维护系统的时间,首先进入登录界面如图14:

              图14 管理员登录界面

登录以后进入图书馆图书信息维护界面,如图15:

在这个功能中可以在按书号搜索中输入图书编号,点搜索按钮后就会在右边的组件中显示出信息。在此功能中如果选中详单修改,则显示出相应选种的信息,并且管理员还可对这些记录进行修改或加入新的记录。并且也可以点删除按钮删除该书。图书详单界面如图16所示:

图16  图书详单界面

在新书添加功能中只要不是相同的图书编号并且带*号提示的字段不为空就可插入新的图书记录。删除则删除那些Book表中的图书记录,如果丢失等原因还可依用户要求连带删除BorrowInform表中的记录。新书添加界面如图17所示:

图17 新书添加界面

详细代码如下:

protected void btn_submit_Click(object sender, System.EventArgs e)

        {

            if(Page.IsValid )

            {//从文件Web.config中读取连接字符串

                string strconn= ConfigurationSettings.AppSettings["dsn"];

                //连接本地计算机的LMS数据库,创建两连接

                SqlConnection cn= new SqlConnection (strconn);

                cn.Open ();

                SqlConnection cn2= new SqlConnection (strconn);

                cn2.Open ();

                //利用Command对象调用存储过程,创建添加book表命令类型

                SqlCommand cmbookadd=new SqlCommand  ("bookadd",cn);

                //将命令类型转为存储类型

                cmbookadd.CommandType =CommandType.StoredProcedure ;

                //添加并给参数付值

                cmbookadd.Parameters .Add ("@BID",SqlDbType.Int);

                cmbookadd.Parameters .Add ("@BISBN",SqlDbType.VarChar);

                ……

                //利用Command对象调用存储过程,创建添加BookMaxBIDGet表命令类型

                //该类型返回我们所要往book,bookprice表中添加的BID值

                SqlCommand cmbookmaxbidget=new SqlCommand  ("BookMaxBIDGet ",cn2);

                //将命令类型转为存储类型

                cmbookmaxbidget.CommandType =CommandType.StoredProcedure ;

                //添加并给参数付值

                cmbookmaxbidget.Parameters .Add ("@maxbid",SqlDbType.Int);               

                //将BookMaxBIDGet过程参数输出

                cmbookmaxbidget.Parameters ["@maxbid"].Direction =ParameterDirection.Output ;

                cmbookmaxbidget.ExecuteReader ();

                string maxbidstring=cmbookmaxbidget.Parameters ["@maxbid"].Value.ToString();

                //考虑数据库为空的情况,maxbidstring将为空

                int maxbid ;

                if(maxbidstring=="")//如果数据库为空

                {maxbid=2000 ;

                }

                else//如果数据库有数据

                {maxbid=Convert.ToInt32(maxbidstring)+1 ; //取出表中BID的最大值作为下一纪录的BID

                }

                //往book表中参数付值

                cmbookadd.Parameters ["@BID"].Value =maxbid;

                cmbookadd.Parameters ["@BName"].Value

=tbx_bname.Text .ToString ();

                cmbookadd.Parameters ["@BISBN"].Value =tbx_bisbn.Text .ToString ();

                cmbookadd.Parameters ["@BAuthor"].Value =tbx_bauthor.Text .ToString ();

                cmbookadd.Parameters ["@BPress"].Value =tbx_bpress.Text .ToString ();

                cmbookadd.Parameters ["@BTheme"].Value =tbx_btheme.Text .ToString ();

                cmbookadd.Parameters ["@BClassifyText"].Value =tbx_bclassifytext.Text .ToString ();

                cmbookadd.Parameters ["@BIndex"].Value =tbx_bindex.Text .ToString ();

                cmbookadd.Parameters ["@BPrice"].Value =Convert.ToDouble (tbx_bprice.Text .ToString ());

                cmbookadd.Parameters ["@BSeriesName"].Value =tbx_bseriesname.Text .ToString ();

                cmbookadd.Parameters ["@BDescribe"].Value =tbx_bdescribe.Text .ToString ();

                cmbookadd.ExecuteNonQuery ();

                //关闭连接

                cn.Close();

                cn2.Close ();

                Response.Redirect("bookmanage.aspx");

            }

        }

5.5.3  图书馆用户信息维护功能的实现

这一部分是对图书馆所有用户进行管理,能对身份进行添加、删除、修改。用户信息维护界面如图18所示:

图18 用户信息维护界面

点击详单可以对用户的基本资料进行修改;点击添加用户可以加如新用户。添加新用户界面如图19所示:

图19 添加新用户界面

以上代码和图书信息管理代码类似,略。

这篇关于ASP.NET某中学图书馆系统的设计与实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940218

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo