软件详细设计说明书实例.pdf

上传人:白大夫 文档编号:5423247 上传时间:2020-05-05 格式:PDF 页数:47 大小:341.31KB
返回 下载 相关 举报
软件详细设计说明书实例.pdf_第1页
第1页 / 共47页
软件详细设计说明书实例.pdf_第2页
第2页 / 共47页
软件详细设计说明书实例.pdf_第3页
第3页 / 共47页
软件详细设计说明书实例.pdf_第4页
第4页 / 共47页
软件详细设计说明书实例.pdf_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《软件详细设计说明书实例.pdf》由会员分享,可在线阅读,更多相关《软件详细设计说明书实例.pdf(47页珍藏版)》请在三一文库上搜索。

1、F o r p e s n a u s e o n y s u d y a n d r e s a c h n o fr c o m mer c a u s e 软件详细设计说明书实例 2019年 3 月 目录 1 引言 2 1.1 编写目的 . 2 1.2 项目背景 . 2 1.3 定义 . 2 1.4 参考资料 . 3 2 总体设计 3 2.1 需求概述 . 3 2.2 软件结构 . 4 3 程序描述 6 3.1 01 登陆模块 6 3.2 02 管理模块 错误!未定义书签。 3.3 031 图书信息查询模块 错误!未定义书签。 3.4 032 学生信息查询模块 错误!未定义书签。 3.5

2、 021 入库管理模块 错误!未定义书签。 3.6 022 学生借书模块 错误!未定义书签。 3.7 023 学生还书模块 错误!未定义书签。 3.8 024 图书注销模块 错误!未定义书签。 3.9 接口设计 . 错误!未定义书签。 3.10 测试要点 43 文档名称:详细设计规格说明书 项目名称:图书馆管理系统 项目负责人:陈新光 编写TEST _年_月_日 校对所有小组成员_年_月_日 审核所有小组成员_年_月_日 批准XXX _年_月_日 开发单位 _ 组员:TEST1 TEST2 TEST3 1引言 1.1 编写目的 图书管理系统详细设计是设计的第二个阶段,这个阶段的主要任务是在图书

3、管理系统概要设计书基础 上,对概要设计中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构, 为编写源代码提供必要的说明。 概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、模块功能和模 块间的联系等。详细设计则要解决如何实现各个模块的内部功能,即模块设计。具体的说,模块设计就是 要为已经产生的图书管理各子系统设计详细的算法。但这并不等同于系统实现阶段用具体的语言编码,它 只是对实现细节作精确的描述,这样编码阶段就可以将详细设计中对功能实现的描述,直接翻译、转化为 用某种程序设计语言书写的程序。 1.2 项目背景 根据 XX 学校希望能够充分利

4、用现代科技来提高图书管理的效率,在原有的办公系统基础上进行扩展, 将一些可以用计算机来管理的都进行计算机化,使得图书馆管理人员工作更加方便,工作效率也更加的高。 1.3 定义 ? Mysql :数据库管理软件 ? DBMS :数据库管理系统 ? Windows 2000/2003/XP :运行环境 ? JSP :软件开发语言 ? Myeclipse :开发工具 1.4 参考资料 软件工程导论第5 版张海藩编著清华大学出版社 实用软件工程Leszek A.Maciaszek Bruc Lee Liong 著 机械工业出版社 2总体设计 2.1 需求概述 按照需求分析文档中的规格要求,使用条形码扫

5、描器进书、借书、还书,使得信息传递准确、流畅。 同时,系统最大限度地实现易安装,易维护性,易操作性,运行稳定,安全可靠。 2.2 软件结构 图书馆 管理系 统 基础信息设置 查询子系统 管理子系统 图书馆信息 系统参数设置 管理员设置 书架设置 图书词库设置 新书购入 学生借书 学生还书 图书注销 学生信息查询 图书信息查询 系统登 陆 系统由 3 大模块, 6 小模块组成: 序号编号名称 1,01 登陆模块 2,02 管理模块 3,031 图书信息查询模块 4,032 学生信息查询模块 5,021 入库管理模块 6,022 学生借书模块 7,023 学生还书模块 8,024 图书注销模块 9

