ImageVerifierCode 换一换
格式:DOCX , 页数:140 ,大小:408.27KB ,
资源ID:4901912      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4901912.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第10章图书借阅管理系统.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第10章图书借阅管理系统.docx

1、第10章图书借阅管理系统第10章 图书借阅管理系统课前导读随着计算机的广泛运用、网络技术的飞速发展,利用计算机来管理信息成为社会发展的趋势。图书管理系统的开发就是为了摆脱以往人工操作的诸多不便,实现图书、工作人员与读者信息的微机化管理。图书管理系统的实施,很大程度上提高了图书信息资源的利用率, 减轻了工作人员的工作强度,提高了他们的工作效率,也使管理更加科学、完善,使得读者能够更加方便的对图书进行个性化的管理。本章将以第二篇项目驱动篇所介绍的内容为基础,对以上内容进行总结,并对系统功能进行分析和设计,系统讲解图书借阅管理系统的开发,该系统可以实现图书或读者信息查询、图书信息管理、图书借阅管理、

2、用户管理等功能。重点提示本章重点讲解系统流程、模块功能、数据库设计以及系统各个模块的具体实现。通过对本系统模块功能分析、系统流程设计、数据库设计和功能模块实现的学习,使读者深入掌握Java面向对象的编程的精髓,能够独立开发简单的Java程序应用系统。本章重点内容如下: 模块功能分析 系统流程分析 数据库设计 各模块实现10.1 系统分析10.1.1需求分析在当今这个知识经济时代,知识的大爆炸带来了图书业的大发展,图书数量的急剧增加,但是书籍的增多也给图书管理带来了很大不便,图书管理系统开发的目的就是要解决图书管理的问题。本系统需要实现图书管理系统的基本功能。该系统能够对读者和图书进行管理,对借

3、书和还书进行管理。在对用户操作时,操作者可以依据用户编号或姓名进行用户管理;对图书操作时,操作者可以依据图书序列号或图书名对图书进行管理。该系统会提高图书管理工作者的工作效率和工作能力,减少工作人员的出错率,减少读者的借阅时间,让其把更多的时间用在选择书和看书上。图书管理系统需要具备以下主要功能: 用户管理:将用户信息存储于系统中,管理员可以管理用户,如查询用户、添加新用户、修改和删除用户等; 书籍管理:将图书信息存储于系统中,管理员可以添加新书、修改错误书和删除不存在的书,并可以查阅图书被借阅的情况; 借阅管理:管理员帮用户操作借书、还书,并可以查询用户借阅图书的情况;10.1.2 可行性分

4、析以前,图书馆采用手工方式对图书借阅信息进行管理,将借阅情况记录在借书证上,将图书数目和内容记录在文件中,这样,随着资料的增多,时间的增长,再查询时,就需要在众多的资料中查找,即费时又费力,手工操作使得图书借阅信息的管理工作混乱而复杂。基于以上问题,开发一个智能化的、操作简单、使用方便的图书管理系统是非常有必要的。图书管理系统使图书管理工作规范化、系统化、程序化,避免手工管理的繁琐工作,减少出错的概率,提高信息处理的速度和准确性。图书管理系统是一个典型的数据库应用系统,主要涉及数据读写和数据的传递,利用Eclipse工具,采用Java语言进行开发不存在技术方面的问题。10.1.3 开发及运行环

5、境分析硬件平台: CPU:P1.60GHz; 内存:512M以上;软件平台: 操作系统:Windows 2000/Windows XP/Windows 2003/Windows 2008; 数据库:SQL Server 2005; 开发工具:JDK 1.6.0 Eclipse3.4;10.2 系统设计目前开发系统常用的技术架构主要有两类:C/S(Client/Server)模式和B/S(Browser/Server)模式。C/S模式就是客户机/服务器模式。在这种模式下,可以充分利用客户机和服务器的硬件环境优势,将任务合理分配到客户机端和服务器端来实现,降低了系统的通讯开销。在C/S模式下,应用

6、服务器运行数据负荷较轻,但是C/S模式的劣势是高昂的维护成本,且投资大。B/S模式就是浏览器/服务器模式。在Browser/Server模式下,用户主要通过客户端浏览器,浏览系统的工作界面,极少部分事务在浏览器端(Browser)实现,主要事务在服务器端(Server)实现。Browser/Server模式通过Internet进行通信,不受地域的限制,减轻了系统维护与升级的成本和工作量。图书借阅管理系统属于图书馆内部的一种管理系统,通过内部网络处理和交换信息,C/S(Client/Server)模式采用发放结构、解决数据库共享问题,本例采用C/S模式,客户端运行Java客户端程序,服务器端运行

