收藏 分享(赏)

java课程设计--简单图书管理系统的设计与开发.doc

上传人:微传9988 文档编号:2447037 上传时间:2018-09-17 格式:DOC 页数:53 大小:2.52MB
下载 相关 举报
java课程设计--简单图书管理系统的设计与开发.doc_第1页
第1页 / 共53页
java课程设计--简单图书管理系统的设计与开发.doc_第2页
第2页 / 共53页
java课程设计--简单图书管理系统的设计与开发.doc_第3页
第3页 / 共53页
java课程设计--简单图书管理系统的设计与开发.doc_第4页
第4页 / 共53页
java课程设计--简单图书管理系统的设计与开发.doc_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、 武 汉 理 工 大 学 华 夏 学 院课 程 设 计 报 告 书课程名称: JAVA 课程设计 题 目:简单图书管理系统的设计与开发系 名: 信息工程系 专业班级: 计算机 1112 姓 名: 曾高峰 学 号: 指导教师: 刘春燕 2013 年 9 月 13 日2课程设计任务书学生姓名: 曾高峰 专业班级: 计算机 1112 指导教师: 刘春燕 工作单位: 信息工程系 设计题目: 简单图书管理系统的设计与开发要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.学生用户对图书管理系统的要求(1 )借阅图书,续借图书,归还图书(2 )查询学生用户基本资料和借阅图书

2、情况(3 )按各种方式查询图书馆的藏书2.图书管理员对图书管理系统的要求(1)图书信息录入,注销陈旧图书;(2 )对新手进行登记或注销(3)信息查询,可根据不同关键字进行条件查询;设计报告撰写格式要求:1、明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。严格要求自己,要独立思考,按时、独立完成课程设计任务。2、设计报告:要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。设计报告正文字数不少于 0.2 万字(不包括附录)时间安排:消化资料、系统调查 1

3、 天项目原型开发 1 天数据库建模 1 天系统管理 1 天用户管理 2 天系统功能实现 3 天系统打包,验收 1 天指 导 教 师 签 字: 2013 年 9 月 1 日系 主 任 签 字: 2013 年 9 月 1 日1 目标图书管理系统在日常生活中用到的非常多,在对图书的管理方面非常方便图书管理系统设计的主要目的是对图书馆种类繁多的书籍进行管理,并且合理的管理好用户的借还信息。提高图书馆的工作效率,降低管理成本。内容主要包括:1.学生账号的注册,登陆,查看,修改个人信息,查询所有和按条件查询图书,借阅图书,续借图书,等操作。2 管理员的登陆,注册,管理员查看管理员的信息,管理员查看管理学生

4、信息(对学生的删除和修改),对图书馆图书进行查询,注册注销等操作。2 软件开发环境与技术简介2.1 开发工具介绍 开发工具:Myeclipse8.5 2.2 数据库系统数据库系统: mysql server5.1 服务器:Tomcat6.02.3 硬件环境2.3.1 运行环境2.3.1.1 客户端CUP:高于奔腾三 500MHz内存:大于 64M可使用的操作系统:Windows XP,浏览器:IE5.5 以上浏览器2.3.1.2 服务器端CPU:高于奔腾三 900MHz内存:大于 1Gb操作系统:Windows xp浏览器:IE5.5 以上浏览器2.4 软件环境服务器端需要 MyEclips,