6、,040 基础信息设置 3程序描述 3.1 01 登陆模块 具体格式见下表: 功能编号01 功能名称登陆模块内容功能流程图 所属业务图书馆管理所属项目图书馆管理 系统 编写人陈新光完成时间 2007-11-26 页码第 5 页 3.1.1 功能流程图 功能流程图如下图所示。 登陆 .jsp 录入项检验 (非空) 提交所填内容 失败 登陆数据处理 .jsp成功是否成功执行数据库操作管理 .jsp成功 失败 需要说明的问题: (1) 录入项检测使用 javascript 实现(各项必须非空) (2) 登陆.jsp 页面也包含查询按钮,在此的登陆.jsp 提交的数据只是用户 名和密码。 3.1.2

7、功能描述 (1) 功能类型:查询数据 (2) 功能描述:提高系统的安全性 (3) 前提业务:无 (4) 后继业务: 02 (管理模块) (5) 功能约束:权限约束 (6) 约束描述: (7) 操作权限:图书馆管理员 3.1.3 界面设计 (1) 基础信息处理 动作说明: 动作编号动作名称动作描述 A01 登陆点击登陆按钮提交数据 到登陆数据处理 .jsp 页面 A02 重至点击退重至按钮将当前 信息恢复原先状态 A03 图书信息查询点击将页面转至到图书 信息查询 .jsp 页面 A04 学生信息查询点击将页面转至学生信 息查询 .jsp 页面 A05 基础信息点击 将显示基础信息 (2) 数据

8、要求 (1) 功能类型:数据查询 (2) 数据描述: 页面显示录入字段如下: 字段名称长度录入方式是否非空项数据检验默认显示 管理员 ID 10 文本框 Y N 管理员密码15 password Y N 3.1.4 登陆数据处理 .jsp 的内部逻辑 登陆数据处理: 关键点两点: 1,数据库连接; 2,记录登陆信息及信息处理; 1, 数据库连接: 如下: publicclass lib_system_Conn extends Object public lib_system_Conn() private Connection conn = null; private ResultSet rs

9、; String re = “ ; /设置你的数据库ip String 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/“+dbNa

10、me +“?user=“+use +“ conn = DriverManager.getConnection(url); catch(Exception e) e.printStackTrace(); returnthis. conn ; /在Mysql建立 lib_system数据库,之后将与数据操作相关数据与该数据库相连; 2, 记录登陆信息及信息处理: 当用户点击“登陆”按钮之后,数据将提交到登陆数据处理.jsp 页面。取得帐 号密码这两个从页面传入的值,然后跟数据库当中管理员表中的账号和密码比 较。如果正确的话,在JSP的 SESSION中存入一个标记属性,表示当前已经有 管理员登陆了

11、。处理完毕后,跳转到管理页面,如果失败,则提示登陆失败,并 重新进入到登陆页面。 具体的逻辑如下: 3.1.5 存储分配 管理员表:(admin) 序号字段名类型长度精度小数默认允许主键说明 位数值空 1 (admin_ID) 管理员 ID Int 10 2 (admin_password) 管理员密码 Char 15 3 (admin_quanxian) 权限 Nvarchar 15 3.2 02 管理模块 具体格式见下表 功能编号02 功能名称管理模块内容功能流程图 所属业务图书馆管理所属项目图书馆管理 系统 编写人陈新光完成时间 2007-11-26 页码第 8 页 3.2.1 功能流程

12、图 功能流程图如下所示: 管理 .jsp 查询 .jsp入库管理 .jsp图书注销 .jsp学生还书 .jsp学生借书 .jsp 需要说明的问题: 在选择相应的业务时, 需要在当前的页面显示;并且在管理页面内,默认显 示图书查询页面。 3.2.2 功能描述 (1) 功能类型:其他 (2) 功能概述:总体归纳图书馆管理功能 (3) 前提业务:登陆模块( 01) (4) 后续业务: 021,022,023,024,03 (5) 功能约束:权限约束 (6) 约束描述: (7) 操作权限:图书馆管理人员 3.2.3 界面设计 (1) 基本信息处理 动作说明如下: 动作编号动作名称动作描述 A01 入库

13、管理点击按钮将页面转至入 库管理 .jsp 页面 A02 学生借书点击按钮将页面转至学 生借书 .jsp 页面 A03 学生还书点击按钮将页面转至学 生还书 .jsp 页面 A04 图书注销点击按钮将页面转至图 书注销 .jsp 页面 A05 图书查询点击按钮将页面转至图 书查询 .jsp 页面 (2) 数据要求 功能类型:其他 3.3 031 图书信息查询模块 具体格式如下: 功能编号 031 功能名称图书信息查 询模块 内容功能流程图 所属业务图书馆管理所属项目图书馆管理 系统 编写人陈新光完成时间2007-11-26 页码第 10页 3.3.1 功能流程图 功能流程图如下图: 图书查询

