1上海电机学院课程设计报告课程名称:课题名称:姓名:班级:软件1611带教老师:郭煦报告日期:2019.01.182电子信息学院目录前言....................................................3一、课程设计的目的和意义.................................4二.课程设计的内容:....................................52.1需求分析...........................................52.2项目的功能.........................................52.3用户界面设计.......................................72.4数据库表单设计.....................................7三.课程设计的步骤和方法.................................93.1设计的步骤.........................................9四.课程设计的实现.....................................104.1登录/注册页面....................................104.2主界面............................................114.3修改页面..........................................114.4条件查询..........................................12五.小结...............................................13六:参考文献...........................................13附录代码...............................................143前言本次课设选题题目为“图书信息管理系统”,图书信息管理系统主要是对图书信息进行保存,允许用户查看现有图书,增加图书,修改图书,删除图书和按条件查询图书号。能将繁琐的信息整合,并保存到数据库,保证了数据的完整性,还不易丢失。通过简单的操作流程和步骤,能更快捷方便的完成所有相关任务。同组成员:卢锦锋4一、课程设计的目的和意义根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题巩固平时学习的知识,积累独立开发项目的经验;通过完成项目,逐渐培养学生的编程能力、用计算机解决实际问题的能力。5二.课程设计的内容:2.1需求分析图书附带很多相关的图书信息,在需要存储大量图书的图书馆,学校等场所,建立相应的图书信息管理系统是很有必要的。在图书的增加和减少,图书的检索查询,图书信息的修改方面,图书信息管理系统有着必要的市场需求和用户需求。2.2项目的功能1.项目的主要功能包括:a.图书信息管理系统的基本登录和注册。登录和注册的身份有所区别,分为用户身份和管理员身份。两种身份的权限有所不同。注册时,相关信息将写入到使用者数据库,同时保存使用者的身份信息。登录时就根据信息匹配能否正常登录。b.图书信息的录入。通过用户界面输入的图书相关信息,将数据写入到图书信息数据库保存。c.图书信息的查询。使用者可以将所有的信息通过表格的信息列出来,也可以通过相关条件,如书名,作者和图书的ISBN进行条件查询。d.图书的修改。对于已经存在的图书进行相关信息的修改,再写回数据库。e.图书的删除。根据选择的图书,将图书的所有信息从数据库中删除。2.总体的设计系统总的模块划分成:a.JSP的用户界面,主要处理用户的登录,以及用户的输入还有相应图书的列表。b.MySQL数据库主要用于信息的增加,查找,修改,和删除。c.JAVA编写的后端,通过SSH框架,处理来自JSP页面的用户请求,再将相应的数据信息写入到数据库中,完成用户界面请求与数据库的对接。6图书信息管理系统JSP用户界面MySQL数据库JAVA后端图1图书信息管理系统结构图3.详细设计用户界面的设计主要使用的HTML和JSP标签,CSS样式单和BootStrap样式。72.3用户界面设计1.用户登录和注册界面,普通用户登录以后可以进行图书的相关查询,可以看到已有图书的相关信息。管理员登录除了普通用户的权限以外还可以进行图书的添加,修改和删除。2.登录以后的主页面,通过导航栏的形式,链接图书的列表页面,图书的增删改页面,以及图书的条件查询页面。2.4数据库表单设计1.用户表(user)设计用户表密码姓名ID职责图2用户表项用户表用于存储用户的账号,统一存放了管理员和普通用户的信息,避免过多的数据表造成系统的冗余。用户表中包含了序号(id)、姓名(name)、密码(password)和职责(duty)四项数据内容。它是用户表的主键,用于唯一的区分不同的用户,不允许重复,序号在用户注册后自动生成。姓名和密码由用户输入并写入用户表中。职责是用于区分用户登录后的权限。2.图书信息表(book)设计8图书信息序号书名作者出版社ISBN价格出版日期版本图3图书信息表项图书信息表作为信息管理系统的核心,存放了图书的信息,其中包含了序号(id)、书名(bookname)、作者(author)、出版社(publish)、ISBN(isbn)、价格(price)、版本(version)、出版日期(date)。序号依旧是整张表的主键,用于唯一确认区分不同的图书,不允许重复序号在图书插入后自动生成。其余信息由用户输入。9三.课程设计的步骤和方法登录有账号?注册账户修改图书查看图书删除图书否条件查询按ISBN查询按作者查询按书名查询图4图书信息管理系统流程图3.1设计的步骤1.实现登录与注册页面。2.利用Jquery,Bootstrap和Css设计用户界面。3.实现了不同条件的图书查询。4.SSH框架的整合。10四.课程设计的实现4.1登录/注册页面图5登录(注册)界面114.2主界面图6主界面4.3修改页面图7更新图书信息页面124.4条件查询图8条件查询页面13五.小结为期两周的JAVAMVC课程设计马上就要接近尾声了,本次课设应该是我进入大学校园以来收获最多的一次课程设计了。这两周里,我重新回顾了本学期学习的Hibernate框架和Struts框架,以及Spring框架。了解了它们三者之间的联系,它们在处理请求时充当的角色,明白了它们的工作机理。这使我收获颇丰。在学习后端代码的同时,还去网上自学了关于前端开发的一些方法和技术,例如Jquery和BootStrap技术,同之前接触过的CSS样式单结合起来,做出来的效果比我自己预想的要好一点。能通过自主学习的方式,学习新的东西真的感觉很开心。在做课设的过程中,有很多粗心的时候,很多时候代码运行错误可能是因为一个很小的错误,这让我越发的觉得学习软件,学习编程这一门课,一定要细心,一定要规范,这样才能最大可能的避免低级错误。课设期间,我还遇到了很多麻烦,但是在老师和同学们的帮助下,基本都解决了。感谢老师和同学对我的帮助和指导。虽然出BUG时会心烦意乱,虽然改代码一直改不出来会几近崩溃,但是最后调试成功的时候,还是由衷的觉得付出是值得的。六:参考文献[1]Bootstrap教程|菜鸟教程.[2]Bootstrap教程基础|[3]JAVAWEB应用开发技术与案例教程|张继军14附录代码Login.jsp%@pagecontentType=text/html;charset=UTF-8%!DOCTYPEhtmlhtmllang=enheadmetaname=descriptioncontent=particles.jsisalightweightJavaScriptlibraryforcreatingparticles.metaname=authorcontent=VincentGarreau/metaname=viewportcontent=width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=nolinkrel=stylesheetmedia=screenhref=css/style.csslinkrel=stylesheettype=text/csshref=css/reset.css//headbodydivid=particles-jsdivclass=logindivclass=login-top${msg}登录/divformaction=login_Login.actionmethod=postdivclass=login-centerclearfixdivclass=login-center-imgimgsrc=img/name.png//divdivclass=login-center-inputinputtype=textname=nameplaceholder=请输入您的用户名onfocus=this.placeholder=''onblur=this.placeholder='请输入您的用户名'/divclass=login-center-input-text用户名/div/div/divdivclass=login-centerclearfixdivclass=login-center-imgimgsrc=img/password.png//divdivclass=login-center-inputinputtype=passwordname=passplaceholder=请输入您的密码onfocus=this.placeholder=''onblur=this.placeholder='请输入您的密码'/divclass=login-center-input-text密码/div/div15/divdivclass=login-centerclearfixlabelDUTY/label   inputtype=radiovalue=Uname=dutychecked/User          inputtype=radiovalue=Mname=duty/Manage/divdivclass=login-centerclearfixinputclass=login-buttontype=submitvalue=登录//divdivclass=login-centerclearfixahref=register.jsp没有账号?注册一个/a/div/form/divdivclass=sk-rotating-plane/div/divscriptsrc=js/particles.min.js/scriptscriptsrc=js/app.js/script/body/htmlCom.Dao.Implpackagecom.dao.impl;importjava.util.ArrayList;importjava.util.List;importorg.hibernate.HibernateExcep