1、图书馆管理系统系统管理模块的设计与实现课程设计题目 图书馆管理系统系统管理模块的设计与实现目的和背景图书馆管理系统作为图书馆开展业务和服务读者的基础, 在相当大的程度上代表和体现了图书馆自动化的水平, 利用现代计算机网络技术和数据库开发技术建立图书馆管理系统, 规范图书资料, 提高信息流通的便捷性和时效性, 并能够最大限度的利用现有图书馆的各种资源, 更好的为教学、科研服务。图书馆管理系统分为若干大模块,本模块为图书馆管理系统系统管理模块的设计与实现,目的在于方便用户对图书馆管理系统的使用,提供用户登录、用户信息修改、使用用户设置、系统参数设定、操作日志查询、系统初始化等功能。主要内容根据图书
2、馆管理系统的需要主要设计实现以下功能:1 系统登录界面的设计2 实现根据登录用户的权限来动态生成系统菜单3 实现操作用户密码的修改4 实现操作用户的查看、增加、修改、删除5 实现操作用户权限的设定和修改6 实现操作日志的查询7 实现系统初始化和用户初始化采用的工具方法开发语言:JavaJDK版本:JDK1.60框架结构:Struts1.2/1.3+hibernate3.2开发平台:MyEclipse6.5、Tomcat6.0数 据 库:MySQL5.0运行系统:Windows 7 进度安排系统管理模块的设计和实现共用16天,具体安排如下:1. 需求分析 共用1天2. 概要设计和详细设计 共用3
3、天3. 编码 共用9天 3a. 模块功能的实现 共用6天 3b. 界面设计和美化 共用3天4. 测试、维护和发布 共用3天参考资料1. Struts开发入门与项目实践2. 系统设计与分析3. Struts+Web设计与开发大全4. 网络程序设计基础5. 课程设计题目的具体要求计算机科学与技术学院课程设计11/9 *1引言1.1编写目的本课程设计报告是对系统管理模块的进行简单的需求分析和总体设计,对课程设计过程进行描述,总结在课程设计过程中学习到的知识,分析错误吸取教训,最后对本次课程设计的心得和体会进行总结。1.2项目背景随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以
4、往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多,这也充分应用硬件资源;对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理更为需要有效的图书管理软件。本次课程设计的课题是图书馆管理系统系统管理模块的设计与实现。在使用了已经实现了的部分图书馆管理系统软体后,对此模块的设计功能有了进一步的认识。1.3开发环境本模块选用Java作为开发语言,配合使用JSP、JavaScript等技术手段,利用现在流行的Struts+hibernate框
5、架开发,采用经典的MVC(模型-视图-控制)的设计模式,将模块整体分为三层(表示层、业务层、持久层)。平台选用MyEclipse 6.5版本,它的便捷性、功能强大和完善的结构包最适合MVC的设计模式。服务器选用Tomcat6.0,该版本免费、功能强大并且能够在Windows 7下稳定运行。美化页面用Adobe Dreamweaver CS3和Adobe Photoshop CS5等计算机辅助软件。数据库采用MySQL5.0,结构简洁、功能完善、稳定性好,配合使用MySQLFront-v5.1使数据层的数据表结构清晰直观,用3.2版本Hibernate与数据库连接进行持久化连接。2需求分析和系统
6、总体设计2.1需求分析2.1.1系统目标模块的总目标是:通过本模块在图书馆管理系统中的运用能够对整个图书馆资源得以科学、规范的管理,便于系统的维护和升级,有效提高管理工作的质量与效率。对每一项数据进行类型判断和空值判断,有筛选数据合理性的功能。用户界面友好风格一致、操作简易,系统安全、数据库稳定。2.1.2系统功能需求(1)登录图书馆管理系统时根据用户的权限动态生成系统菜单(2)操作用户可以修改自己的登录密码(3)可以对系统用户信息库进行查看、添加、删除操作(4)可以设定和修改其他用户的权限(5)可以对条形码最大流水号、图书罚款金额等变动性强的信息进行直接修改 (6)可以有条件和无限定条件两种
7、方式查询系统的操作日志(7)可以实现系统初始化和用户初始化2.1.3系统性能需求(1)系统是Web应用系统,在互联网或局域网内安装运行(2) 系统具有准确、完善的特点,能够使用户的操作方便快捷(3)系统具有可靠性和冗错能力,对数据有保护作用(4) 具有安检机制,未登录的用户不能操作(5) 登录时间超过一定的范围应当退出重新登录2.1.4系统运行环境系统运行操作系统:Windows Server 2003/Windows XP/Windows 7 系统运行Java环境:JDK1.6 系统运行服务器:Apache Tomcat6.0系统运行数据库:MySQL5.0及MySQLFront-v5.1系
8、统运行分辨率:最佳效果1280x800像素2.2系统总体设计2.2.1系统计算模式 图书馆管理系统系统管理模块采取B/S计算模式。如图2-1所示。 图2-1系统B/S模式2.2.2系统功能结构工程项目管理系统操作日志查询模块功能结构如图2-2所示。图2-2系统功能结构图2.2.3系统操作流程图2.2.4系统数据库设计本模块共涉及到数据库中的五张表,即用户信息表、操作日志表、系统信息表、图书类别表、图书信息初始化表。详细描述如表2-12-5所示: 如表2-1:操作用户信息表Ulist列名数据类型约束条件描述UidInt(11)主键序号,作为主键,无实际意义UmarkVarchar(255)操作用
9、户登录代码UnameVarchar(255)操作用户姓名UpasswordVarchar(255)操作用户密码UrowVarchar(255)操作用户职务UproidVarchar(255)操作用户权限代码如表2-2: 操作日志表Userlog列名数据类型约束条件描述IdInt(11)主键序号,作为主键,无实际意义LogtimeVarchar(255)操作时间LogpersonVarchar(255)操作用户姓名LogpartVarchar(255)操作功能LogmainVarchar(255)操作内容LogrowVarchar(255)操作用户职务 如表2-3:系统信息表Xtshezhi列名
10、数据类型约束条件描述IdInt(11)主键序号,作为主键,无实际意义XtlshVarchar(255)条形码最大流水号窗体底端XtpriceFloat图书罚款(元/天)XtdaysInt(11)提前续借的天数 如表2-4:图书类别表Author列名数据类型约束条件描述AidInt(11)主键图书类别编号AnameVarchar(255)图书条形码如表2-5:图书信息初始化表Book列名数据类型约束条件描述BidInt(11)主键图书序号BnameVarchar(50)图书名称priceDouble(9,2)图书定价AidInt(11)外键图书类别编号3系统实现3.1界面实现系统登录界面如下图所
11、示: 修改密码界面如下图所示:用户管理界面如下图所示: 增加用户界面如下图所示:删除用户界面如下图所示:删除结束返回列表界面如下图所示:点击修改用户后跳转的如下图所示:修改结束后返回列表界面如下图所示:系统设置界面如下图所示:操作日志查询界面如下图所示:搜索后显示的结果界面如下图所示:初始化功能界面如下图所示:3.2子模块设计3.2.1根据权限生成菜单的实现在用户登录时根据用户名查出用户的权限代码,将权限代码放到session中,在jsp页面用取出代码。基础设置 借还管理 图书查询 系统管理实现动态菜单的生成。二级菜单原理同上。3.2.2用户库数据增删改查的实现A
12、. 增加功能:通过页面的卡片读取输入数据,通过Form中的构造器读取到Action中,调用UlistDAO中的save()方法完成写入数据库。B. 删除功能: 在删除页面通过IndexAction中的使用request.getParameter(myid);取出对应的数据id,在DeluserAction中调用UlistDAO中的delete()方法完成删除操作。C. 修改功能:与删除类似,在GaiserAction中调用UlistDAO中的 attachDirty()方法。D. 查看功能:在登陆时调用UlistDAO中的findAll()方法,将结果ulist放入session中,在JSP也
13、页面用$ulist.字段名取出数据库对应的值。3.2.3系统操作日志查询的实现将下面代码放到每一个Action中实现操作日志写入数据库。Stringdate=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss) .format(Calendar.getInstance().getTime(); ug.setLogtime(date); ug.setLogrow(request.getSession().getAttribute(Dl_row).toString(); ug.setLogperson(request.getSession().getAttribute(D
14、l_name).toString(); ug.setLogmain(XXXX); ug.setLogpart(XXXX); Transaction tr= ugo.getSession().beginTransaction();ugo.save(ug); mit(); 最终利用UserlogDAO内的findByLogpart()和findByLogperson()来实现查找最总将结构利用setAttribute方法放到session中,利用在JSP页面上读出来并显示。4总结在制作系统管理模块的课程设计过程中,我收获非常大!所有代码都是亲手编制,出现的问题和遇到的困难都被我一一解决,让我懂得了
15、实践的重要性。第一次这么正式的制作项目,要一个人把握软件的整体体系结构,要一个人完整的经历软件开发的全过程。在刚刚进行需求分析的时候,我分析和使用了本校的图书馆管理系统和邢老师的图书馆管理系统,得出了系统的整体设计思路,但是在项目实施的过程中却与想象中不同,下面我将分为几个方面来谈我的心得体会。动态菜单的生成。在概要设计的时候,我认为所谓的动态生成菜单是我做若干个JSP页面,根据用户的权限判断来读取不同的JSP页面就可以了,但是在详细设计的过程中我发现这种方法效率不高,灵活性不够。于是上网和看书需求没有找到核实的解决方法,最终回归JSP编程的层面来,选择了这样一种简单高效的JSP页面级上显示和
16、隐藏的判断,这种方法的好处是:1便于理解和应用2将来需求变化时不需要更改数据库,只要在表示层的页面上面进行修改,最大程度的方便扩展和改进。操作日志的实现。在编码阶段,由于之前没有接触过系统日志,上网查得的结果是利用java中的log4j相关知识可以直接解决,所以我认为记录操作日志将、而且还要实现有条件和无条件两种方式查询,将会是非常困难的,一直到了开始美化界面的时候都没有找不出解决方案。经请教邢老师后豁然开朗,操作记录本身就是客观存在的我们是知道的,只是电脑不知道而已,那么我们在每一个Action 提交前将具体操作记录明白的告诉电脑,执行一步写入数据库就实现了操作日志的采集就可以解决这个问题,
17、同时设计起来不是很复杂,这种“小聪明式”的灵感需要不断的锻炼的同时也要多多接触专业领域的深层次的问题,提高自己的编程能力。界面美化的收获。我选用的是Struts1+hibernate 的框架设计,jsp、form、action用的是自动生成的办法,为了加强系统的稳定性和整体性,在表示层的页面上没有选用HTML的标签,而是统一用了Struts的标签。但是在美化的过程中,发现Struts标签的美化工作与HTML标签差别很大,在美化界面的三天时间里,不得不现学现做。经过连续个通宵的奋斗,最终实现了所有页面BUtton用图片代替,所有图片自己Photoshop,解决了页面重置的问题,个人认为系统的页面
18、做到了界面友好美观,结构简单易用。本模块用到的技术非常全面,我会进一步完善现有模块的同时,把图书馆管理系统的其他模块实现,让这个成为自己第一个完整的软件作品。我发现了实践对于软件工程专业学生的重要性,只有动手起来才能掌握、才能熟悉、才能进步!感谢*老师的不吝指导,和您的交谈让我明白了很多道理。*老师对我们的要求很高,我体会到老师的良苦用心,赞美之词也就不再赘述了。我只用一句来结束我的总结:感谢您的耐心和信任,我会继续努力为自己正名!5参考文献1 张桂元,贾燕枫.Struts开发入门与项目实践M.北京:人民邮电出版社,2005. 2 李继蕊.Struts和 Hibernate多层架构的研究与应用J.武汉理工大学学报,2007.3 王青松.基于 Hibernate实现 MVC中的模型框架J.辽宁大学学报,2007.4 邢薇.系统设计与分析M.哈尔滨工程大学,2007.