14、.jsp 录入项检验 (非空) 提交所填内容 失败 图书查询数据处 理.jsp 成功是否成功执行数据库操作查询结果 .jsp成功 失败 需要说明的问题: 录入项检测使用 javascript 来实现(各项非空); 操作权限:面向所有用户 3.3.2 功能描述 (1) 功能类型:查询数据 (2) 功能概述:显示查询结果 (3) 前提业务:无 (4) 后继业务: (5) 功能约束:没有约束; (6) 约束描述: (7) 操作权限:面向所有用户 3.3.3 界面设计 (1) 基础信息处理 下表是动作说明: 动作编号动作名称动作描述 A01 确定点击按钮提交数据到图 书查询数据处理 .jsp 页面 A

15、02 学生信息查询点击按钮将页面转至学 生信息查询 .jsp 页面 (2) 数据要求 (1) 功能类型:数据查询 (2) 数据描述: 页面显示字段见下表: 字段名称长度录入方式是否非空项数据检验默认显示 请选择查询 类型 20 下拉列表 Y N 请输入查询 内容 200 文本框 Y N (3) 图书信息查询的输出项 书名 图书类型 作者 译者 ISBN 出版社 价格 书架名称 现存量 简介 书名 图书类型 3.3.4 模块内部逻辑 Search.jsp Lib_query.jsp Chuli.jspView.jsp 1, Search.jsp用于显示界面的内容,给用户显示一个查询接口 2, L

16、ib_query.jsp 用来调度所有的页面, 它根据传入的参数来决定包 含哪一个 jsp 页面来显示内容; 在 lib_query.jsp 页面中, 它根据传入的参数来决定包含哪一个jsp 页面来显示内容;则可 以通过 ” /,利用 jsp:include 标签来 被动态加载发送到相应页面; 3, chuli.jsp 用来处理数据查询和显示查询到的结果列表。 在这个页面中,数据要求是以列表的形式显示到输出页面。 由于查询到的结果可能过多,所以采用分页形式显示; 对于分页功能的内部逻辑: 4, View.jsp 用来显示查询到的图书的各项属性。 3.3.5 存储分配 图书目录文件( Book)

17、 : 序号字段名类型长度精度小数位数默认值允许空主键说明 1 (BookID) 图书编号Int 10 1 自动编号 2 (TXM) 条形码nvarchar20 3 (Title) 书名nvarchar200 4 (TSLX) 图书类型Nvarchar50 5 (Author) 作者Nvarchar20 6 (Translator)译者Nvarchar20 7 (ISBN)ISBN Nvarchar20 8 (CBS)出版社Nvarchar30 10 (SJMC)书架名称Nvarchar20 11 (XCL) 现存量 Smallint 2 12 (KCZL) 库存总量Smallint 2 13

18、(RKSJ)入库时间Datatime 14 (CZY) 操作员Nvarchar10 15 (JJ)简介Nvarchar200 16 (JCCS)借出次数Smallint 2 17 (SFzhuxiao)是否注销Nvarchar2 18 (BookZT) 图书状态nvarchar 50 借书文件表 (JSWJB): 序号字段名类型长度精度小数 位数 默认 值 允许 空 主键外键说明 1 (JYID )Int 10 1 自动 借阅编号编号 2 (BookID) 图书编号 Int 10 3 (StuID) 学 生编号 Int 10 4 (JYSJ) 借 阅时间 Datatime 8 5 (DQSJ)

19、 到 期时间 Datatime 8 6 (XJCS) 续 借次数 Smallint 2 7 (CZY)操 作员 Nvarchar 10 8 (ZT)状态navarchar 50 3.4 032 学生信息查询模块 具体格式如下: 功能编号032 功能名称学生信息查 询模块 内容功能流程图 所属业务图书馆管理所属项目图书馆管理 系统 编写人陈新光完成时间 2007-11-26 页码第 12页 3.4.1 功能流程图 功能流程图如下图: 学生信息查询 .jsp 录入项检验 (非空) 提交所填内容 失败 学生信息查询数据 处理 .jsp 成功是否成功执行数据库操作 学生信息查询结 果 .jsp 成功

