1、实验报告 面向对象的分析设计实现图书管理系统一.需求分析1.1系统需求描述一般图书馆管理系统重要用于对图书馆平常工作的管理,重要任务是用计算机对读者、图书等各种信息进行平常管理,如查询、修改、增长、删除、图书借阅和归还的管理等。本系统实现了图书馆的信息化管理,完毕了图书馆管理系统的基本功能。一般图书馆管理系统重要涉及用户登录子系统、用户管理子系统、图书管理子系统、图书借阅与归还、图书和用户信息查询子系统四个部分,各部分重要功能如下:用户登录子系统:用于数据库的连接,主界面的设计和不同身份用户的登录管理。用户管理子系统:用于用户信息的管理,如用户添加、用户信息修改、用户删除。图书管理子系统:用于
2、图书信息的管理,如新书入库、图书信息修改、图书信息删除。图书借阅与归还子系统:用于用户借阅和归还图书。图书和用户信息查询:图书和用户信息的查询。1.2系统功能结构图图书管理系统用户登录用户信息管理图书信息管理借阅信息管理管理员登录工作人员登录用户登录用户信息增长 用户信息删除用户信息查询用户信息修改图书信息增长图书信息删除图书信息修改图书信息查询用户借书归还图书用户续借借阅信息查询图 1.1 图书管理系统分析系统流程图1.3 系统解决方案以上述一般的图书管理系统分析为构思原型。为简化系统,忽略掉其他复杂琐碎的功能需求,仅保存图书信息的录入、修改和读者借、续借、还的功能。读者与管理员通过界面对象
3、调用控制类对象,控制对象进行各种操作并把信息写入数据库。二.系统设计2.1 系统E-R图 用户用户ID权限用户名已借书数量密码借书上限图 1.2 用户实体图备注图书剩余数量作者图书ID图书出版社图书总数量价格出版日期书籍名称图1.3 书籍实体图1毕业设计选题系统N用户借阅还书日期借书日期图书图 1.4 实体属性图2.2数据库表结构表2.1 图书信息表字段名称字段类型长度是否为空备注图书id数字4否主键图书名称数字4出版社文本50作者文本50出版日期时间4价格文本50图书总数量数字4否图书剩余量数字4否备注文本50表2.2 用户借阅表字段名称数据类型长度是否为空备注用户id数字4否主键图书id数
4、字4否主键借书日期时间8否还书日期时间8备注文本50是否归还文本50否表2.3用户信息表字段名称字段类型长度是否为空备注用户id数字4否主键用户名文本50否用户密码文本50否权限数字4否已借书数数字4否借书上限数数字4否2.3用例文档本系统共设立四个活动者。分别是TT_People、TT_Registrar、TT_Reader和TT_Database。其中TT_People泛指与系统发生关系的人;TT_Registrar为系统管理员,负责添加、修改图书信息;TT_Reader为所有读者,读者也许发生借书、续借、还书的行为;TT_Database为存储各种信息的数据库对象。另:考虑到现实图书馆中
5、还存在“图书馆管理员”这一角色,但其所起的作用仅为代替读者完毕各种系统操作,故没有设立此活动者。系统中共有五个用例。TT_Addinfo、TT_Modifyinfo、TT_Borrow、TT_Renew和TT_Return。TT_Addinfo表达管理员添加图书信息;TT_Modifyinfo表达修改图书信息;TT_Borrow表达读者借阅图书;TT_Renew表达读者续借图书;TT_Return表达读者归还图书。图 2.1 整体用例图2.4 静态模型图 2.2 静态模型图2.5动态模型事件流TT_Addinfo添加图书事件流:1.管理员选择进入管理界面,用例开始2.系统提醒输入管理员密码3.
6、管理员输入密码4.系统验证密码 A1:密码错误5.进入管理界面,系统显示目前所有图书信息6.管理员选择添加信息7.系统提醒输入信息8.管理员输入信息9.系统验证信息 A2:信息错误10.系统添加新图书信息,提醒添加成功11.系统重新进入管理主界面,显示所有信息12.用例结束A1:密码错误1.系统提醒输入错误2.用户确认3.进入添加图书事件流第2步A2:信息错误1.系统提醒修改错误信息2.管理员修改输入信息3.进入添加图书事件流第9步TT_Modifyinfo修改图书事件流:1.管理员选择进入管理界面,用例开始2.系统提醒输入管理员密码3.管理员输入密码4.系统验证密码 A1:密码错误5.进入管
7、理界面,系统显示目前所有图书信息6.管理员选择要修改的图书信息7.系统显示原有信息8.管理员修改信息9.系统验证信息 A2:信息错误10.系统添加新图书信息,提醒添加成功11.系统重新进入管理主界面,显示所有信息12.用例结束A1:密码错误1.系统提醒输入错误2.用户确认3.进入添加图书事件流第2步A2:信息错误1.系统提醒修改错误信息2.管理员修改输入信息3.进入添加图书事件流第9步TT_Borrow借书事件流:1.进入读者主界面,用例开始2.读者输入借书证号、书号,选择借书3.系统验证借书证号、书号 A1:借书证号不存在 A2:已达成借书数量上限 A3:书号不存在 A4:图书流通状态冲突4
8、.借书成功5.系统显示读者借书信息6.读者确认7.系统重新进入读者主界面8.用例结束A1:借书证号不存在1.系统提醒再次输入2.读者确认3.进入借书事件流第2步A2:已达成借书数量上限1.系统提醒已达成借书数量上限2.读者确认3.进入借书事件流第5步A3:书号不存在1.系统提醒再次输入2.读者确认3.进入借书事件流第2步A4:图书流通状态冲突1.系统提醒图书流通状态冲突2.读者确认3.进入借书事件流第2步TT_Return还书事件流:1.进入读者主界面,用例开始2.读者输入书号,选择还书3.系统验证书号 A1:书号不存在 A2:图书流通状态冲突 A3:借阅过期4.还书成功5.系统重新进入读者主
9、界面6.用例结束A1:书号不存在1.系统提醒再次输入2.读者确认3.进入借书事件流第2步A2:图书流通状态冲突1.系统提醒图书流通状态冲突2.读者确认3.进入借书事件流第2步A3:借阅过期1.系统提醒借阅过期,提醒缴纳罚金 A4:读者拒交罚金2.读者确认并缴纳罚金3.进入还书事件流第4步A4:读者拒交罚金1.进入借书事件流第5步TT_Renew续借事件流:1.进入读者主界面,用例开始2.读者输入书号,选择续借3.系统验证书号 A1:书号不存在 A2:图书流通状态冲突4.续借成功5.系统重新进入读者主界面6.用例结束A1:书号不存在1.系统提醒再次输入2.读者确认3.进入借书事件流第2步A2:图
10、书流通状态冲突1.系统提醒图书流通状态冲突2.读者确认3.进入借书事件流第2步图 2.3 TT_Addinfo序列图图 2.4 TT_Modifyinfo序列图图 2.5 TT_Borrow序列图图 2.6 TT_Return序列图图 2.7 TT_Renew序列图图 2.8 TT_Book对象状态图图 2.9 TT_Addinfo活动图图 2.10 TT_Modifyinfo活动图图 2.11 TT_Borrow活动图图 2.12 TT_Return活动图图 2.13 TT_Renew活动图三.数据解决3.1 重要代码实现/Source file: F:我的文档umlsFormObject.
11、javapublic class FormObject public TT_ControlObject theTT_ControlObject; public TT_Book theTT_Book; public FormObject() public void DisplayBookInfo() public void DisplayBookList() public void ShowSuccessInfo() public void SelectCommand() public void GetBookInfo() public void GetReaserInfo() public v
12、oid GetBookReaderInfo() public void GetRegistrarInfo() public void ShowBookInfo() /Source file: F:我的文档umlsTT_Book.javapublic class TT_Book private Date Data; private String Id; private String Name; private String State; private int Type; public TT_ControlObject theTT_ControlObject; public TT_Book()
13、public void CreatBook() public void DestoryBook() public void GetBook() public void GetId() public void SetId() /*return Date*/ public Date GetDate() return null; public void SetDate() /*return java.lang.String * / public String GetState() return null; public void SetState() /Source file: F:我的文档umls
14、TT_ControlObject.javapublic class TT_ControlObject public FormObject theFormObject; public TT_Book theBook; public TT_Database theTT_Database; public TT_ControlObject() public void CanAdd() public void CanModify() public void CheckBook() public void CheckOverTime() public void CheckReader() public v
15、oid CheckPassword() public void VerifyBook() public void VerifyReader() public void VerifyBookReader() public void VerifyRegistrar() /Source file: F:我的文档umlsTT_Database.javapublic class TT_Database private String DBPath; public TT_Database() public void AddBookInfo() public void ModifyBookInfo() pub
16、lic void ModifyReaderInfo() public void QueryBook() public void QueryReader() public void QueryPassword() public void GetDBPath() public void SetDBPath() public void OpenDB() /Source file: F:我的文档umlsTT_People.javapublic class TT_People public String Id; public String Name; public TT_People() public
17、void GetId() public void SetId() public void GetName() public void SetName() /Source file: F:我的文档umlsTT_Reader.javapublic class TT_Reader extends TT_People private Integer Qua; private Integer MaxQua; public FormObject theFormObject; public TT_Reader() public void GetMaxQua() public void SetMaxQua()
18、 public void GetQua() public void SetQua() /Source file: F:我的文档umlsTT_Registrar.javapublic class TT_Registrar extends TT_People private String Password; public FormObject theFormObject; public TT_Registrar() public void GetPassword() public void SetPassword() 3.2 系统运营测试图 3.1 主界面图 3.2 管理员登陆图 3.3 添加图书
19、图 3.4 删除图书图 3.5 修改图书图 3.6 删除用户图 3.7 修改用户图 3.8 添加用户图 3.9 借书窗口图 3.10 借书成功窗口图 3.11 还书窗口图 3.12 还书成功窗口图 3.13 借书列表图 3.14 书籍列表图 3.15 用户列表3.3 报告小结 以面向对象的分析系统需求,建立模型和设计实现,系统基本实现了图书信息的录入和修改和读者借、续借、还的功能。读者与管理员通过界面对象调用控制类对象,控制对象进行各种操作并把信息写入数据库。 在实验上机过程中,得到了老师和同学们的解答和帮助,顺利完毕这次实验报告。 局限性之处:系统只是简朴基本实现了图书信息录入修改和读者借、续借、还等功能,在应用中还需要不断修改和完善。