《图书管理系统设计与实现图书管理与读者管理毕业设计论文.doc》由会员分享,可在线阅读,更多相关《图书管理系统设计与实现图书管理与读者管理毕业设计论文.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图书管理系统设计与实现图书管理与读者管理 摘 要:随着科学技术的进步,信息管理系统彻底改变了很多的经营管理模式,图书管理是每个高校都必须面对的工作,一直以来,人们使用传统的人工方式管理图书资料及其借阅。这种方式存在着许多缺点,如效率低、保密性差且繁琐。因此,开发图书管理系统是一个亟待解决的问题。本文从系统的总体架构、数据库设计、详细设计等思路出发,进行了总体设计、详细设计。 关键词:图书;读者;管理系统;数据库 Abstract:With the development of scientific technology, information management system comple
2、tely changed a lot of business management mode, the books management is each university must face work, people have always been used the traditional manual mode and its borrowing books data management. This way has many shortcomings, such as low efficiency, secrecy bad and red tape. Therefore, the d
3、evelopment books management system management system is a problem to be solved. This paper from the system of general framework, database design, detailed design viewpoint, the overall design, detailed design. Keywords:Book;Reader;Management System;Database1 前言1.1 系统开发目的图书管理系统主要目的是对图书馆种类繁多的书籍进行管理,并且
4、合理管理好用户的借还信息。提高图书馆的工作效率,降低管理成本。其开发主要包括后台数据库的建立和维护,以及前端应用程序的开发。前者要求建立起数据一致性各完整性强、数据安全性好的数据库。而后者则要求应用程序具有功能完备、易用等特点。因此本系统结合开放式图书馆的要求,采用java swing技术和SQL SERVER 2005数据库进行系统的开发。1.2 图书管理系统现状1.2.1 信息资源收集的现代化现代社会信息资源丰富,信息污染也很严重,给图书馆信息资源的收集带来了极大麻烦。传统图书馆时期,由于各种信息资源极大部分由正规渠道获得,经过图书期刊编辑人员的认真校对,信息质量相对可靠。而现代化信息的载
5、体以及出版发行方式发生了很大变化,各种光盘、印刷品、网上信息、声像读物等良莠不齐。这就要求图书馆采编人员掌握多方面的信息源,运用现代化的各种手段,对各种信息做出尽可能正确的判断。1.2.2 图书馆服务的现代化服务是图书馆的生命。图书馆所做的一切工作,只有一个目的,就是做好图书馆的读者服务工作。服务的现代化包括两个方面,一是图书馆工作人员服务的现代化,二是服务手段的现代化。总之,我们通过对图书管理系统的分析,对管理系统在其他情况下的应用,有了一个基础性的了解与掌握。同时,对热门图书的科学管理,进一步提高其利用率,不断满足读者日益旺盛的阅读需要,有着十分积极的现实意义。2 系统分析2.1 系统开发
6、目标该系统主要建立一个基于java的图书馆借阅管理系统,面对当起很多小型图书管理仍是人工管理带来的检索速度慢,效率低。借阅归还图书量大,图书统计工作量大,藏书不能完成及时更新的问题,该系统可以对跟系统的三个用户类型的使用实现。2.2 可行性研究2.2.1 技术可行性技术可行性包括以下几个方面:硬件,系统软件,应用软件,技术人员。针对这四个方面可行性都是没有问题的,本系统采用java编程语言加SQLSrver2005数据库。目前,数据库产品较多,每种产品都具有各自的特点和适用的范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围选择最合适的。 Java 编程语言的风格十分接近C、C+语言
7、。Java是一个纯的面向对象的程序设计语言,它继承了 C+ 语言面向对象技术的核心,Java舍弃了C +语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。2.2.2 操作可行性本系统开发的开发宗旨是以便捷为中心。开发后的系统应具有美观、大方、简单、易操作等优点,即使是不懂计算机的人员也可以根据系统提示使用和管理本系统,它的操作简单的特点使本系统在操作上可行。2.3 需求分析2.3.1 功能需求经过以上详细的用户调查,在现行业
8、务流程和数据分析的基础上,基本可以确定系统设计必须达到的目标。 以下是图书管理系统必须具备的功能:1、基础数据维护基础数据维护包括读者信息管理、图书类别管理、图书信息管理及退出系统。各管理功能的明细如下:(1)读者信息管理:包括读者信息添加、读者信息修改与删除。其中,读者信息添加包括读者的姓名,性别,年龄,职业,最大借书量,电话等等。(2)图书类别管理:包括图书类别添加、图收类别修改2部分能。(3)图书信息管理:包括图书信息添加、图书修改。(4)退出系统2、新书订购管理新书订购管理部分包括新书订购、验收新书等操作。各管理部分的明细如下:(1)新书订购:新书订购包括图书信息和订购信息,其中订购信
9、息包括,订购日期、订购数量、是否验收、折扣等。(2)验收新书:主要是对订购的新书进行一个验证与接收。3、借阅管理功能借阅管理部分包括借书管理和还书管理,其功能是实现对各部分数据内容的添加和查询操作。各管理部分的明细如下:(1)图书借阅:包括添加借书信息和查询借书信息两部分功能。其中,借书信息包括借阅编号、读者编号、读者姓名、书籍编号、书籍名称、出借日期和还书日期。(2)图书归还:实现添加还书信息功能。其中,还书信息与借书信息各部分明细相同。(3)图书搜索:实现对图书的搜索功能,以了解图书的各方面的信息。4、系统维护设置操作人员。系统初始设置一个管理员用户名和密码,操作人员可以利用这个超级用户登
10、录,之后,可以设置其他的操作人员名称。2.3.2 数据描述经过详细的调查,我们已经清楚了解了现行的业务流程,接下来给出系统的逻辑模型。构造系统逻辑模型的工具是数据流图和数据字典。根据现行图书管理的业务流程,首先把数据流图中的源点和终点都选定为学生,因此可以得到图书管理系统的基本系统模型,如图2-1所示。图2-1 图书管理系统的基本系统模型根据基本系统模型,对其逐步细化,得到描述逻辑系统细化后的数据流图,如图2-2所示。图2-2 图书管理系统数据流图(顶层DFD图)对顶层DFD图中的一个加工“读者管理”进行展开,如图2-3。图2-3 细化后数据流图对顶层DFD图中的一个加工“图书管理”进行展开,
11、如图2-4。图2-4 “图书管理”展开2.3.3 性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求:1、系统处理的准确性和及时性2、系统的开放性和系统的可扩充性4、系统的标准性5、系统的先进性6、系统的响应速度2.3.4 系统出错处理需求在用户输入一些不合法数据的时候,能够进行一些合理的提示信息,不能因为输入错误而导致系统错误,或者程序停止运行;2.4 开发环境及运行环境1、开发环境:操作系统:Windows 7开发工具:myEclipse、JDK1.6数据库系统:Sql Server 20052、运行环境操作系统:Windows 7数据库系统:S
12、ql Server 20053 总体设计3.1 系统功能结构设计 1、业务流程根据需求分析的得到的现行业务处理流程,在用户反复研究后,首先确定目标系统的业务流程,其处理流程如图3.1。图3.1 图书管理系统的业务流程针对新的业务流程,现具体描述其功能如下:(1)操作员登录:系统对操作员合法性进行检查。(2)图书入库:对新购进的图书分类进行编号,并把图书基本信息录入计算机。(3)图书借阅:对已入库的图书,读者可以借阅,并进行登记。(4)图书归还:对读者已归还的图书进行归还登记。 (5)管理措施:定义系统规定的借阅图书超期时间、超期处罚办法和丢失赔偿办法。2、系统功能模块图依据需求分析阶段得到的数
13、据流图,采用软件工程中软件设计的概念和原理,与用户成分协商后,在保证系统基本功能要求的前提下,结合系统新的业务流程确定系统必须具备的所有功能,由此给出图书管理系统的系统功能模块图如图3-2所示。图3-2 系统功能模块图4 详细设计4.1 界面设计4.1.1 界面设计概述界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉快的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户畏惧与放弃中付诸东流。目前
14、界面设计引已起软件设计人员的重视。4.1.2 主界面设计启动程序后自动进入到管理员登入界面,当用户登入成功便跳转到主界面,如图4-1图书管理系统主界面所示:图4-1 图书管理系统主界面4.2 主要功能模块设计4.2.1 读者信息添加模块(1) 功能说明读者界面包括对读者姓名、性别、年龄、职业、有效证件等。主要的功能是对读者信息的一个注册,只有注册的用户才能进行借阅书籍。在进行注册时如果有文本框是空则弹出一个提醒对话框,当读者编码与已有的读者重复时则在点击添加时将没有反映。(2)流程图读者信息添加模块的流程图如图4-1所示:图4-1 读者模块流程图4.2.2 图书类别管理模块(1)功能说明本模块
15、包含图书类别的添加及图书类别的修改。图书类别的添加主要是对图书类别的名称、此种图书可借阅的天数及超期后每天的罚款。图书类别的修改是对图书类别添加时出现错误的修改。(2)流程图图书类别添加流程图如图4-2所示,图书类别修改流程图如图4-3所示。图4-2 图书类别添加流程图图4-3 类别修改的流程图4.2.3 图书信息管理模块(1)功能说明本模块包含二个功能,一个是对图书信息的添加,一个是对添加的图书信息进行修改。图书信息主要包括,图书编号、类别、书名、作者、出版社、译者、出版日期、单价。图书修改功能是对图书添加时出现错误的修改。(2)流程图图书信息添加操作流程图如图4-4所示,图书信息修改流程跟
16、图书信息添加流程类似所以这里不给出。图4-4 图书信息添加操作流程图4.2.4 新书订购管理模块(1)功能说明该功能模块包含二个子功能,分别是新书订购和验收新书。新书订购是对以已经在图书信息里面添加的图书进订购。验收新书是对所新订购的新书进行验书。(2)流程图新书订购操作流程图如图4-5所示,验收新书操作流程比较简单这里就不画流程图。图4-5 新书订购操作流程图4.2.5 图书借阅功能模块(1)功能说明该功能是读者借书的一个功能,在正确填写读者编号、图书编号、以及没有超过读者的借书量才可以借书。(2)流程图图书借阅功能操作流程图如图4-6所示图4-6 图书借阅功能操作流程图4.2.6 图书归还
17、功能模块(1)功能说明该模块的功能主要是借阅者图书的归还、查看是否超期如果超期将计算出超期后的罚款、图书的续借。(2)流程图图书归还操作流程图如图4-7所示图4-7 图书归还操作流程图5 系统实现5.1 关键技术的实现5.1.1 管理员登录模块的实现管理员登录界面如图5-1所示图5-1 管理员登入界面管理员登录对话框登录按钮监听器代码实现如下:class BookLoginAction implements ActionListener public void actionPerformed(final ActionEvent e) user = Dao.check(username.getT
18、ext(), password.getText();if (user.getName() != null) try Library frame = new Library();frame.setVisible(true);BookLoginIFrame.this.setVisible(false); catch (Exception ex) ex.printStackTrace(); else JOptionPane.showMessageDialog(null, 只有管理员才可以登);username.setText();password.setText();5.1.2 读者信息修改与删除模
19、块的实现读者信息修改与删除界面如图5-2所示图5-2 读者信息修改与删除界面读者信息修改与删除界面中修改与删除按钮的监听器代码实现如下:private final class DelButtonListener implements ActionListener private final DefaultTableModel model;private DelButtonListener(DefaultTableModel model) this.model = model;public void actionPerformed(final ActionEvent e) int i=Dao.D
20、elReader(ISBN.getText().trim();if(i=1)JOptionPane.showMessageDialog(null, 删除成功);Object results=getFileStates(Dao.selectReader();model.setDataVector(results,columnNames);table.setModel(model);class ModiButtonListener implements ActionListener private final DefaultTableModel model;ModiButtonListener(D
21、efaultTableModel model) this.model = model;public void actionPerformed(final ActionEvent e) if(readername.getText().length()=0)OptionPane.showMessageDialog(null, 读者姓名文本框不可为空);return;if(keepmoney.getText().length()=0)JOptionPane.showMessageDialog(null, 押金文本框不可为空);return;if(tel.getText().length()11|te
22、l.getText().length()2|tel.getText().length()0)JOptionPane.showMessageDialog(null, 最大借书量为两位数字);return;String sex=1;if(!JRadioButton1.isSelected()sex=2;String zj=String.valueOf(comboBox.getSelectedIndex();System.out.println(comboBox.getSelectedIndex();int i=Dao.UpdateReader(id, readername.getText().tr
23、im(), sex, age.getText().trim(), zjnumber.getText().trim(), Date.valueOf(date.getText().trim(), maxnumber.getText().trim(), tel.getText().trim(), Double.valueOf(keepmoney.getText().trim(), zj, zy.getText().trim(), Date.valueOf(bztime.getText().trim(), ISBN.getTexti().trim();System.out.println(i);if(
24、i=1)JOptionPane.showMessageDialog(null, 修改成功);Object results=getFileStates(Dao.selectReader();model.setDataVector(results,columnNames);table.setModel(model);5.1.3 图书类别添加模块的实现图书类别添加界面如图5-3所示图5-3 图书类别添加图书类别添中保存按钮监听器代码实现如下:button.addActionListener(new ActionListener()public void actionPerformed(final A
25、ctionEvent e) if(bookTypeName.getText().length()=0)JOptionPane.showMessageDialog(null, 图书类别文本框不可为空);return;if(days.getText().length()=0)JOptionPane.showMessageDialog(null, 可借天数文本框不可为空);return;if(fakuan.getText().length()=0|fakuan.getText().trim().equals(单位为角)JOptionPane.showMessageDialog(null, 罚款文本框
26、不可为空);return;int i=Dao.InsertBookType(bookTypeName.getText().trim(), days.getText().trim(),Double.valueOf(fakuan.getText().trim()/10);if(i=1)JOptionPane.showMessageDialog(null, 添加成功!);doDefaultCloseAction();)5.1.4 图书信息添加模块实现图5-4 图书信息添加添加按钮监听器代码的实现class addBookActionListener implements ActionListener
27、 public void actionPerformed(final ActionEvent e) / 订书业务if(ISBN.getText().length()=0)JOptionPane.showMessageDialog(null, 书号文本框不可以为空);return;String ISBNs=ISBN.getText().trim();/分类Object selectedItem = bookType.getSelectedItem();if (selectedItem = null)return;Item item = (Item) selectedItem;String boo
28、kTypes=item.getId();String translators=translator.getText().trim();String bookNames=bookName.getText().trim();String writers=writer.getText().trim();String publishers=publisher.getText().trim();String pubDates=pubDate.getText().trim();String prices=price.getText().trim();int i=Dao.Insertbook(ISBNs,b
29、ookTypes, bookNames, writers, translators, publishers, java.sql.Date.valueOf(pubDates),Double.parseDouble(prices);if(i=1)JOptionPane.showMessageDialog(null, 添加成功);doDefaultCloseAction();5.1.5 图书借阅模块的实现图书借阅功能界面如图5-5所示图5-5 图书借阅功能图书借阅模块中借出图书按钮监听器代码实现如下class BorrowActionListener implements ActionListene
30、r public void actionPerformed(final ActionEvent e) String bookISBNs=bookISBN.getText().trim();String readerISBNs=readerISBN.getText().trim();String bookNames=bookName.getText().trim();String operatorId=user.getId();/String num=table.getRowCount()+;String borrowDate=myfmt.format(new java.util.Date();
31、String backDate=myfmt.format(getBackTime();/System.out.println(borrowDate);/System.out.println(java.sql.Timestamp.valueOf(backDate);if(Dao.checkAndAccept(bookISBNs) int i=Dao.InsertBookBorrow(bookISBNs, readerISBNs, operatorId, java.sql.Timestamp.valueOf(borrowDate), java.sql.Timestamp.valueOf(backD
32、ate);if(i=1)JOptionPane.showMessageDialog(null, 图书借阅完成!);doDefaultCloseAction(); else JOptionPane.showMessageDialog(null, 图书没有验收!);doDefaultCloseAction();5.2 数据库连接及操作类的编写数据库连接操作代码如下:protected static String dbClassName = com.microsoft.jdbc.sqlserver.SQLServerDriver;protected static String dbUrl = jdb
33、c:microsoft:sqlserver:/localhost:1433;+ DatabaseName=db_library;SelectMethod=Cursor;protected static String dbUser = li;protected static String dbPwd = 123;protected static String second = null;private static Connection conn = null;private Dao() try if (conn = null) Class.forName(dbClassName).newIns
34、tance();conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);elsereturn; catch (Exception ee) ee.printStackTrace();6 总结与展望经过一个月的不断学习和设计开发加上老师同学的帮助,终于完成了我的毕业设计题目“图书馆借阅管理系统”的开发,在开题报告阶段我参阅了大量的中外文献,对所开发系统的现状,国际发展情况以及未来发展趋势有了深入的了解; 在整个系统的需求分析过程中对开发前期工作地流程步骤有了深入的掌握;在开发过程我进一步学习了Java的基础语法,和桌面图标方面的知识,以便使
35、系统有更好的美观性,在编写过程中也规范了许多编码习惯,数据库设计阶段我尝试了几个不同版本的数据库,它们在配置操作上各有不同,又各有优缺点,在它们的一些基本操作上也有了进一步提高。在配置开发工具过程中对JDK和Eclipse的连接部署有了清晰地认识。在整个系统开发的过程中,我学到了很大新的知识,前学过的许多知识点在运用过程中也有了更为深入的分析,这是我大学期间做过的规模最大的项目,在这个过程中也体会到了如何将书本知识转化到实际的应用中。参考文献: 1 萨师煊,王珊. 数据库系统概论(第四版)M. 北京:高等教育出版社,20082 耿祥义编著. Java2实用教程M. 北京:清华大学出版社,2006年7月3 张海藩. 软件工程导论(第5版)M. 北京:清华大学出版社.20084 窦万峰主编,蒋锁良,杨俊,杨君. 软件工程实验教程M. 北京:机械工业出版社.20095 刘培文主编 SQL Server 2005数据库原理及应用教程M 中国人民大学出版社.20096 陈明. Java语言程序设计课程实践M. 北京:清华大学出版社.20097 苗春义. Java项目开发全程实录M. 北京:清华大学出版社.20088 夏冰冰. SQL Server 2005数据库原理及应用. 国防工业出版社.2009第23页(共24页)
限制150内