ASPNET实训报告Word格式.docx
《ASPNET实训报告Word格式.docx》由会员分享,可在线阅读,更多相关《ASPNET实训报告Word格式.docx(50页珍藏版)》请在冰点文库上搜索。
2.1.2系统目标
根据图书馆日常图书管理工作的需求和图书借阅的管理流程,该系统实施后,应达到以下目标。
界面设计友好、美观,数据存储安全、可靠。
基本信息设置保证图书信息和读者信息的分类管理。
强大的查询功能,保证数据查询的灵活性。
实现对图书借阅、续借、归还过程的全程数据信息跟踪。
实现对图书馆信息的修改功能。
对书架、图书、读者信息的增、删、改、查简易方便。
设置读者借阅和图书借阅排行榜,为图书馆管理提供真实的数据信息。
提供管理员修改自己登录密码的功能,保证系统的安全性。
提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
采用人机对话的操作方式,方便管理员的日常操作。
实现读者对图书的浏览、查询,对个人信息的查看、修改,对已借图书的续借功能。
系统要最大限度地实现易维护性和易操作性。
2.1.3开发环境
网站开发环境
网站开发环境:
MicrosoftVisualStudio2008集成开发环境。
网站开发语言:
ASP.NET+C#+LINQ。
网站后台数据库:
SQLServer2005。
开发环境运行平台:
WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)。
注意:
SP(ServerPack)为Windows操作系统补丁。
服务器端
操作系统:
WindowsServer2003(SP1)。
Web服务器:
Internet信息服务器。
数据库服务器:
浏览器:
IE6.0及以上版本。
网站服务器运行环境:
Mircrosoft.NETFrameworkSDKv2.0。
客户端
IE6.0及以上版本。
分辨率:
最佳效果1024×
768像素。
2.2模块设计
2.2.1系统流程图
图2.2.1.1系统流程图
2.2.2系统功能结构
根据图书馆管理系统的特点,可以将其分为管理员管理和读者管理两大部分,管理员的管理分为系统设置、读者管理、图书管理、图书借还、系统查询等部分,其中各个部分及其包括的具体功能模块如图2.2.2.1所示。
读者管理包括的功能有图书查询、查看超期公告、查阅基本信息、查看借阅历史、更改口令等,如图2.2.2.2所示。
图2.2.2.1系统功能结构图之管理员管理
图2.2.2.2系统功能结构图之读者管理
2.2.3文件组成结构
为了直观地看到整个网站的文件组成结构,下图2.2.3.1将网站的组织结构已展示出来。
图2.2.3.1系统文件组成结构图
2.2.4主要模块说明
entry.aspx页面:
管理员登录。
index.aspx页面:
管理员登录后进入的第一个页面,即首页。
该页面显示图书借阅的排行榜。
另外,可以通过点击“图书名称”查看图书详细信息。
readerInfo.aspx页面:
管理员通过此页面可以浏览所有读者的姓名、性别、类型、证件号、联系方式等信息。
点击“添加读者信息”便会跳转到另一个页面进行读者的添加操作;
点击一条记录后的“修改”,可跳转到另一个页面对这个读者的信息进行修改;
点击一条记录后的“删除”,可将该读者信息从图书管理数据库中消除。
bookInfoManage.aspx页面:
管理员可对图书的档案信息进行增、删、改的操作。
bookBorrow.aspx页面:
读者到图书馆借书,管理员只需要输入该读者条形码和所要借的图书条形码,点击相关按钮就可以将读者信息和图书信息显示出来,并可以点击图书信息后的“借阅”按钮,进行借阅。
当然,如果所要借的书是已借出且未归还的,是不允许再外借的。
当该图书被外借后,会生成图书借阅档案保存到数据库中,可供读者进行日后的查阅。
bookReturn.aspx页面:
读者将所要还的书(不管是读者本人所借还是其他人所借)拿到图书馆,管理员只需要输入图书条形码,点击相关按钮,就可以显示读者信息和所还图书信息。
点击图书信息记录后的“还书”,即可将此书归还,并生成图书归还档案,以供读者日后查阅。
当然,如果图书是超期归还,就会有相应的提示,管理员根据弹出的提示框可对其进行罚款。
bookBorrowSearch.aspx页面:
本页面是图书借阅查询页面。
管理员通过下拉框和单选按钮,搭配选择查询条件,并在文本框中输入相关信息,点击按钮,页面就会自动显示有关图书的借阅信息。
extendedAnn.aspx页面:
进入该页面会看到所有的超期未归还的图书及读者的部分信息,管理员也可以在文本框中输入读者的借书证号进行模糊或精确查询。
readerLogin.aspx页面:
该页面供读者登录,可以选择输入借阅证号登录或读者条形码登录。
bookSearch.aspx页面:
读者通过下拉框选择查询条件,并在其后的文本框中输入相应的内容,点击有关按钮,图书信息就会自动显示在页面中。
例如,读者选择图书类别,而后的下拉框中会显示图书的各种类别,如“小说”、“文学”、“历史”、“哲学”等。
选择过后,点击“检索”按钮,页面就会显示相关图书的大致信息。
若读者要查看其详细信息,点击其后的“详细”,在另一个页面就可以看到此图书的更为详细的信息。
读者可以根据图书信息,决定要不要借阅,如果要借阅,根据图书的馆藏地址、书架、索书号及图书名称很快就可以找到想要借阅的图书,极为方便。
BasicInfor.aspx页面:
当读者进入此页面时,可以看到自己的基本信息,并可以修改联系电话、联系地址或电子邮件。
在个人信息下面会显示当前已借阅的图书信息,而且在图书信息后面,有“续借”按钮,这样,足不出门,就可以续借图书。
borrowHistory.aspx页面:
这个页面显示的内容是读者本人曾经所有的借阅信息,包括借书信息和还书信息。
updatepassword.aspx页面:
此页面供读者更改登录密码所用。
当管理员添加读者时,默认读者登录密码是读者的借阅证号,而后,读者可以登录系统通过此页面更改自己的登录密码,以保安全。
2.3数据库设计
本系统采用SQLServer2005数据库,名称为db_tsrj,其中包含9张表。
下面分别给出数据表概要说明、数据表E-R图及主要数据表的结构。
2.3.1数据库概要说明
下面是数据表的树形结构图,如图2.3.1.1所示,其中包含系统所有数据表。
图2.3.1.1数据库表结构
2.3.2数据库概念设计
通过对本系统进行的需求分析、系统流程设计、以及系统功能结构的确定,规划出系统中使用的数据库实体对象,具体说明如下。
只有系统分配的用户才可以操作图书馆管理系统,而用户的权限又各不相同。
管理员权限设置信息实体E-R图如图2.3.2.1所示。
图2.3.2.1管理员权限设置信息实体E-R图
图书借阅信息实体,用于存储所有图书借阅情况的信息,以准确地记录每本图书的借阅情况。
图书借阅信息实体E-R图如图2.3.2.2所示。
图2.3.2.2图书借阅信息实体E-R图
图书馆对图书的分类,通常是将不同类型的图书分别放置在相应类型的书架上。
书架信息实体,用于存储图书馆中所有的书架信息。
书架信息实体E-R图如图2.3.2.3所示。
图2.3.2.3书架信息实体E-R图
不同的图书会有不同的图书信息。
对这些图书进行详细的记录,方便图书分类和查询。
图书信息实体,用于存储所有图书的相关信息。
图书信息实体E-R图如图2.3.2.4所示。
图2.3.2.4图书信息实体E-R图
图书馆中会有不同类型的图书,为了避免图书归类发生混乱,需建立一个图书类型信息实体,用于存储图书的类型信息。
图书类型信息实体E-R图如图2.3.2.5所示。
图2.3.2.5图书类型信息实体E-R图
每个事物都有自身的历史背景,图书馆也不例外。
为了记录和修改图书馆的历史背景及其相关的信息,需要建立一个图书馆信息实体,用于存储与图书馆相关的信息。
图书馆信息实体E-R图如图2.3.2.6所示。
图2.3.2.6图书馆信息实体E-R图
每位可到图书馆借阅图书的读者都有自己的基本信息和借阅信息,一方面,方便管理员修改和查询,另一方面,方便自己查询和修改。
读者信息实体,用于存储所有读者的个人信息。
读者信息实体E-R图如图2.3.2.7所示。
图2.3.2.7读者信息实体E-R图
去图书馆的可能是教师,可能是学生,可能是工人等,所以读者有不同的类型。
读者类型信息实体用来存储读者类型信息。
读者类型信息实体E-R图如图2.3.2.8所示。
图2.3.2.8读者类型信息实体E-R图
当管理员登录图书管理系统时,需要通过登录窗口验证成功后才能进入系统主页。
管理员信息实体,用来存储管理员的登录名称和密码。
管理员信息实体E-R图如图2.3.2.9所示。
图2.3.2.9管理员信息实体E-R图
2.3.3数据库逻辑结构设计
在设计完数据库实体E-R图之后,需要根据实体E-R图设计数据表结构。
下面给出各数据表的数据结构和用途。
tb_admSet(管理员权限设置表)。
表tb_admSet用于保存与管理员权限设置相关的信息,该表的结构如表2.3.3.1所示。
字段名
数据类型
长度
是否主键
描述
userId
int
4
是
管理员编号
userName
varchar
80
否
管理员名称
systemSet
bit
1
系统设置
readerManage
读者管理
bookManage
图书管理
bookBorrow
图书借还
systemSearch
系统查询
表2.3.3.1管理员权限设置表
tb_bookBorrow(图书借阅表)。
表tb_bookBorrow用于保存所有借阅和归还图书的信息,该表的结构如表2.3.3.2所示。
ID
系统编号
bookBarcode
50
图书条形码
bookName
20
图书名称
borrowTime
datetime
8
借阅日期
returnTime
应还日期
readerID
借书证号
readerBarCode
读者条形码
readerName
读者姓名
sex
读者性别
department
读者单位
grade
读者类型编号
renewCount
续借次数
extendedDays
超期天数
FKMoney
decimal
18
罚款金额
handlingTime
处理时间
operationTypes
操作类型
isReturn
是否归还
表2.3.3.2图书借阅表
tb_bookcase(书架信息表)。
表tb_bookcase用于保存书架的详细信息,该表的结构如表2.3.3.3所示。
bookcaseID
书架编号
bookcaseName
书架名称
表2.3.3.3书架信息表
tb_bookInfo(图书信息表)。
表tb_bookInfo用于保存与图书相关的所有信息,该表的结构如表2.3.3.4所示。
bookBarCode
100
linebooknumber
索书号
bookType
图书类型编号
bookcase
bookConcern
出版社
author
作者
price
图书价格
Image
图书图片
CollectionAddress
馆藏地址
borrowSum
借阅总次数
表2.3.3.4图书信息表
tb_bookType(图书类型信息表)。
表tb_bookType用于保存图书类型信息,该表的结构如表2.3.3.5所示。
typeID
typeName
类型名称
borrowDay
可借天数
表2.3.3.5图书类型信息表
tb_library(图书馆信息表)。
表tb_library用于保存图书馆信息,该表的结构如表2.3.3.6所示。
libraryName
图书馆名称
curator
馆长名称
tel
联系电话
address
200
联系地址
email
电子邮箱
net
网址
upbuildTime
建馆时间
remark
500
备注
表2.3.3.6图书馆信息表
tb_readerInfo(读者信息表)。
表tb_library用于保存所有读者信息,该表的结构如表2.3.3.7所示。
借阅证号
passWord
登录密码
char
10
readerType
certificateType
证件类型
certificate
证件号码
canBorrow
可借数量
borrowed
已借数目
borrowedbookAllnumber
借阅总数
contactAddress
readerImage
读者头像
表2.3.3.7读者信息表
tb_readerType(读者类型信息表)。
表tb_library用于保存所有读者类型信息,该表的结构如表2.3.3.8所示。
id
type
读者类型名称
num
可借图书数量
表2.3.3.8读者类型信息表
tb_user(管理员信息表)。
表tb_user用于保存所有管理员信息,该表的结构如表2.3.3.9所示。
userPwd
管理员密码
表2.3.3.9管理员信息表
2.4详细制作
2.4.1图书借阅
2.4.1.1界面设计
图2.4.1.1.1图书借阅界面设计图
2.4.1.2后台程序设计
publicpartialclassbookBorrow:
System.Web.UI.Page
{
MyLinqDataContextdb=newMyLinqDataContext();
//建立LINQ对象
staticintisSum=0;
protectedvoidPage_Load(objectsender,EventArgse)
{
if(Session["
userName"
]!
=null)//判断管理员是否登录
if(!
getSet())//判断是否拥有权限
Response.Write("
<
script>
alert('
您没有此权限'
);
location='
index.aspx'
;
/script>
"
}
else
Response.Redirect("
entry.aspx"
//返回到登录页面
///<
summary>
///自定义方法,返回登录用户的权限
/summary>
returns>
/returns>
publicboolgetSet()
stringuserName=Session["
].ToString();
//获取管理员登录名
varsql=db.tb_admSet.Where(p=>
p.userName==userName).First();
returnConvert.ToBoolean(sql.bookBorrow);
//返回是否拥有图书借阅权限
///点击“查找读者”按钮,显示读者信息
paramname="
sender"
>
/param>
e"
protectedvoidbtnReaderSearch_Click(objectsender,EventArgse)
bindReaderInfo();
//调用自定义方法显示读者信息
///绑定数据到GridView控件上
sql"
publicvoidbindGridView(IQueryablesql)
gvBookBorrow.DataSource=sql;
gvBookBorrow.DataKeyNames=newstring[]{"
bookBarCode"
};
gvBookBorrow.DataBind();
///自定义方法显示读者信息
publicvoidbindReaderInfo()
stringreaderBarCode=txtReaderBarCode.Text.Trim();
//获取读者条形码
varreaderSql=db.tb_readerInfo.Where(j=>
j.readerBarCode==readerBarCode).Count();
//在读者信息表中查询符合读者条形码条件的记录数目
if(readerSql>
0)
varreader=db.tb_readerInfo.Where(s=>
s.readerBarCode==readerBarCode).First();
//获取该读者详细信息
txtReaderName.Text=reader.readerName.ToString();
//显示读者姓名
txtReaderSex.Text=reader.sex.ToString();
//显示读者性别
txtCertificateType.Text=reader.certificateType.ToString();
//显示证件类型
txtCertificate.Text=reader.certificat