ImageVerifierCode 换一换
格式:DOCX , 页数:49 ,大小:592.04KB ,
资源ID:1959537      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1959537.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件工程报告_图书馆管理系统_JAVA.docx)为本站会员(聆听****声音)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

软件工程报告_图书馆管理系统_JAVA.docx

1、XXXX 大学软件工程实验报告( 2010 - 2011 年度第 二学期)课程名称: 软件工程课程设计 题目: 图书管理系统 院系: 计算机科学与技术系班级: 计科 082 组长: XXX 组员: XX 指导教师: 姜瑛 设计周数: 七周 日期:2008 年 5 月 30 日一、 实验目的通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。二、 实验要求1. 学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2. 熟悉自动化的软件开发工具 PowerDesigner,并将

2、其运用于软件开发的全过程;3. 进一步加强和提高软件工程文档的编写能力;4. 培养协作能力和团队精神。5.三、所用仪器、材料(设备名称、型号、规格等或使用软件)系统的开发环境及运行环境:1.操作系统:Windows XP Pro SP3 2.建模工具:PowerDesigner 15 3.数据库系统:SQL Server20084. 开发工具:Netbeans 5.Web 服务器:tomcat 平台四、实验过程原始记录( 测试数据、图表、计算等)一、主要内容1. 实验题目:图书管理系统,本系统要实现读者借阅图书的基本功能,包括读者 对图书的借出、归还、计费及读者查看自己的借阅信息;管理员查看读

3、者信息、添加读者、管理读者、管理图书、添加图书。2. 运用面向对象技术、UML 及可视化的建模工具完成系统的需求分析与设计。3. 使用 PowerDesigner 作为需求分析与设计的建模工具,包括静态建模和动态建模,并利用对象模型自动生成数据模型,自动建立数据库。4. 采用分层模式的应用设计模式进行系统的设计实现。5. 系统要实现四个模块功能:读者模块、管理员模块、图书模块和公用模块。6. 初步建立系统原型,实现关键的功能,并对系统进行测试。7. 编写课程设计报告。二、任务分配任务负责人参与人备注需求分析李健崔辉毅总体设计崔辉毅李健详细设计崔辉毅李健系统实现与测李健崔辉毅试三、 进度计划序号

4、设计内容名称完成时间备注1分组及确定题目2011.4.12初步的需求分析与设计建模2011.4.24.53详细的需求分析与设计建模2011.4.64.204关键模块的实现与测试2011.4.215.55编写课程设计报告2011.5.65.20四、系统需求分析图书管理系统主要满足来自三方面的需求,这三个方面分别是读者用户、读者代理用户和管理员用户,也即是三类用户角色。(1) 读者用户是主要的需求者,主要需求功能是查询个人信息、查看自己借阅情况及进行借书、还书操作等;(2) 读者代理用户主要需求功能是协助读者用户进行相关操作、以及利用本系统提交修改借阅信息等;(3) 管理员用户的功能需求较为复杂,

5、包括对读者信息、读者代理员信息、图书信息进行管理。在读者信息管理子模块中,实现对读者信息的添加、修改、删除操作, 还可以输入查询条件进行查询操作。在读者代理员管理子模块中,实现对读者代理员 信息的添加、修改、删除、查询等操作。在图书管理子模块中,实现对图书信息的添 加,实现对图书的修改、删除、查看某本图书的详细信息等。本系统将读者用户、读者代理员用户、管理员用户的身份及权限进行严格的划分, 让管理员拥有最高权限,可以查看、维护系统中的所有信息,如添加读者,添加图书, 修改图书信息等;让读者代理员拥有查看读者借书情况,以及提交新借阅的权限;让 读者拥有借书及还书的权限。修改密码模块的权限每个用户

6、都可拥有,用以修改自己的密码信息。通过进行严格的权限划分,可以更好地进行管理,也可更好地保护用户信息安全。一、用例图:图书管理系统用例图二、活动图:U0 读者信息验证:U1 查询及修改:U2 查询图书信息:U3 借书:U5 还书:U7 注销:U8 管理员身份验证:U9 管理读者信息:U10 添加读者:U12 删除读者:U14 管理图书信息:U15 添加图书:U16 修改图书:三、类图:U17 删除图书:- kjs : int- yjs : ZjRecordm- qk : Float+ Creat ()+ delete ()+ updata (): boolean: boolean: boole

