1、 软件工程项目汇报 -图书管理系统 班 级: 项目经理: 项目组组员: 模块责任人需求分析用例图代码设计数据库设计界面设计 目录第一章 绪论1.1 项目背景.1.2 编写目标.第二章 需求分析.2.1 系统功效需求分析.2.2 关键参与者.2.3 用例图.2.4 系统用例一览表2.5 用例规约2.7 时序图.第三章 系统设计3.1 系统实体总类图和介绍3.2 相关数据库设计3.2.1 E-R图3.2.2数据库设计.3.3 主界面设计.3.3.1 登录/注册界面设计.3.3.2 管理员操作页面3.3.3 读者用户管理界面3.3.4 代码设计第四章 结束语.第一章 绪论1.1项目背景伴随时代发展,
2、计算机技术越来越深入各行各业,为广大用户提供了更为周到和便捷服务。现在各行各业广泛使用专用系统,其用户群十分庞大,所以,设计开发好一个系统是十分关键。多年来,伴随用户要求不停提升及计算机科学快速发展,尤其是数据库技术广泛应用,向用户提供服务将越来越丰富,越来越人性化。本系统经过强大计算机技术给图书管理人员和读者借、还书带来便利。本系统除了图书馆内管理通常功效除外,还包含网上在线查询图书信息、查询本人借阅情况。1.2编写目标本系统最终将达成降低了人力和管理成本,提升信息正确度,改善管理和服务,建立高效平台,提升信息处理速度和利用率,系统设计优良,界面设计精美、快捷,人性化设计,后台管理功效好、效
3、率高,更简便、信息化程度更高图书管理步骤。 第二章 需求分析2.1系统功效需求分析设计图书馆管理系统。此系统要达成方便读者查找图书,阅读图书,而且也要方便图书馆管理员管理工作。管理员:对图书订购、摆放、添加、删除、查询、统计、修改图书信息。 对读者信息进行安全管理,所谓安全管理也就是对读者全部注册信息进行保密管理,也就是只有此管理员能够获取和查看读者信息(读者本人也能够查看),其它人则无权查看和修改。对读者借还信息进行管理,即当读者借阅图书时将读者借阅信息保留,同时将某图书被借阅信息保留;当读者归还图书时能够立即将归还信息保留,实现消除该读者借书信息,以方便读者继续借阅书籍。 读者进行借阅书籍
4、时,只需要找到管理员即可取得自己想要阅览书籍信息,这么能够降低读者查询书籍时间,而其它工作则由管理员们来协调完成,这么提升了图书馆工作效率,同时也让读者能够取得一个愈加好读书方法。读者除了借阅书籍以外,还能够对自己注册信息进行修改,不过一旦注册成功,则只能修改个人密码,其它人则无权修改。2.2关键参与者1、图书馆管理员:管理员要为每个读者建立借阅账户,并給读者发放不一样类别借阅卡(借阅卡可提供卡号、读者姓名),账户内存放读者个人信息和借阅统计信息。持有借阅卡读者能够经过管理员(作为读者代理人和系统交互)借阅、归还图书,不一样类别读者可借阅图书范围、数量和期限不一样,可经过互联网或图书馆内查询终
5、端查询图书信息和个人借阅情况,和续借图书(系统审核符合续借条件)。2、借阅者:借阅图书时,先输入读者借阅卡号,系统验证借阅卡有效性和读者是否可继续借阅图书,无效则提醒其原因,有效则显示读者基础信息(包含照片),供管理员人工查对。然后输入要借阅书号,系统查阅图书信息数据库,显示图书基础信息,供管理员人工查对。最终提交借阅请求,若被系统接收则存放借阅纪录,并修改可借阅图书数量。归还图书时,输入读者借阅卡号和图书号(或丢失标识号),系统验证是否有此借阅纪录和是否超期借阅,无则提醒,有则显示读者和图书基础信息供管理员人工审核。添加读者2.3用例图 登 录删除读者修改图书修改个人信息添加图书 查看借阅信
6、息删除图书查看图书数目删除借书信息系统维护添加借书信息查看读者信息 图一 管理员用例图 借阅图书预约借读图书注 册续借图书归还图书 查看图书数目查看借阅信息修改个人信息 图二 读者用例图2.4 用例描述用例名称:图书管理员 用例目标:完成登记注册、统计查询、借书、还书等操作;参与者:数据库管理员事件流:第一步:进入管理员登陆界面讨论区组员:选择对应操作区系统:将管理员增删改查权限显示出来即读者信息,图书信息,统计条件信息,读者情况,图书情况,统计结果; 加工名:录入新读者 加工编号:1.1 简明描述:将新读者信息登记到读者信息表中 输入数据流:新读者数据,读者类别 输出数据流:有效读者信息 加
7、工逻辑: 输入读者信息 选择读者类别 实施SQL语句,将完整读者信息写入读者信息表 u 加工名:读者信息修改 加工编号:1.2 简明描述:修改指定读者信息(卡号、已借书本数不可修改) 输入数据流:待修改读者信息 输出数据流:修改后读者信息 加工逻辑: 输入读者编号 实施SQL语句,从读者信息表中找出该读者具体信息 修改除借书卡号和已借书本数以外信息 实施SQL语句,将修改后读者信息写入读者信息表中 u 加工名:读者信息删除 加工编号:1.3 简明描述:将已归还全部图书指定读者信息从读者信息表中删除 输入数据流:待删除读者信息,借书情况信息 输出数据流:待删除读者信息 加工逻辑: 输入读者借书卡
8、号 实施SQL语句,从读者信息表中找出该读者具体信息 IF 该读者处于借阅状态书本数0 THEN 提醒“该读者还有未还图书,临时不能删除” ELSE 实施SQL语句,将该读者信息从读者信息表中删除 ENDIF u 加工名:添加图书; 加工编号:2.1; 简明描述:将新购入图书登记入库,便于读者随时借阅; 输入数据流:新图书信息,图书类别; 输出数据流:有效图书信息; 加工逻辑: 输入新图书信息 选择对应图书类别 实施SQL语句,将新书信息写入图书信息表,统计登记人姓名,图书状态设置为“在库” 加工名:修改图书 加工编号:2.2 简明描述:将修改后图书信息(图书编号和状态不能修改)重新写入图书信
9、息表中; 输入数据流:待修改信息; 输出数据流:修改图书信息 加工逻辑: 输入图书编号 实施SQL语句,从图书信息表中查询该图书具体信息 IF 图书状态为“借阅中” THEN 提醒“图书不在库,不能修改” ELSE 实施SQL语句,将修改后图书信息写入图书信息表 ENDIF u 加工名:删除图书 加工编号:2.3 简明描述:将报废或已经遗失图书从系统中删除 输入数据流:待删除信息,图书状态信息; 输出数据流:删除图书信息 加工逻辑: 输入图书编号 实施SQL语句,从图书信息表中查询该图书具体信息 IF 图书状态为“借阅中” THEN 提醒“图书处于“借阅中”,临时不能删除” ELSE 实施SQ
10、L语句,将该图书信息从图书信息表中删除 ENDIF u 加工名:查询图书 加工编号:2.4 简明描述:按设置条件从图示信息表中查询满足条件图书信息输入数据流:图书查询条件,图书信息; 输出数据流:图书查询结果 加工逻辑: 输入查询条件 实施SQL语句,从图书信息表中查询满足条件图书具体信息 u 加工名:借书管理加工编号:3.1 简单描述:经过借书卡号和可借图书编号完成图书借阅,并在对应表中添加统计 输入数据流:读者信息,图书信息,操作员姓名,预借信息 输出数据流:已借数,借书信息,图书状态 加工逻辑: 实施SQL语句,分别从读者信息表和图书信息表读取指定读者信息图书信息 IF 读者借书限额已满
11、 THEN 提醒“借书限额已满,临时不能借阅新书” ENDIF IF 图书状态为“借阅中” THEN 提醒“该书现在不在库,不能借阅” ENDIF IF 续借信息为真 THEN IF 该读者续借限额未满 THEN 实施SQL语句,将借书信息表中对应统计限还日期延长 返回借书界面,清空相关文本框 ELSE 提醒“续借限额已满,不能再续借” ENDIF ELSE 实施SQL语句,读者信息表中该读者已借书数增值 实施SQL语句,图书信息表中该书状态更改为“借阅中” 实施SQL语句,将图书编号、书名、借书卡号、读者姓名、借书日期、限还 日期、目前操作员姓名等信息写入借书信息表中 返回借书界面,清空相关
12、文本框 ENDIF u加工名:还书管理 加工编号:3.3 简单描述:归还读者借阅图书,同时使读者目前借书总数减值,使归还图书状态为“在 库”,使对应借书统计状态为“已还”。 输入数据流:预还信息,操作员姓名,罚金金额 输出数据流:已借数,图书状态,借书统计状态,还书信息 加工逻辑: 实施SQL语句,从借书信息表中查询指定借书统计 IF 过期金额=0 AND 损坏罚金=0 THEN 实施SQL语句,向还书信息表中写入罚金信息为0含操作员姓名还书 统计 ELSE 实施SQL语句,向还书信息表中写入罚金信息不为0含操作员姓名还 书统计 ENDIF 实施SQL语句,将图书信息表中该图书状态更改为“在库
13、” 实施SQL语句,将读者信息表中目前读者目前借书总数减值 实施SQL语句,将借书信息表中对应借书统计状态更改为“已还”加工名:图书总量统计 加工编号:4.1 简单描述:统计系统中图书总量或按图书类别统计图书数 输入数据流:总量统计条件,统计项信息 输出数据流:图书总量信息 加工逻辑: IF 图书类别不为空 THEN 实施SQL语句,统计指定类别图书数量 ELSE 实施SQL语句,统计全部图书总量 ENDIF2.4 系统用例一览表 系统用例汇总模块用例名称用例ID说明管理员相关1.查看图书书目UC-011. 管理用户2. 管理图书2.系统维护UC-023.修改个人信息UC-034.添加图书UC
14、-045.删除书目UC-056.修改书目UC-067.查看读者信息UC-078.查看借阅信息UC-089.添加读者UC-0910.删除读者UC-1011.添加借阅信息UC-1112.删除借阅信息UC-12读者相关13.查看借阅信息UC-1314.查看图书书目UC-141. 注册登录2. 借阅图书3. 修改个人信息15.预约借读图书UC-1516.修改个人信息UC-1617.借阅图书UC-1718.归还图书UC-1819.续借图书UC-1920.注册UC-202.5用例规约添加用户用例规约用例编号UC-09用例名称添加读者用例描述管理员增加读者过程参与者管理员前置条件登录后置条件无基础路径1.参
15、与者提出增加读者请求2.系统显示增加读者界面3.参与者注册4.管理员分配权限类型5.系统保留用户数据非功效需求补充说明添加图书用例规约用例编号UC-06用例名称添加图书用例描述管理员增加图书过程参与者管理员前置条件登录后置条件无涉众利益基础路径1.系统显示增加图书书目界面2.系统保留用户数据扩展点字段列表业务规则非功效需求补充说明查看借阅信息用例规约用例编号UC-08、UC-13用例名称查看借阅信息用例描述管理员或读者查看借阅信息过程参与者管理员、读者前置条件登录后置条件无涉众利益基础路径1.用户登录2.系统显示借阅信息界面扩展点字段列表业务规则非功效需求补充说明查看读者信息用例规约用例编号U
16、C-07用例名称查看读者信息用例描述管理员或读者查看读者信息过程参与者管理员、读者前置条件登录后置条件无涉众利益基础路径1.用户登录2.系统显示读者信息界面扩展点字段列表业务规则非功效需求补充说明查看图书书目用例规约用例编号UC-01、UC-14用例名称查看图书书目用例描述管理员或读者查看图书书目标过程参与者管理员、读者前置条件登录后置条件无涉众利益基础路径1.用户登录2.系统显示图书书目界面扩展点字段列表业务规则非功效需求补充说明添加借阅信息用例规约用例编号UC-011用例名称添加借阅信息用例描述管理员添加借阅信息过程参与者管理员前置条件登录后置条件无涉众利益基础路径1.管理员登录2.系统显
17、示借阅信息界面扩展点字段列表业务规则非功效需求补充说明 注册用例规约用例编号UC-20用例名称注册用例描述用户注册过程参与者读者前置条件无后置条件无涉众利益基础路径1.用户匿名进入系统2.系统注册登录界面3.注册成功后。系统保留数据信息并自动登录该用户。扩展点字段列表业务规则非功效需求补说明注册用户必需是本人真实信息! 2.6时序图图1:登陆时序图图2:注册更新个人信息时序图图3:添加图书时序图图4:修改图书时序图图5:删除图书时序图图6:系统维护时序图图7:添加读者时序图图8:删除读者时序图图9:查看借阅列表时序图图10:查看读者信息时序图图11:查看图书书目时序图图12:删除借书信息时序图
18、图13:添加借书信息时序图图14:修改个人信息时序图图15:预约借阅图书时序图图16:归还图书时序图图17:借阅图书时序图图18:续借图书时序图 第三章 系统设计3.1系统实体总类图和介绍系统边界类序号名称备注BO-1系统主界面登录、注册、修改个人密码BO-2管理员界面查看图书表、读者表、借还表,添加图书、读者,删除图书、读者,查找图书。BO-3读者界面查看图书列表、借阅列表,借阅图书,归还图书、续借图书,预借图书,查看及修改个人信息等。BO-4图书列表界面显示图书信息,添加、删除、修改、查询图书。BO-5读者列表界面显示读者信息,添加、修改、删除、查询读者。BO-6借还列表界面查看借还信息,
19、续借图书等。BO-7修改个人信息界面修改个人信息系统实体类序号名称备注EN-1图书EN-2管理员唯一管理员EN-3读者系统控制类序号名称备注CON-1查看图书信息图书列表CON-2查看读者信息读者列表CON-3查看借还信息借还列表CON-4添加图书信息图书列表CON-5删除图书信息图书列表CON-6修改图书信息图书列表CON-7添加读者信息读者列表CON-8删除读者信息读者列表CON-9修改读者信息读者列表CON-10预订借阅图书借阅列表CON-11归还图书借阅列表CON-12续借图书借阅列表CON-13注册用户系统主界面CON-14修改个人密码系统主界面3.2相关数据库设计经过对系统需求分析
20、,我们总结出,该系统数据库设计思绪以下(以表格信息表示)。3.2.1 E-R图联络方法姓名密码管理员作者书名管理图书编码管理评论图书库存量联络方法读者借阅密码学号班级姓名出版社价格3.2.2数据库设计 图书信息表管理员能够对读书进行增、删、改、查等操作,读者能够对读书进行借阅、预定借阅、续借、归还、查询等操作,以下是图书基础信息。序号列名字段说明数据类型长度/位主键许可空1图书编号书籍编号int8是否2图书名称书籍名称nvarchar255否否3作者书籍作者nvarchar255否否4价格书籍价格varchar6否否5库存量书籍册数Int8否是6出版社书籍出版社nvarchar255否否7评论
21、书籍评价nvarchar255否是管理员信息表序号列名字段说明数据类型长度/位主键许可空1姓名管理员姓名nvarchar255是否2密码管理员密码Varchar16否否3联络方法管理员电话Int16否否读者信息表读者能够是校内学生,也能够是校外人士,所以需要身份验证方法不一样。以下是读者信息表,和具体具体。序号列名字段说明数据类型长度/位主键许可空1姓名读者姓名nvarchar255否否2学号若是学生,需要学号Int16是是3密码读者密码Varchar16否否4班级若是学生,需要班级nvarchar255否是5身份证号不是学生,需身份证号Varchar25是是6联络方法读者电话Int16否是数
22、据库设计代码:表设计:图书信息表use librarygocreate table bookinfo(bookNO int not null constraint pk_ISBN primary key,Bookname nvarchar(255) not null, bookname varchar(40) not null,pulishname nvarchar(255) not null,price varchar(6) not null,stock int not null,comment nvarchar(255)go读者信息表use librarygocreate table re
23、ader(readerNo int ,readerName nvarchar(255) not null, password varchar(16) not null,class nvarchar(255) ,ID number varchar(25),Telephone intCONSTRAINT readerPK PRIMARY KEY(readerNo)Go管理员信息表use librarygo CREATE TABLE Admin(adminName nvarchar(255) not null, password varchar(16) not null,telephone int
24、not null, CONSTRAINT AdminPK PRIMARY KEY(adminName)Go存放过程:图书管理员增加图书存放过程描述:输入:书名,作者,出版社,ISBN号,价格 ,库存 输出:图书编号 过程:向表中插入书名,作者,出版社,ISBN号,价格create PROCEDURE addbookInfobookNo char(20),bookname nvarchar(255),author nvarchar(255),pulishname nvarchar(255),price money varchar(6) ,stock int,comment nvarchar(25
25、5)asInsertbookInfo values(bookNo,bookName,author,pulishname,price,stock,comment )图书管理员修改图书存放过程描述:输入:图书编号,书名,作者,出版社,图书类别,ISBN号,定价,库存,是否可借过程:依据图书编号修改表中书名,作者,出版社,图书类别,ISBN号,定价,库存,是否可借CREATE PROCEDURE updatebookInfoclassname nvarchar(255),bookName nvarchar(255),author nvarchar(255),pulishname varchar(25
26、5),price money varchar(6),stock int,bookNo output,asbeginupdate bookInfoset classname=classname, bookNo=bookNo, bookName=bookName, author=author, pulishname=pulishname, price=price, stock=stock, where ISBNNo=ISBNNoend图书管理员删除图书存放过程描述:输入:图书编号过程:依据图书编号删除表中该图书信息create proc DeletebookbookNo intasbegindel
27、ete from bookwhere bookNo=bookNoEnd图书管理员删除读者信息存放过程描述:输入:读者号过程:依据输入读者号删除表中该读者信息create proc DeletereaderreaderNo intasbegindelete from bookwhere readerNo=readerNoend3.3主界面设计3.3.1登陆/注册界面设计人机界面设计 设计概述 人机界面设计是接口设计一个关键组成部分。对于交互式系统来说,人机界面设计和数据设计,体系结构设计及过程设计一样关键。 图书管理系统是基于对话框设计,用到了三个对话框,分别为登录对话框,书库管理员对话框和借阅
28、人对话框。 在用户登入时验证用户身份,假如是正当用户,则依据数据库中统计用户权限转到管理员界面或借阅人界面。 图1 登陆界面打开登录界面输入用户名和密码,点击登录进入图书管理界面。假如没有请注册账户图2 注册界面3.3.2管理员操作界面 选择“图书维护”菜单中“书ID”菜单,出现图所表示输入图书信息界面。 输入信息后,单击“图书查询”按钮 图3 总管理界面图4 图书管理界面输书书名或书ID点击“图书查询”图5 借还管理界面1.借书 选择“图书流通”菜单中“借书”菜单,。 输入借阅信息后,单击“借书”按钮。 2. 还书 选择“图书流通”菜单中“还书”菜单, 输入借阅信息后,单击“还书”按钮3.3
29、.3 读者用户管理界面图6 读者用户管理用户图7 修改密码界面编辑要修改信息,单击“保留”按钮图8 读者界面点击左边选框能够查询到你要查询信息系统响应时间 对于用户多种操作请求应立即给出响应,响应时间应控制在1s左右。 犯错信息处理 对于用户不符合要求输入,系统会给犯错误提醒,并通知其错误原因。3.4部分代码:添加图书代码:using System.Data.SqlClient;using System.Data;public partial class Add : System.Web.UI.Page protected void Page_Load(object sender, Event
30、Args e) protected void Button1_Click(object sender, EventArgs e) string constr = server=.; database=library; trusted_connection=yes; SqlConnection con = new SqlConnection(constr); SqlCommand cmd = new SqlCommand(con); cmd.Connection = con; cmd.CommandText = addbookInfo; cmd.CommandType = CommandType
31、.StoredProcedure; SqlParameter sp1 = new SqlParameter(bookname, SqlDbType.NVarChar, 255); sp1.ParameterName = nvarchar; sp1.Value = bookname.Text; cmd.Parameters.Add(sp1); SqlParameter sp2 = new SqlParameter(author, SqlDbType.NVarChar ,255); sp2.ParameterName =author; sp2.Value = author.Text; cmd.Pa
32、rameters.Add(sp2); SqlParameter sp3 = new SqlParameter(pulishnam, SqlDbType.NVarChar, 255); sp3.ParameterName = pulishnam; sp3.Value = pulishnam.Text; cmd.Parameters.Add(sp3); SqlParameter sp4 = new SqlParameter(price, SqlDbType.VarChar,6); sp4.ParameterName = price; sp4.Value = FormatString(price.T
33、ext); cmd.Parameters.Add(sp4); SqlParameter sp5 = new SqlParameter(stock, SqlDbType.Int); sp5.ParameterName = stock; sp5.Value = int.Parse(stock.Text); cmd.Parameters.Add(sp5); SqlParameter sp7 = new SqlParameter(comment, SqlDbType.NVarChar,255); sp7.ParameterName = comment; sp7.Value = System.DateT
34、ime.Now.ToString(); cmd.Parameters.Add(sp7); SqlParameter sp6 = new SqlParameter(bookNO , SqlDbType.Int); sp6.ParameterName = bookNO ; sp6.Direction = ParameterDirection.Output; cmd.Parameters.Add(sp6); con.Open(); cmd.ExecuteNonQuery(); con.Close(); int id = int.Parse(sp6.Value.ToString(); if (id 0) Response.Write(alert(恭喜你,添加成功,感谢您参与!);parent.location=index.aspx); return; else Response.Write(alert(对不起,操作出现错误,请返回!);parent.location=index.aspx); public string FormatString(string str) str = str.Replace( , ); str = str.Replace(, >); str = str.Replace(n.ToString(), ); return str;