7、Java服务器端程序如图10-1所示。图10-1 系统运行总体结构10.2.1 系统流程系统图书借阅流程如图10-2所示。图10-2 系统图书借阅流程图借书过程如下。(1)用户将图书和借阅卡(或卡号)交给管理人员;(2)管理人员将图书和借阅卡上的号码输入系统;(3)系统依据借阅卡号作为借阅条件进行查找;(4)若查找到该用户,则依据图书编码查找图书;(5)若查找到该图书,则予以借出。还书过程如下。(1)用户将图书和借阅卡(或卡号)交给管理人员;(2)管理人员将图书和借阅卡上的号码输入系统;(3)系统依据图书编码作为查询条件进行查找;(4)若查找到该图书被借阅记录,则正常归还图书,并记录还书时间。

8、10.2.2 模块功能结构分析根据系统的设计要求,图书管理系统实现了五个完整的功能。根据这些功能要求,设计的系统功能模块如图10-3所示。图10-3 系统功能模块该系统需要添加图书、修改图书、删除图书、添加用户、修改用户、删除用户、借阅图书、归还图书和查阅图书等过程。图书管理系统各模块功能要求分析如下:用户登录要求该模块实现对管理员用户登录的验证、标识,为用户对系统的操作提供授权依据,在这一模块中,首先要求管理员输入自己的登录用户名和登录密码,然后系统对用户名和密码进行验证,判断用户的身份。用户管理要求由于用户众多,为了方便每个用户借阅,该系统需要存储每个用户的基本信息,以便用户借书时通过用户

9、名从数据库中快速调出用户信息,用户基本信息包括用户名、姓名、密码、学院、专业、年级等,管理员可以添加新用户、查询拥护、修改用户和删除用户图书管理要求为了方便书籍的管理,需要把每本书的相关信息添加到数据库,以便通过书号从数据库中快速调出用户信息,图书基本信息包括书号、作者、出版社、出版年月等,管理员可以添加图书、查询图书、修改图书和删除图书。借阅管理要求通过本系统,图书管理员可以进行图书借阅登记和图书归还登记,并可以查询图书被借阅的情况。10.3 数据库设计图书借阅系统不仅要求数据库功能强大,而且要有很好的安全保障机制。SQL server数据库是当前应用最为广泛的数据库,它可以很好的支持各种信

10、息,而且具有较高的数据安全保障,是一般公司、企业首选的数据库之一,本系统采用SQL server数据库。10.3.1 E-R图E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系,其表示方法为: 实体型(Entity):用矩形表示,矩形框内写明实体名,比如在本系统中数据库的实体为用户和书籍等。 属性(Attribute):用椭圆形表示,并用无向边将其与相应的实体连接起来,比如书籍的作者、出版社和书号等。 联系(Relationship):用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁

11、标上联系的类型(1 : 1,1 : n或m : n)。比如图书和借阅的关系就是1:N的关系,一本书可能被多次借阅。本系统所用到的数据库表的E-R图如图10-4所示。图10-4 数据库E-R图10.3.2 数据表结构分析根据系统的设计要求和模块功能,进行数据库的分析和设计。本节,将介绍图书管理系统所用到的数据库结构。从以上分析可知,系统拥有图书管理员、用户(读者)、图书等实体。在数据库中,可以使用表描述这些实体。另外还需要存储图书借阅记录,也需要用表来表示,这些表的名称以及表的说明如下。 管理员表Admin; 用户(读者)表Users; 图书表Book; 借阅表Lendbook。这些表之间存在一

12、定的关联关系。具体的关联关系如下所示: 读者可以借阅、归还图书;读者借阅的图书保存在借阅表Lendbook中。读者表Users和借阅表Lendbook通过读者序号进行关联; 图书表Book和借阅表Lendbook可以通过图书序号进行关联; 图书管理员可以对图书进行借阅和归还管理。图书管理员表Admin和借阅表Lendbook可以通过图书管理员序号进行关联;这些表的详细信息介绍如下。1管理员表Admin管理员表Admin用来保存管理员用户信息,结构如表10-1所示。表10-1 管理员表Admin字段名称数据类型说明ID自动编号管理员序号num文本管理员用户名,主键name文本管理员姓名passw

