




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、广东技术师范学院天河学院WEB开发技术(.NET)课程设计报告 题 目: 图书馆管理系统 设 计 者: XXXX 专业班级: 学 号: 指导教师: 胡安明 所属系部: 计算机科学与技术系2016年6月8日目录1.实训目的32.实训内容32.1需求分析32.1.1概述32.1.2系统目标32.1.3开发环境42.2模块设计42.2.2系统功能结构52.2.3文件组成结构62.2.4主要模块说明72.3数据库设计82.3.1数据库概要说明82.3.2数据库概念设计92.3.3数据库逻辑结构设计132.4详细制作172.4.1图书借阅界面设计后台程序设计182.4
2、.1.3技术总结232.4.2图书归还界面设计后台程序设计技术总结292.4.3读者首页30界面设计30后台程序设计3技术总结323.实训总结323.1所遇问题和解决方法323.2实训感受341. 实训目的熟悉图书馆管理系统开发的基本过程。初步学会针对项目进行分析并设计数据库。熟悉对SQL Server 2005的使用。学会设计公共类。学会用所学知识实现本系统的主要功能模块。熟悉LINQ语句,一方面体会LINQ语句的简单实用,另一方面也要认识到LINQ语句的局限性。初步建立面向对象的开发思想。体会
3、分层开发模块的实用性。通过本次实训了解自己的知识储备量,争取在今后的学习中弥补自己的不足。自己遇到了问题,通过询问老师和同学,加强自己的表达和沟通能力。通过上网查阅资料,可以拓展视野,收获更多知识。若是分组实训,既可以加强自身的团队协作能力,还可以使自我的能力得到更好的发挥。2. 实训内容2.1需求分析2.1.1概述 如今网络在人们的日常生活中的应用已经日益广泛,人们通过网络得到的最大便利就是信息的快速交流。而留言板不失为一种网站普遍使用的信息交互方式。通过留言板,可以发布自己的观点、相互交流等等,使有用的信息在Internet上实现快速传递,提高办事效率。因此留言板在网站中的地位显而易见,它
4、已成为现代人勾通和获取信息的重要组成部分,从而倍受重视。为了方便大家的沟通和获取信息。特创建这个留言吧。此留言板前界面可使用户进行发表和查看。2.1.2系统目标 此留言板可使网站的用户在其留言,供其他留言者查看。2.1.3开发环境网站开发环境网站开发环境:Microsoft Visual Studio 2008集成开发环境。网站开发语言:ASP.NET+C#+LINQ。网站后台数据库:SQL Server 2005。开发环境运行平台:Windows XP(SP2)/Windows 2000(SP4)/Windows Server 2003(SP1)。注意:SP(Server Pack)为Win
5、dows操作系统补丁。 服务器端操作系统:Windows Server 2003(SP1)。Web服务器:Internet信息服务器。数据库服务器:SQL Server 2005。浏览器:IE6.0及以上版本。网站服务器运行环境:Mircrosoft.NET Framework SDK v2.0。 客户端浏览器: IE6.0及以上版本。分辨率:最佳效果1024768像素。2.2模块设计2.2.1系统流程图图 系统流程图2.2.2系统功能结构根据图书馆管理系统的特点,可以将其分为管理员管理和读者管理两大部分,管理员的管理分为系统设置、读者管理、图书管理、图书借还、系统查询等部分,
6、其中各个部分及其包括的具体功能模块如图所示。读者管理包括的功能有图书查询、查看超期公告、查阅基本信息、查看借阅历史、更改口令等,如图所示。图 系统功能结构图之管理员管理图 系统功能结构图之读者管理2.2.3文件组成结构为了直观地看到整个网站的文件组成结构,下图将网站的组织结构已展示出来。图 系统文件组成结构图2.2.4主要模块说明entry.aspx页面:管理员登录。index.aspx页面:管理员登录后进入的第一个页面,即首页。该页面显示图书借阅的排行榜。另外,可以通过点击“图书名称”查看图书详细信息。r
7、eaderInfo.aspx页面:管理员通过此页面可以浏览所有读者的姓名、性别、类型、证件号、联系方式等信息。点击“添加读者信息”便会跳转到另一个页面进行读者的添加操作;点击一条记录后的“修改”,可跳转到另一个页面对这个读者的信息进行修改;点击一条记录后的“删除”,可将该读者信息从图书管理数据库中消除。bookInfoManage.aspx页面:管理员可对图书的档案信息进行增、删、改的操作。bookBorrow.aspx页面:读者到图书馆借书,管理员只需要输入该读者条形码和所要借的图书条形码,点击相关按钮就可以将读者信息和图书信息显示出来,并可以点击图书信息后的“借阅”按钮,进行借阅。当然,如
8、果所要借的书是已借出且未归还的,是不允许再外借的。当该图书被外借后,会生成图书借阅档案保存到数据库中,可供读者进行日后的查阅。bookReturn.aspx页面:读者将所要还的书(不管是读者本人所借还是其他人所借)拿到图书馆,管理员只需要输入图书条形码,点击相关按钮,就可以显示读者信息和所还图书信息。点击图书信息记录后的“还书”,即可将此书归还,并生成图书归还档案,以供读者日后查阅。当然,如果图书是超期归还,就会有相应的提示,管理员根据弹出的提示框可对其进行罚款。bookBorrowSearch.aspx页面:本页面是图书借阅查询页面。管理员通过下拉框和单选按钮,搭配选择查询条件,并在文本框中
9、输入相关信息,点击按钮,页面就会自动显示有关图书的借阅信息。extendedAnn.aspx页面:进入该页面会看到所有的超期未归还的图书及读者的部分信息,管理员也可以在文本框中输入读者的借书证号进行模糊或精确查询。readerLogin.aspx页面:该页面供读者登录,可以选择输入借阅证号登录或读者条形码登录。bookSearch.aspx页面:读者通过下拉框选择查询条件,并在其后的文本框中输入相应的内容,点击有关按钮,图书信息就会自动显示在页面中。例如,读者选择图书类别,而后的下拉框中会显示图书的各种类别,如“小说”、“文学”、“历史”、“哲学”等。选择过后,点击“检索”按钮,页面就会显示相
10、关图书的大致信息。若读者要查看其详细信息,点击其后的“详细”,在另一个页面就可以看到此图书的更为详细的信息。读者可以根据图书信息,决定要不要借阅,如果要借阅,根据图书的馆藏地址、书架、索书号及图书名称很快就可以找到想要借阅的图书,极为方便。BasicInfor.aspx页面:当读者进入此页面时,可以看到自己的基本信息,并可以修改联系电话、联系地址或电子邮件。在个人信息下面会显示当前已借阅的图书信息,而且在图书信息后面,有“续借”按钮,这样,足不出门,就可以续借图书。borrowHistory.aspx页面:这个页面显示的内容是读者本人曾经所有的借阅信息,包括借书信息和还书信息。updatepa
11、ssword.aspx页面:此页面供读者更改登录密码所用。当管理员添加读者时,默认读者登录密码是读者的借阅证号,而后,读者可以登录系统通过此页面更改自己的登录密码,以保安全。2.3数据库设计本系统采用SQL Server 2005 数据库,名称为db_tsrj,其中包含9张表。下面分别给出数据表概要说明、数据表E-R图及主要数据表的结构。2.3.1数据库概要说明下面是数据表的树形结构图,如图所示,其中包含系统所有数据表。图 数据库表结构2.3.2数据库概念设计通过对本系统进行的需求分析、系统流程设计、以及系统功能结构的确定,规划出系统中使用的数据库实体对象,具体说
12、明如下。只有系统分配的用户才可以操作图书馆管理系统,而用户的权限又各不相同。管理员权限设置信息实体E-R图如图所示。图 管理员权限设置信息实体E-R图图书借阅信息实体,用于存储所有图书借阅情况的信息,以准确地记录每本图书的借阅情况。图书借阅信息实体E-R图如图所示。图 图书借阅信息实体E-R图图书馆对图书的分类,通常是将不同类型的图书分别放置在相应类型的书架上。书架信息实体,用于存储图书馆中所有的书架信息。书架信息实体E-R图如图所示。图 书架信息实体E-R图不同的图书会有不同的图书信息。对这些图书进行详
13、细的记录,方便图书分类和查询。图书信息实体,用于存储所有图书的相关信息。图书信息实体E-R图如图所示。图 图书信息实体E-R图图书馆中会有不同类型的图书,为了避免图书归类发生混乱,需建立一个图书类型信息实体,用于存储图书的类型信息。图书类型信息实体E-R图如图所示。图 图书类型信息实体E-R图每个事物都有自身的历史背景,图书馆也不例外。为了记录和修改图书馆的历史背景及其相关的信息,需要建立一个图书馆信息实体,用于存储与图书馆相关的信息。图书馆信息实体E-R图如图所示。图 图书馆信息实体E-R图每位可到图书
14、馆借阅图书的读者都有自己的基本信息和借阅信息,一方面,方便管理员修改和查询,另一方面,方便自己查询和修改。读者信息实体,用于存储所有读者的个人信息。读者信息实体E-R图如图所示。图 读者信息实体E-R图去图书馆的可能是教师,可能是学生,可能是工人等,所以读者有不同的类型。读者类型信息实体用来存储读者类型信息。读者类型信息实体E-R图如图所示。图 读者类型信息实体E-R图当管理员登录图书管理系统时,需要通过登录窗口验证成功后才能进入系统主页。管理员信息实体,用来存储管理员的登录名称和密码。管理员信息实体E-R图如图所示。图
15、 管理员信息实体E-R图2.3.3数据库逻辑结构设计在设计完数据库实体E-R图之后,需要根据实体E-R图设计数据表结构。下面给出各数据表的数据结构和用途。 tb_admSet(管理员权限设置表)。表tb_admSet用于保存与管理员权限设置相关的信息,该表的结构如表所示。字段名数据类型长度是否主键描述userIdint4是管理员编号userNamevarchar80否管理员名称systemSetbit1否系统设置readerManagebit1否读者管理bookManagebit1否图书管理bookBorrowbit1否图书借还systemSearchbit1否系
16、统查询表 管理员权限设置表 tb_bookBorrow(图书借阅表)。表tb_bookBorrow用于保存所有借阅和归还图书的信息,该表的结构如表所示。字段名数据类型长度是否主键描述IDint4是系统编号bookBarcodevarchar50否图书条形码bookNamevarchar20否图书名称borrowTimedatetime8否借阅日期returnTimedatetime8否应还日期readerIDvarchar50否借书证号readerBarCodevarchar50否读者条形码readerNamevarchar20否读者姓名sexvarchar50否
17、读者性别departmentvarchar50否读者单位gradevarchar50否读者类型编号renewCountint4否续借次数extendedDaysint4否超期天数FKMoneydecimal18否罚款金额handlingTimedatetime8否处理时间operationTypesvarchar50否操作类型isReturnbit1否是否归还表 图书借阅表 tb_bookcase(书架信息表)。表tb_bookcase用于保存书架的详细信息,该表的结构如表所示。字段名数据类型长度是否主键描述bookcaseIDint4是书架编号bookcaseNa
18、mevarchar80否书架名称表 书架信息表 tb_bookInfo(图书信息表)。表tb_ bookInfo用于保存与图书相关的所有信息,该表的结构如表所示。字段名数据类型长度是否主键描述bookBarCodevarchar100是图书条形码linebooknumbervarchar50否索书号bookNamevarchar100否图书名称bookTypeint4否图书类型编号bookcaseint4否书架编号bookConcernvarchar100否出版社authorvarchar80否作者pricedecimal18否图书价格Imagevarchar50否
19、图书图片CollectionAddressvarchar50否馆藏地址isReturnvarchar50否是否归还borrowSumint4否借阅总次数表 图书信息表 tb_bookType(图书类型信息表)。表tb_ bookType用于保存图书类型信息,该表的结构如表所示。字段名数据类型长度是否主键描述typeIDint4是图书类型编号typeNamevarchar50否类型名称borrowDayint4否可借天数表 图书类型信息表 tb_library(图书馆信息表)。表tb_ library用于保存图书馆信息,该表的结构如表所示。
20、字段名数据类型长度是否主键描述IDint4是系统编号libraryNamevarchar80否图书馆名称curatorvarchar80否馆长名称telvarchar100否联系电话addressvarchar200否联系地址emailvarchar100否电子邮箱netvarchar200否网址upbuildTimedatetime8否建馆时间remarkvarchar500否备注表 图书馆信息表 tb_readerInfo(读者信息表)。表tb_ library用于保存所有读者信息,该表的结构如表所示。字段名数据类型长度是否主键描述readerBarCodeva
21、rchar50是读者条形码readerIDvarchar50否借阅证号passWordvarchar50否登录密码readerNamevarchar50否读者姓名sexchar10否读者性别departmentvarchar50否读者单位readerTypevarchar50否读者类型编号certificateTypevarchar50否证件类型certificatevarchar50否证件号码telvarchar50否联系电话emailvarchar50否电子邮箱canBorrowint4否可借数量borrowedint4否已借数目borrowedbookAllnumberint4否借阅总数
22、contactAddressvarchar50否联系地址readerImagevarchar50否读者头像remarkvarchar500否备注表 读者信息表 tb_readerType(读者类型信息表)。表tb_ library用于保存所有读者类型信息,该表的结构如表所示。字段名数据类型长度是否主键描述idint4是读者类型编号typevarchar50否读者类型名称numvarchar50否可借图书数量表 读者类型信息表 tb_user(管理员信息表)。表tb_ user用于保存所有管理员信息,该表的结构如表所示。字段名数据类型长度是
23、否主键描述userIdint4是管理员编号userNamevarchar50否管理员名称userPwdvarchar50否管理员密码表 管理员信息表2.4详细制作2.4.1图书借阅界面设计图 .1 图书借阅界面设计图后台程序设计public partial class bookBorrow : System.Web.UI.Page MyLinqDataContext db = new MyLinqDataContext();/建立LINQ对象 static int isSum = 0; protected void Page_Load(o
24、bject sender, EventArgs e) if (SessionuserName != null)/判断管理员是否登录 if (!getSet()/判断是否拥有权限 Response.Write(alert(您没有此权限);location=index.aspx;); else Response.Redirect(entry.aspx);/返回到登录页面 / / 自定义方法,返回登录用户的权限 / / public bool getSet() string userName = SessionuserName.ToString();/获取管理员登录名 var sql = db.tb
25、_admSet.Where(p = p.userName = userName).First(); return Convert.ToBoolean(sql.bookBorrow);/返回是否拥有图书借阅权限 / / 点击“查找读者”按钮,显示读者信息 / / / protected void btnReaderSearch_Click(object sender, EventArgs e) bindReaderInfo();/调用自定义方法显示读者信息 / / 绑定数据到GridView控件上 / / public void bindGridView(IQueryable sql) gvBo
26、okBorrow.DataSource = sql; gvBookBorrow.DataKeyNames = new string bookBarCode ; gvBookBorrow.DataBind(); / / 自定义方法显示读者信息 / public void bindReaderInfo() string readerBarCode = txtReaderBarCode.Text.Trim();/获取读者条形码 var readerSql = db.tb_readerInfo.Where(j = j.readerBarCode = readerBarCode).Count();/在读
27、者信息表中查询符合读者条形码条件的记录数目 if (readerSql 0) var reader = db.tb_readerInfo.Where(s = s.readerBarCode = readerBarCode).First();/获取该读者详细信息 txtReaderName.Text = reader.readerName.ToString(); /显示读者姓名 txtReaderSex.Text = reader.sex.ToString(); /显示读者性别 txtCertificateType.Text = reader.certificateType.ToString()
28、;/显示证件类型 txtCertificate.Text = reader.certificate.ToString(); /显示证件号 var typeSdr = db.tb_readerType.Where(m = m.id = Convert.ToInt32(reader.readerType).First();/查询符合读者类型编号的记录 txtReaderType.Text = typeSdr.type.ToString();/显示读者类型 txtNum.Text = reader.canBorrow.ToString();/显示还可以借阅的图书数目 isSum = 1; else
29、RegisterStartupScript(, alert(读者条形码输入错误!); / / 点击“查找图书”按钮,根据图书条形码查找图书 / / / protected void btnBookSearch_Click(object sender, EventArgs e) if (isSum 0) if (Convert.ToInt32(txtNum.Text.Trim() 0)/判断读者是否还可以借书 if (txtBookBarCode.Text.Trim() != )/判断图书条形码是否为空 string bookBarCode = txtBookBarCode.Text;/获取文本
30、框中图书条形码 if (db.tb_bookInfo.Where(x = x.bookBarCode = bookBarCode).Count() 0)/判断图书信息表中符合文本框中图书条形码条件的记录数目是否大于0 var sql = db.tb_bookInfo.Where(k = k.bookBarCode = bookBarCode);/根据图书条形码获取查询tb_bookInfo表中信息 bindGridView(sql);/传递参数,绑定数据源 else RegisterStartupScript(, alert(图书条形码错误!); else RegisterStartupScr
31、ipt(, alert(图书条形码不能为空); else RegisterStartupScript(, alert(借阅数量已满!不可以再借阅); else RegisterStartupScript(, alert(请先输入正确的读者条形码!); / / 在对行进行了数据绑定后激发 / / / protected void gvBookBorrow_RowDataBound(object sender, GridViewRowEventArgs e) if (e.Row.RowType = DataControlRowType.DataRow) string bookType = e.Ro
32、w.Cells1.Text.ToString();/获取图书类型编号 var typeSdr = db.tb_bookType.Where(v = v.typeID = Convert.ToInt32(bookType).First();/在图书类型表中查询符合图书类型编号条件的记录 e.Row.Cells1.Text = typeSdr.typeName.ToString();/显示图书类型 e.Row.Cells5.Text = typeSdr.borrowDay.ToString();/显示图书可借天数 e.Row.Cells6.Text = DateTime.Now.ToString(
33、);/显示借书日期 e.Row.Cells7.Text = DateTime.Now.AddDays(Convert.ToInt32(typeSdr.borrowDay).ToString();/显示应归还图书日期 / / 在GridView中选择新行时或选择新行前激发 / / / protected void gvBookBorrow_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) string bookBarCode = gvBookBorrow.DataKeyse.NewSelectedIndex.Value
34、.ToString();/获取GridView控件选中行的数据键值(即该行的图书条形码) if (db.tb_bookBorrow.Where(b = b.bookBarcode = bookBarCode & b.isReturn = false).Count() 0)/判断图书借阅表里该书是否归还 RegisterStartupScript(, alert(本书已借出!);/如果未归还,则弹出提示 else var sql = db.tb_bookInfo.Where(code = code.bookBarCode = bookBarCode).First();/查询tb_bookInfo
35、表中符合文本框中图书条形码的记录 var sdr = db.tb_bookType.Where(ty = ty.typeID = sql.bookType).First();/根据图书类型编号查询tb_bookType表中信息 int borrowDay = Convert.ToInt32(sdr.borrowDay);/获取借阅天数 string bookName = sql.bookName.ToString();/获取图书名称 string borrowTime = DateTime.Now.ToString();/获取借阅日期 string readerBarCode = txtRea
36、derBarCode.Text;/获取读者条形码 string returnTime = DateTime.Now.AddDays(borrowDay).ToString(); /获取应还日期 string readerName = txtReaderName.Text;/获取读者姓名 var readerinfo = db.tb_readerInfo.Where(info = info.readerBarCode = readerBarCode).First();/根据读者条形码获取读者信息表中的信息 var bookinfo = db.tb_bookInfo.Where(bi = bi.b
37、ookBarCode = bookBarCode).First();/根据图书条形码获取图书信息表中信息 try var addSql = new tb_bookBorrow/将图书借阅信息添加到图书借阅信息表中 bookBarcode = bookBarCode,/插入图书条形码 bookName = bookName,/插入图书名称 borrowTime = Convert.ToDateTime(borrowTime),/插入借阅时间 returnTime = Convert.ToDateTime(returnTime),/插入应归还日期 readerID = readerinfo.rea
38、derID.ToString(),/插入借阅证号 readerBarCode = readerBarCode,/插入读者条形码 readerName = readerName,/插入读者姓名 sex = readerinfo.sex.ToString(),/插入性别 department = readerinfo.department.ToString(),/插入读者单位 grade = readerinfo.readerType.ToString(),/插入读者类型 renewCount = 0,/插入续借次数 extendedDays = 0,/插入超期天数 FKMoney = 0,/插入
39、罚款金额,默认为0 handlingTime = DateTime.Now,/插入处理时间 operationTypes = 借书,/插入操作类型 isReturn = false/插入未归还 ; db.tb_bookBorrow.InsertOnSubmit(addSql);/准备插入 readerinfo.canBorrow -= 1;/对tb_readerInfo表的可借次数减1 readerinfo.borrowed += 1;/对tb_readerInfo表的已借次数加1 readerinfo.borrowedbookAllnumber += 1;/该读者的外借总数加1 bookin
40、fo.borrowSum += 1;/该图书的借阅总数加1 bookinfo.isReturn = 否;/将该书设置为未归还状态 db.SubmitChanges();/执行插入和更改命令 bindReaderInfo(); /重新绑定读者信息 gvBookBorrow.DataSource = null; /将数据源设置为空 gvBookBorrow.DataBind();/绑定数据 txtBookBarCode.Text = ;/将图书条形码文本框清空 RegisterStartupScript(, alert(借阅成功!); catch (Exception ex) MessageBox
41、.Show(this.Page, 借阅失败! + ex.Message); 技术总结当管理员登录后才能进入此页面,并且在访问此页面时会判断管理员的权限,只有拥有“图书借还权限”的管理员才能对此进行访问。当输入错误的读者条形码后点击“查找读者”按钮,会弹出如图.1所示的对话框。图 .1 读者条形码输入错误时的结果当此书原本已借出且未归还时,点击“借阅”会弹出如图.2所示的提示信息。图 .2 图书已借出的提示框2.4.2图书归还界面设计图 .1 图书归还设计页面后台程序设计public
42、partial class bookReturn : System.Web.UI.Page MyLinqDataContext db = new MyLinqDataContext();/建立LINQ对象 protected void Page_Load(object sender, EventArgs e) if (SessionuserName != null)/判断管理员是否登录 if (!getSet()/判断是否拥有权限 Response.Write(alert(您没有此权限);location=index.aspx;); else Response.Redirect(entry.aspx); /返回到登录页面 / / 自定义方法,返回用户权限 / / public bool
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护士资格证考试教育学基础知识试题及答案
- 教师资格考试冲刺阶段的试题及答案
- 教师资格笔试注意事项试题及答案
- 2024年信息系统项目管理师考试的复习策略试题及答案
- 建筑节能试题及答案
- 医学知识考察趋势与策略分析试题及答案
- 2024年西医临床考试知识结构试题及答案
- 精细化备考系统架构设计师考试的路径试题及答案
- 中考试题及答案公布
- 健康管理师考试评估方式解读试题及答案
- 深入贯彻学习2025年中央八项规定精神教育测试题及答案
- 2025年第三届天扬杯建筑业财税知识竞赛题库附答案(601-700题)
- 劳务派遣劳务外包服务方案(技术方案)
- VDA6.3-2023版审核检查表
- 煤田勘探钻孔工程质量标准
- 保温工三级安全教育试题及答案
- (完整版)小学六年级数学知识点总复习资料
- 工业气体充装站安全管理规范
- 完整竖管降膜蒸发器的设计计算表
- 危岩崩塌落石稳定性运动计算总表(秦皇岛资源环境勘察院)
- 注塑模具零件名称统一标准
评论
0/150
提交评论