7、an1+ huanShu () : boolean+ Creat (): boolean*+ delete (): boolean+ updata (): boolean+ updataAll () : boolean+ findByID () : boolean+ findByID () : boolean+ updataAll () : boolean+ borrow (): boolean+ borrow (): boolean+ huanshu () : boolean+ huanshu () : booleanrecord+ doRecord () : boolean+ set ()

8、: boolean- ID : String+ dzID (): String+ book_ID () : String+ toString () : String+ doRecord () : boolean- type : int- dzID : String- time : time- type: int- book_ID : String- time: time tsglRecord- type: boolean- dzID: boolean- book_ID : boolean- time: time dzglRecordzjRecordbook readeradministrato

9、r- name : String- bookID : String- kbkyj : boolean- jsz: String administrator:reader administrator:book) : Boolean () : boolean () : boolean+ Creat (+ delete+ updata- name: String- ID: String- password : String- other: String person类图说明:(1) person 类是一个系统角色用户的基类;(2) reader 类继承自 person 类,主要方法有:Creat()

10、 用于添加读者;Delete() 用 于 删 除 读 者 ; Update() 用于更新读者一般信息; updataAll()更新所有信息; findByID()通过 ID 找到这个类; borrow() 借 书 ; huanshu()还书;(3) administrator 类继承自 person 类。(4) book 类是一个图书类,主要方法有: Huanshu()用于更改还书信息; Creat() 用于添加图书;Delete() 用 于 删 除 图 书 ; Update() 用于更新图书一般信息; updataAll()更新所有信息; findByID()通过 ID 找到这个类; bor

11、row() 借 书 ; huanshu()还书;(5) record 类是一记录数据的基类; Set()设置要记录的属性; doRecord()把记录存入数据库中;(6) dzglRecord 类继承自 record 类。(7) tsglRecord 类继承自 record 类。(6)zjglRecord 类继承自 record 类,主要方法有: dzID() 用 于 记 录 读 者 账 号 ; bookID()用于记录图书编号;四状态机图:4.1 读者类的状态图:借书kjs0无借书kjs=MAX借书kjs0借书kjs=0有借书0kjsMAX不可借书kjs=0还书kjs=MAX还书kjsMAX

12、4.2 图书类的状态图:还书kjsMAX 不在馆不在馆 不五、顺序图:(1)借书顺序图:借书顺序图:不不:不不 不不不 不不uan-zaaltig 不zaiguan 不不不:不不不不不 不不 不不不 不不不:不不不不 不 不不不:不不2:不不2还书顺序图(2)还书顺序图:六、数据库表结构: 数据库目录结构:1、表 book 的详细数据字段:序号字段名字段类型说明备注1namevarchar图书名称2IDvarchar图书编号关键字3zaiguantinyint在馆状态4readerIDvarchar借阅者 ID可为空2、表 dzgrecord 的详细数据字段:序号字段名字段类型说明备注1TYP

13、Etinyint记录类型2IDvarchar记录 ID关键字3readervarchar读者 ID4timedate记录时间5bookvarchar记录图书3、表 global 的详细数据字段:序号字段名字段类型说明备注1zjRecordIDint租借记录 ID2gsgRecordIDint读者记录 ID3tsglRecordIDint图书管理记录 ID4zqkfloat总欠款5visitNumberint总访问人数4、表 gly 的详细数据字段:序号字段名字段类型说明备注1Passwordvarchar管理员密码2IDvarchar管理员 ID关键字5、表 reader 的详细数据字段:序号

14、字段名字段类型说明备注1namevarchar读者姓名2IDvarchar读者编号关键字3Passwordvarchar读者密码4Othervarchar其他属性可为空5KjsInt可借书数量6QkFloat读者欠款7ZjRecord0varchar租借记录8ZjRecord1varchar租借记录9ZjRecord2varchar租借记录6、表 tsglrecord 的详细数据字段:序号字段名字段类型说明备注1TypeTinyint记录种类2bookIDvarchar图书编号3TimeDate记录时间4IDvarchar记录 ID关键字7、表 zjrecord 的详细数据字段:序号字段名字段

15、类型说明备注1typeTinyint记录种类2readerIDvarchar读者 ID3bookIDvarchar书籍 ID4TimeDate记录时间七 系统实现本系统采用了三层架构来实现,即分为用户界面层(UI)、业务逻辑层(BLL)和数据访问层(DAL),用户界面层是展示给用户的界面,方便用户与系统进行交互;业务逻辑层是对系统业务实体的封装,完成系统业务功能;数据访问层直接与数据库打交道,为业务逻辑层提供底层的数据库操作。7.1 文件目录结构:界面:控制类:数据类:7.2 界面效果(详细源代码见附件): 默认主页:读者登录:进入主界面:查看图书信息:读者信息:借书:完成后个人信息和图书信息

16、:还书:还书完成后个人信息及图书信息:管理员所有界面效果如下:图书管理:7.3 业务逻辑(完整源代码见附件): 借书核心代码:protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponse response)throws ServletException, IOException HttpSession session=request.getSession();reader re=(reader)session.getAttribute(reader); String id = request.getParameter(id)

