图书管理系统详细设计说明书

〖图书管理系统〗详细设计说明书2022年4月目录1 引言21.1 编写目的21.2 项目背景21.3 定义21.4 参考资料22 总体设计22.1 需求概述22.2 软件结构23 程序描述23.1 01登陆模块23.2 02管理模块23.3 031图书信息查询模块23.4 032学生信息查询模块23.5 021入库管理模块23.6 022学生借书模块23.7 023学生还书模块23.8 024图书注销模块23.9 接口设计23.10 测试要点2文档名称: 详细设计规格说明书项目名称: 图书馆管理系统项目负责人:陈新光 编写 TEST _____年_____月_____日 校对 所有小组成员 _____年_____月_____日 审核 所有小组成员 _____年_____月_____日 批准 XXX _____年_____月_____日 开发单位__________________________________________组员: TEST1 TEST2 TEST31 引言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功能名称登陆模块内容功能流程图所属业务图书馆管理所属项目图书馆管理系统编写人陈新光完成时间2007-11-26页码第5页3.1.1 功能流程图功能流程图如下图所示需要说明的问题:(1) 录入项检测使用javascript实现(各项必须非空)(2) 登陆.jsp页面也包含查询按钮,在此的登陆.jsp提交的数据只是用户名和密码3.1.2 功能描述(1) 功能类型:查询数据(2) 功能描述:提高系统的安全性(3) 前提业务:无(4) 后继业务:02 (管理模块)(5) 功能约束:权限约束(6) 约束描述:(7) 操作权限:图书馆管理员3.1.3 界面设计(1) 基础信息处理 动作说明:动作编号动作名称动作描述A01登陆点击登陆按钮 提交数据到登陆数据处理.jsp页面A02重至点击退重至按钮 将当前信息恢复原先状态A03图书信息查询点击 将页面转至到图书信息查询.jsp页面A04学生信息查询点击 将页面转至学生信息查询.jsp页面A05基础信息点击 将显示基础信息(2) 数据要求(1) 功能类型:数据查询(2) 数据描述:页面显示录入字段如下:字段名称长度录入方式是否非空项数据检验默认显示管理员ID10文本框YN管理员密码15passwordYN3.1.4 登陆数据处理.jsp的内部逻辑登陆数据处理: 关键点两点:1,数据库连接;2,记录登陆信息及信息处理;1, 数据库连接: 如下:publicclass lib_system_Conn extends Object{public lib_system_Conn(){ } private Connection conn = null;private ResultSet rs; 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/"+dbName+"?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=GBK" ;conn= DriverManager.getConnection(url); }catch(Exception e){ e.printStackTrace(); }returnthis.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(erroMsg)); }else{ out.println("请填写好你的个人信息!");}%>3.1.5 存储分配管理员表:(admin)序号字段名类型长度精度小数位数默认值允许空主键说明1(admin_ID)管理员IDInt10√2(admin_password)管理员密码Char153(admin_quanxian)权限Nvarchar153.2 02管理模块具体格式见下表功能编号02功能名称管理模块内容功能流程图所属业务图书馆管理所属项目图书馆管理系统编写人陈新光完成时间2007-11-26页码第8页3.2.1 功能流程图功能流程图如下所示:需要说明的问题:在选择相应的业务时,需要在当前的页面显示;并且在管理页面内,默认显示图书查询页面。
3.2.2 功能描述(1) 功能类型:其他(2) 功能概述:总体归纳图书馆管理功能(3) 前提业务:登陆模块(01)(4) 后续业务:021,022,023,024,03(5) 功能约束:权限约束(6) 约束描述:(7) 操作权限:图书馆管理人员3.2.3 界面设计(1) 基本信息处理动作说明如下:动作编号动作名称动作描述A01入库管理点击按钮 将页面转至入库管理.jsp页面A02学生借书点击按钮 将页面转至学生借书.jsp页面A03学生还书点击按钮 将页面转至学生还书.jsp页面A04图书注销点击按钮 将页面转至图书注销.jsp页面A05图书查询点击按钮 将页面转至图书查询.jsp页面(2) 数据要求功能类型:其他3.3 031图书信息查询模块具体格式如下:功能编号031功能名称图书信息查询模块内容功能流程图所属业务图书馆管理所属项目图书馆管理系统编写人陈新光完成时间2007-11-26页码第10页3.3.1 功能流程图功能流程图如下图:需要说明的问题:录入项检测使用javascript来实现(各项非空);操作权限:面向所有用户3.3.2 功能描述(1) 功能类型:查询数据(2) 功能概述:显示查询结果(3) 前提业务:无(4) 后继业务:(5) 功能约束:没有约束;(6) 约束描述:(7) 操作权限:面向所有用户3.3.3 界面设计(1) 基础信息处理下表是动作说明:动作编号动作名称动作描述A01确定点击按钮 提交数据到图书查询数据处理.jsp页面A02学生信息查询点击按钮 将页面转至学生信息查询.jsp页面(2) 数据要求(1) 功能类型:数据查询(2) 数据描述:页面显示字段见下表:字段名称长度录入方式是否非空项数据检验默认显示请选择查询类型20下拉列表YN请输入查询内容200文本框YN(3) 图书信息查询的输出项书名图书类型作者译者ISBN出版社价格书架名称现存量简介书名图书类型3.3.4 模块内部逻辑1, Search.jsp用于显示界面的内容,给用户显示一个查询接口2, Lib_query.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容;在lib_query.jsp页面中,它根据传入的参数来决定包含哪一个jsp页面来显示内容;则可以通过
在这个页面中,数据要求是以列表的形式显示到输出页面由于查询到的结果可能过多,所以采用分页形式显示;对于分页功能的内部逻辑:4, View.jsp用来显示查询到的图书的各项属性3.3.5 存储分配图书目录文件(Book):序号字段名类型长度精度小数位数默认值允许空主键说明1(BookID)图书编号Int101√自动编号2(TXM)条形码nvarchar203(Title)书名nvarchar2004(TSLX)图书类型Nvarchar50√5(Author)作者Nvarchar20√6(Translator)译者Nvarchar20√7(ISBN)ISBNNvarchar208(CBS)出版社Nvarchar30√10(SJMC)书架名称Nvarchar20√11(XCL)现存量Smallint2√12(KCZL)库存总量Smallint2√13(RKSJ)入库时间Datatime√14(CZY)操作员Nvarchar10√15(JJ)简介Nvarchar200√16(JCCS)借出次数Smallint2√17(SFzhuxiao)是否注销Nvarchar2√18(BookZT)图书状态nvarchar50√借书文件表(JSWJB):序号字段名类型长度精度小数位数默认值允许空主键外键说明1(JYID)借阅编号Int101√自动编号2(BookID)图书编号Int10√3(StuID)学生编号Int10√4(JYSJ)借阅时间Datatime8√5(DQSJ)到期时间Datatime8√6(XJCS)续借次数Smallint2√7(CZY)操作员Nvarchar10√8(ZT)状态navarchar50√3.4 032学生信息查询模块具体格式如下:功能编号032功能名称学生信息查询模块内容功能流程图所属业务图书馆管理所属项目图书馆管理系统编写人陈新光完成时间2007-11-26页码第12页3.4.1 功能流程图功能流程图如下图:需要说明的问题:录入项检测使用javascript来实现(各项非空);操作权限:面向所有用户3.4.2 功能描述(8) 功能类型:查询数据(9) 功能概述:显示查询结果(10) 前提业务:无(11) 后继业务:(12) 功能约束:没有约束;(13) 约束描述:(14) 操作权限:面向所有用户3.4.3 界面设计(4) 基础信息处理下表是动作说明:动作编号动作名称动作描述A01确定点击按钮 提交数据到图书查询数据处理.jsp页面A02图书信息查询点击按钮 将页面转至图书信息查询.jsp页面(5) 数据要求(3) 功能类型:数据查询(4) 数据描述:页面显示字段见下表:字段名称长度录入方式是否非空项数据检验默认显示请输入学号10文本框YN(6) 学生信息查询的输出项学生学号姓名性别生日证件号码联系 登记日期有效期至已借书数3.4.4 模块内部逻辑5, Search.jsp用于显示界面的内容,给用户显示一个查询接口6, Index.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容;在index.jsp页面中,它根据传入的参数来决定包含哪一个jsp页面来显示内容;则可以通过
8, View.jsp用来显示查询到的学生的各项属性★★注释:学生信息查询模块与图书查询模块属于同一类功能实现可以完全类似3.4.5 存储分配学生文件:序号字段字段名类型长度精度小数位数默认值允许空主键说明1XSID学生编号Int101√自动编号2Name姓名nvarchar103Sex性别nvarchar2√4ZJH证件号码nvarchar25√5LXDH联系 nvarchar40√6DJRQ登记日期datetime8√7YXQZ有效期至datetime8√8YJSS已借书数smallint2√9RuleID学生规则IDint1010ZT是否挂失nvarchar2√借书文件:序号字段名类型长度精度小数位数默认值允许空主键外键说明1借阅编号Int101√自动编号2图书编号Int10√3学生编号Int10√4借阅时间Datatime8√5到期时间Datatime8√6续借次数Smallint2√7操作员Nvarchar10√8状态navarchar50√3.5 021入库管理具体格式如下:功能编号021功能名称入库管理模块内容功能流程图所属业务图书馆管理所属项目图书馆管理系统编写人陈新光完成时间2007-11-27页码第16页3.5.1 功能流程图(1) 执行数据库操作的时候要验证权限(2) 录入项检验用javascript来实现(选项非空)3.5.2 功能描述(1) 功能类型:添加数据(2) 功能描述:增加图书目录文件中的图书信息。
3) 前提业务:管理模块(4) 后继业务:无(5) 功能约束:权限约束(6) 约束描述:无(7) 操作权限:图书馆管理人员3.5.3 界面设计1, 基础信息处理动作说明如下表:动作编号动作名称动作描述A01保存点击按钮 提交数据到入库数据处理.jsp页面A02退出点击按钮 将当前页面关闭2, 数据描述(1) 功能类型:数据增加2) 数据描述:页面录入字段见下表:字段名称长度录入方式是否非空项数据检验默认显示书号30文本框YN条形码20文本框YN书名200文本框YN作者20文本框YN出版社30文本框YN版次50文本框YN图书类别20文本框YN单价8文本框YN录入时间默认系统时间,格式: 年 月 日只需程序记录显示在入库界面录入人默认系统登陆人员只需程序记录显示在入库界面3, 入库数据处理内部逻辑:图书入库采用表格进行多行添加:利用javaBean来编写一个BookBean来管理图书在BookBean类中增加记录的公共接口来实现入库数据的添加具体的类设计如下:Public int insert (Hashtable hash){int intID = makeID("Book","BookID","","",true); Vector vect = new Vector(); vect.add("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")); 。
//还有其他选项,同上格式 return insertRecord(vect);}该方法有一个参数,是java.util.Hashtable类,在调用该方法前,先用和hashtable的put方法将字段名和该条记录的值存入hashtable中,然后将这个hashtable作为参数传入insert方法中 在insert方法的最后,调用ParentBean中的insertRecord方法,insertRecord可以根据传入的参数自动的生成增加记录的SQL语句并通过JDBC发送到数据库 正对ParentBean类:主要是实现对数据库的各种操作:如与数据库的连接,对数据库的操作3.5.4 存储分配图书目录文件:序号字段名类型长度精度小数位数默认值允许空主键说明1图书编号Int101√自动编号2条形码nvarchar203书名nvarchar2004图书类型Nvarchar50√5作者Nvarchar20√6译者Nvarchar20√7ISBNNvarchar208出版社Nvarchar30√9价格Money8√10书架名称Nvarchar20√11现存量Smallint2√12库存总量Smallint2√13入库时间Datatime8√14操作员Nvarchar10√15简介Nvarchar200√16借出次数Smallint2√17是否注销Nvarchar2√18图书状态nvarchar50√入库表:序号字段名类型长度精度小数位数默认值允许空主键外键说明1书号Nvarchar301√自动编号2条形码Nvarchar20√3书名Nvarchar200√4作者Nvarchar20√5出版社Nvarchar30√6版次Nvarchar50√7图书类别Nvarchar20√8存放位置Nvarchar20√9单价Money8√10入库数量Smallint2√11金额Money8√12经手人Nvarchar10√13票号Nvarchar30√14操作员Nvarchar10√15日期Datatime8√注:3.6 022学生借书模块具体格式如下:功能编号022功能名称学生借书模块内容功能流程图所属业务图书馆管理所属项目图书馆管理系统编写人陈新光完成时间2007-11-27页码第21页3.6.1 功能流程图需要说明的问题:(1) 在进行借书,修改数据信息时,应先查询学生的欠款信息,如欠款超额,则利用javascript实现信息提示,拒绝借书,如无超额,则接受借书。
2) 为便于以后的恢复操作,此修改操作只在表中做一个标志,并不是真正的对其修改;3.6.2 功能描述(1) 功能类型:修改数据和查询数据(2) 功能描述:更新学生借书文件,图书目录文件等中的信息;(3) 前提业务:管理模块(4) 后继业务:无(5) 功能约束:权限约束(6) 约束描述:(7) 操作权限:图书馆管理人员3.6.3 界面设计1, 基础信息处理动作说明如下:动作编号动作名称动作描述A01重置点击按钮 将文本框内的所有数据清空A02提交点击按钮 将数据提交到处理学生超额信息页面A03取消将当前页面关闭,并取消借阅2, 数据描述(1) 功能类型:修改数据和查询数据(2) 界面设计:(3) 数据字段描述:字段名称长度录入方式是否非空项数据检验默认显示学生证件号码10文本框YN书籍条形码号10文本框YN3, 图书借阅数据处理内部逻辑If(strEdit.equals(“1”)){If(学生超额|学生不存在){ ifSuccess=false;}else{If(!bb.IsValid(hash)){ //新增操作Int intdel[]=bb.addBorrow(hash);If(intdel==null){ ifSuccess=false;}else{For(int i=0;i
流程其实就是对几个表进行增改的操作关于addBorrow(hash)的算法:public int[] addBorrow(Hashtable hash) { System.out.println("批量处理新增借阅"); String sql=""; int intID = makeID("JYWJB","JYID","","",true); String strID=String.valueOf(intID); String strZJH = ds.toString((String)hash.get("ZJH"));//证件号 String strTXM = ds.toString((String)hash.get("TXM"));//条形码 String strJYSJ = ds.toString((String)hash.get("JYSJ"));//借阅时间 String strXSID = "";//学生ID String strBOOKID = "";//图书ID String strDQSJ = "";//到期时间 String strXJCS = "";//续借次数 //根据学生证件号取的学生ID//根据学生ID取得规则ID,然后取得可以借阅天数, sql="select Student.RuleID,Student.XSID,Rule.KJYSJ " +" from Studengt,RULE " +" where Student.ZJH='"+strZJH+"' and Student.RuleID=Rule.RuleID "; Hashtable hashReId=(Hashtable)searchOneData(sql); strXSID=ds.toString((String)hashReId.get("XSID")); String strKJYSJ=ds.toString((String)hashReId.get("KJYSJ")); //根据条形码取得图书ID sql="select BOOKID from Book where TXM='"+strTXM+"'"; Hashtable hashBKID=(Hashtable)searchOneData(sql); strBOOKID = ds.toString((String)hashBKID.get("BOOKID")); //新增操作 createStatement(); clearBatch(); sql=" insert into JSWJB(JYID,XSID,BOOKID,JYSJ,DQSJ,ZT,XJCS) " +" values("+strID+","+strXSID+","+strBOOKID+",'"+strJYSJ +"',to_char((to_date('"+strJYSJ+"','yyyy-MM-dd')+"+strKJYSJ+"),'yyyy-MM-dd')" +",'"+strZero+"','"+strZero+"')"; addBatch(sql); sql="update Book set ZT='借出' where BOOKID="+strBOOKID; addBatch(sql); sql="update Student set YJSS=YJSS+1 where XSID="+strXSID; addBatch(sql); int result[]=executeBatch(); closeStm(); return result; }而对于取消按钮事件,由于要实现取消借阅,所以需要调用delBorrow(String id)来取消借阅操作;算法如下:public int[] delBorrow(String id) { System.out.println("批量处理取消借阅。
"); String sql=""; sql="select BOOKID from JSWJB where JYID="+id; Hashtable hash=(Hashtable)searchOneData(sql); String strBOOKID=(String)hash.get("BOOKID"); createStatement(); clearBatch(); sql="update JSWJB set ZT='"+strOne+"' where JYID="+id; addBatch(sql); sql="update BOOK set ZT='可借' where BOOKID="+strBOOKID; addBatch(sql); int result[]=executeBatch(); closeStm(); return result; }3.6.4 存储分配借书文件:序号字段名类型长度精度小数位数默认值允许空主键外键说明1借阅编号Int101√自动编号2图书编号Int10√3学生编号Int10√4借阅时间Datatime8√5到期时间Datatime8√6续借次数Smallint2√7操作员Nvarchar10√8状态navarchar50√罚款单:序号字段名类型长度精度小数位数默认值允许空主键外键说明1借阅编号Int101√自动编号2图书编号Int10√3学生编号Int10√4应罚金额Smallint3√5实收金额Smallint3√6状态Nvarchar1√7备注Nvarchar200√学生文件:序号字段字段名类型长度精度小数位数默认值允许空主键说明1XSID学生编号Int101√自动编号2Name姓名nvarchar103Sex性别nvarchar2√4ZJH证件号码nvarchar25√5LXDH联系 nvarchar40√6DJRQ登记日期datetime8√7YXQZ有效期至datetime8√8YJSS已借书数smallint2√9RuleID学生规则IDint1010ZT是否挂失nvarchar2√3.7 023学生还书具体格式如下:功能编号023功能名称学生还模块内容功能流程图所属业务图书馆管理所属项目图书馆管理系统编写人陈新光完成时间2007-11-27页码第27页3.7.1 功能流程图需要说明的问题:(1) 显示结果可直接在处理结果.jsp中利用javascript来实现显示功能!(2) 处理要包含:对图书状态和借书文件表中信息的修改以及学生的欠款金额的计算,并更新Publish表。
3.7.2 功能描述(1) 功能类型:修改数据(2) 功能概述:完成学生的还书业务并计算学生的欠款信息(3) 前提业务:管理模块(4) 后继业务:无(5) 功能约束:权限约束(6) 约束描述:(7) 操作权限:图书馆管理人员3.7.3 界面设计(1) 基础信息处理动作编号动作名称动作描述A01重置点击按钮 将文本框内的所有数据清空A02提交点击按钮 将数据提交到处理还书信息页面(2) 界面描述:(3) 数据描述字段名称长度录入方式是否非空项数据检验默认显示书籍条形码号10文本框YN对于还书业务的处理,实质上与借书业务的实现基本上相同,只是调用了backBorrow(hash)来实现还书功能;If(strEdit.equals(“1”)){Int intdel[]=bb.BackBorrow(hash);If(intdel==null){ ifSuccess=false;}else{For(int i=0;i
"); String sql=""; String strBOOKID=ds.toString((String)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 BOOK set ZT='可借' where BOOKID="+strBOOKID; System.out.println("sql2:"+sql); addBatch(sql); int result[]=executeBatch(); closeStm(); return result; }3.7.4 存储分配借书文件:序号字段名类型长度精度小数位数默认值允许空主键外键说明1借阅编号Int101√自动编号2图书编号Int10√3学生编号Int10√4借阅时间Datatime8√5到期时间Datatime8√6续借次数Smallint2√7操作员Nvarchar10√8状态navarchar50√学生文件:序号字段字段名类型长度精度小数位数默认值允许空主键说明1XSID学生编号Int101√自动编号2Name姓名nvarchar103Sex性别nvarchar2√4ZJH证件号码nvarchar25√5LXDH联系 nvarchar40√6DJRQ登记日期datetime8√7YXQZ有效期至datetime8√8YJSS已借书数smallint2√9RuleID学生规则IDint1010ZT是否挂失nvarchar2√图书目录文件:序号字段名类型长度精度小数位数默认值允许空主键说明1图书编号Int101√自动编号2条形码nvarchar203书名nvarchar2004图书类型Nvarchar50√5作者Nvarchar20√6译者Nvarchar20√7ISBNNvarchar208出版社Nvarchar30√9价格Money8√10书架名称Nvarchar20√11现存量Smallint2√12库存总量Smallint2√13入库时间Datatime8√14操作员Nvarchar10√15简介Nvarchar200√16借出次数Smallint2√17是否注销Nvarchar2√18图书状态nvarchar50√罚款单;序号字段名类型长度精度小数位数默认值允许空主键外键说明1借阅编号Int101√自动编号2图书编号Int10√3学生编号Int10√4应罚金额Smallint3√5实收金额Smallint3√6状态Nvarchar1√7备注Nvarchar200√3.8 024图书注销具体格式如下:功能编号024功能名称图书注销模块内容功能流程图所属业务图书馆管理所属项目图书馆管理系统编写人陈新光完成时间2007-11-27页码第31页3.8.1 功能流程图需要说明的问题:(1) 显示结果可直接在处理结果.jsp中利用javascript来实现显示功能!(2) 在处理图书注销的时候,为了便于以后的恢复操作,此删除操作只在表中做一标志,并不是真正的删除。
3.8.2 功能描述(1) 功能描述:删除数据(2) 功能概述:注销图书(3) 前提业务:管理模块(4) 后继业务:无(5) 约束描述:(6) 操作权限:图书馆管理人员3.8.3 界面设计(1) 基础信息处理动作说明如下:动作编号动作名称动作描述A01重置点击按钮 将文本框内的所有数据清空A02提交点击按钮 将。