20、失败 需要说明的问题: 录入项检测使用 javascript 来实现(各项非空); 操作权限:面向所有用户 3.4.2 功能描述 (8) 功能类型:查询数据 (9) 功能概述:显示查询结果 (10) 前提业务:无 (11) 后继业务: (12) 功能约束:没有约束; (13) 约束描述: (14) 操作权限:面向所有用户 3.4.3 界面设计 (4) 基础信息处理 下表是动作说明: 动作编号动作名称动作描述 A01 确定点击按钮提交数据到图 书查询数据处理 .jsp 页面 A02 图书信息查询点击按钮将页面转至图 书信息查询 .jsp 页面 (5) 数据要求 (3) 功能类型:数据查询 (4)

21、 数据描述: 页面显示字段见下表: 字段名称长度录入方式是否非空项数据检验默认显示 请输入学号 10 文本框 Y N (6) 学生信息查询的输出项 学生学号 姓名 性别 生日 证件号码 联系电话 登记日期 有效期至 已借书数 3.4.4 模块内部逻辑 Search.jsp Index.jsp List.jspView.jsp 5, Search.jsp用于显示界面的内容,给用户显示一个查询接口 6, Index.jsp 用来调度所有的页面, 它根据传入的参数来决定包含哪 一个 jsp 页面来显示内容; 在 index.jsp 页面中, 它根据传入的参数来决定包含哪一个jsp 页面来显示内容;则

22、可 以通过 ” /,利用 jsp:include 标签来 被动态加载发送到相应页面; 7, List.jsp 用来显示查询到的结果列表。 8, View.jsp 用来显示查询到的学生的各项属性。 注释:学生信息查询模块与图书查询模块属于同一类功能。实现 可以完全类似。 3.4.5 存储分配 学生文件: 序号字段字段名类型长度精度小数 位数 默认 值 允许 空 主键说明 1 XSID 学生编号Int 10 1 自动 编号 2 Name 姓名nvarchar 10 3 Sex 性别nvarchar 2 4 ZJH 证件号码nvarchar 25 5 LXDH 联系电话nvarchar 40 6 D

23、JRQ 登记日期datetime 8 7 YXQZ 有效期至datetime 8 8 YJSS 已借书数smallint 2 9 RuleID 学生规则 ID int 10 10 ZT 是否挂失nvarchar 2 借书文件: 序号字段名类型长度精度小数位 数 默认值允许空主键外键说明 1 借阅编 号 Int 10 1 自动 编号 2 图书编 号 Int 10 3 学生编 号 Int 10 4 借阅时 间 Datatime 8 5 到期时 间 Datatime 8 6 续借次Smallint 2 数 7 操作员Nvarchar 10 8 状态navarchar 50 3.5 021 入库管理

24、具体格式如下: 功能编号021 功能名称入库管理模 块 内容功能流程图 所属业务图书馆管理所属项目图书馆管理 系统 编写人陈新光完成时间2007-11-27 页码第 16页 3.5.1 功能流程图 入库管理 .jsp 录入项检验 (非空) 提交所填内容 失败 入库数据处理 .jsp成功是否成功执行数据库操作显示结果 .jsp成功 失败 (1) 执行数据库操作的时候要验证权限 (2) 录入项检验用 javascript来实现(选项非空) 3.5.2 功能描述 (1) 功能类型:添加数据 (2) 功能描述:增加图书目录文件中的图书信息。 (3) 前提业务:管理模块 (4) 后继业务:无 (5) 功

25、能约束:权限约束 (6) 约束描述:无 (7) 操作权限:图书馆管理人员 3.5.3 界面设计 1, 基础信息处理 动作说明如下表: 动作编号动作名称动作描述 A01 保存点击按钮提交数据到入 库数据处理 .jsp 页面 A02 退出点击按钮将当前页面关 闭 2, 数据描述 (1) 功能类型:数据增加。 (2) 数据描述: 页面录入字段见下表: 字段名称长度录入方式是否非空项数据检验默认显示 书号 30 文本框 Y N 条形码 20 文本框 Y N 书名 200 文本框 Y N 作者 20 文本框 Y N 出版社30 文本框Y N 版次50 文本框Y N 图书类别20 文本框Y N 单价 8

