图书管理系统详细设计的设计方案1.1编写目的图书管理系统详细设计是设计的第二个阶段,这个阶段的主要任务是在图书管理系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能模块的部细节,包括算法和详细数据结构,为编写源代码提供必要的说明。
概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、模块功能和模块间的联系等。
详细设计则要解决如何实现各个模块的部功能,即模块设计。
具体的说,模块设计就是要为已经产生的图书管理各子系统设计详细的算法。
但这并不等同于系统实现阶段用具体的语言编码,它只是对实现细节作精确的描述,这样编码阶段就可以将详细设计中对功能实现的描述,直接翻译、转化为用某种程序设计语言书写的程序。
1.2项目背景根据XX学校希望能够充分利用现代科技来提高图书管理的效率,在原有的办公系统基础上进行扩展,将一些可以用计算机来管理的都进行计算机化,使得图书馆管理人员工作更加方便,工作效率也更加的高。
1.3定义•Mysql:数据库管理软件•DBMS:数据库管理系统•Windows 2000/2003/XP:运行环境•JSP :软件开发语言•Myeclipse :开发工具1.4参考资料《软件工程导论——第5版》海藩编著清华大学《实用软件工程》Leszek A.Maciaszek Bruc Lee Liong著机械工业2总体设计2.1需求概述按照需求分析文档中的规格要求,使用条形码扫描器进书、借书、还书,使得信息传递准确、流畅。
同时,系统最大限度地实现易安装,易维护性,易操作性,运行稳定,安全可靠。
2.2软件结构系统由3大模块,6小模块组成:序号编号名称1,01 登陆模块2,02 管理模块3,031 图书信息查询模块4,032 学生信息查询模块5,021 入库管理模块6,022 学生借书模块7,023 学生还书模块8,024 图书注销模块9,040 基础信息设置3程序描述3.1 01登陆模块具体格式见下表:功能编号01 功能名称登陆模块容功能流程图3.1.1功能流程图功能流程图如下图所示。
需要说明的问题:(1)录入项检测使用javascript实现(各项必须非空)(2)登陆.jsp页面也包含查询按钮,在此的登陆.jsp提交的数据只是用户名和密码。
3.1.2功能描述(1)功能类型:查询数据(2)功能描述:提高系统的安全性(3)前提业务:无(4)后继业务:02 (管理模块)(5)功能约束:权限约束(6)约束描述:(7)操作权限:图书馆管理员3.1.3界面设计(1)基础信息处理动作说明:动作编号动作名称动作描述信息恢复原先状态A03 图书信息查询点击将页面转至到图书信息查询.jsp页面A04 学生信息查询点击将页面转至学生信息查询.jsp页面(2)数据要求(1)功能类型:数据查询(2)数据描述:页面显示录入字段如下:字段名称长度录入方式是否非空项数据检验默认显示3.1.4登陆数据处理.jsp的部逻辑登陆数据处理:关键点两点:1,数据库连接;2,记录登陆信息及信息处理;1,数据库连接:如下:public class lib_system_Conn extends Object{public lib_system_Conn(){}private Connection conn = null;private ResultSet rs;String re = "";//设置你的数据库ipString dbip = "127.0.0.1";//设置你的数据库用户名和密码:String use = "root";String pass = "860409";//设置您的数据库名String dbName = "lib_system";public java.sql.Connection getConn(){try{Class.forName("org.gjt.mm.mysql.Driver").newInstance();String url="jdbc:mysql://"+dbip+":3306/"+dbName+"?user="+use+"&password="+pass+"&useUnicode=t rue&characterEncoding=GBK" ;conn= DriverManager.getConnection(url);}catch(Exception e){e.printStackTrace();}return this.conn ;}}//在Mysql建立lib_system数据库,之后将与数据操作相关数据与该数据库相连;2,记录登陆信息及信息处理:当用户点击“登陆”按钮之后,数据将提交到登陆数据处理.jsp页面。
取得密码这两个从页面传入的值,然后跟数据库当中管理员表中的账号和密码比较。
如果正确的话,在JSP的SESSION中存入一个标记属性,表示当前已经有管理员登陆了。
处理完毕后,跳转到管理页面,如果失败,则提示登陆失败,并重新进入到登陆页面。
具体的逻辑如下:<%String username=ParamUtil.getString(request,"admin_ID");//取得用户名String password=ParamUtil.getString(request,"admin_password");//取得密码String erroMsg="";//错误码if(username!=null&&password!=null)try{SkinUtil.login(request,response,admin_ID,admin_password);//在JSP的session中存如一个标记属性,表示当前已经有管理员登陆了Session.setAttribute(“admin_ID”,admin_ID);response.sendRedirect("login_process.jsp");}catch(UserNotFoundException e){erroMsg="错误的用户名和密码";response.sendRedirect("login_process.jsp?"+response.encodeURL(err oMsg));}else{out.println("请填写好你的个人信息!");}%>3.1.5 存储分配管理员表:(admin )序号 字段名类型长度精度小数位数 默认值允许空主键说明2(admin_password)管理员密码Char153.2 02管理模块具体格式见下表 功能编号 02功能名称管理模块容功能流程图3.2.1 功能流程图功能流程图如下所示:需要说明的问题:在选择相应的业务时,需要在当前的页面显示;并且在管理页面,默认显示图书查询页面。
3.2.2功能描述(1)功能类型:其他(2)功能概述:总体归纳图书馆管理功能(3)前提业务:登陆模块(01)(4)后续业务:021,022,023,024,03(5)功能约束:权限约束(6)约束描述:(7)操作权限:图书馆管理人员3.2.3界面设计(1)基本信息处理动作说明如下:动作编号动作名称动作描述生借书.jsp页面A03 学生还书点击按钮将页面转至学生还书.jsp页面A04 图书注销点击按钮将页面转至图书注销.jsp页面(2)数据要求功能类型:其他3.3031图书信息查询模块具体格式如下:容功能流程图功能编号031 功能名称图书信息查询模块3.3.1功能流程图功能流程图如下图:需要说明的问题:录入项检测使用javascript来实现(各项非空);操作权限:面向所有用户3.3.2功能描述(1)功能类型:查询数据(2)功能概述:显示查询结果(3)前提业务:无(4)后继业务:(5)功能约束:没有约束;(6)约束描述:(7)操作权限:面向所有用户3.3.3界面设计(1)基础信息处理下表是动作说明:动作编号动作名称动作描述生信息查询.jsp页面(2)数据要求(1)功能类型:数据查询(2)数据描述:页面显示字段见下表:字段名称长度录入方式是否非空项数据检验默认显示容(3)图书信息查询的输出项书名图书类型作者译者ISBN价格书架名称现存量简介书名图书类型3.3.4模块部逻辑1,Search.jsp用于显示界面的容,给用户显示一个查询接口2,Lib_query.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示容;在lib_query.jsp页面中,它根据传入的参数来决定包含哪一个jsp页面来显示容;则可以通过<jsp:include page=”<%= ……%>”/>,利用jsp:include标签来被动态加载发送到相应页面;3,chuli.jsp 用来处理数据查询和显示查询到的结果列表。
在这个页面中,数据要以列表的形式显示到输出页面。
由于查询到的结果可能过多,所以采用分页形式显示;对于分页功能的部逻辑:4,View.jsp用来显示查询到的图书的各项属性。
3.3.5存储分配图书目录文件(Book):序号字段名类型长度精度小数位数默认值允许空主键说明3 (Title)书名nvarchar2004 (TSLX)图书类型Nvarchar50 √5 (Author)作者Nvarchar20 √6 (Translator)译者Nvarchar20 √7 (ISBN)ISBN Nvarchar208 (CBS) Nvarchar30 √10 (SJMC)书架名称Nvarchar20 √11 (XCL)现存量Smallint 2 √12 (KCZL)库存总量Smallint 2 √13 (RKSJ)入库时间Datatime √14 (CZY)操作员Nvarchar10 √15 (JJ)简介Nvarchar200 √16 (JCCS)借出次数Smallint 2 √Nvarchar 2 √17 (SFzhuxiao)是否注销借书文件表(JSWJB):序号 字段名 类型 长度 精度 小数位数默认值 允许空 主键 外键 说明图书编号3 (StuID)学生编号Int 10 √4 (JYSJ)借阅时间Datatim e 8 √5 (DQSJ)到期时间Datatim e 8 √6 (XJCS)续借次数Smallin t 2 √7 (CZY)操作员Nvarcha r10 √8 (ZT)状态 navarchar50 √3.4 032学生信息查询模块具体格式如下: 功能编号032功能名称学生信息查询模块容 功能流程图3.4.1 功能流程图功能流程图如下图:需要说明的问题:录入项检测使用javascript来实现(各项非空);操作权限:面向所有用户3.4.2功能描述(8)功能类型:查询数据(9)功能概述:显示查询结果(10)前提业务:无(11)后继业务:(12)功能约束:没有约束;(13)约束描述:(14)操作权限:面向所有用户3.4.3界面设计(4)基础信息处理下表是动作说明:动作编号动作名称动作描述书信息查询.jsp页面(5)数据要求(3)功能类型:数据查询(4)数据描述:页面显示字段见下表:字段名称长度录入方式是否非空项数据检验默认显示(6)学生信息查询的输出项学生学号性别生日证件联系登记日期有效期至已借书数3.4.4模块部逻辑5,Search.jsp用于显示界面的容,给用户显示一个查询接口6,Index.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示容;在index.jsp页面中,它根据传入的参数来决定包含哪一个jsp页面来显示容;则可以通过<jsp:include page=”<%= ……%>”/>,利用jsp:include标签来被动态加载发送到相应页面;7,List.jsp 用来显示查询到的结果列表。