1、根据图书管理系统的概要设计,本系统按照功能角度分解,可以分为客户端子系统和管理端子系统。按照需求分析文档中的规格要求,使用条形码扫描器进书、借书、还书,使得信息传递准确、流畅。同时,系统最大限度地实现易安装,易维护性,易操作性,运行稳定,安全可靠。软件结构系统由3大模块,6小模块组成:序号 编号 名称01 登陆模块02 管理模块031 图书信息查询模块032 学生信息查询模块021 入库管理模块022 学生借书模块023 学生还书模块024 图书注销模块040 基础信息设置3 详细设计概述 由于本系统采用了基于体系结构的设计,即采用的三层设计模式,采用面向对象的语言以及的脚本语言。所以,基本采
2、用面向对象的设计方法。在整个的开发过程中,尽可能采用复用的原则,例如采用标签库,统一数据库的基本操作,统一结果显示等。本文档的详细设计主要是按照的的三个层次分别编制视图层、控制层和模型层模块的伪代码。为下一步的编码提供基础。伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言实现。因此,伪代码必须结构清晰,代码简单,可读性好,并且类似自然语言。4程序描述 01登陆模块具体格式见下表:功能编号01功能名称登陆模块内容功能流程图所属业务图书馆管理所属项目图书馆管理系统功能流程图如下图所示。需要说明的问题:(1) 录入项检测使用javas
3、cript实现(各项必须非空)(2) 登陆.jsp页面也包含查询按钮,在此的登陆.jsp提交的数据只是用户名和密码。功能描述(1) 功能类型:查询数据(2) 功能描述:提高系统的安全性(3) 前提业务:无(4) 后继业务:02 (管理模块)(5) 功能约束:权限约束(6) 约束描述:(7) 操作权限:图书馆管理员界面设计(1) 基础信息处理 动作说明:步骤名称描述登陆点击登陆按钮 提交数据到登陆数据处理.jsp页面02重至点击退重至按钮 将当前信息恢复原先状态03图书信息查询点击 将页面转至到图书信息查询.jsp页面04学生信息查询点击 将页面转至学生信息查询.jsp页面05基础信息点击 将显
4、示基础信息(2) 数据要求数据查询(2) 数据描述:页面显示录入字段如下:字段名称长度录入方式是否非空项数据检验默认显示管理员ID10文本框YN管理员密码15password登陆数据处理.jsp的内部逻辑登陆数据处理: 关键点两点:1,数据库连接;2,记录登陆信息及信息处理;1, 数据库连接: 如下:public class lib_system_Conn extends Object public lib_system_Conn() private Connection conn = null; private ResultSet rs; String re = ; /设置你的数据库ip S
5、tring dbip = 127.0.0.1 /设置你的数据库用户名和密码: String use = root String pass = /设置您的数据库名 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=true&characterE
6、ncoding=GBK ; conn= DriverManager.getConnection(url); catch(Exception e) e.printStackTrace(); return this.conn ;/在Mysql建立lib_system数据库,之后将与数据操作相关数据与该数据库相连;2, 记录登陆信息及信息处理:当用户点击“登陆”按钮之后,数据将提交到登陆数据处理.jsp页面。 取得帐号密码这两个从页面传入的值,然后跟数据库当中管理员表中的账号和密码比较。如果正确的话,在JSP的SESSION中存入一个标记属性,表示当前已经有管理员登陆了。处理完毕后,跳转到管理页面,
7、如果失败,则提示登陆失败,并重新进入到登陆页面。具体的逻辑如下:存储分配管理员表:(admin)序号字段名类型精度小数位数默认值允许空主键说明1(admin_ID)管理员IDInt2(admin_password)管理员密码Char3(admin_quanxian)权限Nvarchar02管理模块具体格式见下表管理模块功能流程图如下所示:在选择相应的业务时,需要在当前的页面显示;并且在管理页面内,默认显示图书查询页面。其他(2) 功能概述:总体归纳图书馆管理功能登陆模块(01)(4) 后续业务:021,022,023,024,03图书馆管理人员(1) 基本信息处理动作说明如下:入库管理点击按钮
8、 将页面转至入库管理.jsp页面学生借书点击按钮 将页面转至学生借书.jsp页面学生还书点击按钮 将页面转至学生还书.jsp页面图书注销点击按钮 将页面转至图书注销.jsp页面图书查询点击按钮 将页面转至图书查询.jsp页面功能类型:031图书信息查询模块具体格式如下:031图书信息查询模块功能流程图如下图:录入项检测使用javascript来实现(各项非空);操作权限:面向所有用户显示查询结果没有约束;(1) 基础信息处理下表是动作说明:确定点击按钮 提交数据到图书查询数据处理.jsp页面点击按钮 将页面转至学生信息查询.jsp页面页面显示字段见下表:请选择查询类型20下拉列表请输入查询内容
9、200(3) 图书信息查询的输出项书名图书类型作者译者ISBN出版社价格书架名称现存量简介模块内部逻辑1, 查询.jsp用于显示界面的内容,给用户显示一个查询接口2, 主函数.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容;在lib_query.jsp页面中,它根据传入的参数来决定包含哪一个jsp页面来显示内容;则可以通过jsp:include page=”/,利用jsp:include标签来被动态加载发送到相应页面;3, 处理.jsp 用来处理数据查询和显示查询到的结果列表。在这个页面中,数据要求是以列表的形式显示到输出页面。由于查询到的结果可能过多,所以采用
10、分页形式显示;对于分页功能的内部逻辑:4, 显示.jsp用来显示查询到的图书的各项属性。图书目录文件(Book):(BookID)图书编号自动编号(TXM)条形码nvarchar(Title)书名4(TSLX)图书类型505(Author)作者6(Translator)译者7(ISBN)ISBN8(CBS)出版社30(SJMC)书架名称11(XCL)现存量Smallint12(KCZL)库存总量13(RKSJ)入库时间Datatime14(CZY)操作员(JJ)简介16(JCCS)借出次数17(SFzhuxiao)是否注销18(BookZT)图书状态借书文件表(JSWJB):外键(JYID)借
11、阅编号(StuID)学生编号(JYSJ)借阅时间(DQSJ)到期时间(XJCS)续借次数(ZT)状态navarchar032学生信息查询模块032学生信息查询模块(8) 功能类型:(9) 功能概述:(10) 前提业务:(11) 后继业务:(12) 功能约束:(13) 约束描述:(14) 操作权限:(4) 基础信息处理点击按钮 将页面转至图书信息查询.jsp页面(5) 数据要求(3) 功能类型:(4) 数据描述:请输入学号(6) 学生信息查询的输出项学生学号姓名性别生日证件号码联系电话登记日期有效期至已借书数5, Search.jsp用于显示界面的内容,给用户显示一个查询接口6, Index.j
12、sp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容;在index.jsp页面中,7, List.jsp 用来显示查询到的结果列表。8, View.jsp用来显示查询到的学生的各项属性。 注释:学生信息查询模块与图书查询模块属于同一类功能。实现可以完全类似。学生文件:字段XSID学生编号NameSexZJH25LXDH40DJRQdatetimeYXQZYJSSsmallint9RuleID学生规则IDintZT是否挂失借书文件:借阅编号图书编号借阅时间到期时间续借次数操作员状态021入库管理021入库管理模块(1) 执行数据库操作的时候要验证权限(2) 录入项检验用j
13、avascript来实现(选项非空)添加数据增加图书目录文件中的图书信息。1, 基础信息处理动作说明如下表:保存点击按钮 提交数据到入库数据处理.jsp页面退出点击按钮 将当前页面关闭2, 数据描述数据增加。页面录入字段见下表:书号条形码版次图书类别单价录入时间默认系统时间,格式: 年 月 日只需程序记录显示在入库界面录入人默认系统登陆人员3, 入库数据处理内部逻辑:图书入库采用表格进行多行添加:利用javaBean来编写一个BookBean来管理图书。在BookBean类中增加记录的公共接口来实现入库数据的添加。具体的类设计如下:Public int insert (Hashtable ha
14、sh) int intID = makeID(Book,BookID,true); Vector vect = new Vector(); vect.add( vect.add(addVector(,String.valueOf(intID),NUM);Title,ds.toString(String)hash.get(TITLE),CHARAuthorAUTHORISBN。/还有其他选项,同上格式。 return insertRecord(vect);该方法有一个参数,是java.util.Hashtable类,在调用该方法前,先用和hashtable的put方法将字段名和该条记录的值存入hashtable中,然后将这个hashtable作为参数传入insert方法中。 在insert方法的最后,调用ParentBean中的insertRecord方法,insertRecord可以根据传入的参数自动的生成增加记录的SQL语句并通过JDBC发送到数据库。 正对ParentBean类:主要是实现对数据库的各种操作:如与数据库的连接,对数据库的操作。图书目录文件:Nvarc
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1