




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着科学技术的进步,计算机行业的迅速发展,大大提高人们的工作效率,信息作为社会最主要的资源,将成为战略资源引起人们广泛的关注。如何获取信息?图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来。迫使人们起用新的管理方法来管理图书,如何把图书管理员从繁重的工作中解脱出来呢?科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。因此,图书管理系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息、掌握信息 。本系统使用java语言在eclipse环境下编写图形用户界面,具有开发效率高,设计灵活,生成的软件界面友好,本系统中还通过JDBC驱动和SQL SEVER数据库进行连接,后端的数据库是mysql,这是一个开源的数据库,该数据库具有较高的完整性,一致性和安全性。【关键词】图书管理 系统设计 信息 java eclipse SQL目录1 需求分析31.1概述31.2系统需求分析31.2.1 可行性分析31.3系统功能模块41.3.1功能描述42 总体设计52.2 数据库设计52.2.1图书类型表结构设计52.2.2图书信息表结构设计62.2.3管理员信息表结构设计73.图书管理系统结构图83.1图书修改模块功能83.2图书添加模块功能93.3图书删除模块功能93.4图书查询模块功能94 程序设计94.1数据库与eclipse系统之间的连接94.2登录模块功能程序设计104.3查询模块功能程序设计12 154.4修改模块功能程序设计154.5添加模块功能程序设计204.6删除模块功能程序设计245 软件测试265.1软件测试的方法与步骤265.2模块测试27登录模块的测试276.收获体会277.参考文献281 需求分析1.1概述 通过图书管理系统,可以进行方便的查询书籍,可以添加各种类型的书籍,可以进行修改书籍的基本信息,还可以删除书籍的基本信息,是一种高效的应用管理系统,图书管理员则通过本系统对图书进行各种操作。1.2系统需求分析 需求分析,通过对问题的分析,确定系统的功能需求,这个步骤是对理解需求的升华,直接关系到系统的质量。(1).系统性能要求 统一处理的准确性和及时性 系统的开放性和可扩充性 系统的易用性和以维护性(2).系统的数据要求 数据录入和处理的准确性和实时性 数据的一致性和完整性 数据的共享和独立性 1.2.1 可行性分析 (1).处理速度快、准确通过权限的设置,数据的安全性好、方便查询、修改管理等(2)本系统作为一个小型的图书馆信息管理系统,所耗费的资源非常的小,该系统只需要管理员进行简单的点击文件确定的的工作,应用起来非常方便和快捷,在节省了人力资源的同时由于主要是由电脑完成主要的工作,所以极大地解决了时间上的浪费。 1.3系统功能模块 系统结构图将会使读者和用户能直观的了解系统的结构模式,理解系统的各个功能,能很好方便用户理解整个系统。 系统总体设计模块如图所示:图书管理系统登录模块查询模块添加模块修改模块删除模块管理员登录图书信息查询图书信息添加图书信息修改图书信息删除1.3.1功能描述 图书管理系统的主要任务是实现快速检索查询,方便管理图书信息。(1).登录 图书管理员进入系统必须登录,身份验证正确了才可以进入该系统。 管理员可以设置图书的相关信息 管理员可以进行添加,查询,删除,修改功能的操作。(2).查询 可以进入查询界面通过书类型来查询各种书的相关信息。(3).添加 可以进入添加界面添加各种书的相关信息。(4).修改 可以进入修改界面根据图书编号来修改图书的基本信息。(5)删除 点击删除按钮可以删除有关书籍的相关信息。2 总体设计2.2 数据库设计整个系统包括的信息有图书类型信息(bookkind),图书基本信息(bookinfo),管理员信息(userinfo)。这些信息可抽象为下列所需要的数据项和数据结构:(1).bookkind(kindid,kindname),主键是kindid(2).bookinfo(bookkid,bookname,author,price,press,image,kindid),主键是bookkid(3).userinfo(userid,username,password),主键是userid2.2.1图书类型表结构设计 图书类型表 bookkind 2.2.2图书信息表结构设计 图书信息表 bookinfo 2.2.3管理员信息表结构设计 管理员信息表 userinfo3.图书管理系统结构图3.1图书修改模块功能 图书修改是管理员进入此界面后,将文本框中已有的图书信息,进行更改,这种修改会写入数据库,是数据库中表的信息更改。3.2图书添加模块功能 图书的添加是图书管理系统不可缺少的部分,用于注册图书信息,通过界面中的文本框来接收图书信息,然后将此信息写入到SQL数据库中,在添加过程中,要判断是否将图书的类型写入,否者不能添加。若添加成功则会弹出添加成功的对话框。3.3图书删除模块功能 图书修改是点击删除按钮,将已有的图书信息删除,删除要判断文本框中是否有图书信息,若有则删除成功,并从数据库中删除。3.4图书查询模块功能 图书查询也是图书管理系统不可缺少的部分,管理员登入成功进入此界面,通过点击下拉列表框中的书类名,来查询图书的所有信息。若不点击图书类型,则会弹出,请选择图书类型的提示对话框。4 程序设计4.1数据库与eclipse系统之间的连接 JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的(Java DataBase Connectivity 。JDBC API可做三件事:与数据库建立连接、执行SQL 语句、处理结果。DriverManager :依据数据库的不同,管理JDBC驱动 Connection :负责连接数据库并担任传送数据的任务 Statement :由 Connection 产生、负责执行SQL语句 ResultSet:负责保存Statement执行后所产生的查询结果具体实现代码如下:package com.libary.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class Dao private Connection conn=null; /连接对象private PreparedStatement pst=null; /语句对象private ResultSet rs=null; /结果集对象/* * 获得Connetion对象 */ public Connection getConn() try /定义路径String url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=library;/注册类Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);/获取连接对象conn = DriverManager.getConnection(url,sa,sa);return conn; catch(Exception e) e.printStackTrace(); return null; 4.2登录模块功能程序设计 本模块主要是管理员通过首页登录进该系统,管理员输入正确的用户名和密码,系统会识别,如果登录信息有错误,则系统提示请输入正确的账户和密码,并禁止用户进行任何操作。图书管理系统的登陆界面如图所示:其具体代码如下: public boolean login(Account account) try String sql=select * from userinfo where username=? and password=?; pst = getConn().prepareStatement(sql);pst.setString(1, account.getUsername();pst.setString(2, account.getPassword();rs=pst.executeQuery(); if(rs.next() return true; /return !pst.execute(); catch(Exception e) e.printStackTrace(); finally close(); return false; 4.3查询模块功能程序设计 查询模块包括图书类别的查询,图书基本信息的查询。进入界面后,带年纪下拉列表按钮,任意选中图书类别,就可以在LIST框中查询到这类书的书名,再选中书名,点击确定按钮,会在右边的文本框中显示此本书的基本信息。其界面如图所示:其具体代码如下:public List search(String kindname)List list = new ArrayList();tryString sql=select bookinfo.* from bookkind ,bookinfo where kindname=? and bookkind.kindid=bookinfo.kindid;pst=getConn().prepareStatement(sql);pst.setString(1, kindname);rs=pst.executeQuery();while(rs.next()Book s=new Book(); s.setKindid(rs.getInt(kindid); s.setBookname(rs.getString(bookname);s.setAuthor(rs.getString(author);s.setBookid(rs.getInt(bookkid);s.setPress(rs.getString(press);s.setPrice(rs.getFloat(price); list.add(s);return list;catch(Exception e)e.printStackTrace();finallyclose();return null;private void jComboBox1ItemStateChanged(ItemEvent evt) String sort=jComboBox1.getSelectedItem().toString();this.kindid = jComboBox1.getSelectedIndex(); /设置选定类别号List list=dao.search(sort);/获取Jlist1的数据模型DefaultComboBoxModel model=(DefaultComboBoxModel)this.jList1.getModel();/清空model.removeAllElements();for(Book s:list)model.addElement(s);private void jButton4ActionPerformed(ActionEvent evt) if(!jList1.isSelectionEmpty()try Book as=(Book)jList1.getSelectedValue();jTextField1.setText(String.valueOf(as.getBookkid();jTextField2.setText(as.getBookname();jTextField3.setText(String.valueOf(as.getPrice();jTextField4.setText(as.getPress(); catch (RuntimeException e) / TODO Auto-generated catch blocke.printStackTrace();elseJOptionPane.showMessageDialog(this,请选择书本名!,this.getTitle(),JOptionPane.INFORMATION_MESSAGE); 4.4修改模块功能程序设计进入修改界面后,书本基本信息自动加载到此界面,管理员可修改书本的任意信息,修改好后,点击确定按钮,会弹出修改成功对话框,并且在后台的数据库中进行了修改。如图所示:点击选择图片按钮,会弹出打开文件的对话框,根据所存图片的路径可添加图片。效果如图所示:在修改好所有信息后点击确定按钮,会弹出修改成功的对话框最终修改效果图如图所示:其具体代码如下:public boolean updatebook(Book book) try Stringsql=updatebookinfoset bookname=?,author=?,price=?,press=?,image=? where bookkid=? ; pst=getConn().prepareStatement(sql);pst.setString(1, book.getBookname(); pst.setString(2,book.getAuthor(); pst.setFloat(3,book.getPrice(); pst.setString(4,book.getPress(); pst.setString(5, book.getImage(); pst.setInt(6, book.getBookkid(); return !pst.execute(); catch(Exception e) System.out.println(e.getMessage(); return false;private void jButton2ActionPerformed(ActionEvent evt) book1.setAuthor(jTextField1.getText(); book1.setBookname(jTextField2.getText();book1.setPrice(Float.parseFloat(jTextField3.getText();book1.setPress(jTextField4.getText(); book1.setImage(jLabel6.getText(); boolean flag=dao.updatebook(book1); String auther=jTextField1 .getText(); String bookname=jTextField2 .getText(); String price=jTextField3.getText(); String press=jTextField4 .getText();if(auther.equals()|bookname.equals()|price.equals()|press.equals()|jLabel6.equals()JOptionPane.showMessageDialog(this,请输入完整信息!,warning,JOptionPane.INFORMATION_MESSAGE);elseif(flag) JOptionPane.showMessageDialog(this,修改成功!,this.getTitle(),JOptionPane.INFORMATION_MESSAGE);elseJOptionPane.showMessageDialog(this,修改失败,请稍候再试!,warning,JOptionPane.INFORMATION_MESSAGE);/* * 选择图片按钮 * param evt */private void jButton1ActionPerformed(ActionEvent evt) /创建选择器JFileChooser jfc = new JFileChooser();/创建文件过滤器FileNameExtensionFilterfilter = new FileNameExtensionFilter( JPG & GIF Images, jpg, gif);/将文件扩展名过滤器设置到 文件选择器jfc对象内jfc.setFileFilter(filter);int dialogResult =jfc.showDialog(this, 打开文件);if(dialogResult=JFileChooser.APPROVE_OPTION)String filename=jfc.getSelectedFile().getName();jLabel6.setIcon(new ImageIcon(image/+filename);4.5添加模块功能程序设计 进入添加界面后,在文本框中填写需要添加的书本信息,填写完整后,系统自动将其添加的书本写入后台数据库中。点击确定按钮将弹出添加成功的对话框。下过如图: 其具体代码如下:public boolean insertbook(Book book )tryStringsql=insertintobookinfo(bookkid,bookname,author,price,press,image,kindid) +values(?,?,?,?,?,?,?);pst=getConn().prepareStatement(sql); pst.setInt(1,book.getBookkid(); pst.setString(2, book.getBookname(); pst.setString(3,book.getAuthor(); pst.setFloat(4,book.getPrice(); pst.setString(5,book.getPress(); pst.setString(6, book.getImage(); pst.setInt(7, book.getKindid(); return !pst.execute();catch(Exception e)e.printStackTrace();finallyclose();return false;private void jButton2ActionPerformed(ActionEvent evt) /判断是否填写完整if(jTextField1 .getText().equals()|jTextField2 .getText().equals()|jTextField3 .getText().equals()|jTextField4 .getText().equals() )JOptionPane.showMessageDialog(this,添加的信息未填写完整!,this.getTitle(),JOptionPane.INFORMATION_MESSAGE);return;/创建书的实例Book s1=new Book(); /初始化 s1.setAuthor(jTextField1 .getText(); s1.setBookname(jTextField2 .getText(); s1.setPrice(Float.valueOf(jTextField3.getText(); s1.setPress(jTextField4 .getText(); s1.setKindid(kid); boolean flag=dao.insertbook(s1);if(flag) JOptionPane.showMessageDialog(this,添加成功!);elseJOptionPane.showMessageDialog(this,添加失败,请稍候再试!);/* * 选择图片按钮 * param evt */private void jButton1ActionPerformed(ActionEvent evt) /创建选择器JFileChooser jfc = new JFileChooser();/创建文件过滤器FileNameExtensionFilter filter = new FileNameExtensionFilter( JPG & GIF Images, jpg, gif);/将文件扩展名过滤器设置到 文件选择器jfc对象内jfc.setFileFilter(filter);int dialogResult =jfc.showDialog(this, 打开文件);if(dialogResult=JFileChooser.APPROVE_OPTION)String filename = jfc.getSelectedFile().getName();jLabel9.setIcon(new ImageIcon(image/+filename);4.6删除模块功能程序设计 管理员点击删除按钮,会自动删除查询界面的书本信息,并在后台的数据库中也将相应的书本信息删除。删除后会弹出删除成功的对话框。效果图如图所示:其代码如下:public boolean deletebook(Book book)try String sql=delete from bookinfo where bookkid=?; pst=getConn().prepareStatement(sql); pst.setInt(1,book.getBookkid(); return !pst.execute();catch(Exception e) System.out.println(e.getMessage();return false;JOptionPane.showMessageDialog(this,请选择你书本名!,this.getTitle(),JOptionPane.INFORMATION_MESSAGE);/* * 删除 * param evt */private void jButton3ActionPerformed(ActionEvent evt) if(!jList1.isSelectionEmpty() boolean flag=dao.deletebook(book);if(flag) JOptionPane.showMessageDialog(this,删除成功!);elseJOptionPane.showMessageDialog(t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 棉花纤维质量分析工艺考核试卷及答案
- 浆料复卷工艺考核试卷及答案
- 芳烃抽提装置操作工突发故障应对考核试卷及答案
- 聚氨酯弹性层施工规范考核试卷及答案
- 信息技术考试试题及答案
- 信息技术发展试题及答案
- 银行债券笔试题库及答案
- DB33-T 1261-2021 全装修住宅室内装修设计标准 附条文说明
- 银行写作试题及答案
- 银行校园面试题及答案
- 人力资源知识竞赛题库及答案
- 地铁轨道安全培训报道课件
- 2025年征信题库及答案
- 传染病及其预防(第一课时)课件-2025-2026学年人教版生物八年级上册
- (2025秋新版)二年级上册道德与法治全册教案
- 老挝药品注册管理办法
- 2025年社工工作者考试真题及答案
- 建设工程项目协同作业方案
- 同城理发店转租合同范本
- 问题解决策略:反思 课件 北师大版数学八年级上册
- 2025年国防竞赛题库及答案
评论
0/150
提交评论