13、ord文本管理员密码remark文本说明2图书用户表users图书用户表users用来保存图书用户信息,结构如表10-2所示。表10-2 图书用户表user字段名称数据类型说明ID自动编号读者序号number文本读者用户名,主键name文本读者姓名password文本读者密码college文本读者学院subject文本读者年级grade文本读者专业remark文本说明3图书表Book图书表book用来保存图书信息,结构如表10-3所示。表10-3 图书表book字段名称数据类型说明ID自动编号图书序号number文本图书编号,主键bookname文本图书名称publish文本出版社author

14、文本作者isbn数字国际统一编号price文本定价lend文本是否借出。4借阅表Lendbook借阅表Lendbook用来保存读者借阅信息,结构如表10-4所示。表10-4 借阅表borrow字段名称数据类型说明ID自动编号借阅序号,主键bnumber文本图书编号unumber文本借阅者用户名。lendtime文本借书时间Returntime1文本应还书时间Returntime2文本还书时间breturn文本是否归还10.4 连接数据库模块系统所需要的信息都存储在数据库中,例如图书信息、读者信息、借阅信息等,要对这些信息进行操作,就必须连接数据库,为了省去每次操作都要编写连接数据库程序,我们把

15、连接数据库操作封装到一个类jdbcfile.java中,在不同的模块中调用这个类就可以对数据库进行连接,执行相应的数据库操作,这样使得连接数据库安全高效,程序代码简洁清晰,也符合Java面向对象的思想。连接数据库类jdbcfile.java的代码如下:1 import java.sql.*;由于类中要用到java.sql包中的类,因此这里首先要引入包。2 public class jdbcfile 3 /声明变量4 Connection conn;5 Statement stmt;6 int inorupdatevalue=-1;以上代码用于声明类中所使用到的变量。7 /声明构造方法,并抛出异

16、常8 public jdbcfile() throws Exception 9 try10 String drivername=com.microsoft.sqlserver.jdbc.SQLServerDriver;11 String dbURL = jdbc:sqlserver:/localhost:1489; DatabaseName=book;12 /加载驱动程序13 Class.forName(drivername);14 /创建数据库连接Connection对象15 conn=DriverManager.getConnection(dbURL, sa, 123);16 /创建Sta

