实训作业报告学院:软件学院专业:软件工程姓名:胡信学号:20081573指导老师:邓泓二0一0年九月一、系统简介随着图书馆的规模不断的增大,图书量及其他相关的信息量海量增加,面对庞大的信息量,传统的图书馆的人工管理方式可能会导致管理上的混乱,相关资源的运用的也过多浪费,因此必须有一套有效的、合理的、规范的图书馆管理系统,对图书馆进行集中有效的管理,解决信息量大,借书还书工作量大,图书统计工作难,图书藏书更新慢的,检索慢等各种问题。本系统能实现图书馆的管理的基本功能,图书检索、借还、挂失预约等,管理员对系统相关的管理图书管理,学生信息管理等。系统采用java语句编写,用myeclipse作为开发工具,mysql作为数据库二、可行性和需求分析2.1可行性研究技术可行性:Java+swing+Jdbc+Mysql技术上可行的经济可行性:无2.2需求分析通过对图书馆的了解,确定本系统具备一下功能。A.学生用户端查询图书,学生可以进行简单的数据查询和高级查询挂失图书,当图书丢失时进行相关的挂失预约图书,当所借书不在管内时可以对图书进行预约B.管理员端图书管理,包括对图书的增、删、改、查;管理员管理,超级管理员能对普通管理员进行增、删、改、,普通管理员只有修改自己的信息进行修改借阅管理,即对图书的外借和归还及交纳罚款的管理C.系统目标:通过系统分析并进行相关探讨,确定系统最终目标如下a.实现需求分析阶段A.B及客户提出的的功能;b.提高键盘的易用性,减少鼠标的操作功能c.使用较为流行的树状列表控件作为导航,直观的显示系统结构。d.洽淡地使用监听器进行动作时间的监听e.合理的使用表格进行数据显示f.在适当的场合灵活运用swing的各种控件,如面板,标签等2.3系统功能结构图图书馆管理系统学生端管理员端学生用户管理查询图书预约图书挂失图书图书管理查询图书借阅预约管理交纳罚款管理员管理2.4系统流程图顶层图用户管理系统用户需求信息处理结果0层图需求信息借书还书处理学生用户管理图书信息管理管理员信息管理预约挂失管理需求分类借还书信息学生信息图书信息预约挂失信息管理员信息信息处理结果信息处理结果信息处理结果信息处理结果信息处理结果2.5数据流图管理员D11.1接收事务1.2更新库信息1.3处理事务产生结果D2借书文件库存信息库存信息事务事务事务处理信息处理信息2.6数据字典字段名称数据类型字段大小字段说明StuNOIntN/A学生学号StuNameVarchar50学生姓名StuAgeIntN/A学生年龄StuSexVarchar50学生性别ClassVarchar50所在班级DerpartmentVarchar50所在院系TelChar11电话PermittedVarchar50学生借阅许可PasswordVarchar50密码mgNoIntN/A管理员IDPermittedVarchar50管理员权限PasswordVarchar50管理员密码BookNOIntN/A图书IDBookNameVarchar50图书名称AuthorVarchar50图书作者PublishermentVarchar50出版社BuyTimeVarcgar50购进时间BorrowedVarchar50是否借阅OrderedVarchar50是否预约BorrowedVarchar50借阅时间ReturnTimeVarchar50归还时间DelayTimeVarchar50超期天数LBNOvarchar50挂失书号2.7概念结构设计根据系统结构图和数据流图描述出实体联系图E-R图,该系统包含的实体主要有图书、学生、管理员。2.7.1管理员、图书E-R图管理员名称密码权限图书购买时间书号书名出版社是否借阅是否预约作者2.7.2学生用户管理图学生电话院系班级年龄性别姓名学号密码借阅许可2.7.3实体间简单的关系图普通管理员超级管理员学生用户图书管理管理管理管理管理管理mnnnn11nn12.8数据库概念设计根据相关功能设计和E-R图,确定本系统共设计7张表,分别为学生用户基本信息表、管理员基本信息表、图书基本信息表、超期图书信息表、预约图书信息表、挂失图书信息表、借阅图书信息表。数据表设计2.8.1学生用户基本信息表:用于记录学生用户的基本信息,主要字段为学生用户和密码等,具体如下Createtablestudent(StuNointprimarykey,notnullStuNamevarchar(50),StuAgeint,StuSexvarchar(20),Classvarchar(50),Departmentvarchr(50),Telvarchar();Permittedvarchar(50),Passwordvarcahr(50));2.8.2管理员基本信息表:用于记录管理员的用户ID,其具体显现如下CreatetableManager(mgNointprimarykey,permittedvarchar(50)notnull,passwordvarchar(50)notnull);2.8.3图书基本信息表:该表用于记录图书的基本信息,其具体实现如下Createtablebook(BookNOintprimarykey,BookNamevarchar(50),Authorvarchar(50),Publishermentvarchar(50),BuyTimevarchar(50),Borrowedvarchar(50),Orderedvarchar(50));2.8.4借阅图书信息表:该表用来记录学生用户借阅图书的信息,包括记录学号、书号。借阅时间的等信息,表设计如下:Createtablerecord(BookNOintprimarykey,StuNOintprimarykey,Borrowedvarchar(50),ReturnTimevarchar(50),Borrowedvarchar(50),Orderedvarchar(50);)2.8.5超期图书信息表:该表用来记录学生超期图书的信息,包括图书ID和学生姓名等信息。具体表设计如下:Createtableexceedtime(StuNOintnull,BookNOintnullBookNamevarchar(50)DelayTimeint);Primarykey(StuNO,BookName));2.8.6预约图书信息表:该表用来记录学生预约的图书信息,包括图书ID和学生姓名等信息,涉及如下:Createtableorderreport(BookNOintprimary,StuNamevarchar(50),Classvarchar(50));2.8.7挂失图书信息表:该用来记录学生丢失图书的信息,包括图书ID和学生学号等信息,设计如下:Createtablelosebook(LBNOintprimarykey,StuNOint,BookNOint,BookNamevarchar(50));三、概要设计3.1系统功能结构模块根据系统项目的开发要求,系统开发时划分了以下几个模块借阅图书模块、预约图书模块。挂失图书模块、管理员管理模块。管理员管理模块又分学生用户管理模块、图书管理模块。结构模块功能图3.23.3功能函数设计3.3.1类封装:DataBase:封装了数据库连接和数据库操作及资源的释放的信息Root:封装了主页信息Login:封装了登录信息Student:封装了学生信息BookManage:封装了图书基本管理的信息Manager:封装了管理的信息3.3.2功能函数函数设计3.3.2.1:数据库部分在DataBase类中包含三个方法(1)voidgetQuery(Stringsql)函数功能:执行数据的查询功能(2)intupdateDb(Stringsql):函数功能:执行数据的增、删、改操作(3)voidrealease()函数功能:实现断开数据库连接及释放资源操作3.3.2.2:图书管理部分在BookManage类中包含一下方法(1)voidinsertBook();执行功能:实现图书的添加,添加与图书的所有需求信息包括必须的书号,书名,作者等(2)voiddeleteBook();函数功能:根据输入的图书号,删除该图书在馆的信息(3)voidupdateBook()函数功能:根据输入的信息,修改相应的图书信息3.3.2.3管理员管理部分在Manager类中(1)voidinsertManager()函数功能:添加普通管理员和学生信息,包括设置相应的用户名密码和权限,在添加新学生用户时通过调用student类中voidinsertstudent()方法来添加学生信息(2)voiddeleteManager()函数功能:删除用户信息,包括对学生的删除和对普通用户的删除,不能删除超级管理员,调用student类中的voiddeleteStudent()方法来执行删除学生信息(3)voidupdateManager()函数功能:修改用户信息,只能修改本省管理信息,不能修改学生信息,调用学生类student中voidupdateStudent()方法来实现对学生信息的修改(4)voidselectManager()voidmanager1()函数功能:用于超级管理员对于普通管理员的筛选并且选出后显示于界面列表中3.3.2.4图书查询部分位于SearchBook类中intseniorSearch():查询图书信息,其中有包括简单查询:根据一个信息(书名,作者等)进行查询,和高级查询根据多信息进行查询(书名,作者出版社等),学生和管理员是都通过调用次方法来实现该工功能3.3.2.5其他部分(1)voidloseBook(introw)函数功能:实现对图书丢失的进行挂失处理,返回显示在列表中的书行号。(2).intcheckTime(intsno,intbno)函数功能:根据学号和书号判断所换书籍是否超期,共有超期没叫罚款,正常还书,超期交罚款几种情况。返回一个标志,该函数还能进行挂失处理(3)voidupdateTable()函数功能:实现对界面下列表的更新,即当还掉一本书后,实现显示列表的更新四.详细设计1.系统主函数main()设计开始学生端管理界面管理员端管理界面结束根据登录信息2.主页面详细设计开始学生端挂失预约图书操作显示主页面接收用户选择学生用户管理图书管理罚款管理管理员管理退出系统?结束ChooseNY五.调试分析本系统在Myeclipse8.0以上版本中编译调试通过,可顺利运行,各项功能均达到设计的要求系统项目在包huxin中,可以采用分模块调试的方法进行编译,即完成一个函数功能木块就编译一个功能,最后进行整体编译六、用户使用手册1.此系统所需要的软件和环境相关配置如下:a.系统采用JDK1.6或以上版本b.数据库:采用mysql5.0或以上版本(c.用myeclipse或eclipse作为开发工具)2.系统预览a.登录界面有“学生登录”、“管理员”、“清空”如果输入错误的密码和用户名均有对话框弹出提示//查询学号文本中所输入的学号是否在STUDENT表中sql=selectStuNo,PasswordfromstudentwhereStuNO=+Integer.parseInt(jtxtArray.getText().trim());db=newDataBase();//创建DataBase类对象db.getQuery(sql);//执行查询try{if(!db.rs.next()){JOptionPane.showMessageDialog(this,输入有误,登录失败!,消息,JOptionPane.INFORMATION_MESSAGE);}else{StringstuNo=db.rs.getString(1).trim();//得到文本框中的学号和密码Stringpassword=db.rs.getString(2).trim();if(jtxtArray.get