26、文本框 Y N 录入时间默认系统时 间,格式: 年 月日只需程序记 录 显示在入库 界面 录入人默认系统登 陆人员 只需程序记 录 显示在入库 界面 3, 入库数据处理内部逻辑: 图书入库采用表格进行多行添加: 利用 javaBean来编写一个 BookBean来管理图书。 在 BookBean类中增加记录的公共接口来实现入库数据的添加。 具体的类设计如下: Public int insert (Hashtable hash) int intID = makeID(“Book“,“BookID“,“,“,true); Vector vect = new Vector(); vect.add(“

27、Book“); vect.add(addVector(“BookID“,String.valueOf(intID),“NUM“); vect.add(addVector(“Title“,ds.toString(String)hash.get(“TITLE“),“ CHAR“); vect.add(addVector(“Author“,ds.toString(String)hash.get(“AUTHOR “),“CHAR“); vect.add(addVector(“ISBN“,ds.toString(String)hash.get(“ISBN“),“ CHAR“); 。 。 。 。 。 。

28、。 。 。 。 。 。 。 。 。 。 。 。 。 。/还有其他选项,同上格式。 return insertRecord(vect); 该方法有一个参数,是java.util.Hashtable类,在调用该方法 前,先用和 hashtable 的 put 方法将字段名和该条记录的值存入 hashtable中,然后将这个 hashtable作为参数传入 insert方法中。 在 insert 方法的最后,调用ParentBean中的 insertRecord方 法, insertRecord可以根据传入的参数自动的生成增加记录的SQL 语句并通过 JDBC 发送到数据库。 正对 ParentBe

29、an类:主要是实现对数据库的各种操作:如与 数据库的连接,对数据库的操作。 3.5.4 存储分配 图书目录文件: 序号字段名类型长度精度小数位数默认值允许空主键说明 1 图书编号Int 10 1 自动编号 2 条形码nvarchar20 3 书名nvarchar200 4 图书类型Nvarchar50 5 作者Nvarchar20 6 译者Nvarchar 20 7 ISBN Nvarchar20 8 出版社Nvarchar30 9 价格Money 8 10 书架名称Nvarchar20 11 现存量Smallint 2 12 库存总量Smallint 2 13 入库时间Datatime 8

30、14 操作员Nvarchar10 15 简介Nvarchar200 16 借出次数Smallint 2 17 是否注销Nvarchar2 18 图书状态nvarchar 50 入库表: 序号字段名类型长度精度小数位 数 默认值允许空主键外键说明 1 书号 Nvarchar 30 1 自动 编号 2 条形码Nvarchar 20 3 书名Nvarchar 200 4 作者Nvarchar 20 5 出版社Nvarchar 30 6 版次Nvarchar 50 7 图 书 类 别 Nvarchar 20 8 存 放 位 置 Nvarchar 20 9 单价Money 8 10 入 库 数 量 Sm

31、allint 2 11 金额Money 8 12 经手人Nvarchar 10 13 票号Nvarchar 30 14 操作员Nvarchar 10 15 日期Datatime 8 注: 3.6 022 学生借书模块 具体格式如下: 功能编号 022 功能名称学生借书模 块 内容功能流程图 所属业务图书馆管理所属项目图书馆管理 系统 编写人陈新光完成时间 2007-11-27 页码第 21页 3.6.1 功能流程图 借书 .jsp 录入项检验 (非空) 提交所填内容 失败 检查学生欠款信息成功欠款是否超额执行数据库操作处理借书数据 .jsp未超额 超额 是否成功失败 显示学生借书信 息 .js

32、p 需要说明的问题: (1)在进行借书,修改数据信息时,应先查询学生的欠款信息,如欠款 超额,则利用 javascript实现信息提示,拒绝借书,如无超额,则 接受借书。 (2)为便于以后的恢复操作,此修改操作只在表中做一个标志,并不是 真正的对其修改; 3.6.2 功能描述 (1) 功能类型:修改数据和查询数据 (2) 功能描述:更新学生借书文件, 图书目录文件等中的信息; (3) 前提业务:管理模块 (4) 后继业务:无 (5) 功能约束:权限约束 (6) 约束描述: (7) 操作权限:图书馆管理人员 3.6.3 界面设计 1,基础信息处理 动作说明如下: 动作编号动作名称动作描述 A01

33、 重置点击按钮将文本框内的 所有数据清空 A02 提交点击按钮将数据提交到 处理学生超额信息页面 A03 取消将当前页面关闭,并取消 借阅 2,数据描述 (1) 功能类型:修改数据和查询数据 (2) 界面设计: (3) 数据字段描述: 字段名称长度录入方式是否非空项数据检验默认显示 学生证件号 码 10 文本框 Y N 书籍条形码 号 10 文本框 Y N 3,图书借阅数据处理内部逻辑 If(strEdit.equals(“ 1” ) If( 学生超额 |学生不存在 ) ifSuccess=false; else If(!bb.IsValid(hash) /新增操作 Int intdel=bb

34、.addBorrow(hash); If(intdel=null) ifSuccess=false; else For(int i=0;ialert(“ ” );alert(“ 借阅失败! ” );alert(“ 借阅成功! ” );alert(“ 归还操作失败! ” );alert(“ 归还操作成功! ” );% 针对 backBorrow(hash)算法如下: public int backBorrow(String TXM) System.out.println(“批量处理还书。 。 。 。“); String sql=“; String strBOOKID=ds.toString(St

35、ring)toName(“BOOK“,“TXM“,“BOOKID“,TXM); String strNow = ds.getDateTime(); strNow = strNow.substring(0,10); createStatement(); clearBatch(); sql=“update JSWJB set ZT=“+strOne+“,DQSJ=“+strNow+“ where BOOKID=“+strBOOKID+“ and ZT=“+strZero+“; System.out.println(“sql1:“+sql); addBatch(sql); sql=“update B

36、OOK set ZT=可借 where BOOKID=“+strBOOKID; System.out.println(“sql2:“+sql); addBatch(sql); int result=executeBatch(); closeStm(); return result; 3.7.4 存储分配 借书文件: 序号字段名类型长度精度小数位 数 默认值允许空主键外键说明 1 借阅编 号 Int 10 1 自动 编号 2 图书编 号 Int 10 3 学生编 号 Int 10 4 借阅时 间 Datatime 8 5 到期时 间 Datatime 8 6 续借次 数 Smallint 2 7

37、 操作员Nvarchar 10 8 状态navarchar 50 学生文件: 序号字段字段名类型长度精度小数 位数 默认 值 允许 空 主键说明 1 XSID 学生编号Int 10 1 自动 编号 2 Name 姓名nvarchar 10 3 Sex 性别nvarchar 2 4 ZJH 证件号码nvarchar 25 5 LXDH 联系电话nvarchar 40 6 DJRQ 登记日期datetime 8 7 YXQZ 有效期至datetime 8 8 YJSS 已借书数smallint 2 9 RuleID 学生规则 ID int 10 10 ZT 是否挂失nvarchar 2 图书目录文

38、件: 序号字段名类型长度精度小数位数默认值允许空主键说明 1 图书编号Int 10 1 自动编号 2 条形码nvarchar20 3 书名nvarchar200 4 图书类型Nvarchar50 5 作者Nvarchar 20 6 译者Nvarchar20 7 ISBN Nvarchar20 8 出版社Nvarchar30 9 价格Money 8 10 书架名称Nvarchar20 11 现存量Smallint 2 12 库存总量Smallint 2 13 入库时间Datatime 8 14 操作员Nvarchar10 15 简介Nvarchar200 16 借出次数Smallint 2 17

39、 是否注销Nvarchar 2 18 图书状态nvarchar 50 罚款单 ; 序号字段名类型长度精度小数位 数 默认值允许空主键外键说明 1 借阅编 号 Int 10 1 自动编 号 2 图书编 号 Int 10 3 学生编 号 Int 10 4 应罚金 额 Smallint 3 5 实收金 额 Smallint 3 6 状态Nvarchar 1 7 备注Nvarchar 200 3.8 024 图书注销 具体格式如下: 功能编号 024 功能名称图书注销模 块 内容功能流程图 所属业务图书馆管理所属项目图书馆管理 系统 编写人陈新光完成时间 2007-11-27 页码第 31页 3.8.

40、1 功能流程图 注销 .jsp 录入项检测 (非空) 提交数据处理 .jsp成功 失败 是否 成功执行数据库操作显示结果成功 失败 需要说明的问题: (1) 显示结果可直接在处理结果.jsp 中利用 javascript 来实现显示功能! (2) 在处理图书注销的时候,为了便于以后的恢复操作,此删除操作只在 表中做一标志,并不是真正的删除。 3.8.2 功能描述 (1) 功能描述:删除数据 (2) 功能概述:注销图书 (3) 前提业务:管理模块 (4) 后继业务:无 (5) 约束描述: (6) 操作权限:图书馆管理人员 3.8.3 界面设计 (1) 基础信息处理 动作说明如下: 动作编号动作名

41、称动作描述 A01 重置点击按钮将文本框内的 所有数据清空 A02 提交点击按钮将数据提交到 处理还书信息页面 (2) 界面描述: (3) 数据描述: 字段名称长度录入方式是否非空项数据检验默认显示 书籍条形码 号 10 文本框Y N (4) 对于图书注销业务的处理 3.8.4 存储分配 图书目录文件: 序号字段名类型长度精度小数位数默认值允许空主键说明 1 图书编号Int 10 1 自动编号 2 条形码nvarchar20 3 书名nvarchar200 4 图书类型Nvarchar50 5 作者Nvarchar20 6 译者Nvarchar20 7 ISBN Nvarchar20 8 出版

42、社Nvarchar30 9 价格Money 8 10 书架名称Nvarchar20 11 现存量Smallint 2 12 库存总量Smallint 2 13 入库时间Datatime 8 14 操作员Nvarchar10 15 简介Nvarchar200 16 借出次数Smallint 2 17 是否注销Nvarchar2 18 图书状态nvarchar 50 3.9 025 基础信息设置 3.10接口设计 (1) 用来查询一条数据的私有接口 该方法有一个参数,参数是一个字符串,表示要向数据库发送一条 SQL 语句,这个SQL 只是一个查询语句,方法的返回植是一个 Hashtable ,在

43、Hashtable中以键值对的方式表示了从数据库中选出了 第一行记录。用 Hashtable中的 get(“ FieldName” )方法可以得到改行记 录的某一个记录的值。 private Hashtable searchOneData(String sql) Hashtable hash = new Hashtable(); ResultSet rs = selectRecord(sql); Statement stmt = null; try /取得列数和列名 ResultSetMetaData rsmd = rs.getMetaData(); int cols = rsmd.getCo

44、lumnCount(); if(rs.next() for(int i=1;i=cols;i+) String field= ds.toString(rsmd.getColumnName(i); String value = ds.toString(rs.getString(i); hash.put(field,value); catch(Exception e) System.out.println(“运行时出错: “+e); finally if(rs!=null)try stmt=rs.getStatement(); rs.close(); catch(Exception e) Syst

45、em.out.println(“关闭记录集 rs 时出 错“+e); if(stmt!=null) try stmt.close(); catch(Exception e) System.out.println(“关闭声明时 statement出错“+e); return hash; (2) 增加记录的公共接口 该方法有一个参数,是java.util.Hashtable 类,在调用该方法前,先用和 hashtable 的 put 方法将字段名和该条记录的值存入hashtable 中,然后将这个 hashtable作为参数传入 insert 方法中。在 insert 方法的最后,调用Parent

46、Bean 中的 insertRecord方法,insertRecord可以根据传入的参数自动的生成增加记录的 SQL 语句并通过 JDBC 发送到数据库 Public int insert(Hashtable hash) Int intID=makeID( “ Book” ,” BookID” ,”,true); Vector vect=new Vector(); Vect.add(“ .” ); Return insertRecord(vect); (3) 删除记录的公共接口 该方法有一个参数id,该参数表示的是book 表中的 ID 字段, ID 字 段是这个表的主键,用这个主键可以检索到

47、表中的一条唯一的记录, 通过这个主键,delete方法可以生成一条SQL 语句, 删除这一条记录。 public int delete(String id) String sql=“; sql=“delete from Book where BookID=“+id; return deleteRecord(sql); (4) 查询记录的公共接口 Public Vector getData(String sqlwhere, int page) String sql=”; Sql=” select * from Book” ; If (!sqlwhere.equals(“”) Sql+=sqlwh

48、ere; Return getOnePage(sql,page,20); (5) 修改记录的接口 public int update(Hashtable hash) Vector vect = new Vector(); vect.add(“Book“); vect.add(addVector(“Title“,ds.toString(String)hash.get(“TITLE“),“CHAR“); vect.add(addVector(“Author“,ds.toString(String)hash.get(“AUTHOR“),“CHAR“ ); vect.add(addVector(“ISBN“,ds.toString(String)hash.get(“ISBN“),“CHAR“); return updateRecord(vect); 3.11测试要点 3.11.1测试范围 测试范围主要内容简要说

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1