17、tement对象17 stmt=conn.createStatement();18 catch(ClassNotFoundException e)19 /捕获异常20 throw new Exception(数据库驱动未找到+e.getMessage(); 21 catch(SQLException e)22 /捕获异常23 throw new Exception(数据库未连接+e.getMessage(); 24 25 以上代码用于连接数据库,首先,第13行加载数据库驱动程序,然后,第15行创建一个数据库连接,为执行SQL语句,第17行创建一个Statement对象,由于在连接数据库时可能产

18、生异常,因此,在第18行和21行分别捕获异常。26 /定义查询数据的方法27 public synchronized ResultSet executeQuery(String sql) throws Exception28 ResultSet rs=stmt.executeQuery(sql);29 return rs;30 31 /定义插入数据的方法32 public synchronized int insert(String sql) throws Exception 33 inorupdatevalue=stmt.executeUpdate(sql);34 return inorup

19、datevalue;35 36 /定义修改数据的方法37 public synchronized int update(String sql) throws Exception 38 inorupdatevalue=stmt.executeUpdate(sql);39 return inorupdatevalue;40 41 /定义删除数据的方法42 public synchronized int del(String sql) throws Exception 43 inorupdatevalue=stmt.executeUpdate(sql);44 return inorupdateval

20、ue;45 46 /定义关闭数据库连接的方法47 public void close() throws Exception48 conn.close();49 以上代码用于定义查询数据、插入数据、修改数据、删除数据和关闭数据库连接的方法,插入修改和删除使用的是同一个方法executeUpdate(),也可以只定义一个方法,这里为了表达清楚,使读者容易理解,定义了以上三个方法。50 10.5 管理登录模块为保证系统的完全性,只有管理员才可以对系统进行操作,因此,需要对用户登录信息进行验证,管理员的用户名和密码存放在数据库中,通过文本框获得用户输入的用户名和密码,然后与数据库中的用户名和密码进行比

21、较,如果匹配,则进入系统,否则提示用户名和密码不正确。10.5.1 管理登录界面管理登录界面主要用于输入用户名和密码,以便与数据库中的用户名和密码进行比较,界面主要包括两个标签、文本框和两个按钮,如图10-5所示。图10-5 管理登录界面10.5.2 管理登录技术实现1图形用户界面的具体实现1 import java.awt.*;2 import java.awt.event.*;3 import java.sql.*;4 import javax.swing.*;以上代码用于导入以下程序所用到的包。5 public class Login extends JFrame6 /声明标签、按钮、文

22、本框和密码框7 private JLabel JLb1;8 private JLabel JLb2; 9 private JButton Ok_btn;10 private JButton Cancel_btn;11 private JTextField jtflduser;12 private JPasswordField jtpwdfld;13 /声明窗口14 private JFrame frame;15 /构造方法16 public Login()17 frame=new JFrame(登录);18 Container content=frame.getContentPane();19

23、 /采用GridLayout布局管理器20 content.setLayout(new GridLayout(3,2,20,20); 21 JLb1=new JLabel(用户名);22 JLb2=new JLabel(密 码);23 /将标签置于居中位置24 JLb1.setHorizontalAlignment(SwingConstants.CENTER); 25 JLb2.setHorizontalAlignment(SwingConstants.CENTER);26 jtflduser=new JTextField();27 jtpwdfld=new JPasswordField();

24、28 Ok_btn=new JButton(确定);29 Cancel_btn=new JButton(取消);30 /为按钮增加事件监听者31 Ok_btn.addActionListener(new ActionHandler();32 Cancel_btn.addActionListener(new ActionHandler();33 /添加标签、文本框和密码框到窗口34 content.add(JLb1);35 content.add(jtflduser);36 content.add(JLb2);37 content.add(jtpwdfld);38 content.add(Ok_

25、btn);39 content.add(Cancel_btn);40 frame.pack();41 /设定登录窗口启动时出现在屏幕中央位置42 frame.setLocationRelativeTo(null);43 frame.setSize(300,200);44 frame.setVisible(true);45 /Login() methodLogin类继承了JFrame,因此可以显示,在Login类中,首先声明标签、按钮、文本框、密码框和一个JFrame窗口,然后通过构造方法创建标签、按钮、文本框、密码框,并添加到窗口容器中,最后设置窗口的大小和可见性。在程序的第31和32行,为按

26、钮注册事件监听者,当单击按钮时产生事件。2处理监听者事件当单击按钮时产生按钮单击事件,按钮把事件对象传递给监听者,事件监听者要监听到该事件,就要在程序中加入一个能够“听到”该事件的接口,实现这个接口并处理监听到的事件。46 /*47 *实现ActionListener监听,激活组件响应48 */49 class ActionHandler implements ActionListener50 public void actionPerformed(ActionEvent e)51 String str1,str2,sqlStr;52 Object obj=e.getSource();53 /

27、获得文本框和密码框的数据54 str1=jtflduser.getText().trim();55 str2=new String(jtpwdfld.getPassword().trim();56 try57 /点击确定按钮58 if(obj.equals(Ok_btn)59 if(str1.equals()60 JOptionPane.showMessageDialog(frame,用户名不能为空!);61 return;62 63 /创建数据库连接64 jdbcfile conn=new jdbcfile();65 /产生登录sql语句66 sqlStr=select * from Adm

28、in where num=+str1+and password=+str2+;67 ResultSet result=conn.executeQuery(sqlStr); 68 if(result.next()69 /弹出对话框提示登录成功70 JOptionPane.showMessageDialog(frame,登录成功!);71 /打开图书管理主页面72 bookmain bookmain1=new bookmain();73 bookmain1.go();74 /关闭登录窗口75 frame.dispose();76 /关闭数据库连接77 conn.close(); 78 else79

29、 JOptionPane.showMessageDialog(frame,用户名或密码错误);80 81 82 else if(obj.equals(Cancel_btn)83 /点击取消按钮84 System.exit(0);85 86 catch(ClassNotFoundException ce)87 /捕获异常88 System.out.println(SQLException:+ce.getMessage(); 89 90 catch(SQLException ex)91 /捕获异常92 System.out.println(ex);93 94 catch (Exception s) 95 /捕获异常96 s.printSta

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1