5、Microsoft SQL Server 5.1 数据库。42.5 技术手段2.5.1 jsp 技术JSP(Java Server Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP 技术是用 JAVA 语言作为脚本语言的,JSP 网页为整个服务器端的 JAVA 库单元提供了一个接口来服务于 HTTP 的应用程序。 在传统的网页 HTML 文件(*.htm,*.html)中加入 Java 程序片段(Scriptlet)和JSP 标记 (tag),就构成了 JSP 网页(*.jsp)。Web 服务器在遇到访问 JSP 网页的请求时,

6、首先执行其中的程序片段,然后将执行结果以 HTML 格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无 Plugin,无ActiveX,无 Java Applet,甚至无 Frame。 JSP 的优点:对于用户界面的更新,其实就是由 Web Server 进行的,所以给人的感觉更新很快。 所有的应用都是基于服务器的,所以它们可以时刻保持最新版本。 客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改。2.5.2 B/S 开发模式B

7、/S,即 Browser/Server(浏览器/服务器)结构,是随着 Internet 技术的兴起,对 C/S 结构的一种变化或者改进的结构。客户机上只要安装一个浏览器,如Netscape Navigator 或 Internet Explorer,服务器安装 Oracle、Sybase 、Informix或 SQL Server 等数据库, 在这种结构下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,浏览器通过Web Server 同数据库进行数据交互,形成所谓 3-tier 结构。B/S 结构,主要是利用了不断成熟的 WWW 浏览器技术,结

8、合浏览器的多种 Script 语言(VBScript、JavaScript) 和 ActiveX 技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。B/S 模式以 Web 服务器为系统的中心,客户机通过其浏览器向 Web 服务器提出查询请求(HTTP 协议方式) ,Web 服务器根据需要向数据库服务器发出数据请求。数据库则根据查询或查询条件返回相应的数据结果给 Web 服务器,最后 Web 服务器再将结果翻译成为 HTML 或各类脚本语言的格式,并传送给客户机上的浏览器,用户通过浏览器即可浏览自己所需的结构。2.5.3 SQL S

9、erverSQL Server 是由 Microsoft 开发和推广的关系数据库管理系统(DBMS),它最初是由 Microsoft、Sybase 和 Ashton-Tate 三家公司共同开发的,并于1988 年推出了第一个 OS/2 版本。SQL Server 近年来不断更新版本,1996 年,Microsoft 推出了 SQL Server6.5 版本;1998 年,SQL Server7.0 版本和用户见面;SQL Server 2000 是 Microsoft 公司于 2000 年推出的最新版本。其最重要的特点是: 11 真正的客户机/服务器体系结构 图形化用户界面,使系统管理和数据库

10、管理更加直观、简单。 丰富的编程接口工具,为用户进行程序设计提供了更大的选择的余地。具有很好的伸缩性,可跨越从运行 Windows95/98 的膝上电脑到运行Windows2000/xp 的大型多处理器等多种平台使用。 SQL Server 提供数据仓库功能,这个功能只在 Oracle 和其他更昂贵的DBMS 中才有。3 系统需求分析经过对我校详细调查,并多次与负责图书管理的老师进行研讨,并对同学们做了问卷调查后,加深了对现行图书管理业务的深刻了解,与此同时,将整个图书管理的业务流程抽象描述如下:学生要求:1.图书馆需要有学生注册功能,学生能够在图书管理系统中自行借阅图书。2.学生能够在网上自

11、行修该自己的密码等信息3.能够查找所有的图书信息4.能够按条件查询自己所要查找的图书信息5.学生借阅图书以后在网上登记自己所借阅图书的信息,并能够实现续借功能管理员要求:1.能够将图书馆新到馆的图书进行入馆操作。2.能够查看所有的图书状态并对图书进行修改操作3.能够查看所有的学生信息,对新注册的用户进行管理,对老用户进行删除。64.管理员能够增加和删除管理员能够对管理进行操作(有一个超级管理员不能删 除)。4 系统总体设计 4.1 系统功能简介该图书管理系统分为两部分,学生部分,管理员部分,学生部分主要包括学生的注册和登陆,学生对自己信息的查看和修改。同时能够查询所有图书和按条件查询图书信息。

12、同时能够在线进行借阅和续借图书。管理员主要包括,对图书的入馆操作,对图书进行修改和删除,管理员对普通用户进行修改和删除,同时能注册管理员,系统中有个最开始的管理员其他管理员不能删除。该系统简单的实现了图书管理系统的一些功能。4.2 系统功能模块规划图如:图 1图 1:系统规划图图书管理系统学生部分管理员部分登陆和注册新用户查看修改个人信息查询和按条件查询图书借阅和续借图书图书入馆和注销管理学生信息修改图书信息注册管理员4.3 系统数据库设计4.3.1 管理员表 如表 1数据名 数据类型 长度 是否允许为空主键 自动增长id Int 是 是 是adid varchar 50 是 否 否adnam

13、e varchar 50 是 否 否adpass varchar 50 是 否 否表 1:管理员设计表4.3.2 学生信息表如 表 2数据名 数据类型 长度 是否允许为空主键 自动增长uid Int 是 是 是username varchar 50 是 否 否upass varchar 50 是 否 否qq varchar 50 是 否 否age int 50 是 否 否tel varchar 50 是 否 否Sex Varchar 50 是 否 否email Varchar 50 是 否 否descr Varchar 50 是 否 否表二:学生信息表 4.3.3 图书信息表如 表 3数据名

14、数据类型 长度 是否允许为空主键 自动增长id Int 是 是 是bkid varchar 50 是 否 否bkname varchar 50 是 否 否bkin varchar 50 是 否 否Writer varchar 50 是 否 否date varchar 50 是 否 否表 3 图书信息表84.4 数据库的操作 E-R 图:如图 2图 2 系统操作 E-R 图读者 管理员学生名管理. 学生 id 编号密码名称修改删除添加管理 管理 图书还书时间结束时间书名.编号 添加 删除修改续借5 系统详细设计5.1 用户信息管理管理员通过数据库管理和维护系统可以对读者进行管理和维护。管理员可以

15、对表中的信息进行删除、修改、更新等基本操作以管理和维护读者信息。用户信息管理模块图:如图 3用户信息管理读者信息的删除读者信息的修改图 3 用户信息管理模块图5.2 图书信息管理 模块图如图 4 新书入库、旧书报废、图书信息的修改。新书入库指对需求比较大的图书,如果数库中有,则增大其库存量,如果没有,则进购新书。旧书报废指因为人为因素(如借阅后丢失、损坏等)致使图书不能被继续借阅的,应从书库中清除掉。新书入库和旧书报废时,应对该书库总数进行调按,尤其是当旧书报废后,若该书总数为零时,应自动将该书信息删除。我们还对图书进行了分类,如果因为某书的减少,导致该类图书的减少,则当该类图书总数为零时,系

16、统也应自动将该图书类别信息删除。10图书信息管理图书信息的添加图书信息的删除图书信息的修改图 4 图书信息管理模块图5.3 管理员信息管理管理员可以对管理员表中的信息进行插入、删除、修改、更新等基本操作以管理和维护读者信息。如图 5 所示:管理员管理管理员添加管理员修改管理员删除修改密码图 5 管理员信息管理5.4 管理员登录模块说明这一模块是用于对管理员登录用户名和密码进行验证并根据其权限赋予相应的功能的处理。对用户所输入的用户名及密码进行加密认证,并将登录信息传递给管理系统,从而进行管理。如果输入的用户名和密码无法得到认证,即使是了解网站构成的专业人士也无法进入系统。管理员的用户信息可以得

17、到十足的保障,使得即使作为远程系统也拥有如同本地系统一样的安全性。保障了系统数据的安全。5.5 管理员登录模块功能图如图 6管理员登录模块包括:正常登录、超级管理员登录、密码认证、退出。 图 6:管理员登录模块功能图5.6 管理员登录模块流程图:如图 7管理员登录正常登录超级管理员登录退出系统密码认证输入验证信息是否通过验证YN进入登录首页进入管理首页查询用户信息用户管理修改用户信息删除用户信息用户信息分类5.7 用户管理模块图 如图 8图 8 用户管理模块图 图 7 管理员登录模块流程125.8 管理员用户管理模块如图 9图 9 管理员管理用户流程图5.9 管理员图书管理模块流程图如图 10

18、进入图书管理选择操作查看删除添加修改继续操作退出YN图 10:管理员管理图书流程图5.10 借阅管理模块功能图借阅管理模块功能图如图 11 所示:选择操作退出查看处理删除继续操作 NY进入用户管理借阅管理图书借阅图书归还图 11 借阅管理5.11 借阅管理模块流程图借阅管理模块流程图如图 12 所示:进入借阅管理选择操作借阅归还继续操作退出图 12:借阅管理模块流程图NY145.12 学生登录流程图 如图 135.13 学生查询图书如图 14个人首页选择操作按条件查询借阅续借修改个人信息继续操作退出YN输入验证信息是否通过验证YN进入登录首页进入个人首页图 13:学生登录流程图图 14 学生查

19、询图书流程图6 系统测试与运行 6.1 学生注册页面如图 14图 14 学生注册页面6.2 学生登录界面如图 15图 15 学生登录界面6.3 学生主页如图 1616图 16 学生主页图6.4 学生查询所有图书图 17 学生查询所有图书6.5 学生借阅图书如图 18图 18 学生借阅图书6.6 按图书名查找图书图 19查询后如图 20图 20 后界面图186.7 学生修改自己信息如图 21图 21 学生修改自己信息图6.7 管理员登录如图 22图 22 管理员登录图6.8 管理员引导界面如图 23图 23 管理员引导界面图6.9 查看所有学生信息如图 24图 24 管理员修改学生信息图6.10

20、 管理员修改学生信息图 25图 25 管理员修改学生信息图206.11 查看所有图书如图 26图 26 查看所有图书图6.12 管理员修改图书如图 27图 27 管理员修改图书图6.13 注册管理员如图 28图 28 注册管理员图22总 结 上个学期我们系统的学习了 java 的基本知识,但是计算机专业是一门实践性比较强的学科,仅仅学习了理论知识并不能代表你能合理的运用,正如中国的一句古话所说:“纸上得来终觉浅,绝知此事要躬行”。只有经历过实训,经历过实战的磨练才能让自己的知识变得更加纯熟,让自己对 java 的理解变得更加深刻。这个学期的最开始我们开始了为期两周的课程设计,我选的题目是图书管

21、理系统,这次课程设计我采用了团队合作的方式,我和梁海传为一个小组,这次课程设计我们采用的是现在比较流行的 B/S 开发模式,用到了我们以前没有学到的一些技术如 javascript, tomcat,mySql Sever 数据库技术,和网页布局的相关知识。同时也使用了外面比较流行一些开发工具,如 myEclips 这让我们更加了解外面的行情,更加熟练的掌握流行的开发工具。让我们与外面的社会进行接轨。这次的课程设计给我印象最深刻的地方在于将我们的知识融合在一起,让我们的知识放在一个大熔炉里面进行淬炼,让我们的知识运用的更加纯熟。从拿到这个题目开始的毫无思绪,然后一点点的进行需求分析,一点点的了解

22、系统所需要的功能,在这过程中我们积极的查询资料咨询老师。在开发过程中我们不仅要学习以前没有接触到的知识,同时也要温习以前学习的旧知识,这让我们大脑高度集中,在开发过程中遇到过系统漏洞,解决不了时积极思考,积极咨询老师的意见,在老师的意见上加以总结并加上自己的新想法。当自己的程序运行出来达到自己想要的效果时我和我的组员都松了一口气!但是接下来的问题让我们哭笑不得在测试软件时总出现类不存在的问题,经过小组的讨论和测试都没发现问题,无奈之下只好咨询老师,在老师和我们的共同努力之下终于将问题找出来了,原来是在开发过程中由于命名不规范导致在写程序过程中总将类名写错,这让我们小组苦恼不已,这让我们有了更加

23、深刻的印象,在以后的开发过程中一定要注意命名的规范 ,同时也要注意格式的规范!以前的我不知道自己的学习方向,但是这次实训过后我突然有一种豁然开朗的感觉让我了解到了自己的学习方向,更加明确了自己的学习目的。通过与带我们实训老师的交谈我了解到 java 的应用前景,和我们在学校应该学习的知识。同时也让我接触到了企业所应用的一些技术,让我在学校中能够自学者些知识,这次实训让我收获良多,以后有这样的实训我还会参加!参 考 文 献1 王建华. ASP NET 2.0 动态网站开发技术与实践M.北京:电子工业出版社,2007.2梁建武.ASP 程序设计M.北京:中国水利水电出版社,2003:1-12. 3

24、陈宗兴,杜国梁ASPNET 网络系统程序开发M.北京:中国水利水电出版社,2004:20-40.4李英俊,毕斐ASPNET 动态网站开发教程M北京:清华大学出版社.5邱珊,詹春华.java 语言程序设计.北京:科学出版社,2013.6朱福喜,黄昊.java 项目开发与毕业设计指导.北京:清华大学出版社.24附录:原程序核心代码主要方法:package com.softeem.dao;import java.sql.*;import java.util.ArrayList;import java.util.List;import com.softeem.model.User;import com

25、.softeem.model.Userbook;public class UserDAO / 注册public boolean add(String username, String upass, String sex, int age,String email, String tel, String qq, String descr) boolean flag = false;/ 将数据存放到 db 中去try / 加载驱动Class.forName(“com.mysql.jdbc.Driver“);/ 建立连接Connection conn = DriverManager.getConne

26、ction(“jdbc:mysql:/localhost:3306/wb“, “root“, “);/ 准备语句String sql = “insert into tb_user(username,upass,sex,age,email,tel,qq,descr) values(“+ username+ “,“+ upass+ “,“+ sex+ “,“+ age+ “,“+ email+ “,“+ tel+ “,“+ qq+ “,“+ descr+ “)“;/ 准备对象Statement st = conn.createStatement();/ 执行flag = !st.execute(s

27、ql); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return flag;/注册图书信息public boolean addbook(String bkid,String bkname,String bkin,String writer)boolean flag=false;try Class.forName(“com.mysql.jdbc.Driver“);Connection conn=DriverManager.getConnectio

28、n(“jdbc:mysql:/localhost:3306/wb“, “root“, “);26String sql = “insert into book(bkid,bkname,bkin,writer) values(“+bkid+“,“+bkname+“,“+bkin+“,“+writer+“)“;Statement st = conn.createStatement();/ 执行flag = !st.execute(sql); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTr

29、ace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return flag;/注册管理员public boolean addadmin(String adid,String adname,String adpass)boolean flag=false;try Class.forName(“com.mysql.jdbc.Driver“);Connection conn=DriverManager.getConnection(“jdbc:mysql:/localhost:3306/w

30、b“, “root“, “);String sql = “insert into admin(adid,adname,adpass) values(“+adid+“,“+adname+“,“+adpass+“)“;Statement st = conn.createStatement();/ 执行flag = !st.execute(sql); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-gene

31、rated catch blocke.printStackTrace();return flag;/ 登录public boolean login(String username, String upass) boolean flag=false;try / 加载驱动Class.forName(“com.mysql.jdbc.Driver“);/ 建立连接Connection conn = DriverManager.getConnection(“jdbc:mysql:/localhost:3306/wb“, “root“, “);/ 准备语句String sql = “select * fr

32、om tb_user where username=“ + username+ “ and upass=“ + upass + “;/准备对象Statement st=conn.createStatement();/执行/C U D 写 boolean a=execute(sql)、int a=executeUpdate(sql)/R select 读-ResultSet r=executeQuery(sql);ResultSet rs=st.executeQuery(sql);/如何取出 rs 中的数据进行判断int id=0;/判断 rs 中是否有数据while(rs.next()/有数据

33、,则取出数据id=rs.getInt(“uid“);if(id0)28flag=true; catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return flag;/登陆管理员public boolean loginadmin(String adname,String adpass)boolean flag=false;try / 加载驱动Class.forName(“com.mysql.jdbc.Driver“);/ 建立连接Connection

34、conn = DriverManager.getConnection(“jdbc:mysql:/localhost:3306/wb“, “root“, “);/ 准备语句String sql = “select * from admin where adname=“ + adname+ “ and adpass=“ + adpass + “;/准备对象Statement st=conn.createStatement();/执行/C U D 写 boolean a=execute(sql)、int a=executeUpdate(sql)/R select 读-ResultSet r=exec

35、uteQuery(sql);ResultSet rs=st.executeQuery(sql);/如何取出 rs 中的数据进行判断int id=0;/判断 rs 中是否有数据while(rs.next()/有数据,则取出数据id=rs.getInt(“id“);if(id0)flag=true; catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return flag;/查询所有 tb_user 信息/List 泛型public List findAl

36、l()/创建一个可变长度的链表List list=new ArrayList();/我需要去吧数据库中的信息查询出来try / 加载驱动Class.forName(“com.mysql.jdbc.Driver“);/ 建立连接Connection conn = DriverManager.getConnection(“jdbc:mysql:/localhost:3306/wb“, “root“, “);/ 准备语句String sql = “select * from tb_user “;/准备对象Statement st=conn.createStatement();/执行/C-insert

37、 U-update D-delete 写 boolean a=execute(sql)、int a=executeUpdate(sql)30/R select 读-ResultSet r=executeQuery(sql);ResultSet rs=st.executeQuery(sql);/判断 rs 中是否有数据while(rs.next()/有数据,则取出数据int uid=rs.getInt(“uid“);String username=rs.getString(“username“);String upass=rs.getString(“upass“);String sex=rs.g

38、etString(“sex“);String age=rs.getString(“age“);String qq=rs.getString(“qq“);String email=rs.getString(“email“);String tel=rs.getString(“tel“);String descr=rs.getString(“descr“);/System.out.println(“uid:“+uid+“;username:“+username);/封装User u=new User();u.setUid(uid);u.setUsername(username);u.setUpass(upass);u.setAge(age);u.setSex(sex);u.setTel(tel);u.setEmail(email);u.setQq(qq);u.setDescr(descr);/将 user 放入 listlist.add(u); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报