17、; Connection cn = null;String driverName = com.mysql.jdbc.Driver;String url = jdbc:mysql:/localhost:3306/library; try Class.forName(driverName);cn = DriverManager.getConnection(url); System.out.println(取得数据库连接成功:); catch (Exception e) System.out.println(取得数据库连接错误:+ e.getMessage();re.borrow(cn,id); r

18、esponse.sendRedirect(/ruanA/login/isreal.jsp);还书核心代码:protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponse response)throws ServletException, IOException String id = request.getParameter(id); Connection cn = null;String driverName = com.mysql.jdbc.Driver;String url = jdbc:mysql:/localhost

19、:3306/library; try Class.forName(driverName);cn = DriverManager.getConnection(url); System.out.println(取得数据库连接成功:); catch (Exception e) System.out.println(取得数据库连接错误:+ e.getMessage();book bo = new book(); bo.findbyID(cn,id); bo.huanshu(cn);response.sendRedirect(/ruanA/login/isreal.jsp);7.4 数据层主要代码:7.

20、4.1 person 类:public abstract class person private String name; private String ID;private String password; private String other;public abstract boolean instert(Connection cn);/在数据库中创建public abstract boolean deleat(Connection cn); /在数据库中删除public abstract boolean uptade(Connection cn); /在数据库中更新/* retur

21、n the name*/public String getName() return name;/* param name the name to set*/public void setName(String name) this.name = name;/* return the ID*/public String getID() return ID;/* param ID the ID to set*/public void setID(String ID) this.ID = ID;/* return the password*/public String getPassword()

22、return password;/* param password the password to set*/public void setPassword(String password) this.password = password;/* return the other*/public String getOther() return other;/* param other the other to set*/public void setOther(String other) this.other = other;7.4.2 reader 类:/* To change this

23、template, choose Tools | Templates* and open the template in the editor.*/package data;import java.sql.Connection;import java.sql.PreparedStatement; import java.sql.ResultSet;/* author chy* String name;* String ID;* String password;* String other;*/public class reader extends person private int kjs;

24、 private float qk;private String yjs0; /假设没人最多借 3 本书private String yjs1;private String yjs2;Overridepublic boolean instert(Connection cn) Stringsql=insertintoreader (name,ID,password,other,kjs,qk,ZjRecord0,ZjRecord1,ZjRecord2)+ values(?,?,?,?,?,?,NULL, NULL, NULL);try PreparedStatement ps = cn.prepareStatement(sql); ps.setString(1, this.getName();ps.setString(2, this.getID(); ps.setString(3, this.getPassword(); ps.setString(4, this.getOther(); ps.setInt(5, 3);ps.setFloat(6,

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2